Resources

Products

Model Context Protocol (MCP) integration in Freshservice (EAP)

Modified on: Thu, 14 May, 2026 at 11:37 AM

The Freshworks Model Context Protocol (MCP) server enables AI tools like Cursor and Claude to securely connect and interact with Freshservice. The MCP server acts as middleware to expose specific capabilities, such as creating tickets, by using public APIs and supported authentication methods. Freshservice supports API key and OAuth authentication for MCP integration requests.

This article provides details about supported MCP integrations and how to configure them in your AI tools.

TABLE OF CONTENTS


Supported plans and limits

Applicable plans: Freshservice Enterprise

ImportantFreshworks MCP integration is currently in Beta and available through an Early Access Program (EAP) for selected customers on the Enterprise plan. To request access to this feature, contact your technical account manager or email the support team at support@freshservice.com.


Access requirements: MCP integration in Freshservice is accessible only to users with administrator and agent privileges.

Integration limits: The following limits apply during the early access period. These limits are subject to change and may incur charges after general availability.

Plan


Tool calls per minute


Tool calls (actions) per month


Tool permissions


Enterprise

100  

5000 

Full tool access 


Supported MCP integrations

Freshservice currently supports MCP integration for the following AI tools:

Set up MCP integration with Claude Connector

Custom connectors allow Claude to interact with external tools and data sources. Use this method if you need to authorize requests using OAuth.

Prerequisites

Before you begin, ensure you have the following:

  • An active Claude account.

  • The Freshservice MCP URL.


Create an MCP connection

To use the Connector to connect Claude to your MCP server, follow these steps:

  1. In Claude, go to Settings > Connectors.

  2. Click Add custom connector.

  3. In the Add custom connector dialog:

    1. Enter a name for the connector.

    2. Enter the Freshservice MCP URL. For example, https://<your-freshservice-domain>/mcp

    3. Click Add.

  4. Click Connect.

  5. When redirected to the Freshservice authorization page, complete the authentication steps.

Configure button appears next to your connector name once the setup is successful.

Verify the connection

  1. On the Connectors page, select Configure next to your connector.

  2. Review the list of available tools.

  3. (Optional) For each tool, set the desired permission level: Always allowNeeds approvalBlocked, or Custom.

  4. To test, open the chat interface and enter a prompt.

    Tip: If you have multiple connectors, specify the name in your prompt. For example: "Use the FS production connector to fetch a list of unresolved tickets.


After you establish the MCP connection, you can invoke MCP tools using Claude on the web, Claude Code, or Claude Desktop.



Set up MCP integration with Claude Code

Connect and verify the MCP server within the Claude Code editor. After the setup is complete, Claude Code can use tools exposed by the MCP server directly within the editor.

Prerequisites

Before you begin, ensure you have the following:

  • The Claude Code app installed.
  • An active Claude account.

  • The Freshservice MCP URL.


Method 1: Connect using OAuth

To connect Claude Code to your MCP server, register the server using the stdio transport.

Run the following command in your terminal to register the Freshservice MCP server:

claude mcp add my-remote-server --transport stdio -- npx -y mcp-remote https://<your-freshservice-domain>/mcp

Expected Output:

The studio MCP server, designated as my-remote-server, has been successfully incorporated into the local configuration via the command: npx -y mcp-remote https://<domain>/mcp.

The modification was applied to the file located at: /Users/<username>/.claude.json within the project path: /Users/<username>.

Verify the connection

After adding the server, perform a two-step verification to ensure the proxy is established and the server status is active.

  1. Run the following mcp-remote command to trigger the discovery and authentication flow to test the remote connection directly:

    npx -y mcp-remote https://<your-freshservice-domain>/mcp

Expected output:

[xxxxx] Using existing client port: 13757

[xxxxx] Discovering OAuth server configuration...

[xxxxx] Discovered authorization server: https://umang-confluence.freshcmdb.com

[xxxxx] Connecting to remote server: https://umang-confluence.freshcmdb.com/mcp

[xxxxx] Using transport strategy: http-first

[xxxxx] Connected to remote server using StreamableHTTPClientTransport

[xxxxx] Local STDIO server running

[xxxxx] Proxy established successfully between local STDIO and remote StreamableHTTPClientTransport


  1. Use the following get command to confirm the server is listed as connected within the application:

    claude mcp get my-remote-server

    Expected output:

my-remote-server:

  Scope: Local config (private to you in this project)

  Status: ✓ Connected

  Type: stdio

  Command: npx

  Args: -y mcp-remote https://umang-confluence.freshcmdb.com/mcp

  Environment:


Method 2: Connect using an API key (OAuth alternative)

If you are using an API key instead of OAuth, run the following command in your terminal:

claude mcp add my-remote-server --transport http https://<your-freshservice-domain>/mcp --header "Authorization: <api-key>"

Expected Output:

Added HTTP MCP server my-remote-server with URL: https://<your-freshservice-domain>/mcp to local config

Headers: {

  "Authorization": "<api-key>"

}

File modified: /Users/<username>/.claude.json [project: /Users/pmm]


Verify the connection

Run the following get command to confirm the server is listed as connected within the application:

claude mcp get my-remote-server

Expected output:

my-remote-server:

  Scope: Local config (private to you in this project)

  Status: ✓ Connected

  Type: http

  URL: https://<domain>/mcp

  Headers:

    Authorization: <api-key>



Set up MCP integration with Claude Desktop

Connect and verify the MCP server within the Claude Desktop editor. After the setup is complete, Claude Desktop can use tools exposed by the MCP server directly within the editor.

Prerequisites

Before you begin, ensure you have the following:

  • The Claude Desktop app installed.
  • An active Claude account.

  • The Freshservice MCP URL.


Create an MCP connection

To connect Claude Desktop to your MCP server, follow these steps:

  1. Open Claude Desktop and go to Claude > Settings > Developer.

  2. Select Edit Config. The claude_desktop_config.json file opens in your system's default text editor.

  3. Copy and paste the following JSON configuration into the file. If other servers are already listed, add this as a new entry in the mcpServers object without making any changes to preferences or other objects in the JSON file.

    Note: Replace <mcp-url> with your specific server URL (for example, https://<your-freshservice-domain>/mcp).

{

  "mcpServers": {

    "freshservice": {

      "command": "npx",

      "args": [

        "-y",

        "mcp-remote",

        "<mcp-url>"

      ]

    }

  }

}

  1. Save the file and close the text editor.

  2. Exit Claude Desktop by right-clicking the icon in the taskbar (Windows) or menu bar (macOS) and selecting Quit.

  3. Relaunch Claude Desktop.

  4. Follow the authentication prompts in your browser. After successful authentication, you can verify the connection status under Claude > Settings > Developer..


Set up the MCP integration with Cursor

Connect and verify the MCP server within the Cursor editor. After the setup is complete, Cursor can use tools exposed by the MCP server directly within the editor.

Prerequisites

Before you begin, ensure you have the following:

  • The Cursor app installed.
  • An active Cursor account.

  • The Freshservice MCP URL.


Create an MCP connection

To connect Cursor to the MCP server, add the server details to your application configuration file.

  1. Open Cursor and go to the root folder of your project or user home directory for global configuration.

  2. Create or update the .cursor/mcp.json file.

  3. Add the following JSON object to the file:

    Schema

  {

  "mcpServers": {

    "<name of the object>": {

      "type": "http",

      "url": "https://<your-freshservice-domain>/mcp"

      "headers": {

           "Authorization": "<API_KEY>"

      }

    }

  }

}



Sample configuration using OAuth


{

  "mcpServers": {

    "freshservice": {

      "type": "http",

      "url": "https://<your-freshservice-domain>/mcp"

    }

  }

}


Sample configuration using API key

{

  "mcpServers": {

    "freshservice": {

      "type": "http",

      "url": "https://<your-freshservice-domain>/mcp",

      "headers": {

       "Authorization": "<API-KEY>"

      }

    }

  }

}



The following table describes the attributes used to configure the MCP server:


Attribute name

Description

mcpServers

List of all MCP servers to which the Cursor should connect.

Attribute of the mcpServers object

<name_of_the_MCP_object>

The unique name for your MCP server object.

Attribute of the <name_of_the_MCP_object> object

type

The protocol used by the MCP client to communicate with the MCP server.

url

The endpoint used by the MCP client to connect to your MCP server.

headers (optional)

Custom HTTP headers that the MCP client must send when connecting to your MCP server.


Note: As a best practice, use OAuth 2.0. If you are not using OAuth, you must include an "Authorization": "<YOUR_API_KEY>" attribute in the configuration, replacing the placeholder with your Freshservice API key.


    

Verify the configuration

After you save the configuration file, follow these steps to verify that Cursor can access the server and its tools:

  1. In Cursor, go to View > Command Palette

  2. Enter View: Open MCP Settings and select it from the list.

  3. On the Tools page, locate the Installed MCP Servers section and verify your server name appears.

  4. Click Connect to initiate the OAuth flow.

  5. Once authenticated, expand the server card to view available tools.

Once the connection is established, Cursor automatically retrieves the tools. You can invoke them through natural language prompts or allow Cursor to suggest them based on your current task.

If the server is offline or the configuration is incorrect, Cursor displays an error message provided by the MCP server in the settings view.


Set up MCP integration with Microsoft Copilot Studio

Connect and verify the MCP server within the Microsoft Copilot Studio editor. After the setup is complete, Microsoft Copilot Studio can use tools exposed by the MCP server directly within the editor.

Prerequisites 

Before you begin, ensure you have the following:

  • Access to Microsoft Copilot Studio.

  • An active Microsoft Copilot Studio account.

  • An existing agent created within Microsoft Copilot Studio.

  • The Freshservice MCP URL.


Create an MCP connection

To link Copilot Studio to your MCP server, follow these steps:

  1. In the Copilot Studio dashboard, select Agents from the left navigation pane.

  2. Select your agent from the list.

  3. Open the Tools page for the agent.

  4. Click + Add a tool at the top left of the page.
    The 
    Add tool window appears.

  5. Select + New tool > Model Context Protocol.
    The 
    Add a Model Context Protocol server window appears.

  6. Enter the following details:

    • Server name: Enter a name for the server.

    • Server description: Provide a short description of why the server is required.

    • Server URL: Enter the endpoint where the MCP client can reach your MCP server. For example, https://<your-freshservice-domain>/mcp.

    • Authentication: Select the authentication mode. As a best practice, choose OAuth 2.0 > Dynamic discovery.

  7. Click Create.
    After successful creation, the 
    Add tool window appears to configure the connection.

  8. In the Connection dropdown, you will see No connections available.
    Click the dropdown and select 
    Create new connection > Create.

  9. In the authorization window, select your account name and click Continue.

  10. After authorization succeeds, click Add and configure on the Add tool window.

You are redirected to the page for the newly created tool. Under the Tools section, you can view the list of available tools. 

Verify the MCP connection

To confirm that your agent is actively connected to the Freshworks MCP server, follow these steps:

  1. Go to your agent in Copilot Studio by selecting Agents and choosing the agent you want to verify.
    The agent overview page opens.

  2. Select Settings to open the agent settings page.

  3. In the left navigation pane, select Connection Settings.
    A table displays all connections associated with your agent.

  4. For the newly configured connection, if the status is Not connected, click Connect.
    The 
    Create or pick a connection window appears.

  5. Select the newly created connection and click Submit.

The status updates to Connected once the link is successfully established.



Set up MCP integration with Visual Studio Code

Connect and verify the MCP server within the Visual Studio Code editor. After the setup is complete, Visual Studio Code can use tools exposed by the MCP server directly within the editor.

Prerequisites

Before you begin, ensure you have the following:

  • The Visual Studio Code app installed.
  • The MCP extension for VS Code installed.

  • The Freshservice MCP URL.


Method 1: Connect using OAuth

To integrate the MCP server into your VS Code environment using OAuth, follow these steps:

  1. Open the Command Palette by pressing Ctrl+Shift+P (Windows) or Cmd+Shift+P (macOS).

  2. Enter and select MCP: Add Server....

  3. In the Select Type prompt, choose HTTP (HTTP or Server-Sent Events).

  4. In the Enter URL field, enter your MCP server URL (for example, https://<your-freshservice-domain>/mcp).

  5. In the Server ID prompt, press Enter to accept the auto-generated ID or enter a custom name for the server.

  6. Select a Configuration Target:

  • Global: The server is available across all VS Code windows.

  • Workspace: The server is only available for the current project.

Authenticate the connection

Once the server details are defined, follow these steps to authorize VS Code to access the server.

  1. When the HTTP authentication popup appears, select Allow.

  2. Your default browser opens. Enter your credentials and authorize access for VS Code.

  3. After you are redirected back to VS Code, the server is ready to use.


Method 2: Connect using an API key (OAuth alternative)

To integrate the MCP server into your VS Code environment using an API key, follow these steps:

  1. Open the Command Palette and select MCP: Open User Configuration.

  2. In the mcp.json file, add your server details to the servers object:
    {

    "servers": {

        "my-remote-server": {

            "type": "http",

            "url": "https://<your-freshservice-domain>/mcp",

            "headers": {

                "Authorization": "<api-key>"

            }

        }

    }

}

  1. Save the file.

  2. Select the Start button that appears above the my-remote-server entry to initialize the connection.

The following output appears to confirm the server is active:

Verify the configuration

After setting up your connection, you can confirm the server is running using either of the following methods:

  • View active servers: Open the Command Palette and select MCP: List Servers. Ensure your Freshservice server is listed as active.

  • Review raw config: Open your mcp.json file to verify the server details and configuration target.

You can now run MCP-specific commands directly within your VS Code terminal or command palette to interact with Freshservice data.


Troubleshoot issues


Issue: Connection failures

If the connection verification fails, check the following:

  • Network: Check your active internet connection and VPN status.

  • URL Accessibility: Open https://<domain>/mcp in your browser to ensure the endpoint is live.

  • Node Environment: Ensure npx is installed correctly by running npx -v in your terminal.

Issue: Authentication errors in Claude

If you encounter OAuth errors during setup, try the following:

  • Session context: Ensure you run the /mcp command from within an active Claude Code session.

  • Prompt expiration: Complete the browser-based authentication prompt immediately. Authentication links are time-sensitive and will expire if not used.

  • Account permissions: Verify that your developer account has the required permissions for the tools you are attempting to access.


List of available tools

The following table lists the tools provided by Freshworks MCP server for Freshservice.


Resource

Tool

Description

Ticket

fetchTickets

Get all the existing tickets. 

Ticket

fetchTicket

Get a single ticket using its ID.


Ticket

createTicket

Create a new ticket.

Ticket

updateTicket

Update an existing ticket.

Ticket

createTicketNote

Add a note to a ticket.

Asset

fetchAssets

Get all the existing assets.

Asset

fetchAsset

Get a single asset by its ID.


Asset

createAsset

Create a new asset.

Asset

updateAsset

Update an existing asset.

Users & Agents

fetchAgents

Get agents associated with the account.


Users & Agents

fetchAgent

Get a particular agent.

Users & Agents

fetchRequesters

Get requesters associated with the account.

Users & Agents

fetchRequester

Get a particular requester.

Onboarding & Offboarding

fetchOnboardingRequest

Get an onboarding request.

Onboarding & Offboarding

fetchOnboardingRequestForm

Get details on the onboarding form fields.

Onboarding & Offboarding

createOnboardingRequest

Create an onboarding request


Onboarding & Offboarding

fetchOffboardingRequests

Get details of all offboarding requests.

Onboarding & Offboarding

createOffboardingRequest

Create an offboarding request

Onboarding & Offboarding

fetchOffboardingRequestTickets

Get details of all the offboarding tickets.

Service Catalog

placeRequestServiceCatalogItem

Create a request for a service catalog item

Service Catalog

fetchServiceCatalogItemSearch

Search for service items from the service catalog for a given search term.

Service Catalog

fetchServiceCatalogItem

Get details of a particular service catalog item.

Service Catalog

fetchServiceCatalogItems

Get details of all service catalog items.

Solution Category

fetchSolutionCategories

Get a list of all categories.

Solution Category

fetchSolutionCategory

Get details of a particular category.

Solution Folder

fetchSolutionFolders

Get details of all folders in category.

Solution Folder

fetchSolutionFolder

Get details of a particular folder.

Solution Folder

createSolutionFolder

Create a folder.

Solution Article

fetchSolutionArticles

Get details of all articles available in a folder.

Solution Article

fetchSolutionArticle

Get details of a particular article.

Solution Article

createSolutionArticle

Create an article.

Solution Article

updateSolutionArticle

Update an existing article.

Solution Article

fetchSolutionArticleSearch

Search for articles based on the given search term.

Workspace

fetchWorkspaces

Get details of all workspaces.



Pagination in MCP

When an MCP tool returns many results, such as a list of solution articles, sending the entire payload at once can exceed token limits or cause the LLM to truncate the data. Large payloads can also slow down response times and reduce the accuracy of the AI.

To prevent this, the MCP server uses pagination to deliver results in smaller, manageable batches. This ensures the LLM processes information efficiently while staying within its operational limits.

The pagination process provides the following benefits:

  • Automatic processing: The MCP client and the LLM handle subsequent data requests automatically using the nextCursor parameter.

  • No manual configuration: You don't need to manage page numbers, cursors, or page sizes manually.

  • Optimized performance: Smaller response batches ensure more reliable processing and faster response times from the AI tool.


Example prompts

You can use the following prompts to interact with the Freshservice MCP server through your AI tool. These are samples only; you can modify them to suit your specific requirements.

  • Manage tickets:

    • "Get all open tickets assigned to me."

    • "Show details for ticket 10234."

    • "Add an internal note to ticket 1023: 'The issue is caused by a sudden router reboot.'"

  • Use the service catalog:

    • "Search the service catalog for 'laptop'."

    • "Request a software installation for Zoom for john@acme.com."

  • Search the knowledge base:

    • "Find solution articles for 'VPN issue'."

    • "Get all articles in the 'Laptop Issues' folder."


Frequently Asked Questions (FAQs)

What are the prerequisites for OAuth-based MCP integration?

Before you begin, ensure you have a Freshworks Developer account.

If you do not have an account, contact your organization's administrator to request account creation before proceeding with the integration.

How do I view my registered AI clients?

To see a list of your registered AI clients,

  1. Go to your Freshservice account.

  2. Click the Marketplace Apps icon in the top-right corner and select Developer Portal.

  3. Select your developer account.

  4. On the Freshworks Developer page, click the Settings (gear) icon next to your profile icon.

  5. Go to the OAuth Credentials section and select View existing OAuth credentials.

    Note: Client registration is managed at the account level, not the individual user level.

How do I revoke OAuth access for an MCP client?

If you need to revoke access for a specific client, follow these steps:

  1. Go to your Freshservice account, click your profile icon in the upper-right corner, and select Profile settings.

  2. On the Edit Profile page, click Modify Personal Information.

  3. Go to the Manage Third-party Apps tab.

  4. In the relevant OAuth card, click Revoke.



Are OAuth credentials managed individually?

No. OAuth client registration is managed at the account level. This ensures that permissions and integrations remain consistent across the entire organization.