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

# MCP Server overview

> Query Enfors from Claude Code, Cursor, Claude Desktop, or your own AI client.

Enfors exposes a remote **Model Context Protocol (MCP)** server so external AI clients
can query your workspace and render branded views — the read side of Enfors. It's how
the [Ask Enfors](/using/ask-enfors) experience works.

## Endpoint

The server is mounted at **`/mcp`** on the Enfors Data API and speaks streamable HTTP.

```
https://data.enfors.ai/mcp
```

## Authentication

The endpoint is protected by **OAuth 2.0 / SSO**. Clients that support OAuth (Claude
Desktop, Claude Code, Cursor) will run the authorization flow automatically when you add
the server — Enfors advertises its OAuth resource metadata at the `/mcp` path. This is the
same SSO sign-in the watcher uses.

Programmatic clients can instead present a [Personal Access
Token](/api-reference/authentication) as a bearer token:

```http theme={null}
POST /mcp
Authorization: Bearer enf_live_xxxxxxxx
```

<Note>
  Every tool call is scoped to your tenant, workspace, and user via Row-Level Security —
  you can only ever query data you're entitled to. See
  [Tenancy, Privacy & PII](/concepts/tenancy-privacy-pii).
</Note>

## Connect a client

<Tabs>
  <Tab title="Claude / Claude Desktop (Cowork)">
    Enfors connects as a **custom connector**. Custom connectors are available on all
    Claude plans (free plans are limited to one custom connector).

    <Steps>
      <Step title="Open connector settings">
        Go to **Settings → Connectors** (under *Customize*), click **Add**, and choose
        **Add custom connector**.
      </Step>

      <Step title="Enter the Enfors server details">
        Name it `enfors` and set the URL to:

        ```
        https://data.enfors.ai/mcp
        ```

        Leave the OAuth Client ID and secret empty — Enfors advertises its own OAuth
        metadata. Click **Add**.
      </Step>

      <Step title="Authorize">
        Claude opens the Enfors OAuth / SSO flow in your browser. Sign in with your
        Enfors account; the connector shows a checkmark once connected.
      </Step>

      <Step title="Set tool permissions">
        Open the connector to review **Tool permissions**. Each Enfors tool defaults to
        *Needs approval*; since all tools are read-only and RLS-scoped, it's safe to set
        them to *Allow* for a smoother experience.
      </Step>

      <Step title="Enable it in a chat">
        In a conversation, click the **+** button, hover over **Connectors**, and toggle
        **enfors** on. The Enfors tools are now available to Claude.
      </Step>
    </Steps>

    <Note>
      Custom connectors reach the MCP server from Anthropic's cloud, not from your device.
      The Enfors endpoint is publicly reachable, so no network changes are needed. See
      Anthropic's guide: [Use connectors to extend Claude's
      capabilities](https://support.claude.com/en/articles/11176164-use-connectors-to-extend-claude-s-capabilities).
    </Note>
  </Tab>

  <Tab title="Claude Code (CLI)">
    <Note>
      If you installed the [Enfors watcher](/getting-started/quickstart), the install
      script already registered the Enfors MCP server in `~/.claude.json` (and in Claude
      Desktop's config) — skip to step 2 to authorize.
    </Note>

    <Steps>
      <Step title="Register the server">
        ```bash theme={null}
        claude mcp add --transport http enfors https://data.enfors.ai/mcp
        ```

        This adds the equivalent of the following to `~/.claude.json`:

        ```json theme={null}
        {
          "mcpServers": {
            "enfors": { "type": "http", "url": "https://data.enfors.ai/mcp" }
          }
        }
        ```
      </Step>

      <Step title="Authorize">
        Start `claude`, run `/mcp`, select **enfors**, and complete the OAuth flow in
        your browser.
      </Step>

      <Step title="Verify">
        `claude mcp list` should show `enfors` as ✓ connected, and the `enfors` tools
        appear in `/mcp`.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Cursor">
    Add Enfors to Cursor's MCP settings (**Cursor Settings → MCP → Add new MCP server**),
    or edit `~/.cursor/mcp.json` directly:

    ```json theme={null}
    {
      "mcpServers": {
        "enfors": { "url": "https://data.enfors.ai/mcp" }
      }
    }
    ```

    Cursor prompts for OAuth authorization on first use.
  </Tab>
</Tabs>

## What you can do

<CardGroup cols={2}>
  <Card title="Explore the hierarchy" icon="sitemap">
    `list_agents` → `list_agent_sessions` → `list_session_decisions` → `get_decision`.
  </Card>

  <Card title="Query across decisions" icon="filter">
    `list_decisions` with time, outcome, intent, cost, and quality filters.
  </Card>

  <Card title="Traverse the graph" icon="circle-nodes">
    `query_graph` for evidence, subjects, and agent networks.
  </Card>

  <Card title="Semantic search" icon="magnifying-glass">
    `search_similar_decisions` to find decisions like a description.
  </Card>

  <Card title="Delivery & ROI" icon="boxes-stacked">
    `list_features`, `get_feature`, `list_feature_merge_suggestions`.
  </Card>

  <Card title="Insights & Pulse" icon="bell">
    `list_insights` and `get_pulse_report`.
  </Card>
</CardGroup>

## Rendering results

Whenever a client shows Enfors data to a user, it should call
[`render_ui`](/mcp/render-ui) to present it as a branded, interactive view rather than
raw text or HTML in the reply.

Next: the full [tool reference](/mcp/tool-reference).
