usefulapi

Freshdesk MCP server. Read tickets, contacts, companies, agents and groups; create, update and reply to tickets.

Claude

  1. Open Settings → Connectors → Add custom connector
  2. Paste this URL:
    https://freshdesk.usefulapi.io/mcp
  3. Authenticate with Freshdesk when prompted

Cursor · VS Code · Windsurf · Cline

Add to your MCP config, then reload & authorize:

{
  "mcpServers": {
    "freshdesk": {
      "url": "https://freshdesk.usefulapi.io/mcp"
    }
  }
}
live21 toolsFree 100 tool calls / monthPro $9/mo · $90/yr

Tools 21

ToolTypeWhat it does
freshdesk_list_ticketsread
List tickets
List/filter tickets (max page 300). Freshdesk REST: GET /tickets.
freshdesk_get_ticketread
Get ticket
Get a single ticket by id. Freshdesk REST: GET /tickets/{id}.
freshdesk_search_ticketsread
Search tickets
Search tickets with the Freshdesk query DSL. The query VALUE is wrapped in double quotes automatically. Examples: `status:2 AND priority:3`, `created_at:>'2026-01-01'`, `agent_id:123`, `group_id:45`, `tag:'urgent'`. Freshdesk REST: GET /search/tickets.
freshdesk_list_ticket_conversationsread
List ticket conversations
List the conversations (replies and notes) on a ticket. Freshdesk REST: GET /tickets/{id}/conversations.
freshdesk_list_contactsread
List contacts
List/filter contacts. Freshdesk REST: GET /contacts.
freshdesk_get_contactread
Get contact
Get a single contact by id. Freshdesk REST: GET /contacts/{id}.
freshdesk_search_contactsread
Search contacts
Search contacts with the Freshdesk query DSL. The query VALUE is wrapped in double quotes automatically. Examples: `name:'ada'`, `email:'[email protected]'`, `company_id:123`. Freshdesk REST: GET /search/contacts.
freshdesk_list_companiesread
List companies
List companies. Freshdesk REST: GET /companies.
freshdesk_get_companyread
Get company
Get a single company by id. Freshdesk REST: GET /companies/{id}.
freshdesk_list_agentsread
List agents
List/filter agents. Freshdesk REST: GET /agents.
freshdesk_get_agentread
Get agent
Get a single agent by id. Freshdesk REST: GET /agents/{id}.
freshdesk_list_groupsread
List groups
List groups (agent groups tickets are routed to). Freshdesk REST: GET /groups.
freshdesk_create_ticketwrite
Create ticket
Create a ticket. `subject` and `description` (HTML) are required, plus a requester — provide at least one of `email`, `requester_id`, or `phone`. status: 2=Open, 3=Pending, 4=Resolved, 5=Closed. priority: 1=Low, 2=Medium, 3=High, 4=Urgent. source: 1=Email, 2=Portal, 3=Phone, 7=Chat, 9=Feedbackwidget, 10=Outbound email. Freshdesk REST: POST /tickets.
freshdesk_update_ticketwrite
Update ticket
Update fields on an existing ticket. Only provided fields are changed. status: 2=Open, 3=Pending, 4=Resolved, 5=Closed. priority: 1=Low, 2=Medium, 3=High, 4=Urgent. Freshdesk REST: PUT /tickets/{id}.
freshdesk_reply_ticketwrite
Reply to ticket
Add a public reply to a ticket (sent to the requester). Freshdesk REST: POST /tickets/{id}/reply.
freshdesk_add_notewrite
Add note to ticket
Add a note to a ticket. Notes are internal (private) by default; set `private: false` for a public note. Freshdesk REST: POST /tickets/{id}/notes.
freshdesk_create_contactwrite
Create contact
Create a contact. `name` is required. Freshdesk REST: POST /contacts.
freshdesk_update_contactwrite
Update contact
Update fields on an existing contact. Only provided fields are changed. Freshdesk REST: PUT /contacts/{id}.
freshdesk_create_companywrite
Create company
Create a company. `name` is required. Freshdesk REST: POST /companies.
freshdesk_usage_statusmeta
Usage status (free-tier meter)
Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached.
freshdesk_upgrademeta
Upgrade to Pro (unlimited)
Subscribe to Pro for unlimited tool calls, monthly ($9) or yearly ($90). Returns a Stripe Checkout link.

Pricing

PlanPriceLimit
Free$0100 tool calls / month
Pro$9/mo · $90/yrUnlimited

This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.