Zammad MCP Server — Agent-Workflows

Praktische MCP-Workflows für Zammad 0.2.0 — Tickets zusammenfassen, Tags, Anhänge, Verknüpfungen und Remote-HTTP.

Agent-Workflows

Version 0.2.0 bringt Composite-Tools und Helpdesk-Workflows, die Tool-Ketten in Claude Desktop und Cursor reduzieren. Diese Seite zeigt Copy-Paste-Prompts und die dahinterliegenden MCP-Tools.

Ticket-Zusammenfassung in einem Aufruf

Statt get_ticket, get_ticket_articles und Tag-Tools einzeln aufzurufen, nutzen Sie summarize_ticket:

Fasse Zammad-Ticket 12345 mit summarize_ticket zusammen. Zeige den Plaintext-Verlauf, Tags und die letzte Kundennachricht.

Die Antwort enthält:

FeldNutzen für Agenten
thread_plainChronologischer Verlauf ohne HTML
tagsAktuelle Ticket-Tags
last_customer_messageSchneller Kontext für Antwortentwürfe
last_agent_messageWas das Team bereits geschrieben hat
article_countThread-Länge / Eskalationssignal

Artikel liefern zusätzlich body_plain, wenn MCP_STRIP_HTML=1 (Standard) bei get_ticket und get_ticket_articles gesetzt ist.

Suchen → Tag setzen → Antworten (≤3 Tool-Aufrufe)

Typische Support-Triage in drei MCP-Schritten:

  1. Suchen — search_tickets mit Zammad-Syntax:

    state.name:open AND group.name:Support AND customer.email:jane@example.com
  2. Taggen — add_ticket_tag auf der gewählten Ticket-ID (z. B. urgent-review).

  3. Antworten — create_article mit optionalem Anhang (siehe unten).

Beispiel-Prompt für Cursor oder Claude:

Suche offene Support-Tickets für customer.email:jane@example.com. Am neuesten Ticket Tag needs-callback setzen und interne Notiz, dass wir heute zurückrufen.

Empfohlene Env für diesen Workflow (Schreiben erlaubt, Löschen gesperrt):

MCP_ALLOWED_CATEGORIES=tickets,system
MCP_DENIED_TOOLS=delete_ticket,delete_user,delete_organization,merge_tickets
MCP_ALLOWED_GROUPS=Support

MCP_ALLOWED_GROUPS blockiert Schreibvorgänge an Tickets außerhalb der gelisteten Gruppen.

Anhänge

Anhang lesen

  1. get_ticket_articles (oder summarize_ticket) aufrufen und attachments pro Artikel lesen (id, filename, size).
  2. get_article_attachment(ticket_id, article_id, attachment_id, as_text=True) für Textdateien.

Bei Binärdateien liefert das Tool Base64 in data.

Anhang mit Antwort senden

attachments bei create_article oder create_ticket übergeben:

{
  "filename": "screenshot.png",
  "data": "<base64>",
  "mime_type": "image/png"
}

Der Server mappt mime_type automatisch auf Zammads JSON-Feld mime-type.

Beispiel-Prompt:

Auf Ticket 12345 öffentlich antworten: „Bitte Log im Anhang.“ Datei error.log als text/plain anhängen.

Tickets verknüpfen und mergen

ToolBerechtigungEinsatz
link_ticketsWRITEDuplikate verknüpfen (normal, parent, child)
merge_ticketsADMINZwei Tickets zu einer sichtbaren ID zusammenführen

Beispiel:

Ticket 100 als child von Ticket 99 verknüpfen, dann Ticket 99 zusammenfassen.

Merge in Agent-Configs sperren, solange kein Mensch explizit freigibt:

MCP_DENIED_TOOLS=delete_ticket,delete_user,delete_organization,merge_tickets

Eingebaute MCP-Prompts (0.2.0)

Clients mit MCP-Prompt-Unterstützung:

PromptParameter (Beispiele)Zweck
analyze_ticketticket_id, localeStrukturierte Historie + SLA-Hinweise
draft_responseticket_id, localeKunden- oder interne Antwort
triage_queuegroupOffene Tickets priorisieren
escalation_summarygroupÜberfällige / pending-close Tickets

Legacy-Prompts aus 0.1.x bleiben: ticket_summary_prompt, customer_communication_prompt, escalation_analysis_prompt.

Remote HTTP MCP (Docker-Standard)

Für LibreChat, Remote-Cursor oder Zammad Commander Streamable HTTP starten:

zammad-mcp-server --transport http --host 0.0.0.0 --port 8000
EinstellungWert
Pfad/mcp/ (Override mit --path)
Env-AlternativeMCP_TRANSPORT=http, MCP_SERVER_PORT=8000
Docker-ImageGleicher Befehl ist Container-Default
HealthTCP auf Port 8000 — keine /health-Route

Legacy SSE:

zammad-mcp-server --transport sse --host 0.0.0.0 --port 8000

Pfad-Default: /sse/. Nur in vertrauenswürdigen Netzen oder hinter TLS.

Read-only Demo-Preset

Sichere Konfiguration für erste Demos:

MCP_DEFAULT_PERMISSION=read_only
MCP_ALLOWED_CATEGORIES=tickets,groups,system
MCP_DENIED_TOOLS=create_ticket,update_ticket,delete_ticket,create_article,merge_tickets
MCP_RATE_LIMIT_PER_MINUTE=60

Prüfen mit: „Rufe get_allowed_tools auf und liste, was ich darf.“

Weiter