Skip to main content
Glama
matthewlboyd

Freshservice MCP Server

by matthewlboyd

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SSL_CERT_FILENoPath to CA bundle for corporate proxy with SSL inspection (optional)
FRESHSERVICE_APIKEYYesYour Freshservice API key
FRESHSERVICE_DOMAINYesYour Freshservice domain (e.g., yourcompany.freshservice.com)

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_ticketsA

List all tickets with pagination.

Args: page: Page number (starts at 1). per_page: Results per page (max 100).

get_ticket_by_idA

Retrieve a single ticket by ID, including conversations and stats.

Args: ticket_id: The numeric ticket ID.

create_ticketA

Create a new Freshservice ticket.

Args: subject: Ticket subject line. description: Ticket description (HTML supported). email: Requester email. Creates a new contact if not found. priority: 1=Low, 2=Medium, 3=High, 4=Urgent. status: 2=Open, 3=Pending, 4=Resolved, 5=Closed. source: 1=Email, 2=Portal, 3=Phone, 4=Chat, 9=Walkup, 10=Slack. type: Ticket type (default "Incident"). group_id: ID of assigned agent group. responder_id: ID of assigned agent. department_id: Department ID. category: Ticket category. sub_category: Ticket sub-category. tags: List of tags. cc_emails: CC email addresses. custom_fields: Custom field key-value pairs. workspace_id: Workspace ID (for multi-workspace accounts).

update_ticketA

Update an existing ticket.

Args: ticket_id: The ticket ID to update. updates: Dictionary of fields to update. Common fields: status, priority, group_id, responder_id, subject, description, category, tags, custom_fields, etc.

delete_ticketA

Trash a ticket (soft delete).

Args: ticket_id: The ticket ID to delete.

filter_ticketsA

Filter tickets using Freshservice query language.

The query MUST be wrapped in double quotes. Examples: "status:2" — open tickets "priority:4" — urgent tickets "agent_id:1234 AND status:2" "group_id:5 AND priority:>2" "created_at:>'2024-01-01'"

Args: query: Freshservice filter query string (must be in double quotes). page: Page number. per_page: Results per page (max 100).

get_ticket_fieldsA

Retrieve all ticket field definitions (built-in and custom).

list_ticket_conversationsA

List all conversations (replies and notes) for a ticket.

Args: ticket_id: The ticket ID. page: Page number. per_page: Results per page (max 100).

reply_to_ticketA

Reply to a ticket (visible to requester).

Args: ticket_id: The ticket ID. body: Reply body (HTML supported). cc_emails: Optional CC email addresses.

add_ticket_noteA

Add a note to a ticket.

Args: ticket_id: The ticket ID. body: Note body (HTML supported). private: True for private (agent-only) note, False for public.

delete_ticket_noteB

Delete a note from a ticket.

Args: ticket_id: The ticket ID. conversation_id: The conversation (note) ID to delete.

get_changesA

List all changes with optional filtering.

Args: page: Page number. per_page: Results per page (max 100). query: Optional filter query, MUST be in double quotes. E.g. "status:3", "approval_status:1 AND status:<6".

filter_changesA

Filter changes with advanced queries.

Query MUST be wrapped in double quotes. Examples: "status:3" — awaiting approval "approval_status:1" — approved "approval_status:1 AND status:<6" — approved but not closed

Args: query: Freshservice filter query string. page: Page number. per_page: Results per page.

get_change_by_idB

Retrieve a single change by ID.

Args: change_id: The change ID.

create_changeA

Create a new change request.

Args: requester_id: ID of the requester. subject: Change subject. description: Change description (HTML supported). priority: 1=Low, 2=Medium, 3=High, 4=Urgent. impact: 1=Low, 2=Medium, 3=High. status: 1=Open, 2=Planning, 3=Awaiting Approval, 4=Pending Release, 5=Pending Review, 6=Closed. risk: 1=Low, 2=Medium, 3=High, 4=Very High. change_type: 1=Minor, 2=Standard, 3=Major, 4=Emergency. planned_start_date: ISO 8601 datetime string. planned_end_date: ISO 8601 datetime string. group_id: Agent group ID. workspace_id: Workspace ID. custom_fields: Custom field key-value pairs.

update_changeA

Update an existing change request.

Args: change_id: The change ID. change_fields: Dictionary of fields to update. Common fields: status, priority, impact, risk, subject, description, group_id, etc.

close_changeB

Close a change with a result explanation.

Args: change_id: The change ID. change_result_explanation: Explanation of the change result.

delete_changeB

Delete a change request.

Args: change_id: The change ID.

get_change_tasksC

Get all tasks associated with a change.

Args: change_id: The change ID.

create_change_noteA

Add a note to a change request.

Args: change_id: The change ID. body: Note body (HTML supported). private: True for agent-only note, False for public.

get_assetsA

List all assets with pagination.

Args: page: Page number. per_page: Results per page (max 100).

get_asset_by_idA

Retrieve a single asset by its display ID.

Args: display_id: The asset display ID.

search_assetsA

Search assets by various fields.

Query examples: "name:'Dell Laptop'" "asset_tag:'ASSET-001'" "serial_number:'SN123'" "asset_state:'In Use'"

Args: query: Asset search query. page: Page number. per_page: Results per page.

filter_assetsB

Filter assets using Freshservice query language.

Args: query: Filter query. E.g. "asset_type_id:1", "department_id:5". page: Page number. per_page: Results per page.

create_assetA

Create a new asset.

Args: name: Asset name. asset_type_id: Asset type ID (from get_asset_types). description: Asset description. impact: 1=Low, 2=Medium, 3=High. user_id: User assigned to the asset. department_id: Department ID. location_id: Location ID. agent_id: Agent managing the asset. asset_tag: Custom asset tag. custom_fields: Custom field key-value pairs.

update_assetB

Update an existing asset.

Args: display_id: The asset display ID. updates: Dictionary of fields to update.

delete_assetA

Delete an asset (soft delete / trash).

Args: display_id: The asset display ID.

get_asset_typesA

List all asset types.

Args: page: Page number. per_page: Results per page.

get_requestersA

List all requesters with pagination.

Args: page: Page number. per_page: Results per page (max 100).

get_requester_by_idB

Retrieve a single requester by ID.

Args: requester_id: The requester ID.

filter_requestersC

Filter requesters. Query examples: email, name, department, etc.

Args: query: Filter query string. page: Page number. per_page: Results per page.

create_requesterB

Create a new requester / contact.

Args: first_name: Requester first name. email: Requester email address. last_name: Requester last name. phone: Phone number. department_ids: List of department IDs. custom_fields: Custom fields.

get_agentsA

List all agents with pagination.

Args: page: Page number. per_page: Results per page (max 100).

get_agent_by_idB

Retrieve a single agent by ID.

Args: agent_id: The agent ID.

filter_agentsC

Filter agents by various criteria.

Args: query: Filter query (e.g. email, name, department, active status). page: Page number. per_page: Results per page.

get_agent_groupsB

List all agent groups.

Args: page: Page number. per_page: Results per page.

get_agent_group_by_idB

Get details of a specific agent group.

Args: group_id: The group ID.

get_requester_groupsB

List all requester groups.

Args: page: Page number. per_page: Results per page.

get_requester_group_by_idC

Get details of a specific requester group.

Args: group_id: The group ID.

get_productsB

List all products.

Args: page: Page number. per_page: Results per page.

get_product_by_idB

Get details of a specific product.

Args: product_id: The product ID.

get_workspacesB

List all workspaces.

Args: page: Page number. per_page: Results per page.

get_canned_response_foldersA

List all canned response folders.

get_canned_responses_in_folderA

List all canned responses within a folder.

Args: folder_id: The canned response folder ID.

get_canned_responseC

Get a specific canned response by ID.

Args: response_id: The canned response ID.

get_solution_categoriesC

List all solution (knowledge base) categories.

Args: page: Page number. per_page: Results per page.

get_solution_category_by_idA

View a specific solution category.

Args: category_id: The category ID.

create_solution_categoryC

Create a new solution category.

Args: name: Category name. description: Category description.

get_solution_foldersA

List all solution folders in a category.

Args: category_id: The parent category ID. page: Page number. per_page: Results per page.

get_solution_folder_by_idB

View a specific solution folder.

Args: folder_id: The folder ID.

create_solution_folderA

Create a new solution folder.

Args: category_id: Parent category ID. name: Folder name. description: Folder description. visibility: 1=All, 2=Logged-in users, 3=Agents only.

get_solution_articlesA

List all solution articles in a folder.

Args: folder_id: The parent folder ID. page: Page number. per_page: Results per page.

get_solution_article_by_idC

View a specific solution article.

Args: article_id: The article ID.

create_solution_articleA

Create a new solution article.

Args: folder_id: Parent folder ID. title: Article title. description: Article body (HTML supported). status: 1=Draft, 2=Published. article_type: 1=Permanent, 2=Workaround. tags: Optional list of tags.

search_solution_articlesB

Search solution articles by keyword.

Args: search_term: Text to search for in articles.

get_problemsA

List all problems with pagination.

Args: page: Page number. per_page: Results per page (max 100).

get_problem_by_idB

Retrieve a single problem by ID.

Args: problem_id: The problem ID.

create_problemB

Create a new problem.

Args: subject: Problem subject. description: Problem description (HTML). requester_id: Requester ID. priority: 1=Low, 2=Medium, 3=High, 4=Urgent. impact: 1=Low, 2=Medium, 3=High. status: 1=Open, 2=Change Requested, 3=Closed. group_id: Agent group ID. custom_fields: Custom fields.

get_departmentsB

List all departments.

Args: page: Page number. per_page: Results per page.

get_department_by_idB

View a specific department.

Args: department_id: The department ID.

get_locationsC

List all locations.

Args: page: Page number. per_page: Results per page.

get_softwareB

List all software entries.

Args: page: Page number. per_page: Results per page.

get_software_by_idC

View a specific software entry.

Args: software_id: The software ID.

get_vendorsA

List all vendors.

Args: page: Page number. per_page: Results per page.

get_service_catalog_itemsB

List all service catalog items.

Args: page: Page number. per_page: Results per page.

get_service_catalog_itemB

View a specific service catalog item.

Args: item_id: The service catalog item ID.

get_announcementsA

List all announcements.

Args: page: Page number. per_page: Results per page.

get_contractsB

List all contracts.

Args: page: Page number. per_page: Results per page.

get_contract_by_idC

View a specific contract.

Args: contract_id: The contract ID.

get_purchase_ordersB

List all purchase orders.

Args: page: Page number. per_page: Results per page.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/matthewlboyd/freshservice-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server