helpdesk-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DB | No | Path to the SQLite database file (equivalent to the --db flag). The demo database is created at ~/.helpdesk-mcp/helpdesk.db on first run. | ~/.helpdesk-mcp/helpdesk.db |
| HTTP | No | Serve over Streamable HTTP instead of stdio (equivalent to the --http flag), exposing /mcp. | false |
| PORT | No | Port to listen on when running over HTTP (equivalent to the --port flag). | 8000 |
| READ_ONLY | No | Run the server in read-only mode (equivalent to the --read-only flag). The write tools are not registered at all, which is a good default for a first connection. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_ticketsB | Find tickets by text and filters. Results are sorted most urgent first, then oldest first. |
| get_ticketA | Get one ticket with its full text, the customer and all comments. |
| get_customerB | Get a customer's company and plan. The email address is masked. |
| search_kbB | Search knowledge base articles. Read the full article with the helpdesk://kb/{slug} resource. |
| ticket_statsB | Counts by status and priority, unassigned work, and the age of the oldest open ticket. |
| add_commentA | Add a comment. Internal notes (the default) are only visible to support staff. |
| update_ticketA | Change status, priority or assignee. Status changes follow the workflow: open <-> pending, open/pending -> resolved, resolved -> open or closed. Closed is final. |
| create_ticketC | Open a new ticket for a customer. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| triage_ticket | Classify a ticket, find the right article, and leave an internal note. |
| draft_reply | Draft a customer reply grounded in the knowledge base. The draft is not sent. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| kb_index | Index of knowledge base articles. |
| audit | The 50 most recent writes. |
TDQS
Scored across 8 tools
Each tool targets a distinct resource and action: search_tickets vs get_ticket (query vs single-fetch), ticket_stats (aggregates) vs search_tickets (filtered lists), get_customer vs get_ticket, and search_kb vs all ticket tools. add_comment and update_ticket also have clearly separate mutation scopes. No tool pair is likely to be confused.
Seven tools follow a clean verb_noun pattern (search_tickets, get_ticket, get_customer, search_kb, add_comment, update_ticket, create_ticket). The lone outlier is ticket_stats, which is a noun-only name, a minor deviation from an otherwise predictable convention.
Eight tools is well within the ideal range and each earns its place by covering a distinct capability (search, fetch, create, update, comment, stats, KB, customer). No redundant or filler tools are present.
Core helpdesk lifecycle is covered: create/read/search/update tickets, comment, stats, KB search, and customer lookup. Minor gaps exist (no customer listing/search, no comment editing or deletion), but the closed-is-final status workflow makes ticket deletion reasonably unnecessary.