|
|
| Slug |
freshservice |
| Category |
ITSM |
| Maturity |
Alpha |
| Auth Type |
HTTP Basic (api_key:X) |
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.
- 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.
| 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. |
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.
*.freshservice.com
The plugin advertises 32 MCP tools, organized below by capability domain.
| 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. |
| 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. |
| Tool |
Action |
Purpose |
list_ticket_tasks |
read |
List tasks on a ticket. |
create_ticket_task |
write |
Create a task on a ticket. |
| 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). |
| 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. |
| 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. |
| 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. |
{
"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"
}
}
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.