The Freshdesk MCP server enables AI models to integrate with Freshdesk to perform various support operations:
Ticket Management: Create, update, delete, search, and retrieve tickets with pagination, as well as manage ticket fields and conversations (replies and notes)
Contact Management: List, get, update, and search contacts
Agent Management: View, create, update, and search agents
Knowledge Base Access: Browse categories, folders, and solution articles
Canned Response Management: Access response folders and their contents
This server essentially provides a seamless interface between AI models and Freshdesk API endpoints to automate and enhance support operations.
Integrates with Freshdesk's API, enabling ticket management operations including creating, updating, deleting, and searching tickets, as well as retrieving ticket fields and information.
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: mcp-jira-server
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:
Prerequisites
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:
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:
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.