The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Freshdesk listing page.
A Model Context Protocol (MCP) server that provides AI assistants with structured access to the Freshdesk customer support platform — tickets, contacts, companies, agents, groups, the knowledge base, and SLA/business-hours configuration.
Note: This project is maintained by Wyre Technology. It wraps the published
@wyre-technology/node-freshdeskSDK.
The primary deployment is through the WYRE MCP Gateway, which hosts the containerized server and injects per-request credentials. To run it yourself:
Claude Code (CLI):
FRESHDESK_DOMAIN is the part before .freshdesk.com (for https://acme.freshdesk.com it is acme). Find your FRESHDESK_API_KEY in the Freshdesk portal under Profile Settings.
freshdesk_navigate, enter a domain to reveal its tools, and freshdesk_back to return — keeping the tool list small and focusedWhen AUTH_MODE=gateway, the server reads credentials from request headers injected by the WYRE MCP Gateway:
| Header | Maps to | Description |
|---|---|---|
x-freshdesk-domain | FRESHDESK_DOMAIN | Freshdesk account subdomain |
x-freshdesk-api-key | FRESHDESK_API_KEY | Freshdesk API key |
Each request is stateless: the gateway provides the credentials, the server rebuilds its Freshdesk client, and tool discovery (tools/list) works even before credentials are present.
| Variable | Description | Default |
|---|---|---|
FRESHDESK_DOMAIN | Account subdomain (before .freshdesk.com) | — |
FRESHDESK_API_KEY | Freshdesk API key | — |
MCP_TRANSPORT | Transport mode (stdio or http) | stdio |
MCP_HTTP_PORT | HTTP server port | 8080 |
AUTH_MODE | Auth mode (env or gateway) | env |
LOG_LEVEL | Log level (debug, info, warn, error) | info |
The server uses decision-tree navigation. At the top level you see only freshdesk_navigate, freshdesk_back, and freshdesk_status. Call freshdesk_navigate with a domain to reveal that domain's tools; call freshdesk_back to return to the top.
| Domain | Tools |
|---|---|
| tickets | search, list, get, create, update, reply, add_note, list_conversations, update_conversation, delete*, delete_conversation* |
| contacts | search, list, get, create, update, autocomplete, make_agent†, restore, send_invite, merge†, soft_delete†, hard_delete* |
| companies | search, list, get, create, update, autocomplete, delete* |
| agents | list, get, me, create, update, delete* |
| groups | list, get, create, update, delete* |
| solutions | categories / folders / articles: list, get, create, update, delete* |
| sla-business | SLA policies (list, create, update), business hours (list, get), canned responses (list_folders, get_folder, list_responses) |
* = Tier A (irreversible delete) — flagged ⚠ DESTRUCTIVE — IRREVERSIBLE, requires confirmation.
† = Tier B (high-impact reversible) — flagged ⚠ HIGH-IMPACT, requires confirmation.
Read tools (search/list/get/autocomplete/status) carry no warning and are marked read-only.
freshdesk_status performs a live connectivity check by calling agents/me.
See docker-compose.yml. Copy .env.example to .env and fill in your credentials:
The build installs @wyre-technology/node-freshdesk from GitHub Packages via a
BuildKit npmrc secret (never baked into a layer):
See CONTRIBUTING.md for guidelines.
Apache 2.0 — Copyright WYRE Technology