Last updated: 2026-05-14

Source: https://support.freshservice.com/support/solutions/articles/50000012678-model-context-protocol-mcp-integration-in-freshservice-eap

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.

Supported plans and limits

Applicable plans: Freshservice Enterprise

``` Important: Freshworks 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.

PlanTool calls per minuteTool calls (actions) per monthTool permissions
Enterprise1005000Full tool access

Supported MCP integrations

Freshservice currently supports MCP integration for the following AI tools:

  • Claude Connector
  • Claude Code
  • Claude Desktop
  • Cursor
  • Microsoft Copilot Studio
  • Visual Studio Code
  • 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.

    A 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 allow, Needs approval, Blocked, 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

    2. 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>"\ \ \]

    }

    }

    }

    4. Save the file and close the text editor.

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

    6. Relaunch Claude Desktop.

    7. 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 nameDescription
    mcpServersList 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
    typeThe protocol used by the MCP client to communicate with the MCP server.
    urlThe 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.<br>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:

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

    02. Select your agent from the list.

    03. Open the Tools page for the agent.

    04. Click \+ Add a tool at the top left of the page.

    The Add tool window appears.

    05. Select \+ New tool > Model Context Protocol.

    The Add a Model Context Protocol server window appears.

    06. 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. 07. Click Create.

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

    08. In the Connection dropdown, you will see No connections available.

    Click the dropdown and select Create new connection > Create.

    09. 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>"

    }

    }

    }

    }

    3. Save the file.

    4. 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.

    ResourceToolDescription
    TicketfetchTicketsGet all the existing tickets.
    TicketfetchTicketGet a single ticket using its ID.
    TicketcreateTicketCreate a new ticket.
    TicketupdateTicketUpdate an existing ticket.
    TicketcreateTicketNoteAdd a note to a ticket.
    AssetfetchAssetsGet all the existing assets.
    AssetfetchAssetGet a single asset by its ID.
    AssetcreateAssetCreate a new asset.
    AssetupdateAssetUpdate an existing asset.
    Users & AgentsfetchAgentsGet agents associated with the account.
    Users & AgentsfetchAgentGet a particular agent.
    Users & AgentsfetchRequestersGet requesters associated with the account.
    Users & AgentsfetchRequesterGet a particular requester.
    Onboarding & OffboardingfetchOnboardingRequestGet an onboarding request.
    Onboarding & OffboardingfetchOnboardingRequestFormGet details on the onboarding form fields.
    Onboarding & OffboardingcreateOnboardingRequestCreate an onboarding request
    Onboarding & OffboardingfetchOffboardingRequestsGet details of all offboarding requests.
    Onboarding & OffboardingcreateOffboardingRequestCreate an offboarding request
    Onboarding & OffboardingfetchOffboardingRequestTicketsGet details of all the offboarding tickets.
    Service CatalogplaceRequestServiceCatalogItemCreate a request for a service catalog item
    Service CatalogfetchServiceCatalogItemSearchSearch for service items from the service catalog for a given search term.
    Service CatalogfetchServiceCatalogItemGet details of a particular service catalog item.
    Service CatalogfetchServiceCatalogItemsGet details of all service catalog items.
    Solution CategoryfetchSolutionCategoriesGet a list of all categories.
    Solution CategoryfetchSolutionCategoryGet details of a particular category.
    Solution FolderfetchSolutionFoldersGet details of all folders in category.
    Solution FolderfetchSolutionFolderGet details of a particular folder.
    Solution FoldercreateSolutionFolderCreate a folder.
    Solution ArticlefetchSolutionArticlesGet details of all articles available in a folder.
    Solution ArticlefetchSolutionArticleGet details of a particular article.
    Solution ArticlecreateSolutionArticleCreate an article.
    Solution ArticleupdateSolutionArticleUpdate an existing article.
    Solution ArticlefetchSolutionArticleSearchSearch for articles based on the given search term.
    WorkspacefetchWorkspacesGet 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.