Crazy Egg Model Context Protocol (MCP) Connector

The Crazy Egg MCP server lets you use Crazy Egg directly from AI assistants and agent tools like Claude, ChatGPT, Cursor, and VS Code. Once connected, your AI assistant can start conversations with the Crazy Egg harness, send it requests, and retrieve results — all without leaving your chat or editor.

Server URL:

https://mcp.crazyegg.com/mcp

The server uses the Model Context Protocol (MCP), an open standard supported by most major AI clients, over streamable HTTP.

Before you connect: a note on access and permissions

When you connect the MCP server, you log in with a Crazy Egg account. The connection can do anything that account can do. The AI assistant acts as that user — so it sees the same data and can take the same actions the user could take by logging into Crazy Egg directly.

This matters because AI assistants can take actions on your behalf. If you connect using your owner or admin account, the assistant has full access to your Crazy Egg data and can perform potentially destructive actions (for example, changing settings or deleting things) — the same as if someone were signed in as you.

Consider connecting with a limited-permission user instead. A simple way to stay safe is to create a separate Crazy Egg user with only the permissions you actually need, and connect with that user rather than your main account. For example:

  • Create a read-only user if you only want the assistant to look at data and reports, not change anything. This is the safest option for most people.
  • Create a user with access to only the sites or features the assistant needs, so it can’t reach the rest of your account.

You can create these users in your Crazy Egg account settings, then use that user’s login when you complete the connection steps below. You can revoke access at any time by removing the connector in your client’s settings, and you can also disable or delete the user in Crazy Egg.

Authentication

The server uses OAuth with Dynamic Client Registration (DCR). You don’t need an API key or any manual credential setup:

  1. Add the server URL to your client (steps per client below).
  2. Your client opens a browser window to Crazy Egg.
  3. Log in with your existing Crazy Egg account (if you aren’t already logged in) and approve the connection.
  4. You’re returned to your client, now connected.

Access is scoped to your Crazy Egg account. You can revoke access at any time from your client’s connector/MCP settings.

Connecting from your client

Claude.ai (web and mobile)

  1. Go to Settings → Connectors.
  2. Click Add custom connector.
  3. Enter a name (e.g. Crazy Egg) and the server URL: https://mcp.crazyegg.com/mcp.
  4. Click Add, then Connect, and complete the Crazy Egg login in the browser window that opens.
  5. In a chat, make sure the Crazy Egg connector is enabled. Go to the “+” button in the lower-left hand side of the chat and then to the Connectors submenu.

Claude Desktop

Claude Desktop shares the same Connectors settings as Claude.ai:

  1. Open Settings → Connectors.
  2. Click Add custom connector and enter https://mcp.crazyegg.com/mcp.
  3. Click Connect and complete the browser login.

Claude Code

Run the following in your terminal:

claude mcp add --transport http crazyegg https://mcp.crazyegg.com/mcp

Then, inside a Claude Code session, run /mcp and select crazyegg to authenticate. A browser window will open for the Crazy Egg login.

Cursor

Open Cursor Settings → MCP and choose Add new MCP server, or edit ~/.cursor/mcp.json (or .cursor/mcp.json in your project) directly:

{
  "mcpServers": {
    "crazyegg": {
      "url": "https://mcp.crazyegg.com/mcp"
    }
  }
}

Cursor will prompt you to authenticate; complete the login in your browser.

VS Code (GitHub Copilot)

Open the Command Palette and run MCP: Add Server, choose HTTP, and enter the server URL. Or add it to .vscode/mcp.json in your workspace:

{
  "servers": {
    "crazyegg": {
      "type": "http",
      "url": "https://mcp.crazyegg.com/mcp"
    }
  }
}

Start the server from the MCP view or when prompted, and complete the browser login.

ChatGPT

In ChatGPT, custom MCP connections are called Apps (ChatGPT renamed “connectors” to “apps”). Adding your own requires a paid plan that supports apps and Developer mode to be enabled; on Business and Enterprise/Edu workspaces, an admin may need to enable it.

  1. Go to Settings → Apps.
  2. Open Advanced settings and enable Developer mode (this is what lets you add custom apps).
  3. Back on the Apps screen, click Create (this button only appears when Developer mode is on).
  4. Enter a name (e.g. Crazy Egg) and the server URL: https://mcp.crazyegg.com/mcp, with OAuth as the authentication method.
  5. Check the box acknowledging the risks of custom apps, then click Create.
  6. Complete the Crazy Egg login when prompted, then enable the app in your conversation’s tools menu.

Windsurf

Add the server to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "crazyegg": {
      "serverUrl": "https://mcp.crazyegg.com/mcp"
    }
  }
}

Refresh your MCP servers in Windsurf and complete the browser login when prompted.

Gemini CLI

Add the server to ~/.gemini/settings.json:

{
  "mcpServers": {
    "crazyegg": {
      "httpUrl": "https://mcp.crazyegg.com/mcp"
    }
  }
}

Restart Gemini CLI and run /mcp auth crazyegg to complete the browser login.

Perplexity

Custom remote connectors are available on Perplexity’s paid plans (Pro, Max, and Enterprise). On Enterprise, an admin may first need to allow members to add custom connectors.

  1. Open your Account settings → Connectors (orAll settings), then click + Add custom connector.
  2. Enter a name (e.g. Crazy Egg) and the MCP server URL: https://mcp.crazyegg.com/mcp. Under Advanced settings, set Transport to Streamable HTTPand Authentication to OAuth.
  3. Check the box acknowledging the risks of custom connectors, then click Add.
  4. Click the connector card to start the authentication flow, and complete the Crazy Egg login in your browser.
  5. In a prompt thread, open the + menu and make sure the Crazy Egg connector is enabled.

Microsoft Copilot

Microsoft 365 Copilot connects to custom MCP servers through Copilot Studio, where you add the server as a tool on an agent. (There’s no paste-a-URL box in the standalone Copilot chat — it goes through Copilot Studio, and your tenant admin may need to permit custom MCP servers.)

  1. In Copilot Studio, open (or create) an agent and go to the Tools page.
  2. Select Add a tool → New tool → Model Context Protocol.
  3. Enter a name (e.g. Crazy Egg) and the server URL: https://mcp.crazyegg.com/mcp, using the Streamable HTTP transport and OAuth for authentication. Then create the tool.
  4. Create a connection when prompted and complete the Crazy Egg login, then select Add and configure to add the server to your agent.
  5. Publish the agent (and make it available in the Microsoft 365 Copilot channel) so you can use it in Copilot.

Other clients

Any MCP client that supports remote servers over streamable HTTP with OAuth should work. Add https://mcp.crazyegg.com/mcp as a remote/HTTP MCP server and complete the browser login when prompted. Because the server supports Dynamic Client Registration, no client ID or secret needs to be configured.

Available tools

Once connected, your AI assistant has access to the following tools. You generally don’t need to call these yourself — describe what you want in plain language and the assistant will use them — but knowing what’s available helps you understand what’s possible.

Chat lifecycle

ToolDescription
ce_chat_startStarts a new Crazy Egg harness chat, creating a conversation. Returns a chatId that must be passed to all subsequent chat tools. Optional: harnessId (default "default"), requestId.
ce_chat_messageSends a user message to an existing chat. Requires chatId and message. Optional: harnessIdcursor (sequence cursor from a prior poll, for incremental polling after sending), requestId.
ce_chat_pollPolls a chat for progress updates. Returns new completed entries after the cursor, plus active_step for in-progress work. Call repeatedly until processing_status is "idle". Requires chatId. Optional: cursor (default 0).

Chat inspection and history

ToolDescription
ce_chat_listLists Crazy Egg chats for a harness. Use this to discover chatIds. Optional: harnessIdlimitcursor.
ce_chat_retrieveRetrieves the full history for an existing chat. Requires chatId.
ce_chat_list_stepsLists all steps for an existing chat. Requires chatId.
ce_chat_get_latest_stepGets only the latest step for an existing chat. Requires chatId.

Low-level API

ToolDescription
ce_harness_requestMakes a raw HTTP request to the Crazy Egg harness API directly. Optional: method (default "POST"), path (e.g. /chats/files/:id/download-url), bodyheadersquery. Intended for advanced use cases not covered by the higher-level tools.

How a typical request flows

When you ask your assistant to do something with Crazy Egg, it will typically:

  1. Start a chat with ce_chat_start to get a chatId.
  2. Send your request with ce_chat_message.
  3. Poll for progress with ce_chat_poll, repeating until processing_status is "idle".
  4. Inspect the results with ce_chat_retrieve or ce_chat_list_steps.

Follow-up questions can be sent to the same chat, so context is preserved across a conversation.

Example prompts

  • “Start a new Crazy Egg chat and ask it to …”
  • “List my recent Crazy Egg chats.”
  • “What was the result of my last Crazy Egg chat?”
  • “Continue chat <chatId> and ask a follow-up: …”

Troubleshooting

The OAuth login window never appears. Check that your browser isn’t blocking pop-ups, and that you triggered authentication from the client (for example /mcp in Claude Code, or the Connect button in Claude.ai).

Authentication succeeded but tools don’t appear. Some clients require you to enable the connector per-conversation, restart the client, or refresh the server list after connecting.

“Unauthorized” or expired-session errors. Disconnect and reconnect the server in your client’s settings to re-run the OAuth flow.

A chat seems stuck. Ask your assistant to poll the chat again (ce_chat_poll) — long-running work reports progress through active_step and is finished when processing_status is "idle".

If you’re still having trouble, contact Crazy Egg support and include the client you’re using and any error message shown.

Was this article helpful?

Related Articles

Submit a request