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 create a ticket about login issue priority high"
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
An MCP server implementation that integrates with Freshdesk, enabling AI models to interact with Freshdesk modules and perform various support operations.
Features
Freshdesk Integration: Seamless interaction with Freshdesk API endpoints
AI Model Support: Enables AI models to perform support operations through Freshdesk
Automated Ticket Management: Handle ticket creation, updates, and responses
Related MCP server: FS_MCP_thin
Components
Tools
The server offers several tools for Freshdesk operations:
create_ticket: Create new support ticketsInputs:
subject(string, required): Ticket subjectdescription(string, required): Ticket descriptionsource(number, required): Ticket source codepriority(number, required): Ticket priority levelstatus(number, required): Ticket status codeemail(string, optional): Email of the requesterrequester_id(number, optional): ID of the requestercustom_fields(object, optional): Custom fields to set on the ticketadditional_fields(object, optional): Additional top-level fields
update_ticket: Update existing ticketsInputs:
ticket_id(number, required): ID of the ticket to updateticket_fields(object, required): Fields to update
delete_ticket: Delete a ticketInputs:
ticket_id(number, required): ID of the ticket to delete
search_tickets: Search for tickets based on criteriaInputs:
query(string, required): Search query string
get_ticket_fields: Get all ticket fieldsInputs:
None
get_tickets: Get all ticketsInputs:
page(number, optional): Page number to fetchper_page(number, optional): Number of tickets per page
get_ticket: Get a single ticketInputs:
ticket_id(number, required): ID of the ticket to get
get_ticket_conversation: Get conversation for a ticketInputs:
ticket_id(number, required): ID of the ticket
create_ticket_reply: Reply to a ticketInputs:
ticket_id(number, required): ID of the ticketbody(string, required): Content of the reply
create_ticket_note: Add a note to a ticketInputs:
ticket_id(number, required): ID of the ticketbody(string, required): Content of the note
update_ticket_conversation: Update a conversationInputs:
conversation_id(number, required): ID of the conversationbody(string, required): Updated content
view_ticket_summary: Get the summary of a ticketInputs:
ticket_id(number, required): ID of the ticket
update_ticket_summary: Update the summary of a ticketInputs:
ticket_id(number, required): ID of the ticketbody(string, required): New summary content
delete_ticket_summary: Delete the summary of a ticketInputs:
ticket_id(number, required): ID of the ticket
get_agents: Get all agentsInputs:
page(number, optional): Page numberper_page(number, optional): Number of agents per page
view_agent: Get a single agentInputs:
agent_id(number, required): ID of the agent
create_agent: Create a new agentInputs:
agent_fields(object, required): Agent details
update_agent: Update an agentInputs:
agent_id(number, required): ID of the agentagent_fields(object, required): Fields to update
search_agents: Search for agentsInputs:
query(string, required): Search query
list_contacts: Get all contactsInputs:
page(number, optional): Page numberper_page(number, optional): Contacts per page
get_contact: Get a single contactInputs:
contact_id(number, required): ID of the contact
search_contacts: Search for contactsInputs:
query(string, required): Search query
update_contact: Update a contactInputs:
contact_id(number, required): ID of the contactcontact_fields(object, required): Fields to update
list_companies: Get all companiesInputs:
page(number, optional): Page numberper_page(number, optional): Companies per page
view_company: Get a single companyInputs:
company_id(number, required): ID of the company
search_companies: Search for companiesInputs:
query(string, required): Search query
find_company_by_name: Find a company by nameInputs:
name(string, required): Company name
list_company_fields: Get all company fieldsInputs:
None
Getting Started
Installing via Smithery
To install freshdesk_mcp for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @effytech/freshdesk_mcp --client claudePrerequisites
A Freshdesk account (sign up at freshdesk.com)
Freshdesk API key
uvxinstalled (pip install uvorbrew install uv)
Configuration
Generate your Freshdesk API key from the Freshdesk admin panel
Set up your domain and authentication details
Usage with Claude Desktop
Install Claude Desktop if you haven't already
Add the following configuration to your
claude_desktop_config.json:
"mcpServers": {
"freshdesk-mcp": {
"command": "uvx",
"args": [
"freshdesk-mcp"
],
"env": {
"FRESHDESK_API_KEY": "<YOUR_FRESHDESK_API_KEY>",
"FRESHDESK_DOMAIN": "<YOUR_FRESHDESK_DOMAIN>"
}
}
}Important Notes:
Replace
YOUR_FRESHDESK_API_KEYwith your actual Freshdesk API keyReplace
YOUR_FRESHDESK_DOMAINwith your Freshdesk domain (e.g.,yourcompany.freshdesk.com)
Example Operations
Once configured, you can ask Claude to perform operations like:
"Create a new ticket with subject 'Payment Issue for customer A101' and description as 'Reaching out for a payment issue in the last month for customer A101', where customer email is a101@acme.com and set priority to high"
"Update the status of ticket #12345 to 'Resolved'"
"List all high-priority tickets assigned to the agent John Doe"
"List previous tickets of customer A101 in last 30 days"
Testing
For testing purposes, you can start the server manually:
uvx freshdesk-mcp --env FRESHDESK_API_KEY=<your_api_key> --env FRESHDESK_DOMAIN=<your_domain>Troubleshooting
Verify your Freshdesk API key and domain are correct
Ensure proper network connectivity to Freshdesk servers
Check API rate limits and quotas
Verify the
uvxcommand is available in your PATH
License
This MCP server is licensed under the MIT License. See the LICENSE file in the project repository for full details.
Available Tools
59 toolscreate_agentC
Create an agent in Freshdesk.
Inputs: agent_fields (required).
create_canned_responseC
Create a canned response in Freshdesk.
Inputs: canned_response_fields (required).
create_canned_response_folderB
Create a canned response folder in Freshdesk.
Inputs: name (required).
create_contact_fieldC
Create a contact field in Freshdesk.
Inputs: contact_field_fields (required).
create_groupC
Create a group in Freshdesk.
Inputs: group_fields (required).
create_solution_articleC
Create a solution article in Freshdesk.
Inputs: folder_id (required), article_fields (required).
create_solution_categoryC
Create a solution category in Freshdesk.
Inputs: category_fields (required).
create_solution_category_folderC
Create a solution category folder in Freshdesk.
Inputs: category_id (required), folder_fields (required).
create_ticketD
Create a ticket in Freshdesk
Inputs: source (required), status (required), subject (required), priority (required), +5 more.
create_ticket_fieldC
Create a ticket field in Freshdesk.
Inputs: ticket_field_fields (required).
create_ticket_noteC
Create a note for a ticket in Freshdesk.
Inputs: body (required), ticket_id (required).
create_ticket_replyB
Create a reply to a ticket in Freshdesk.
Inputs: body (required), ticket_id (required).
delete_ticketB
Delete a ticket in Freshdesk.
Inputs: ticket_id (required).
delete_ticket_summaryB
Delete the summary of a ticket in Freshdesk.
Inputs: ticket_id (required).
find_company_by_nameA
Find a company by name in Freshdesk.
Inputs: name (required).
get_agentsC
Get all agents in Freshdesk with pagination support.
Inputs: page, per_page.
get_contactC
Get a contact in Freshdesk.
Inputs: contact_id (required).
get_field_propertiesC
Get properties of a specific field by name.
Inputs: field_name (required).
get_ticketC
Get a ticket in Freshdesk.
Inputs: ticket_id (required).
get_ticket_conversationC
Get a ticket conversation in Freshdesk.
Inputs: ticket_id (required).
get_ticket_fieldsB
Get ticket fields from Freshdesk.
Inputs: no named parameters.
get_ticketsB
Get tickets from Freshdesk with pagination support.
Inputs: page, per_page.
list_canned_response_foldersA
List all canned response folders in Freshdesk.
Inputs: no named parameters.
list_canned_responsesC
List all canned responses in Freshdesk.
Inputs: folder_id (required).
list_companiesB
List all companies in Freshdesk with pagination support.
Inputs: page, per_page.
list_company_fieldsA
List all company fields in Freshdesk.
Inputs: no named parameters.
list_contact_fieldsA
List all contact fields in Freshdesk.
Inputs: no named parameters.
list_contactsA
List all contacts in Freshdesk with pagination support.
Inputs: page, per_page.
list_groupsC
List all groups in Freshdesk.
Inputs: page, per_page.
list_solution_articlesC
List all solution articles in Freshdesk.
Inputs: folder_id (required).
list_solution_categoriesA
List all solution categories in Freshdesk.
Inputs: no named parameters.
list_solution_foldersD
Inputs: category_id (required).
search_agentsC
Search for agents in Freshdesk.
Inputs: query (required).
search_companiesC
Search for companies in Freshdesk.
Inputs: query (required).
search_contactsC
Search for contacts in Freshdesk.
Inputs: query (required).
search_ticketsC
Search for tickets in Freshdesk.
Inputs: query (required).
update_agentC
Update an agent in Freshdesk.
Inputs: agent_id (required), agent_fields (required).
update_canned_responseC
Update a canned response in Freshdesk.
Inputs: canned_response_id (required), canned_response_fields (required).
update_canned_response_folderC
Update a canned response folder in Freshdesk.
Inputs: name (required), folder_id (required).
update_contactC
Update a contact in Freshdesk.
Inputs: contact_id (required), contact_fields (required).
update_contact_fieldC
Update a contact field in Freshdesk.
Inputs: contact_field_id (required), contact_field_fields (required).
update_groupC
Update a group in Freshdesk.
Inputs: group_id (required), group_fields (required).
update_solution_articleC
Update a solution article in Freshdesk.
Inputs: article_id (required), article_fields (required).
update_solution_categoryC
Update a solution category in Freshdesk.
Inputs: category_id (required), category_fields (required).
update_solution_category_folderC
Update a solution category folder in Freshdesk.
Inputs: folder_id (required), folder_fields (required).
update_ticketC
Update a ticket in Freshdesk.
Inputs: ticket_id (required), ticket_fields (required).
update_ticket_conversationB
Update a conversation for a ticket in Freshdesk.
Inputs: body (required), conversation_id (required).
update_ticket_fieldC
Update a ticket field in Freshdesk.
Inputs: ticket_field_id (required), ticket_field_fields (required).
update_ticket_summaryC
Update the summary of a ticket in Freshdesk.
Inputs: body (required), ticket_id (required).
view_agentC
View an agent in Freshdesk.
Inputs: agent_id (required).
view_canned_responseC
View a canned response in Freshdesk.
Inputs: canned_response_id (required).
view_companyC
Get a company in Freshdesk.
Inputs: company_id (required).
view_contact_fieldB
View a contact field in Freshdesk.
Inputs: contact_field_id (required).
view_groupC
View a group in Freshdesk.
Inputs: group_id (required).
view_solution_articleC
View a solution article in Freshdesk.
Inputs: article_id (required).
view_solution_categoryC
View a solution category in Freshdesk.
Inputs: category_id (required).
view_solution_category_folderC
View a solution category folder in Freshdesk.
Inputs: folder_id (required).
view_ticket_fieldC
View a ticket field in Freshdesk.
Inputs: ticket_field_id (required).
view_ticket_summaryC
Get the summary of a ticket in Freshdesk.
Inputs: ticket_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 59 tools
Most tools target distinct entities, but there is ambiguity between 'list_solution_folders' (which has an empty description) and the various 'solution_category_folder' tools, and between generic 'get_field_properties' and type-specific field views. The mix of get/view/list/search is mostly clear but occasionally overlapping.
Tools follow a verb_noun pattern, but retrieval verbs are inconsistent: get, view, list, search, and find are used interchangeably (e.g., view_agent vs get_agents, search_companies vs find_company_by_name). This reduces predictability.
With 59 tools, this is a very large surface. While the broad Freshdesk domain explains some of the count, it exceeds the 'too many' threshold and could overwhelm an agent with unnecessary choices.
Several entities have incomplete lifecycle coverage: no create_contact, create_company, or delete operations for agents, groups, canned responses, solution articles, and other objects. This forces agents into dead ends when attempting standard CRUD workflows.
Maintenance
Related MCP Connectors
MCP server enabling AI agents to manage Bitrix24 features via standardized protocol
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
One MCP server for the services your AI needs: memory, files, Microsoft 365, kanban and more.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server created for Freshservice, allowing AI models to interact with Freshservice modules5939MIT
- AlicenseBqualityDmaintenanceA read-only MCP server that connects AI assistants to Freshservice Service Desk for ticket triage, asset analysis, and support history summarization.23ISC
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to interact with Freshservice service desk, supporting ticket search, retrieval, and creation via a configurable, Docker-first deployment.MIT
- AlicenseNot gradedqualityDmaintenanceModel Context Protocol (MCP) server for Zendesk Support that connects AI agents to 14 ticket tools including create, search, assign, close, comments, and metrics.Apache 2.0