zammad-mcp-go
If you are the rightful owner of zammad-mcp-go and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
MCP Server for accessing the Zammad API.
zammad-go-mcp
MCP Server for accessing the Zammad API.
This server enables:
- Reading ticket and user lists.
- Fetching details for specific tickets and users.
- Searching for tickets and users.
- Creating new tickets.
- Adding notes (articles) to existing tickets.
- Retrieving communication history (articles) for tickets.
Capabilities
The server exposes the following MCP Resources and Tools:
Resources allow the AI to read data from Zammad in a structured way using URIs.
zammad://tickets
- Name: List Tickets
- Description: Lists all tickets accessible by the configured API token.
- MIME Type:
application/json
zammad://tickets/{ticket_id}
(Template)- Name: Show Ticket (Resource)
- Description: Shows details for a specific ticket identified by its
{ticket_id}
. - MIME Type:
application/json
zammad://users
- Name: List Users
- Description: Lists all users accessible by the configured API token.
- MIME Type:
application/json
zammad://users/{user_id}
(Template)- Name: Show User (Resource)
- Description: Shows details for a specific user identified by their
{user_id}
. - MIME Type:
application/json
Tools
Tools allow the AI to perform actions or specific queries within Zammad.
create_ticket
: Creates a new ticket in Zammad.- Requires:
title
,group
,customer
(email or user ID),body
. - Optional:
type
(article type, default: "note"),internal
(boolean, default: false).
- Requires:
search_tickets
: Searches for tickets based on a query string.- Requires:
query
. - Optional:
limit
(default: 50).
- Requires:
add_note_to_ticket
: Adds an internal note (article) to an existing ticket.- Requires:
ticket_id
,body
. - Optional:
internal
(boolean, default: true).
- Requires:
get_ticket
: Retrieves details for a specific ticket by its ID.- Requires:
ticket_id
.
- Requires:
get_user
: Retrieves details for a specific user by their ID.- Requires:
user_id
.
- Requires:
search_users
: Searches for users based on a query string (e.g., email, login, name).- Requires:
query
. - Optional:
limit
(default: 50).
- Requires:
get_ticket_articles
: Retrieves all articles (communications) for a specific ticket.- Requires:
ticket_id
.
- Requires:
Prerequisites
- Go: Version 1.24 or higher installed.
- Zammad Instance: Access to a running Zammad instance (URL).
- Zammad API Token: An API token generated within your Zammad instance with sufficient permissions.
Getting a Zammad API Token
You need to generate an API token within Zammad to allow this MCP server to authenticate and interact with the API.
- Log in to your Zammad instance with an administrator account (or an account that has permission to manage API tokens).
- Navigate to your Profile settings (usually by clicking your avatar/initials in the bottom-left).
- Go to the Token Access section.
- Click "Create" or the relevant button to generate a new token.
- Give the token a descriptive Label (e.g., "Claude MCP Server").
- Crucially, assign the necessary permissions. Based on the tools provided, you will likely need permissions like:
ticket.agent
(orticket.customer
depending on use case) - To view, create, search tickets and add articles.user.reader
- To view and search users.- (Optional)
admin.user
might be needed for broader user searches or modifications if you add those tools later. Review Zammad's permission documentation for specifics.
- Click "Create" or "Save".
- Immediately copy the generated token. Zammad will only show you the token once. Store it securely.
Installation & Setup
-
Clone the repository:
git clone https://github.com/arush15june/zammad-mcp-go.git cd zammad-mcp-go
-
Build the binary:
go build -o zammad-mcp-go main.go
This will create an executable file named
zammad-mcp-go
(orzammad-mcp-go.exe
on Windows) in the current directory.
Claude Desktop Configuration
{
"mcpServers": {
"zammad": {
"command": "<path-to>/zammad-go-mcp.exe",
"args": [],
"env": {
"ZAMMAD_URL": "<zammad_url>",
"ZAMMAD_TOKEN": "<zammad_token>"
}
}
}
}