Freshdesk MCP Server
README.md
# Freshdesk MCP Server
A Model Context Protocol (MCP) server that fetches Freshdesk ticket details and provides them as context for LLM interactions.
## Features
- **get_ticket** - Fetch complete ticket details from a Freshdesk URL or ticket ID
- Ticket metadata (subject, status, priority, type, tags)
- Requester and assignee information
- All conversations (replies and private notes)
- Attachments list
- Time entries
- Satisfaction ratings
- Custom fields
- **search_tickets** - Search tickets by text query
- Filter by status (open, pending, resolved, closed)
- Filter by priority (low, medium, high, urgent)
- Configurable result limit
- **get_agent_tickets** - Get tickets assigned to a specific agent
- Search by agent name (supports partial matching)
- Filter by status
- Configurable result limit
## Installation
### Using npx (Recommended)
No installation required. Add directly to your config:
**Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
```json
{
"mcpServers": {
"freshdesk": {
"command": "npx",
"args": ["-y", "github:nikhilchintawar/freshdesk-mcp"],
"env": {
"FRESHDESK_API_KEY": "your-api-key",
"FRESHDESK_DOMAIN": "yourcompany"
}
}
}
}
```
**Claude Code** (`~/.claude/settings.json`):
```json
{
"mcpServers": {
"freshdesk": {
"command": "npx",
"args": ["-y", "github:nikhilchintawar/freshdesk-mcp"],
"env": {
"FRESHDESK_API_KEY": "your-api-key",
"FRESHDESK_DOMAIN": "yourcompany"
}
}
}
}
```
### Manual Installation
```bash
# Clone the repository
git clone https://github.com/nikhilchintawar/freshdesk-mcp.git
cd freshdesk-mcp
# Install dependencies
npm install
```
Then add to your config:
```json
{
"mcpServers": {
"freshdesk": {
"command": "node",
"args": ["/absolute/path/to/freshdesk-mcp/build/index.js"],
"env": {
"FRESHDESK_API_KEY": "your-api-key",
"FRESHDESK_DOMAIN": "yourcompany"
}
}
}
}
```
## Configuration
### Config File Locations
- **Claude Desktop (macOS):** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Claude Desktop (Windows):** `%APPDATA%\Claude\claude_desktop_config.json`
- **Claude Code:** `~/.claude/settings.json`
### Environment Variables
| Variable | Description | Required |
|----------|-------------|----------|
| `FRESHDESK_API_KEY` | Your Freshdesk API key | Yes |
| `FRESHDESK_DOMAIN` | Your Freshdesk subdomain (e.g., `mycompany` for mycompany.freshdesk.com) | Yes |
## Usage Examples
Once configured, you can use natural language to interact with Freshdesk:
- "Get the details of ticket https://mycompany.freshdesk.com/a/tickets/12345"
- "Search for tickets about 'login issue'"
- "Show me all open tickets assigned to John"
- "Find high priority tickets related to billing"
## Getting Your Freshdesk API Key
1. Log in to your Freshdesk account
2. Click on your profile icon → Profile Settings
3. Your API key is displayed on the right side of the page
## Development
```bash
# Watch mode for development
npm run dev
# Build for production
npm run build
# Test with MCP Inspector
FRESHDESK_API_KEY=your-key FRESHDESK_DOMAIN=your-domain \
npx @modelcontextprotocol/inspector node build/index.js
```
## License
MIT
TDQS
A3.7/5.0
Scored across 3 tools
Disambiguation5/5
Each tool targets a distinct operation: fetching by agent, fetching by ID/URL, and searching by text query. There is no overlap in purpose.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern using snake_case (get_agent_tickets, get_ticket, search_tickets).
Tool Count4/5
Three tools is on the low side but still within the typical 3-15 range and each tool serves a clear read-focused purpose for the domain.
Completeness2/5
Only read operations are covered; missing create, update, and delete functionalities that are essential for managing tickets in a CRM system.
Maintenance
ActivityInactive
ResponsivenessNo issues