Skip to main content
Glama
Freshdesk MCP Server

Freshdesk MCP Server

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 tickets

    • Inputs:

      • subject (string, required): Ticket subject

      • description (string, required): Ticket description

      • source (number, required): Ticket source code

      • priority (number, required): Ticket priority level

      • status (number, required): Ticket status code

      • email (string, optional): Email of the requester

      • requester_id (number, optional): ID of the requester

      • custom_fields (object, optional): Custom fields to set on the ticket

      • additional_fields (object, optional): Additional top-level fields

  • update_ticket: Update existing tickets

    • Inputs:

      • ticket_id (number, required): ID of the ticket to update

      • ticket_fields (object, required): Fields to update

  • delete_ticket: Delete a ticket

    • Inputs:

      • ticket_id (number, required): ID of the ticket to delete

  • search_tickets: Search for tickets based on criteria

    • Inputs:

      • query (string, required): Search query string

  • get_ticket_fields: Get all ticket fields

    • Inputs:

      • None

  • get_tickets: Get all tickets

    • Inputs:

      • page (number, optional): Page number to fetch

      • per_page (number, optional): Number of tickets per page

  • get_ticket: Get a single ticket

    • Inputs:

      • ticket_id (number, required): ID of the ticket to get

  • get_ticket_conversation: Get conversation for a ticket

    • Inputs:

      • ticket_id (number, required): ID of the ticket

  • create_ticket_reply: Reply to a ticket

    • Inputs:

      • ticket_id (number, required): ID of the ticket

      • body (string, required): Content of the reply

  • create_ticket_note: Add a note to a ticket

    • Inputs:

      • ticket_id (number, required): ID of the ticket

      • body (string, required): Content of the note

  • update_ticket_conversation: Update a conversation

    • Inputs:

      • conversation_id (number, required): ID of the conversation

      • body (string, required): Updated content

  • view_ticket_summary: Get the summary of a ticket

    • Inputs:

      • ticket_id (number, required): ID of the ticket

  • update_ticket_summary: Update the summary of a ticket

    • Inputs:

      • ticket_id (number, required): ID of the ticket

      • body (string, required): New summary content

  • delete_ticket_summary: Delete the summary of a ticket

    • Inputs:

      • ticket_id (number, required): ID of the ticket

  • get_agents: Get all agents

    • Inputs:

      • page (number, optional): Page number

      • per_page (number, optional): Number of agents per page

  • view_agent: Get a single agent

    • Inputs:

      • agent_id (number, required): ID of the agent

  • create_agent: Create a new agent

    • Inputs:

      • agent_fields (object, required): Agent details

  • update_agent: Update an agent

    • Inputs:

      • agent_id (number, required): ID of the agent

      • agent_fields (object, required): Fields to update

  • search_agents: Search for agents

    • Inputs:

      • query (string, required): Search query

  • list_contacts: Get all contacts

    • Inputs:

      • page (number, optional): Page number

      • per_page (number, optional): Contacts per page

  • get_contact: Get a single contact

    • Inputs:

      • contact_id (number, required): ID of the contact

  • search_contacts: Search for contacts

    • Inputs:

      • query (string, required): Search query

  • update_contact: Update a contact

    • Inputs:

      • contact_id (number, required): ID of the contact

      • contact_fields (object, required): Fields to update

  • list_companies: Get all companies

    • Inputs:

      • page (number, optional): Page number

      • per_page (number, optional): Companies per page

  • view_company: Get a single company

    • Inputs:

      • company_id (number, required): ID of the company

  • search_companies: Search for companies

    • Inputs:

      • query (string, required): Search query

  • find_company_by_name: Find a company by name

    • Inputs:

      • name (string, required): Company name

  • list_company_fields: Get all company fields

    • Inputs:

      • 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 claude

Prerequisites

  • A Freshdesk account (sign up at freshdesk.com)

  • Freshdesk API key

  • uvx installed (pip install uv or brew install uv)

Configuration

  1. Generate your Freshdesk API key from the Freshdesk admin panel

  2. Set up your domain and authentication details

Usage with Claude Desktop

  1. Install Claude Desktop if you haven't already

  2. 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_KEY with your actual Freshdesk API key

  • Replace YOUR_FRESHDESK_DOMAIN with 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 uvx command 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 tools
create_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

    C2.2/5.0

    Scored across 59 tools

    Disambiguation3/5

    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.

    Naming Consistency3/5

    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.

    Tool Count2/5

    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.

    Completeness2/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      A read-only MCP server that connects AI assistants to Freshservice Service Desk for ticket triage, asset analysis, and support history summarization.
      23
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      An 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
    • A
      license
      Not graded
      quality
      D
      maintenance
      Model 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