> ## Documentation Index
> Fetch the complete documentation index at: https://docs.userpilot.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Userpilot MCP Server

> Connect AI assistants like Claude to your Userpilot account to explore analytics, look up users and companies, and create segments, reports, and surveys.

## Overview

The Userpilot MCP server connects AI assistants to your Userpilot account. Once connected, you can ask questions in plain language, such as "How did my signup funnel perform last month?", and the assistant reads the answer directly from your Userpilot data. You can also ask it to create things for you, such as segments, reports, dashboards, and survey drafts.

MCP (Model Context Protocol) is an open standard that AI tools use to talk to other products. Userpilot hosts the server for you: you connect from the AI tool you already use and sign in with your regular Userpilot login. There is nothing to install or configure inside Userpilot.

## Use Cases

* **Ask analytics questions**: "What's the completion rate of my onboarding funnel this quarter?" or "Show retention for users who used the export feature."
* **Explore users and companies**: "Which companies were most active this week?" or "Summarize this user's recent activity."
* **Build as you think**: "Create a segment of users who completed onboarding but never opened reports" or "Build a dashboard for my activation metrics."
* **Draft surveys**: "Draft a short survey asking users why they canceled." You review and publish it in Userpilot.
* **Look things up while you work**: "What audience does the 'New user tour' flow target?" or "List the events we track on the checkout page."

## What you need

* A Userpilot account. The MCP server is available on all plans, and your plan's feature limits apply the same way they do in the app.
* An AI tool that supports remote MCP servers (sometimes called custom connectors), for example Claude, Claude Code, ChatGPT, Cursor, or Microsoft 365 Copilot.

The server address is:

```text theme={null}
https://mcp.userpilot.io/mcp
```

## Connect your AI tool

<Tabs>
  <Tab title="Claude">
    Custom connectors are available on paid Claude plans. On Team and Enterprise plans, a Claude admin adds the connector once for the organization; every member then connects it with their own Userpilot login.

    <Steps>
      <Step title="Add the connector (admin)">
        Open the account menu (your name, bottom left) and go to **Organization settings → Connectors** (under "Libraries & Access"). Click **+ Add → Custom → Web**.

        In the **Add custom connector** dialog, name it "Userpilot" and paste the server address above into **Remote MCP server URL**. Leave the Advanced settings fields empty — Userpilot registers automatically. Keep **Individual sign-in** switched on, then click **Add**.

        On a personal account, add the same connector under **Settings → Connectors** instead.
      </Step>

      <Step title="Sign in to Userpilot">
        Click **Connect** on the Userpilot connector. Your browser opens the Userpilot sign-in. Log in as you always do (SSO included). On team plans, each member does this once with their own login.
      </Step>

      <Step title="Choose permissions">
        Userpilot shows a permission screen. Tick the access you want to grant and approve.

        <Frame>
          <img src="https://mintcdn.com/userpilot/6zF71bmmLMTEchXr/images/mcp/permission-screen.png?fit=max&auto=format&n=6zF71bmmLMTEchXr&q=85&s=1515dda6ebb272e1b7eaaf7e524b6af7" alt="Choosing what the assistant can access" width="902" height="1162" data-path="images/mcp/permission-screen.png" />
        </Frame>

        <Check>
          Claude can now use Userpilot in your chats. You can toggle it per conversation from the tools menu.
        </Check>
      </Step>
    </Steps>
  </Tab>

  <Tab title="Claude Code">
    <Steps>
      <Step title="Add the server">
        ```bash theme={null}
        claude mcp add --transport http userpilot https://mcp.userpilot.io/mcp
        ```
      </Step>

      <Step title="Authenticate">
        Run `/mcp` inside Claude Code, select **userpilot**, and complete the browser sign-in and permission screen.

        <Check>
          Claude Code lists the Userpilot tools once the connection is active.
        </Check>
      </Step>
    </Steps>
  </Tab>

  <Tab title="ChatGPT">
    Custom connectors are available on paid ChatGPT plans and need developer mode switched on. On Business and Enterprise plans, a ChatGPT workspace owner may need to allow custom connectors first.

    <Steps>
      <Step title="Turn on developer mode">
        Open **Settings → Apps & Connectors → Advanced settings** and switch on **Developer mode**.

        <Frame>
          <img src="https://mintcdn.com/userpilot/6zF71bmmLMTEchXr/images/mcp/chatgpt-developer-mode.png?fit=max&auto=format&n=6zF71bmmLMTEchXr&q=85&s=6ce09616480d7f561cac2e61e9912207" alt="Turning on developer mode in ChatGPT settings" width="715" height="640" data-path="images/mcp/chatgpt-developer-mode.png" />
        </Frame>
      </Step>

      <Step title="Add the connector">
        Still under **Apps & Connectors**, create a new connector. Name it "Userpilot", paste the server address above into the **MCP Server URL** field, and choose **OAuth** as the authentication method.

        <Frame>
          <img src="https://mintcdn.com/userpilot/6zF71bmmLMTEchXr/images/mcp/chatgpt-add-connector.png?fit=max&auto=format&n=6zF71bmmLMTEchXr&q=85&s=0a57a3ec2b80468305f41e75cc364be0" alt="Adding the Userpilot connector in ChatGPT" width="481" height="808" data-path="images/mcp/chatgpt-add-connector.png" />
        </Frame>
      </Step>

      <Step title="Sign in and choose permissions">
        Save the connector. Your browser opens the Userpilot sign-in — log in as you always do, then tick the access you want to grant and approve.
      </Step>

      <Step title="Enable it in a chat">
        Open a new conversation and switch on the Userpilot connector from the composer's tools menu. For deep research, pick Userpilot as a source.

        <Frame>
          <img src="https://mintcdn.com/userpilot/6zF71bmmLMTEchXr/images/mcp/chatgpt-enable-in-chat.png?fit=max&auto=format&n=6zF71bmmLMTEchXr&q=85&s=e4a9b1fc050d773649bac5775d546332" alt="Switching on the Userpilot connector in a ChatGPT conversation" width="844" height="272" data-path="images/mcp/chatgpt-enable-in-chat.png" />
        </Frame>

        <Check>
          ChatGPT can now use Userpilot in that conversation.
        </Check>
      </Step>
    </Steps>

    ChatGPT's connector settings change often. If the menus no longer match, the parts that stay the same are: create a **custom MCP connector**, choose **OAuth**, and use the server address above.
  </Tab>

  <Tab title="Cursor">
    <Steps>
      <Step title="Add the server">
        Open **Cursor Settings → MCP → Add new MCP server**, or edit `~/.cursor/mcp.json` yourself:

        ```json theme={null}
        {
          "mcpServers": {
            "Userpilot": {
              "url": "https://mcp.userpilot.io/mcp"
            }
          }
        }
        ```

        If that file already exists, add the `userpilot` entry inside the existing `mcpServers` object rather than replacing the file, so your other servers stay. To use Userpilot in one project only, create `.cursor/mcp.json` in that project folder instead.
      </Step>

      <Step title="Reload Cursor">
        Restart Cursor, or refresh the list from **Settings → MCP**. The `userpilot` server appears there.

        <Frame>
          <img src="https://mintcdn.com/userpilot/6zF71bmmLMTEchXr/images/mcp/cursor-mcp-list.png?fit=max&auto=format&n=6zF71bmmLMTEchXr&q=85&s=9a5678e353fc8a348ef6554858451316" alt="The Userpilot server listed in Cursor's MCP settings" width="2096" height="510" data-path="images/mcp/cursor-mcp-list.png" />
        </Frame>
      </Step>

      <Step title="Sign in and choose permissions">
        Use the sign-in prompt on the `userpilot` entry. Your browser opens the Userpilot sign-in — log in as you always do, then tick the access you want to grant and approve.

        <Frame>
          <img src="https://mintcdn.com/userpilot/6zF71bmmLMTEchXr/images/mcp/cursor-permissions.png?fit=max&auto=format&n=6zF71bmmLMTEchXr&q=85&s=3264e027f560dd03adb39696319b6c3b" alt="Choosing Userpilot permissions when connecting from Cursor" width="886" height="1068" data-path="images/mcp/cursor-permissions.png" />
        </Frame>
      </Step>

      <Step title="Check the tools loaded">
        Back in **Settings → MCP**, the `userpilot` entry lists the Userpilot tools it can use.

        <Frame>
          <img src="https://mintcdn.com/userpilot/6zF71bmmLMTEchXr/images/mcp/cursor-tools.png?fit=max&auto=format&n=6zF71bmmLMTEchXr&q=85&s=fe1222c7a901dc843b5296b9c88437ff" alt="Userpilot tools loaded in Cursor" width="2098" height="376" data-path="images/mcp/cursor-tools.png" />
        </Frame>

        <Check>
          Cursor's agent can now use Userpilot in chat.
        </Check>
      </Step>
    </Steps>
  </Tab>

  <Tab title="Microsoft 365 Copilot">
    Connecting Userpilot to Microsoft 365 Copilot goes through **Microsoft Copilot Studio**, where you build and publish the agent that end users chat with.

    <Steps>
      <Step title="Create an agent">
        Sign in to [Copilot Studio](https://copilotstudio.microsoft.com/). On the **Home** page, under **Start building from scratch**, select **Create an agent**, then give it a name, for example "Userpilot".

        <Frame>
          <img src="https://mintcdn.com/userpilot/KrqTowuXyuKilH1d/images/mcp/copilot-studio-home.png?fit=max&auto=format&n=KrqTowuXyuKilH1d&q=85&s=e9b22e2c8f4d1d57ebb3721aa50cf3ce" alt="Creating a new agent from Copilot Studio's Home page" width="1025" height="603" data-path="images/mcp/copilot-studio-home.png" />
        </Frame>

        If your organization already has an agent you want to use instead, open it from **Agents** in the left navigation and skip to the next step.
      </Step>

      <Step title="Add the MCP tool">
        In the agent, select **Tools** in the left navigation, then **Add a tool** and **New tool**. Search for `Model Context Protocol` and select it, and the **Add a Model Context Protocol server** dialog opens.

        <Frame>
          <img src="https://mintcdn.com/userpilot/KrqTowuXyuKilH1d/images/mcp/copilot-studio-mcp-wizard.png?fit=max&auto=format&n=KrqTowuXyuKilH1d&q=85&s=28a9ec1a6e87b8faf4fa49d2a9cc3cb7" alt="Adding a new Model Context Protocol server in Copilot Studio" width="512" height="375" data-path="images/mcp/copilot-studio-mcp-wizard.png" />
        </Frame>

        Name it "Userpilot", write a short description, and paste the server address above into **Server URL**. Under **Authentication**, choose **OAuth 2.0**, then **Dynamic discovery**. Userpilot supports OAuth 2.0 dynamic client registration, so there's nothing else to configure.

        <Frame>
          <img src="https://mintcdn.com/userpilot/KrqTowuXyuKilH1d/images/mcp/copilot-studio-mcp-oauth-dynamic.png?fit=max&auto=format&n=KrqTowuXyuKilH1d&q=85&s=7b61aea40406093722f07b034980af45" alt="Choosing OAuth 2.0 with Dynamic discovery for the Userpilot MCP server" width="396" height="366" data-path="images/mcp/copilot-studio-mcp-oauth-dynamic.png" />
        </Frame>

        Select **Create**, then **Next**.
      </Step>

      <Step title="Sign in to Userpilot">
        On the **Add tool** dialog, select **Create a new connection**. Your browser opens the Userpilot sign-in: log in as you always do (SSO included), then tick the access you want to grant and approve.

        <Frame>
          <img src="https://mintcdn.com/userpilot/6zF71bmmLMTEchXr/images/mcp/permission-screen.png?fit=max&auto=format&n=6zF71bmmLMTEchXr&q=85&s=1515dda6ebb272e1b7eaaf7e524b6af7" alt="Choosing what the assistant can access" width="902" height="1162" data-path="images/mcp/permission-screen.png" />
        </Frame>

        Select **Add to agent** to finish.

        <Check>
          The Userpilot tool appears under the agent's **Tools** section.
        </Check>
      </Step>

      <Step title="Publish and add to Microsoft 365 Copilot">
        Select **Publish** at the top of the agent page, then **Publish** again to confirm.

        Go to **Channels**, select the **Teams and Microsoft 365 Copilot** tile, keep **Make agent available in Microsoft 365 Copilot Chat** checked, then select **Add channel**.

        <Frame>
          <img src="https://mintcdn.com/userpilot/KrqTowuXyuKilH1d/images/mcp/copilot-studio-publish-teams-m365.png?fit=max&auto=format&n=KrqTowuXyuKilH1d&q=85&s=c6378271ef4046d3bedc734df7733da6" alt="Enabling the Teams and Microsoft 365 Copilot channel for the agent" width="644" height="654" data-path="images/mcp/copilot-studio-publish-teams-m365.png" />
        </Frame>

        Once connected, open [Microsoft 365 Copilot](https://copilot.cloud.microsoft/), enter **@**, select your agent from the list, and start asking it about your Userpilot data.

        <Check>
          Microsoft 365 Copilot can now use Userpilot when your agent is mentioned.
        </Check>
      </Step>
    </Steps>
  </Tab>

  <Tab title="Other AI tools">
    Any tool that supports remote MCP servers with OAuth sign-in can connect:

    1. Add a remote (HTTP) MCP server in the tool's settings and paste the server address above.
    2. When the tool prompts you, sign in with your Userpilot login and approve the permissions.

    The exact menu names vary by tool. Look for "MCP servers", "connectors", or "integrations" in its settings.
  </Tab>
</Tabs>

## Choose what the assistant can access

When you connect, Userpilot shows a permission screen. You decide what the assistant can see and change:

| Permission                                     | What it allows                                                                                                                        |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Read your product data, analytics, and reports | The foundation, always required: reports, dashboards, events, pages, features, flows, surveys, segments, and analytics results.       |
| Read individual user and company profiles      | Profile details and activity for specific users and companies. Leave it unchecked to keep individual records out of AI conversations. |
| Read session replay data                       | Session replay lists and activity summaries.                                                                                          |
| Create and update user segments                | New segments, and changes to existing ones.                                                                                           |
| Create and update reports and dashboards       | New reports and dashboards, and changes to existing ones.                                                                             |
| Create and update surveys (saved as drafts)    | Survey drafts for you to review. Nothing reaches your users until you publish.                                                        |
| Keep this connection active without re-login   | Stay signed in between conversations. Without it, access ends about 15 minutes after each sign-in.                                    |

A few things to know:

* **You can change your mind later.** To grant a permission you skipped, connect again from your AI tool: the permission screen appears and remembers what you approved before.
* **Write permissions need the read permission.** The screen enforces this automatically.
* **Changes are real.** Segments, reports, and dashboards the assistant creates or updates take effect immediately, just as if you made the change in the app.

## What the assistant can and can't do

With the permissions you grant, the assistant can:

* Run and read analytics: funnels, trends, retention, paths, saved reports, and dashboards.
* Look up your product setup: flows, surveys, events, pages, features, segments, and more.
* Read user and company lists and profiles.
* Create and update segments, reports, dashboards, and survey drafts.
* Go beyond the basics: when a question needs it, the assistant can search hundreds of additional read-only operations.

It can never:

* Build or publish in-app content such as flows and banners (content building stays in the Userpilot builder).
* Delete anything.
* Access team management, billing, account settings, or other administration areas.
* Do anything your own Userpilot role doesn't allow.

### Working with multiple apps

If your account has more than one app, the assistant can list the ones you have access to and ask which one to use. It remembers your choice for the connection, and you can tell it to switch at any time.

## Security and privacy

* **Your login, your permissions.** The connection runs under your own Userpilot user. The assistant can only see and change what your role allows, in the apps you have access to.
* **You control the scope.** The permission screen decides what is reachable; everything outside it is refused by Userpilot's servers, not by the assistant's judgment.
* **No destructive access.** Delete operations and administration areas are not available through the connection at all.
* **Built-in limits.** Rate limits automatically contain runaway or abusive usage.
* **Disconnect anytime.** Remove the connector in your AI tool to stop new access. Without the "keep active" permission, access also expires on its own shortly after each sign-in.

<Info>
  Data the assistant reads through this connection is processed by your AI provider (for example, Anthropic for Claude) under that provider's terms. Review your organization's AI policies before connecting tools to customer data.
</Info>

### FAQs

<AccordionGroup>
  <Accordion title="Which AI tools work with the Userpilot MCP server?">
    Any tool that supports remote MCP servers with OAuth sign-in. Claude, Claude Code, ChatGPT, Cursor, and Microsoft 365 Copilot are documented step by step above; for other tools, use the server address and follow the tool's own instructions for adding an MCP server or custom connector.
  </Accordion>

  <Accordion title="The assistant says it wasn't granted a permission. What do I do?">
    You skipped that permission when connecting. Connect again from your AI tool. The permission screen appears with your earlier choices remembered; tick the missing one.
  </Accordion>

  <Accordion title="The assistant says a workspace is no longer accessible.">
    Your access to that app changed. Ask the assistant to list your workspaces and pick one you can access.
  </Accordion>

  <Accordion title="Can the assistant change my data without me knowing?">
    Only within the write permissions you granted, and never beyond them: segments, reports, dashboards, and survey drafts. It cannot delete anything, publish content, or touch account settings. If you grant no write permissions, the connection is read-only.
  </Accordion>

  <Accordion title="Who on my team can connect?">
    Anyone with a Userpilot login. On Claude Team and Enterprise plans, a Claude admin adds the connector once for the organization; each member then connects and signs in as themselves, and their connection mirrors their own role and app access.
  </Accordion>

  <Accordion title="The assistant doesn't see new or updated Userpilot tools.">
    Your AI tool keeps its own copy of the tool list. In Claude, open the Userpilot connector's settings and use **Refresh tools**; disconnecting and reconnecting alone does not refresh the list.
  </Accordion>

  <Accordion title="How do I revoke a connection completely?">
    Remove the connector in your AI tool. If you need a connection revoked on the Userpilot side (for example, for a teammate who left), contact support.
  </Accordion>
</AccordionGroup>

<Frame>
  For any questions or concerns please reach out to [**support@userpilot.com**](mailto:support@userpilot.com)
</Frame>
