FreshserviceSAFE
MCP server created for Freshservice, allowing AI models to interact with Freshservice modules
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://smithery.ai/server/@effytech/freshservice_mcp)
Overview
A powerful MCP (Model Context Protocol) server implementation that seamlessly integrates with Freshservice, enabling AI models to interact with Freshservice modules and perform various IT service management operations. This integration bridge empowers your AI assistants to manage and resolve IT service tickets, streamlining your support workflow.
Key Features
- Enterprise-Grade Freshservice Integration: Direct, secure communication with Freshservice API endpoints
- AI Model Compatibility: Enables Claude and other AI models to execute service desk operations through Freshservice
- Automated ITSM Management: Efficiently handle ticket creation, updates, responses, and asset management
- Workflow Acceleration: Reduce manual intervention in routine IT service tasks
Supported Freshservice Modules
This MCP server currently supports operations across a wide range of Freshservice modules:
- Tickets
- Changes
- Conversations
- Products
- Requesters
- Agents
- Agent Groups
- Requester Groups
- Canned Responses
- Canned Response Folders
- Workspaces
- Solution Categories
- Solution Folders
- Solution Articles
Components & Tools
The server provides a comprehensive toolkit for Freshservice operations:
Ticket Management
9f8cdcd6a34aOBSERVED · 2026-10-08Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add freshservice-mcp --env FRESHSERVICE_APIKEY=${FRESHSERVICE_APIKEY} -- uvx freshservice-mcp{
"mcpServers": {
"freshservice-mcp": {
"command": "uvx",
"args": [
"freshservice-mcp"
],
"env": {
"FRESHSERVICE_APIKEY": "${FRESHSERVICE_APIKEY}"
}
}
}
}Exposed tools (92)
50 read · 37 write · 5 destructive. Blast radius: 5 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
add_requester_to_group | write | Add a requester to a manual requester group in Freshservice. |
cancel_change_approval | read | Cancel a change approval. |
cancel_change_approval_group | read | Cancel a change approval group. |
close_change | read | Close a change and provide the result explanation. |
create_agent | write | Create a new agent in Freshservice. |
create_change | write | Create a new change in Freshservice. |
create_change_approval_group | write | Create an approval group for a change. |
create_change_note | write | Create a note for a change in Freshservice. |
create_change_task | write | Create a task for a change. |
create_change_time_entry | write | Create a time entry for a change. |
create_group | write | Create a group in Freshservice. |
create_product | write | Create a product in Freshservice. |
create_requester | write | Creates a requester in Freshservice. |
create_requester_group | write | Create a requester group in Freshservice. |
create_service_request | write | Create a service request in Freshservice. |
create_solution_article | write | Create a new solution article in Freshservice. |
create_solution_category | write | Create a new solution category in Freshservice. |
create_solution_folder | write | Create a new folder under a solution category in Freshservice. |
create_ticket | write | Create a ticket in Freshservice. |
create_ticket_note | write | Create a note for a ticket in Freshservice. |
delete_change | destructive | Delete a change in Freshservice. |
delete_change_note | destructive | Delete a note for a change. |
delete_change_task | destructive | Delete a task for a change. |
delete_change_time_entry | destructive | Delete a time entry for a change. |
delete_ticket | destructive | Delete a ticket in Freshservice. |
filter_agents | read | Filter Freshservice agents based on a query. |
filter_changes | read | Filter changes in Freshservice based on a query. |
filter_requesters | read | Filter requesters in Freshservice. |
filter_tickets | read | Filter the tickets in Freshservice. |
getAgentGroupById | read | Get agent groups by its group id in Freshservice. |
get_agent | read | Get agent by id in Freshservice. |
get_agent_fields | read | Get all agent fields in Freshservice. |
get_all_agent_groups | read | Get all agent groups in Freshservice. |
get_all_agents | read | Fetch agents from Freshservice. |
get_all_canned_response | read | List all canned response in Freshservice. |
get_all_products | read | List all the products from Freshservice. |
get_all_requester_groups | read | Get all requester groups in Freshservice. |
get_all_requesters | read | Fetch all requesters from Freshservice. |
get_all_solution_category | read | Get all solution category in Freshservice. |
get_canned_response | read | Get a canned response in Freshservice. |
get_change_by_id | read | Get a specific change by ID in Freshservice. |
get_change_tasks | read | Get all tasks associated with a change. |
get_changes | read | Get all changes from Freshservice with pagination and filtering support. |
get_list_of_solution_article | read | Get list of solution article in Freshservice. |
get_list_of_solution_folder | read | Get list of solution folder by its ID in Freshservice. |
get_products_by_id | read | Get product by product ID in Freshservice. |
get_requested_items | read | Fetch requested items for a specific ticket if the ticket is a service request. |
get_requester_groups_by_id | read | Get requester groups in Freshservice. |
get_requester_id | read | Get requester by ID in Freshservice. |
get_solution_article | read | Get solution article by id in Freshservice. |
get_solution_category | read | Get solution category by its ID in Freshservice. |
get_solution_folder | read | Get solution folder by its ID in Freshservice. |
get_ticket_by_id | read | Get a ticket in Freshservice. |
get_ticket_fields | read | Get ticket fields from Freshservice. |
get_tickets | read | Get tickets from Freshservice with pagination support. |
get_workspace | read | Get a workspace by its ID in Freshservice. |
list_all_canned_response_folder | read | List all canned response of a folder in Freshservice. |
list_all_requester_fields | read | List all requester fields in Freshservice. |
list_all_ticket_conversation | read | List all conversation of a ticket in freshservice. |
list_all_workspaces | read | List all workspaces in Freshservice. |
list_canned_response_folder | read | List canned response folder in Freshservice. |
list_change_approval_groups | read | List all approval groups within a change. |
list_change_approvals | read | List all change approvals. |
list_change_fields | read | List all change fields. |
list_change_notes | read | List all notes for a change. |
list_change_time_entries | read | List all time entries for a change. |
list_requester_group_members | read | List all members of a requester group in Freshservice. |
list_service_items | read | Get list of service items from Freshservice. |
move_change | write | Move a change to another workspace. |
publish_solution_article | write | Publish a solution article in Freshservice. |
send_change_approval_reminder | write | Send reminder for a change approval. |
send_ticket_reply | write | |
update_agent | write | Update the agent details in the Freshservice. |
update_approval_chain_rule_change | write | Update approval chain rule for a change. |
update_change | write | Update an existing change in Freshservice. |
update_change_approval_group | write | Update a change approval group. |
update_change_note | write | Update a note for a change. |
update_change_task | write | Update a task for a change. |
update_change_time_entry | write | Update a time entry for a change. |
update_group | write | Update a group in Freshservice. |
update_product | write | Update a product in Freshservice. |
update_requester | write | Update a requester in Freshservice. |
update_requester_group | write | Update an requester group in Freshservice. |
update_solution_article | write | Update a solution article in Freshservice. |
update_solution_category | write | Update a solution category in Freshservice. |
update_solution_folder | write | Update an existing solution folder |
update_ticket | write | Update a ticket in Freshservice. |
update_ticket_conversation | write | Update a conversation for a ticket in Freshservice. |
view_change_approval | read | View a specific change approval. |
view_change_note | read | View a specific note for a change. |
view_change_task | read | View a specific task for a change. |
view_change_time_entry | read | View a specific time entry for a change. |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (2 observation(s))
- Network
- declared (5 observation(s))
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (1)
delete_change, delete_change_note, delete_change_task, delete_change_time_entry, delete_ticket
Gates applied: no_behavioural_pass.
9f8cdcd6a34afull audit observations/trust-audit/mcp-server/effytech__freshservice.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | 9f8cdcd6a34a | SAFE | B | 89 | first audit |
Questions
What is the Freshservice MCP server?
MCP server created for Freshservice, allowing AI models to interact with Freshservice modules
What tools does Freshservice expose?
92 in total: 50 read-only, 37 that write, and 5 that can delete or overwrite (delete_change, delete_change_note, delete_change_task, delete_change_time_entry, delete_ticket). Every one is listed on this page with its risk.
Is Freshservice safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B. Separately from the audit: 5 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does Freshservice need?
It reads FRESHSERVICE_APIKEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Freshservice run?
It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as freshservice-mcp.
How current is this page?
The grade is for one exact copy of the source (9f8cdcd6a34a), read on 2026-10-08. The repository is watched and re-audited when it changes.