zammad-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ZAMMAD_URL | Yes | REST base URL, e.g. https://mail.example.com/api/v1/. | |
| ZAMMAD_HTTP_TOKEN | Yes | API token (Profile → Token Access in Zammad). | |
| ZAMMAD_SELF_EMAILS | No | Comma-separated list of own addresses that should never appear in CC. Default: empty (no filtering). | |
| ZAMMAD_BANNED_NAMES | No | Comma-separated list of name patterns the reply body must not contain (typically: your own name, because the signature already supplies it). Default: empty. | |
| ZAMMAD_QUOTE_LOCALE | No | Default locale for the quote-block lead-in. Either 'en' (default) or 'de'. Per-call overridable via the 'quote_locale' tool parameter. | |
| ZAMMAD_REQUIRED_GREETING | No | If set, every reply body must contain this string (case-insensitive). Default: empty. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| zammad_create_shared_draftA | Create or overwrite the shared draft of a Zammad ticket as a Reply-All email. Auto-detects the most recent customer article and derives to/cc/subject/in_reply_to from it. Renders the agent's signature fresh from Zammad (with placeholder substitution and lazy loading of related objects) and appends the original article as a localised . PUT semantics: any existing draft on the ticket is overwritten. reply_html validation (always on for universal rules, conditional for configured ones): - universal: no top-level , no , no ASCII straight quotes ", no ASCII apostrophe ' inside words - when ZAMMAD_BANNED_NAMES is set: body must not contain any banned name - when ZAMMAD_REQUIRED_GREETING is set: body must contain that greeting |
| zammad_get_ticket_threadA | Fetch a Zammad ticket together with all of its articles in a single call. Combines /tickets/?expand=true and /ticket_articles/by_ticket/ so the model gets ticket meta + full conversation in one round-trip. Use this instead of basher's get_ticket whenever you need the actual article bodies for context (e.g. to write a draft reply). |
| zammad_add_internal_noteA | Add an internal note to a Zammad ticket. Internal notes are visible to agents only and never delivered as email — this tool hard-codes type='note' and internal=true so you cannot accidentally send an email to the customer. If you need to send something to the customer, use zammad_create_shared_draft instead (and let a human send it manually from the Zammad UI). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/BM1-de/zammad-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server