An MCP server for interacting with the Freshdesk API v2, enabling management of customer support tickets and contacts.
A Model Context Protocol (MCP) server implementation for Freshdesk API v2 integration. This server provides tools for managing tickets, contacts, agents, companies, and conversations through the MCP interface.
npm install
npm run build
Create a .env
file in the project root with the following variables:
# Required
FRESHDESK_DOMAIN=yourcompany.freshdesk.com # or just "yourcompany"
FRESHDESK_API_KEY=your_api_key_here
# Optional
FRESHDESK_MAX_RETRIES=3 # Maximum retry attempts (default: 3)
FRESHDESK_TIMEOUT=30000 # Request timeout in ms (default: 30000)
FRESHDESK_RATE_LIMIT=50 # Rate limit per minute (default: 50)
LOG_LEVEL=info # Log level: debug, info, warn, error
# Development mode with auto-reload
npm run dev
# Production mode
npm start
Add to your MCP client configuration:
{
"mcpServers": {
"freshdesk": {
"command": "node",
"args": ["/path/to/freshdesk-mcp/dist/index.js"],
"env": {
"FRESHDESK_DOMAIN": "yourcompany.freshdesk.com",
"FRESHDESK_API_KEY": "your_api_key_here"
}
}
}
}
Manage Freshdesk tickets - create, update, list, get, delete, and search tickets.
Actions:
create
: Create a new ticketupdate
: Update an existing ticketlist
: List tickets with filtersget
: Get a specific ticketdelete
: Delete a ticketsearch
: Search tickets with queryManage Freshdesk contacts - create, update, list, get, delete, search, and merge contacts.
Actions:
create
: Create a new contactupdate
: Update an existing contactlist
: List contacts with filtersget
: Get a specific contactdelete
: Delete a contactsearch
: Search contactsmerge
: Merge multiple contactsManage Freshdesk agents - list, get, update agents, and view their groups and roles.
Actions:
list
: List all agentsget
: Get a specific agentupdate
: Update agent detailsget_current
: Get current authenticated agentlist_groups
: List agent's groupslist_roles
: List agent's rolesManage Freshdesk companies - create, update, list, get, delete, search companies, and list company contacts.
Actions:
create
: Create a new companyupdate
: Update an existing companylist
: List companiesget
: Get a specific companydelete
: Delete a companysearch
: Search companieslist_contacts
: List contacts in a companyManage Freshdesk ticket conversations - create replies and notes, list, get, update, and delete conversations.
Actions:
create_reply
: Add a reply to a ticketcreate_note
: Add a note to a ticketlist
: List ticket conversationsget
: Get a specific conversationupdate
: Update a conversationdelete
: Delete a conversation{
"tool": "tickets_manage",
"arguments": {
"action": "create",
"params": {
"subject": "Need help with login",
"description": "I cannot log into my account",
"email": "customer@example.com",
"priority": 2,
"status": 2,
"tags": ["login", "urgent"]
}
}
}
{
"tool": "contacts_manage",
"arguments": {
"action": "search",
"params": {
"query": "john@example.com",
"page": 1,
"per_page": 10
}
}
}
{
"tool": "conversations_manage",
"arguments": {
"action": "create_reply",
"params": {
"ticket_id": 12345,
"body": "<p>Thank you for contacting us. We'll help you resolve this issue.</p>"
}
}
}
npm test
npm run test:watch
npm run test:coverage
npm run lint
npm run lint:fix
npm run format
npm run format:check
npm run typecheck
src/
├── api/ # API client implementation
├── auth/ # Authentication logic
├── core/ # Core types and interfaces
├── tools/ # MCP tool implementations
├── utils/ # Utility functions (logging, errors, rate limiting)
└── index.ts # Main server entry point
The server implements comprehensive error handling:
MIT
Integrates with the LinkedIn API, allowing interaction with your professional network and content.
Provides access to Intercom conversations and chats. Requires an Intercom API key.
Interact with the rqbit torrent client API. Requires a running rqbit instance.
Enables room-based messaging between multiple agents.
Interact with Slack workspaces to read and send messages directly through your AI assistant.
Integrates with Mailtrap Email API.
Send emails via SMTP. Requires SMTP server credentials to be configured through environment variables.
A read-only MCP server for querying live RSS data using the CData JDBC Driver for RSS.
Send push notifications via the Pushinator service. Requires an API token from your Pushinator account.
Send Instagram DMs via your LLM