Freshdesk MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Freshdesk MCP Server show me all open high priority tickets"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Freshdesk MCP Server
Hey! This is a custom Model Context Protocol (MCP) server for Freshdesk. It's built on top of FastMCP to let your AI agents (like Claude Desktop or custom LangChain setups) read and write directly to your Freshdesk account.
What can it do?
I've packed in a bunch of tools so the AI can handle almost any helpdesk task:
Tickets & Responses
get_tickets: Search and filter incoming tickets.get_ticket: Pull all details for a specific ticket.create_ticket: Open a new support ticket.update_ticket: Change status or priority.delete_ticket: Trash a ticket (be careful with this one).reply_ticket: Send a reply to the customer.add_note: Drop an internal or public note on a thread.list_conversations: Grab the entire back-and-forth history of a ticket.create_outbound_email: Send proactive emails (fully supports CC, BCC, tags, and custom fields).
Customers & Companies
search_contacts: Look up customers by email or phone.get_contact/create_contact/update_contact: Manage your user base.get_company/create_company: Manage companies.
Agents & Knowledge Base
list_agents/get_agent: See who is working on what.search_solution_articles/get_solution_article: Let the AI search your help docs so it can answer questions better.
Related MCP server: Freshservice MCP Server
How to run it locally
If you just want to run this locally on your own machine (like inside Claude Desktop), it's super simple:
Clone this repo and set up your environment:
python -m venv venv source venv/bin/activate pip install -e .Copy the
.env.examplefile to.envand drop in your Freshdesk domain and API key.Start it up:
mcp dev src/freshdesk_mcp/server.py
Running it on a Network (Secure JWT Auth)
If you're hosting this on a cloud server so multiple remote agents can talk to it, you don't want just anyone hitting your API. I built a lightweight, database-free JWT authentication layer over the SSE connection to keep it safe.
Here's how to use it:
In your
.env, set up yourJWT_SECRET_KEYand define who is allowed to connect usingALLOWED_CLIENTS=agent1:pass123,agent2:secure456.Run the secure server wrapper:
python -m freshdesk_mcp.serveYour clients will first need to send a
POSTrequest to/token(using Basic Auth with their agent credentials) to get a 1-hour JWT.They can then connect to the main MCP stream by passing
Authorization: Bearer <their_token>in the headers.
(Pro-tip: If you want to make sure an AI agent can only read data and doesn't accidentally delete anything, just set STRICT_MODE=True in your .env and it will lock down all destructive tools).
License
MIT License - feel free to use and modify it however you need!
Available Tools
19 toolsadd_noteC
Add a note to a ticket. private=True means it is an internal note.
Inputs: body (required), ticket_id (required), private. Returns: result
create_companyC
Create a new company.
Inputs: name (required), description. Returns: result
create_contactC
Create a new customer contact.
Inputs: name (required), email (required), phone. Returns: result
create_outbound_emailC
Create and send an outbound email from Freshdesk. Supports cc, bcc, tags, and custom fields.
Inputs: email (required), subject (required), description (required), email_config_id (required), +7 more. Returns: result
create_ticketB
Create a new Freshdesk ticket. Priority: 1=Low, 2=Medium, 3=High, 4=Urgent. Status: 2=Open, 3=Pending, 4=Resolved, 5=Closed.
Inputs: email (required), subject (required), description (required), status, +1 more. Returns: result
delete_ticketC
Delete a specific ticket.
Inputs: ticket_id (required). Returns: result
get_agentC
Get specific agent details by ID.
Inputs: agent_id (required). Returns: result
get_companyC
Retrieve company details by ID.
Inputs: company_id (required). Returns: result
get_contactB
Retrieve contact details by ID.
Inputs: contact_id (required). Returns: result
get_solution_articleC
Retrieve the content of a specific knowledge base article.
Inputs: article_id (required). Returns: result
get_ticketB
Get detailed information about a specific ticket by ID.
Inputs: ticket_id (required). Returns: result
get_ticketsC
List tickets in Freshdesk. Optionally filter by requester email.
Inputs: page, email. Returns: result
list_agentsB
List support agents. Optionally filter by email.
Inputs: email. Returns: result
list_conversationsB
Fetch all replies and notes associated with a ticket.
Inputs: ticket_id (required). Returns: result
reply_ticketC
Reply to an existing ticket.
Inputs: body (required), ticket_id (required). Returns: result
search_contactsB
Find a contact by email, phone, or mobile.
Inputs: email, phone, mobile. Returns: result
search_solution_articlesC
Search for knowledge base articles by keyword.
Inputs: keyword (required). Returns: result
update_contactC
Update an existing contact's details.
Inputs: contact_id (required), name, email, phone. Returns: result
update_ticketC
Update a ticket's status or priority.
Inputs: ticket_id (required), status, priority. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 19 tools
Each tool targets a distinct resource and action. While add_note, reply_ticket, and create_outbound_email all relate to ticket communication, their purposes are clearly separated: notes, replies, and outbound emails respectively. No two tools could be easily confused.
All tool names follow a consistent verb_noun pattern in snake_case, such as create_ticket, get_contact, list_agents. The verbs are consistently chosen (create, get, list, update, delete, search, reply, add) and the nouns are singular or plural as appropriate.
With 19 tools, the server is slightly above the ideal range of 3-15, but each tool serves a distinct and necessary function within the Freshdesk domain. The count is justifiable given the variety of entities (tickets, contacts, companies, agents, knowledge base) and operations.
The tool set provides comprehensive coverage for tickets (CRUD, notes, replies, conversations, outbound emails). Contacts and companies have create, read, and update operations but lack delete and listing capabilities. Knowledge base supports search and retrieval but not curation. Overall, core workflows are well-supported with minor gaps.
Related MCP Connectors
Search, reply, tag, assign and report on ThriveDesk help desk conversations from your AI assistant.
1Work your HelpRabbit help desk: tickets, replies, customers, the AI agent and its knowledge.
Manage tickets, run agents and workflows, query tables, and search workspace knowledge.
Work your miniDesk support inbox from AI apps: read conversations, search docs, draft replies.
Related MCP Servers
- AlicenseCqualityCmaintenanceIntegrate AI models with Freshdesk to automate support operations. Create, update, and manage support tickets seamlessly through the Freshdesk API. Enhance your customer support experience with automated ticket management and AI-driven interactions.5971MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI models to interact with Freshservice IT service management platform, allowing automated ticket management, change requests, asset tracking, and solution article operations through natural language commands.MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to connect with Freshservice ITSM for managing tickets, assets, agents, and organizational data through natural language. It provides a comprehensive set of tools for performing CRUD operations on service desk records and searching across the Freshservice platform.53293 npm1MIT
- AlicenseNot gradedqualityBmaintenanceProvides AI assistants with structured access to the Freshdesk customer support platform, including tickets, contacts, companies, agents, groups, knowledge base, and SLA configuration. Features decision-tree navigation and destructive-action guardrails.256 npmMIT