Managing Freshservice with Claude using MCP

The Problem

Freshservice doesn’t currently have a publicly available MCP server.

I built a Freshservice MCP server to solve this. It lets you manage Freshservice entirely through Claude, using plain English. No more hunting through menus or consulting API docs.

What is MCP?

MCP (Model Context Protocol) is Anthropic’s open standard for connecting AI models to external tools and data sources. Think of it as a plugin system for Claude. You run a local server that exposes a set of tools, point Claude at it, and suddenly Claude can take real actions on your behalf — creating tickets, updating records, searching assets — rather than just describing how to do it.

What Can It Do?

The server exposes 62 tools across pretty much everything Freshservice offers:

Instead of clicking through five screens to find all open P1 tickets assigned to your team, you just ask Claude to do it.

Setup

Prerequisites

Claude Code

This is the simplest path if you’re already using Claude Code:

claude mcp add freshservice --scope local \
  --env FRESHSERVICE_APIKEY=<your-api-key> \
  --env FRESHSERVICE_DOMAIN=<your-domain.freshservice.com>

Using --scope local keeps your credentials in a gitignored file, which is the right call.

Claude Desktop

Clone the repo and run the install script on macOS:

git clone https://github.com/matthewlboyd/freshservice-mcp
cd freshservice-mcp
./install.sh

Or manually add the following to your Claude config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "freshservice": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/freshservice-mcp",
        "run", "freshservice-mcp"
      ],
      "env": {
        "FRESHSERVICE_APIKEY": "<your-api-key>",
        "FRESHSERVICE_DOMAIN": "<your-domain.freshservice.com>"
      }
    }
  }
}

Restart Claude Desktop after editing the config and you should see the Freshservice tools available.

Behind a Corporate Proxy?

If your organization does SSL inspection (see my post on Zscaler), you may need to point the server at your CA bundle:

SSL_CERT_FILE=/path/to/your/ca-bundle.crt

Add that as another --env argument or drop it into the JSON config.

Using It

Once connected, you can just talk to Claude naturally. A few examples of what this unlocks:

It handles the API calls, pagination, and filtering under the hood. You just describe what you want.

Wrapping Up

The full source and issue tracker are at github.com/matthewlboyd/freshservice-mcp. The project includes a test suite covering all 62 tools with mocked HTTP calls, so you can run tests without needing a real Freshservice account. If you run into issues or want to add support for an endpoint I missed, PRs are welcome.