Freshdesk MCP

Community Search and web

Self-hosted Freshdesk server: ticket search, conversations, attachment text extraction, image OCR and status, group and company enrichment.

Install

The installation steps are in the documentation below. Documentation

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. freshdesk-mcp
  2. What it does
  3. Available Tools
  4. Prerequisites
  5. Configuration
  6. Deployment
  7. Connecting your MCP client
  8. Secret rotation
  9. Local development
  10. License

freshdesk-mcp

A self-hosted Model Context Protocol (MCP) server that exposes Freshdesk support data to MCP-compatible AI clients (Claude, Cursor, VS Code Copilot, etc.).

What it does

Connects your AI assistant directly to Freshdesk — search tickets, read conversations, extract text from attachments (including OCR for screenshots), and enrich results with status names, group names, and company IDs.

AI client → HTTPS POST /mcp → freshdesk-mcp → Freshdesk API
                                             → GCP Vision OCR (image attachments)

Available Tools

ToolDescription
get_ticketFetch a single ticket by ID. Returns status name, group name, company ID.
get_ticket_summaryTicket + all conversations + attachments in one call.
batch_get_ticket_summariesMultiple ticket summaries in parallel.
search_ticketsFilter by query, status, priority, type, overdue, escalated, dates, company, requester, agent, group. Full ticket history.
list_ticketsAll tickets with optional filters.
get_conversationsAll replies and notes for a ticket (fully paginated).
list_attachmentsAll attachments across ticket and conversations. Filters scanning placeholders.
get_attachment_textExtract text from docx, xlsx, json, txt, csv, png, jpg (Vision OCR).
query_attachmentSearch within a JSON attachment.
find_image_attachmentsScan multiple tickets for image attachments.
get_description_imagesOCR inline images in ticket description HTML and conversation replies.
find_requesterSearch contacts by name/email → requester_id.
find_companySearch companies by name → company_id.
find_agentSearch agents by name/email → agent_id. ⚠️ Requires admin API key.
list_groupsList all agent groups → group_id. ⚠️ Requires admin API key.

Note: find_agent and list_groups use Freshdesk admin-only endpoints (/api/v2/agents, /api/v2/groups). They work if your API key belongs to an admin account. Regular agent API keys will receive a 403.

Prerequisites

  • A Freshdesk account with API access
  • Docker
  • A GCP project with the Vision API enabled (optional — needed for image OCR only)
  • A container runtime — Cloud Run, AWS App Runner, Azure Container Apps, or plain Docker

Configuration

VariableRequiredDescription
FRESHDESK_DOMAINyesFreshdesk subdomain only — e.g. mycompany (not mycompany.freshdesk.com)
FRESHDESK_API_KEYyesFreshdesk API key. Find it at Profile → Profile Settings → API Key.
MCP_TOKENyes (HTTP mode)Bearer token your MCP client sends in Authorization: Bearer <token>. Generate any random secret.
GCP_VISION_PROJECTnoGCP project ID for Vision OCR. If unset, image OCR tools return an error.
MCP_TRANSPORTnoSet to http for HTTP transport (default in the Docker image).
PORTnoHTTP port (default 8080). Set automatically by Cloud Run.

Deployment

Docker (any platform)
# Pull pre-built image
docker pull ghcr.io/omnom62/freshdesk-mcp:latest

# Or build from source
docker build -t freshdesk-mcp .

docker run -p 8080:8080 \
  -e MCP_TRANSPORT=http \
  -e FRESHDESK_DOMAIN=mycompany \
  -e FRESHDESK_API_KEY=your-api-key \
  -e MCP_TOKEN=your-random-secret \
  -e GCP_VISION_PROJECT=my-gcp-project \
  freshdesk-mcp
GCP Cloud Run

Build and push to Artifact Registry, then deploy:

IMAGE="<region>-docker.pkg.dev/<project>/freshdesk-mcp/freshdesk-mcp"

docker build -t ${IMAGE}:latest .
DIGEST=$(docker push ${IMAGE}:latest | grep "digest:" | awk '{print $3}')

gcloud run deploy freshdesk-mcp \
  --image ${IMAGE}@${DIGEST} \
  --region <region> \
  --platform managed \
  --allow-unauthenticated \
  --set-secrets FRESHDESK_DOMAIN=FRESHDESK_DOMAIN:latest,FRESHDESK_API_KEY=FRESHDESK_API_KEY:latest,MCP_TOKEN=MCP_TOKEN:latest \
  --set-env-vars GCP_VISION_PROJECT=<project> \
  --project <project>

Store secrets in GCP Secret Manager and grant the Cloud Run runtime service account roles/secretmanager.secretAccessor on each secret.

AWS App Runner / Azure Container Apps

Deploy the Docker image to your preferred platform. Pass the configuration variables as environment variables or secrets via your platform's secret store.

Connecting your MCP client

Once deployed, add to your MCP client config:

{
  "mcpServers": {
    "freshdesk": {
      "type": "http",
      "url": "https://your-deployment-url/mcp",
      "headers": {
        "Authorization": "Bearer your-mcp-token"
      }
    }
  }
}

Secret rotation

When rotating the Freshdesk API key:

  1. Get the new key from Freshdesk → Profile → Profile Settings → API Key
  2. Verify it works: curl -s -u "<new-key>:X" "https://<domain>.freshdesk.com/api/v2/tickets?per_page=1"
  3. Update your secret store (e.g. GCP Secret Manager: echo -n "<new-key>" | gcloud secrets versions add FRESHDESK_API_KEY --data-file=- --project <project>)
  4. Redeploy to pick up the new version

Tip: Never include :X in the stored secret value — that suffix is only used in curl Basic auth syntax.

Local development

export FRESHDESK_DOMAIN=mycompany
export FRESHDESK_API_KEY=your-api-key
export MCP_TOKEN=dev-token
export GCP_VISION_PROJECT=my-gcp-project  # optional

go run .

Server starts on port 8080. MCP endpoint: POST /mcp.

License

MIT

Frequently asked questions

What is Freshdesk MCP?

Self-hosted Freshdesk server: ticket search, conversations, attachment text extraction, image OCR and status, group and company enrichment.

How do I install Freshdesk MCP?

Follow the installation steps in its documentation, shown on this page and in its repository.

Is Freshdesk MCP open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains Freshdesk MCP?

It is published by omnom62. AI.tn lists it but does not maintain or endorse it.

From the community awesome-mcp-servers lists and the project's GitHub repository. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.