Freshservice

Slug freshservice
Category ITSM
Maturity Alpha
Auth Type HTTP Basic (api_key:X)

Summary

Full-surface MCP integration with the Freshservice REST API. Lets a Prospector Studio agent run the IT service desk: list / create / update / delete tickets, walk ticket conversations, manage ticket tasks, query and mutate assets, work change requests, manage problem records, and read agents / requesters / groups / departments / locations / service catalog items.

This plugin is read-write. It can create, update, and delete tickets, assets, changes, problems, and ticket tasks; reply on tickets (which sends email to the requester); and add notes. Bind it to agents only when that level of authority is intended.

Capabilities

  • Tickets: list with filters, get, create, update, delete; list conversations; add notes (private or public); reply (sends email).
  • Ticket tasks: list and create.
  • Assets: list with filters, get, create, update, delete.
  • Changes: list, get, create, update.
  • Problems: list, get, create, update; mark as known error.
  • Agents, requesters, groups, departments, locations: list and get.
  • Service catalog: list items and get item details.

Required Headers

Header Required Description
X-Freshservice-Api-Key yes Freshservice API key issued for the calling user (Profile → API Key).
X-Freshservice-Password yes Literal X — Freshservice's HTTP Basic convention pairs the API key with any non-empty password. The host combines the two headers into an Authorization: Basic base64(api_key:X) egress header.
X-Freshservice-Server-Url yes Tenant base URL, e.g. https://acme.freshservice.com. The plugin's base_url template (https://{domain}.freshservice.com/api/v2) is resolved against this value.

Credential Permissions

Freshservice API keys are tied to the issuing user's account and inherit exactly that user's role and group permissions — the API key has no independent scopes. The four built-in roles (Account Administrator, Admin, Supervisor, Agent) gate which Freshservice modules and operations the key can reach (e.g. only Admins can create assets via POST /api/v2/assets; only users with change-management roles can mutate change requests). Custom roles add finer-grained privilege bundles.

For agent use, issue the API key under a dedicated service-account user whose role is the narrowest one that covers the bound tools — for read-only ticket triage, an Agent-level account is usually enough; for asset CRUD or change management, a custom role with only the relevant module-level write privileges is preferable to the broad Admin role. Reference: Freshservice API authentication.

Allowed Hosts

*.freshservice.com

Tools

The plugin advertises 32 MCP tools, organized below by capability domain.

Tickets

Tool Action Purpose
list_tickets read List tickets with optional filter, requester email, time range, type, sort.
get_ticket read Get a ticket by ID, optionally including conversations / requester / stats / assets / etc.
create_ticket write Create a new ticket (priority, status, group, agent, type, impact, urgency).
update_ticket write Update an existing ticket.
delete_ticket write Move a ticket to the trash.

Ticket Conversations

Tool Action Purpose
list_conversations read List all conversations (notes + replies) on a ticket.
add_note write Add a note to a ticket (private by default).
add_reply write Reply to a ticket — sends email to the requester.

Ticket Tasks

Tool Action Purpose
list_ticket_tasks read List tasks on a ticket.
create_ticket_task write Create a task on a ticket.

Assets

Tool Action Purpose
list_assets read Search and filter assets by type / department / location.
get_asset read Get a single asset by display ID.
create_asset write Create a new asset.
update_asset write Update an existing asset.
delete_asset write Delete an asset permanently (no trash).

Changes

Tool Action Purpose
list_changes read List change requests with filter and time-range support.
get_change read Get a change request by ID.
create_change write Create a change (priority, status, risk, change type, planned dates).
update_change write Update an existing change.

Problems

Tool Action Purpose
list_problems read List problem records.
get_problem read Get a problem by ID.
create_problem write Create a problem record (optionally mark as known error).
update_problem write Update a problem record.

Directory & Reference Data

Tool Action Purpose
list_agents read List agents (optionally filter by email / active / state).
get_agent read Get an agent by ID.
list_requesters read List requesters (optionally filter by email).
get_requester read Get a requester by ID.
list_groups read List agent groups.
get_group read Get a group by ID.
list_departments read List departments.
get_department read Get a department by ID.
list_locations read List locations.
list_service_catalog_items read List service catalog items available for request.
get_service_catalog_item read Get a service catalog item by display ID.

Invocation Example

{
  "name": "create_ticket",
  "arguments": {
    "email": "user@example.com",
    "subject": "VPN connectivity dropping intermittently",
    "description": "User reports the corporate VPN disconnects every ~10 minutes since this morning.",
    "priority": 3,
    "status": 2,
    "type": "Incident"
  }
}

Operational Notes

  • add_reply sends email. Unlike add_note (which by default is internal), add_reply posts to the customer-visible thread and triggers Freshservice's outbound email to the requester. Treat it as a side-effecting tool when binding it to agents.
  • Status / priority / impact codes are integers. Freshservice uses numeric enums for these fields rather than strings: priority 1–4 (Low → Urgent), ticket status 2–5 (Open / Pending / Resolved / Closed), impact and urgency 1–3, change status 1–6. The tool descriptions document the mapping per call site.
  • Pagination. List endpoints use page (1-indexed) and per_page (max 100, default 30). Walk the full set by paging until a returned page is shorter than per_page.
  • delete_asset is permanent. Unlike delete_ticket (which moves to trash), delete_asset is irreversible from the API. Most agents should not be granted this tool.
  • Tenant routing. The X-Freshservice-Server-Url header determines which Freshservice tenant the call hits. A single Construct deployment can fan out to multiple tenants by varying that header per request.
  • Reference docs. Freshservice API documentation · API authentication.