Zammad-MCP
A Model Context Protocol (MCP) server for Zammad integration, enabling AI assistants to interact with tickets, users, and organizations.
Install / Use
claude mcp add basher83 -- npx -y github:basher83/Zammad-MCPIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Customer SupportSupported Platforms
Our assessment of Zammad-MCP
Zammad-MCP scores 79/100 on our quality scale, 285th of 320 Customer Support skills we index.
Its MCP Server is 18 KB long, well organised into 60 sections with 15 code examples: a thorough specification that gives an agent plenty to work with.
It has 44 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated yesterday, so Zammad-MCP is actively maintained.
- It is released under AGPL-3.0, a copyleft license: you can use it, but modified versions you distribute must carry the same license.
- Its trust signals score 97/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Zammad-MCP compared with similar skills
All 4 of these similar skills score higher than Zammad-MCP; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| Zammad-MCP (this skill)by basher83 | 79 | 44 | 1d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 91.8k | 20d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 74.5k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.2k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 85.9k | 1d ago | MCP Server |
Frequently asked questions
- How do I install Zammad-MCP?
- Run
claude mcp add basher83 -- npx -y github:basher83/Zammad-MCP. The install tabs above show the steps for each supported agent. - Which AI agents does Zammad-MCP work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is Zammad-MCP safe to use?
- It is AGPL-3.0-licensed and scores 97/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is Zammad-MCP still maintained?
- The repository was last updated yesterday, so Zammad-MCP is actively maintained.
Skill content
View source on GitHubZammad MCP Server
An MCP server that connects AI assistants to Zammad, providing tools for managing tickets, users, organizations, attachments, and knowledge base content.
Disclaimer: This project is not affiliated with or endorsed by Zammad GmbH or the Zammad Foundation. This is an independent integration that uses the Zammad API.
Features
Tools
-
Ticket Management
zammad_search_tickets- Search tickets with multiple filterszammad_get_ticket- Get detailed ticket information with articles (supports pagination); custom object attributes are includedzammad_create_ticket- Create new ticketszammad_update_ticket- Update ticket properties, including custom object attributes viacustom_fieldszammad_add_article- Add comments/notes to ticketszammad_merge_tickets- Merge a ticket into another (irreversible)zammad_add_ticket_tag/zammad_remove_ticket_tag- Manage ticket tagszammad_bulk_update_tickets- Update, assign, tag, or close up to 100 tickets in one call with per-ticket failure reportingzammad_get_ticket_tags- Get tags assigned to a specific ticketzammad_list_tags- List all tags defined in the system (requires admin.tag permission)zammad_export_tickets- Export tickets with their conversation articles to a JSONL file on the server host (requiresZAMMAD_EXPORT_DIR; see Ticket Export)
-
Attachment Support
zammad_get_article_attachments- List attachments for a ticket articlezammad_download_attachment- Download attachment content (base64-encoded)
-
User & Organization Management
zammad_create_user- Create a Zammad userzammad_get_user/zammad_search_users- User information and searchzammad_get_organization/zammad_search_organizations- Organization datazammad_get_current_user- Get authenticated user info
-
System Information
zammad_list_groups- Get all available groups (cached for performance)zammad_list_ticket_states- Get all ticket states (cached for performance)zammad_list_ticket_priorities- Get all priority levels (cached for performance)zammad_get_ticket_stats- Get ticket statistics (optimized with pagination)
-
Webhook Events (HTTP transport only)
zammad_list_events- Poll ticket events delivered by Zammad webhooks (see Webhook Events)
-
Knowledge Base (read-only, requires
knowledge_base.readerorknowledge_base.editorpermission)zammad_list_knowledge_bases- List all knowledge baseszammad_get_knowledge_base- Get details of one knowledge base by IDzammad_get_kb_category- Get a knowledge base category by IDzammad_list_kb_answers- List answers in a knowledge base categoryzammad_search_kb_answers- Case-insensitive substring search of answer titles and bodieszammad_get_kb_answer- Get an answer by ID with its resolved title and body
Resources
Access Zammad data directly:
zammad://ticket/{id}- Individual ticket detailszammad://user/{id}- User profile informationzammad://organization/{id}- Organization detailszammad://queue/{group}- Ticket queue for a groupzammad://kb/{kb_id}- Knowledge base detailszammad://kb/{kb_id}/category/{category_id}- Knowledge base categoryzammad://kb/{kb_id}/answer/{answer_id}- Knowledge base answer with title and body
Prompts
Pre-configured prompts:
analyze_ticket- Comprehensive ticket analysisdraft_response- Generate ticket responsesescalation_summary- Summarize escalated tickets
Installation
Option 1: Run Directly with uvx (Recommended)
Run without installation:
# Install uv if you haven't already
# macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# Run directly from GitHub
uvx --from git+https://github.com/basher83/zammad-mcp.git mcp-zammad
# Or with environment variables
ZAMMAD_URL=https://your-instance.zammad.com/api/v1 \
ZAMMAD_HTTP_TOKEN=your-api-token \
uvx --from git+https://github.com/basher83/zammad-mcp.git mcp-zammad
Option 2: Docker Run
For production or containerized deployments:
# Basic usage with environment variables
docker run --rm -i \
-e ZAMMAD_URL=https://your-instance.zammad.com/api/v1 \
-e ZAMMAD_HTTP_TOKEN=your-api-token \
ghcr.io/basher83/zammad-mcp:latest
# If you must skip TLS verification (self-signed / internal CA), add:
# -e ZAMMAD_INSECURE=true
# Using Docker secrets for better security
docker run --rm -i \
-e ZAMMAD_URL=https://your-instance.zammad.com/api/v1 \
-e ZAMMAD_HTTP_TOKEN_FILE=/run…[redacted] \
-v ./secrets/zammad_http_token.txt:/run/secrets/token:ro \
ghcr.io/basher83/zammad-mcp:latest
# With .env file
docker run --rm -i \
--env-file .env \
ghcr.io/basher83/zammad-mcp:latest
Docker Image Versioning
The project publishes Docker images with semantic versioning:
latest- Latest successful build from the default branch; may be unstable1.2.3- Specific version (recommended for production)1.2- Latest patch of 1.2 minor release1- Latest minor/patch of 1.x major releasemain- Latest main branch (may be unstable)
# Recommended for production - pin to specific version
docker pull ghcr.io/basher83/zammad-mcp:1.2.0
View all versions on GitHub Container Registry.
Option 3: For Developers
To contribute or modify the code, install mise. mise.toml pins the Python and uv versions and defines the project tasks.
# Clone the repository
git clone https://github.com/basher83/zammad-mcp.git
cd zammad-mcp
# Install the pinned tools from mise.toml (Python, uv, prek, git-cliff, and others)
mise install
# Install the Python dependencies into .venv (uv sync)
mise run setup
# Install the pre-commit hooks
mise run hooks-install
If mise asks you to trust the repository configuration, run mise trust. The Development section below links the contributor guides.
Configuration
The server requires Zammad API credentials. Use a .env file:
-
Copy the example configuration:
cp .env.example .env -
Edit
.envwith your Zammad credentials:# Required: Zammad instance URL (include /api/v1) ZAMMAD_URL=https://your-instance.zammad.com/api/v1 # Authentication (choose one method): # Option 1: API Token (recommended) ZAMMAD_HTTP_TOKEN=your-api-token # Option 2: OAuth2 Token # ZAMMAD_OAUTH2_TOKEN=your-oauth2-token # Option 3: Username/Password # ZAMMAD_USERNAME=your-username # ZAMMAD_PASSWORD=your-password # Optional: Disable TLS certificate verification (NOT recommended for production) # Truthy values only: 1, true, yes, on. Unset (default) keeps TLS verification enabled. # ZAMMAD_INSECURE=true # Optional: Logging level (default: INFO) # Valid values: DEBUG, INFO, WARNING, ERROR, CRITICAL # LOG_LEVEL=INFO -
The server will automatically load the
.envfile on startup.
.env.example lists every optional variable with a comment. The
configuration reference documents each variable with its default and allowed values.
The optional features are summarized below.
Transport Configuration (Optional)
| Variable | Default | Description |
|----------|---------|-------------|
| MCP_TRANSPORT | stdio | Transport type: stdio or http |
| MCP_HOST | 127.0.0.1 | Host address for HTTP transport |
| MCP_PORT | - | Port number for HTTP transport (required if MCP_TRANSPORT=http) |
Audit Logging (Optional)
Audit logging is disabled by default. When ZAMMAD_AUDIT_LOG_ENABLED is set, the server writes one JSON Lines record
per tool call, connection attempt, and URL security check to stderr, a file, or syslog, with secrets redacted.
See Audit logging for the variables and the record format.
Ticket Export (Optional)
zammad_export_tickets writes a JSON Lines file on the host that runs the MCP server. It is disabled until
ZAMMAD_EXPORT_DIR names an existing directory, and every output path must resolve inside that directory.
See Ticket export for the variables, filters, and confinement rules.
Important: Keep your .env file out of version control (already in .gitignore).
Response Formats
Tools that return Markdown by default accept a response_format parameter with two values:
- Markdown (default): Human-readable format optimized for LLM consumption
- JSON: Machine-readable format with complete metadata
These are the search, get, and list tools for tickets, users, organizations, groups, states, priorities, tags, and
knowledge base content. The write tools, zammad_get_article_attachments, zammad_download_attachment,
zammad_get_current_user, zammad_get_ticket_stats, zammad_export_tickets, and zammad_list_events return
structured results and have no response_format parameter.
Example:
# Markdown (default)
zammad_search_tickets(query="network", response_format="markdown")
# JSON
zammad_search_tickets(query="network", response_format="json")
Usage
With Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"zammad": {
"command": "uvx",
"args": ["--from", "git+https://github.com/basher83/zammad-mcp.git", "mcp-zammad"],
"env": {
"ZAMMAD_URL": "https://your-instance.zammad.com/api/v1",
"ZAMMAD_HTTP_TOKEN": "your-api-token"
}
}
}
}
Or using Docker:
{
"mcpServers": {
"zammad": {
"command": "docker",
"args": ["run", "--rm", "-i",
"-e", "ZAMMAD_URL=https://your-instance.zammad.com/api/v1",
"-e", "ZAMMAD_HTTP_TOKEN=your-api-token",
"ghcr.io/basher83/zammad-mcp:latest"]
}
}
}
Note: The server supports stdio (default) and HTTP transports. Stdio mode requires the -i flag for Docker. See the HTTP Transport section below for remote deployments.
Important: The -i flag is required—without it, the MCP server cannot receive stdin. Preserve this flag in wrapper scripts or shell aliases.
Or if you have it installed locally:
{
"mcpServers": {
"zammad": {
"command": "mcp-zammad",
"env": {
"ZAMMAD_URL": "https://your-instance.zammad.com/api/v1",
"ZAMMAD_HTTP_TOKEN": "your-api-token"
}
}
}
}
Standalone Usage
# Run the server from a repository checkout
uv run mcp-zammad
# Or with environment variables
ZAMMAD_URL=https://instance.zammad.com/api/v1 ZAMMAD_HTTP_TOKEN=token uv run mcp-zammad
HTTP Transport (Remote/Cloud Deployment)
The server supports Streamable HTTP transport for remote deployments. Set MCP_TRANSPORT=http and MCP_PORT.
MCP_HOST defaults to 127.0.0.1. The MCP endpoint is /mcp on that host and port.
⚠️ SECURITY WARNING: The server does not implement inbound MCP client authentication. ZAMMAD_* credentials
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
91.8kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
74.5kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.2kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
85.9k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
