Freshservice MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Freshservice MCP Server Show me all open P1 tickets"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
freshservice-mcp
An MCP (Model Context Protocol) server that connects AI assistants to your Freshservice ITSM instance. Manage tickets, assets, changes, problems, service catalog, knowledge base, and more through natural language.
Features
53 tools across 9 categories:
Category | Tools | Description |
Tickets | 9 | List, get, create, update, delete, reply, add notes, conversations, search |
Assets | 5 | List, get, create, update, delete |
People | 8 | Requesters, agents, groups, departments (list + get) |
Ticket Tasks | 5 | List, get, create, update, delete sub-tasks on tickets |
Time Entries | 4 | List, create, update, delete time logs |
Changes | 5 | List, get, create, update, delete change requests |
Problems | 5 | List, get, create, update, delete problem records |
Service Catalog | 3 | Browse catalog items, get details, place service requests |
Knowledge Base | 9 | Categories, folders, articles (full CRUD) |
Related MCP server: Service Desk Plus MCP Server
Quick Start
Prerequisites
Node.js 18+
A Freshservice account with API access
Your Freshservice API key (Profile icon > Profile Settings > API key on the right panel)
Install via npx (recommended)
No installation needed. Configure your MCP client to run:
{
"mcpServers": {
"freshservice": {
"command": "npx",
"args": ["-y", "freshservice-mcp"],
"env": {
"FRESHSERVICE_DOMAIN": "yourcompany",
"FRESHSERVICE_API_KEY": "your-api-key"
}
}
}
}Install globally
npm install -g freshservice-mcpThen configure your MCP client:
{
"mcpServers": {
"freshservice": {
"command": "freshservice-mcp",
"env": {
"FRESHSERVICE_DOMAIN": "yourcompany",
"FRESHSERVICE_API_KEY": "your-api-key"
}
}
}
}Install from source
git clone https://github.com/tannertm0/freshservice-mcp.git
cd freshservice-mcp
npm install{
"mcpServers": {
"freshservice": {
"command": "node",
"args": ["/path/to/freshservice-mcp/src/index.js"],
"env": {
"FRESHSERVICE_DOMAIN": "yourcompany",
"FRESHSERVICE_API_KEY": "your-api-key"
}
}
}
}Configuration
Variable | Required | Description |
| Yes | Your Freshservice subdomain (e.g. |
| Yes | Your Freshservice API key |
MCP Client Setup
Claude Desktop - Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
Claude Code - Run claude mcp add freshservice -- npx -y freshservice-mcp then set env vars
Cursor / VS Code - Add to your MCP settings following your editor's docs
Available Tools
Tickets
Tool | Description |
| List tickets with filters (status, priority, requester, date) |
| Get full ticket details |
| Create a new ticket |
| Update ticket fields (status, priority, assignment, etc.) |
| Delete a ticket (moves to trash) |
| Send a reply on a ticket |
| Add a public or private note |
| View all replies and notes |
| Filter tickets with query syntax |
Assets
Tool | Description |
| List all assets/CIs |
| Get asset details with custom fields |
| Register a new asset |
| Update asset fields |
| Remove an asset |
People & Organization
Tool | Description |
| End users |
| Support staff |
| Agent groups with members |
| Departments |
Ticket Tasks
Tool | Description |
| List sub-tasks on a ticket |
| Get task details |
| Add a task to a ticket |
| Update task status/assignment |
| Remove a task |
Time Entries
Tool | Description |
| View logged time on a ticket |
| Log time spent |
| Modify a time entry |
| Remove a time entry |
Changes
Tool | Description |
| List change requests |
| Get change details (type, risk, schedule) |
| Create a change request |
| Update change fields |
| Delete a change |
Problems
Tool | Description |
| List problem records |
| Get problem details |
| Create a problem record |
| Update problem fields |
| Delete a problem |
Service Catalog
Tool | Description |
| Browse available services |
| Get service details and required fields |
| Submit a service request |
Knowledge Base
Tool | Description |
| Browse KB categories |
| Browse KB folders |
| Read articles |
| Write a new article |
| Edit an article |
| Remove an article |
Example Prompts
Once configured, you can ask your AI assistant things like:
"Show me all open P1 tickets"
"Create a ticket for the printer on 3rd floor being offline"
"What assets are assigned to John Smith?"
"Add a private note to ticket #5678 saying we're waiting on the vendor"
"Create a change request for the firewall upgrade scheduled next Tuesday"
"Search the knowledge base for VPN setup instructions"
"Log 2 hours on ticket #1234 for debugging the network issue"
"Show me all open problems and their impact levels"
"Place a new laptop request from the service catalog"
Search Query Syntax
The search_tickets tool uses Freshservice's filter query syntax:
"priority:4 AND status:2" - Urgent + Open tickets
"group_id:12345" - Tickets assigned to a specific group
"agent_id:67890" - Tickets assigned to a specific agent
"created_at:>'2024-01-01'" - Tickets created after a dateDevelopment
git clone https://github.com/tannertm0/freshservice-mcp.git
cd freshservice-mcp
npm install
npm testLicense
MIT
Available Tools
53 toolsadd_note_to_ticketC
Add a note to a Freshservice ticket
Inputs: ticket_id (required), body (required), private.
create_assetC
Create a new Freshservice asset
Inputs: name (required), asset_type_id (required), description, user_id, +3 more.
create_changeC
Create a new Freshservice change request
Inputs: subject (required), description (required), requester_id (required), priority, +9 more.
create_problemC
Create a new Freshservice problem
Inputs: subject (required), description (required), requester_id (required), priority, +7 more.
create_solution_articleC
Create a new knowledge base article
Inputs: title (required), description (required), folder_id (required), status, +1 more.
create_ticketC
Create a new Freshservice ticket
Inputs: subject (required), description (required), email, requester_id, +10 more.
create_ticket_taskC
Create a new task on a Freshservice ticket
Inputs: ticket_id (required), title (required), description, status, +3 more.
create_time_entryB
Log time spent on a Freshservice ticket
Inputs: ticket_id (required), agent_id (required), time_spent (required), note, +2 more.
delete_assetC
Delete a Freshservice asset
Inputs: display_id (required).
delete_changeC
Delete a Freshservice change request
Inputs: change_id (required).
delete_problemB
Delete a Freshservice problem
Inputs: problem_id (required).
delete_solution_articleC
Delete a knowledge base article
Inputs: article_id (required).
delete_ticketC
Delete a Freshservice ticket (moves to trash)
Inputs: ticket_id (required).
delete_ticket_taskC
Delete a task from a Freshservice ticket
Inputs: ticket_id (required), task_id (required).
delete_time_entryC
Delete a time entry from a Freshservice ticket
Inputs: ticket_id (required), entry_id (required).
get_agentC
Get details of a specific agent
Inputs: agent_id (required).
get_assetC
Get details of a specific asset
Inputs: display_id (required).
get_changeC
Get details of a specific change request
Inputs: change_id (required).
get_departmentB
Get details of a specific department
Inputs: department_id (required).
get_groupB
Get details of a specific agent group
Inputs: group_id (required).
get_problemB
Get details of a specific Freshservice problem
Inputs: problem_id (required).
get_requesterC
Get details of a specific requester
Inputs: requester_id (required).
get_service_catalog_itemC
Get details of a specific service catalog item
Inputs: item_id (required).
get_solution_articleC
Get a knowledge base article with full content
Inputs: article_id (required).
get_solution_categoryC
Get details of a knowledge base category
Inputs: category_id (required).
get_solution_folderC
Get details of a knowledge base folder
Inputs: folder_id (required).
get_ticketB
Get details of a specific Freshservice ticket
Inputs: ticket_id (required).
get_ticket_conversationsB
Get all conversations (replies and notes) for a ticket
Inputs: ticket_id (required).
get_ticket_taskB
Get details of a specific task on a ticket
Inputs: ticket_id (required), task_id (required).
list_agentsC
List Freshservice agents (support staff)
Inputs: page, per_page, email, active.
list_assetsC
List Freshservice assets/configuration items
Inputs: page, per_page.
list_changesC
List Freshservice change requests
Inputs: page, per_page, filter, order_by, +1 more.
list_departmentsC
List Freshservice departments
Inputs: page, per_page.
list_groupsC
List Freshservice agent groups
Inputs: page, per_page.
list_problemsC
List Freshservice problems
Inputs: page, per_page, order_by, order_type.
list_requestersC
List Freshservice requesters (end users)
Inputs: page, per_page, email.
list_service_catalog_itemsC
List items in the Freshservice service catalog
Inputs: page, per_page.
list_solution_articlesC
List articles in a knowledge base folder
Inputs: folder_id (required), page, per_page.
list_solution_categoriesC
List knowledge base categories in Freshservice
Inputs: page, per_page.
list_solution_foldersC
List folders in a knowledge base category
Inputs: category_id (required), page, per_page.
list_ticketsC
List Freshservice tickets with optional filters
Inputs: page, per_page, filter, requester_id, +4 more.
list_ticket_tasksC
List all tasks for a Freshservice ticket
Inputs: ticket_id (required).
list_time_entriesC
List time entries for a Freshservice ticket
Inputs: ticket_id (required).
place_service_requestC
Place a service request from the Freshservice catalog
Inputs: item_id (required), quantity, email, custom_fields.
reply_to_ticketC
Reply to a Freshservice ticket
Inputs: ticket_id (required), body (required), cc_emails, bcc_emails.
search_ticketsC
Search/filter Freshservice tickets using a query string
Inputs: query (required).
update_assetC
Update an existing Freshservice asset
Inputs: display_id (required), name, description, user_id, +3 more.
update_changeC
Update an existing Freshservice change request
Inputs: change_id (required), subject, description, priority, +8 more.
update_problemC
Update an existing Freshservice problem
Inputs: problem_id (required), subject, description, priority, +6 more.
update_solution_articleC
Update an existing knowledge base article
Inputs: article_id (required), title, description, status, +1 more.
update_ticketC
Update an existing Freshservice ticket
Inputs: ticket_id (required), subject, description, priority, +7 more.
update_ticket_taskC
Update a task on a Freshservice ticket
Inputs: ticket_id (required), task_id (required), title, description, +4 more.
update_time_entryC
Update a time entry on a Freshservice ticket
Inputs: ticket_id (required), entry_id (required), time_spent, note, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 53 tools
Most tools have clearly distinct purposes targeting specific resources and actions (e.g., create_ticket vs. update_ticket vs. delete_ticket). However, some potential overlap exists between list_tickets and search_tickets, and between get_ticket and get_ticket_conversations, which could cause minor confusion for agents about which to use in certain scenarios.
Tool names follow a highly consistent verb_noun pattern throughout (e.g., create_ticket, list_agents, get_asset, update_problem, delete_change). All tools use snake_case with clear, predictable naming conventions, making them easily readable and systematic.
With 53 tools, the count is excessively high for a single server, likely overwhelming for agents to navigate efficiently. While Freshservice is a comprehensive ITSM platform, this many tools suggests over-fragmentation of operations that could be consolidated or scoped more narrowly.
The tool set provides complete CRUD/lifecycle coverage across all key Freshservice domains (tickets, assets, changes, problems, solutions, agents, requesters, etc.). It includes all essential operations from listing and getting to creating, updating, and deleting, with no obvious gaps for core workflows.
Maintenance
Related MCP Connectors
Manage tickets, run agents and workflows, query tables, and search workspace knowledge.
AI-native ITSM and ESM platform. resolve IT and HR requests inside Slack and Teams.
Read tickets, contacts, companies, agents and groups; create, update and reply to tickets.
Use your connected apps from your agent: search synced data, act in apps and set up automations.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI models to interact with Freshservice IT service management platform, allowing automated ticket management, change requests, asset tracking, and solution article operations through natural language commands.MIT
- FlicenseNot gradedqualityDmaintenanceIntegrates with Service Desk Plus Cloud API to enable AI assistants perform CRUD operations on service desk entities, including request management, technician management, and email communication.4-
- AlicenseNot gradedqualityBmaintenanceProvides AI assistants with structured access to the Freshdesk customer support platform, including tickets, contacts, companies, agents, groups, knowledge base, and SLA configuration. Features decision-tree navigation and destructive-action guardrails.251 npmMIT
- AlicenseAqualityCmaintenanceEnables AI models to perform IT service management operations on Freshservice, including managing tickets, changes, problems, releases, assets, projects, and more through a set of MCP tools.362MIT