Skip to main content
Glama
Freshservice MCP Server
by tannertm0

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

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-mcp

Then 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

FRESHSERVICE_DOMAIN

Yes

Your Freshservice subdomain (e.g. yourcompany for yourcompany.freshservice.com)

FRESHSERVICE_API_KEY

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

List tickets with filters (status, priority, requester, date)

get_ticket

Get full ticket details

create_ticket

Create a new ticket

update_ticket

Update ticket fields (status, priority, assignment, etc.)

delete_ticket

Delete a ticket (moves to trash)

reply_to_ticket

Send a reply on a ticket

add_note_to_ticket

Add a public or private note

get_ticket_conversations

View all replies and notes

search_tickets

Filter tickets with query syntax

Assets

Tool

Description

list_assets

List all assets/CIs

get_asset

Get asset details with custom fields

create_asset

Register a new asset

update_asset

Update asset fields

delete_asset

Remove an asset

People & Organization

Tool

Description

list_requesters / get_requester

End users

list_agents / get_agent

Support staff

list_groups / get_group

Agent groups with members

list_departments / get_department

Departments

Ticket Tasks

Tool

Description

list_ticket_tasks

List sub-tasks on a ticket

get_ticket_task

Get task details

create_ticket_task

Add a task to a ticket

update_ticket_task

Update task status/assignment

delete_ticket_task

Remove a task

Time Entries

Tool

Description

list_time_entries

View logged time on a ticket

create_time_entry

Log time spent

update_time_entry

Modify a time entry

delete_time_entry

Remove a time entry

Changes

Tool

Description

list_changes

List change requests

get_change

Get change details (type, risk, schedule)

create_change

Create a change request

update_change

Update change fields

delete_change

Delete a change

Problems

Tool

Description

list_problems

List problem records

get_problem

Get problem details

create_problem

Create a problem record

update_problem

Update problem fields

delete_problem

Delete a problem

Service Catalog

Tool

Description

list_service_catalog_items

Browse available services

get_service_catalog_item

Get service details and required fields

place_service_request

Submit a service request

Knowledge Base

Tool

Description

list_solution_categories / get_solution_category

Browse KB categories

list_solution_folders / get_solution_folder

Browse KB folders

list_solution_articles / get_solution_article

Read articles

create_solution_article

Write a new article

update_solution_article

Edit an article

delete_solution_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 date

Development

git clone https://github.com/tannertm0/freshservice-mcp.git
cd freshservice-mcp
npm install
npm test

License

MIT

Available Tools

53 tools
add_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

    B3.2/5.0

    Scored across 53 tools

    Disambiguation4/5

    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.

    Naming Consistency5/5

    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.

    Tool Count2/5

    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.

    Completeness5/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables 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
    • F
      license
      Not graded
      quality
      D
      maintenance
      Integrates 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
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      Provides 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 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables 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.
      36
      2
      MIT