Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FRESHSERVICE_APIKEYYesFreshservice API key (Profile Settings)
FRESHSERVICE_DOMAINYesYour Freshservice domain, e.g. yourcompany.freshservice.com
FRESHSERVICE_TOOLSETSNoComma-separated toolsets to enable, or 'all' (default: the core set)
FRESHSERVICE_READ_ONLYNoSet to 1 to remove every tool that can write

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_agent_fieldsB

List agent fields, including custom fields.

get_all_agentsC

List agents.

filter_agentsA

Search agents (30 per page, newest first; results cannot be sorted).

Fields: first_name, last_name, name, job_title, email, work_phone_number, mobile_phone_number, department_id, reporting_manager_id, time_zone, language, location_id, created_at, updated_at, external_id and custom fields. The ~ operator does "starts with" on first_name, last_name, name, email, mobile_phone_number and work_phone_number. Changes can take a few minutes to be indexed.

get_agentB

Get an agent by ID, including roles and group memberships.

create_agentB

Create an agent. Assign at least one role so the agent can sign in.

update_agentB

Update an agent. Only the supplied fields change.

deactivate_agentA

Deactivate an agent (they become a requester; reversible with reactivate_agent).

reactivate_agentB

Reactivate a deactivated agent.

list_rolesA

List agent roles (needed for create_agent's roles).

get_all_agent_groupsC

List agent groups.

get_agent_groupA

Get an agent group by ID, including its members.

create_groupC

Create an agent group.

update_groupA

Update an agent group. Only the supplied fields change.

delete_groupC

Delete an agent group.

get_all_requester_groupsC

List requester groups.

get_requester_groupB

Get a requester group by ID.

create_requester_groupC

Create a requester group.

update_requester_groupC

Update a requester group.

delete_requester_groupC

Delete a requester group.

list_requester_group_membersC

List the requesters in a requester group.

add_requester_to_groupB

Add a requester to a manual requester group.

remove_requester_from_groupB

Remove a requester from a manual requester group.

list_all_requester_fieldsA

List requester fields, including custom fields and their API names.

get_all_requestersB

List requesters, optionally looked up by email or phone.

filter_requestersA

Search requesters (30 per page, newest first; results cannot be sorted).

Fields: first_name, last_name, name, job_title, primary_email, work_phone_number, mobile_phone_number, department_id, reporting_manager_id, time_zone, language, location_id, created_at, updated_at, external_id and custom fields. The ~ operator does "starts with" on first_name, last_name, name, primary_email, mobile_phone_number and work_phone_number. Changes can take a few minutes to be indexed.

get_requesterC

Get a requester by ID.

create_requesterB

Create a requester. One of primary_email, work_phone_number or mobile_phone_number is required.

update_requesterB

Update a requester. Only the supplied fields change.

deactivate_requesterA

Deactivate a requester (reversible with reactivate_requester).

reactivate_requesterA

Reactivate a deactivated requester.

convert_requester_to_agentC

Convert a requester into an occasional agent.

list_service_catalog_categoriesC

List service catalog categories.

list_service_itemsB

List one page of service catalog items.

search_service_itemsC

Search service catalog items by keyword.

get_service_itemA

Get a service item, including its form fields (custom_fields names to use when placing a request).

create_service_requestC

Place a service request for a catalog item.

get_all_solution_categoryC

List knowledge-base categories.

get_solution_categoryB

Get a knowledge-base category by ID.

create_solution_categoryC

Create a knowledge-base category.

update_solution_categoryC

Update a knowledge-base category.

delete_solution_categoryA

Move a category (and its folders and articles) to trash.

get_list_of_solution_folderC

List the folders in a category.

list_solution_subfoldersC

List the sub-folders of a folder.

get_solution_folderC

Get a knowledge-base folder by ID.

create_solution_folderC

Create a knowledge-base folder.

update_solution_folderC

Update a knowledge-base folder.

delete_solution_folderA

Move a folder (and its articles) to trash.

get_list_of_solution_articleA

List the articles in a folder: metadata plus a short plain-text snippet, not the full body.

Use get_solution_article with an article id to read the whole article.

search_solution_articlesA

Full-text search across published knowledge-base articles.

Each result has id, title, folder_id/category_id, status and a short plain-text snippet (the first ~300 characters). Freshservice returns every article's full body here, which makes 30 results very large, so they are trimmed unless include_body is true. To read an article, call get_solution_article with its id (full HTML in description, plain text in description_text).

get_solution_articleA

Read a knowledge-base article by ID: the full HTML in description and plain text in description_text.

Use the id from search_solution_articles or get_list_of_solution_article.

create_solution_articleB

Create a knowledge-base article (a draft unless status is 2).

update_solution_articleC

Update a knowledge-base article.

publish_solution_articleB

Publish a draft article (sets status to 2).

delete_solution_articleA

Move an article to trash.

get_ticket_fieldsB

List ticket form fields, including custom fields, their API names and allowed choices.

list_ticket_sourcesA

List ticket sources (channels), built-in and custom, with the numeric IDs create_ticket expects.

Returns {"sources": [{"id": 1, "value": "Email"}, ...]}. Freshservice has no endpoint that lists sources (/ticket_fields/sources only creates one), so they are read from the ticket form's "source" field.

get_ticketsA

List tickets (newest first). Without a filter or updated_since, only the last 30 days are returned.

For arbitrary conditions (status, priority, agent, group, dates, custom fields) use filter_tickets.

filter_ticketsA

Search tickets with the Freshservice query language (30 results per page).

Filterable fields: requester_id, email, agent_id, group_id, priority, status, impact, urgency, tag, due_by and fr_due_by (YYYY-MM-DD), created_at and updated_at (YYYY-MM-DD or UTC datetime), workspace_id (0 = all workspaces) and custom fields by API name (see get_ticket_fields). Field names are case-sensitive snake_case. Examples: "status:2 AND priority:4", "agent_id:null AND created_at:>'2025-01-01'", "(group_id:12 OR group_id:15) AND status:3", "tag:'vip'". :> and :< are documented as inclusive (>= and <=). Values must be valid ones (status 2-5, priority 1-4, ...) or the API answers 400. The response includes "total" with the overall match count.

get_ticket_by_idA

Get a ticket by ID. Returns {"ticket": {...}} with all standard fields, custom_fields, planned dates, SLA flags (is_escalated, fr_escalated), attachments and, when available, the resolution notes.

create_ticketA

Create an incident or service-request ticket. Some ticket forms make fields such as group_id, responder_id, category or custom fields mandatory; check get_ticket_fields when the API reports missing_field.

update_ticketB

Update a ticket. Only the supplied fields change.

delete_ticketA

Move a ticket to trash. It can be brought back with restore_ticket.

restore_ticketA

Restore a deleted (trashed) ticket.

create_child_ticketC

Create a child ticket under an existing parent ticket.

list_all_ticket_conversationA

List the replies and notes on a ticket, oldest first. Each has body/body_text, private, incoming, source, user_id, to/cc/bcc emails and attachments.

send_ticket_replyB

Send a public reply to the requester on a ticket.

create_ticket_noteB

Add a note to a ticket (private by default).

update_ticket_conversationA

Edit a note or reply. Only notes and replies created through the API/agents can be edited.

delete_ticket_conversationB

Delete a note or reply from a ticket.

list_ticket_activitiesA

List the audit trail of a ticket (field changes, assignments, status changes).

get_requested_itemsA

List the service catalog items requested on a service-request ticket.

list_ticket_time_entriesB

List time entries (time tracked by agents) on a ticket.

view_ticket_time_entryB

Get one time entry on a ticket.

create_ticket_time_entryC

Log time against a ticket.

update_ticket_time_entryC

Update a time entry on a ticket. Time entry fields: time_spent ('hh:mm'), note, agent_id, billable, executed_at (ISO-8601), timer_running, task_id, custom_fields.

delete_ticket_time_entryC

Delete a time entry on a ticket.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.9/5.0

Scored across 76 tools

Disambiguation4/5

Most tools are separated by resource and action (agent vs requester vs ticket vs solution), and descriptions clarify list/search/get variants. A few boundaries are fuzzy—e.g. create_group is an agent group while requester groups are explicitly prefixed, and solution folder/article listing uses several get/list patterns—but tools are not broadly indistinguishable.

Naming Consistency3/5

Names are all snake_case and generally verb_noun, but the verb vocabulary is inconsistent: get_all_agents vs list_roles vs filter_agents, get_list_of_solution_folder vs list_solution_subfolders, and singular get_all_solution_category. The pattern is readable but not predictable enough for a top score.

Tool Count1/5

76 tools is far beyond the 3–15 well-scoped range and exceeds the 50+ extreme-mismatch threshold. Even for a broad ITSM product, this surface should be split or namespaced into smaller MCP servers.

Completeness4/5

Core service-desk resources have strong lifecycle coverage: tickets (create/update/delete/restore, conversations, time entries), agents/requesters (create/update/deactivate/reactivate), groups (CRUD), and knowledge base (CRUD/search/publish). Gaps remain around admin CRUD for service catalog items and broader ITSM modules such as changes, problems, and assets, but the apparent service-desk scope is largely covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues