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

# Custom MCP

> Connect your own remote MCP servers to Tess so chats and agents can use those tools next to native connectors.

Custom MCP lets Tess act as an **MCP client**. You register a remote server (Attio, Gleap, Volt, Supabase, an internal tool, or any Streamable HTTP MCP endpoint), Tess discovers its tools, and those tools become available in chat and agents — alongside native [Connectors](/en/connectors).

This is the opposite direction of the [Tess MCP Server](/en/api-mcp), which exposes Tess *to* Claude, Cursor, and other MCP clients.

<CardGroup cols={2}>
  <Card title="Tess MCP Server" icon="cloud" href="/en/api-mcp">
    Use Tess agents, files, and memories from Claude, Cursor, Codex, or any MCP client. Endpoint: `https://mcp.tess.im`.
  </Card>

  <Card title="Custom MCP" icon="plug">
    Bring an external MCP server *into* Tess. Your chats and agents call that server's tools with your credentials.
  </Card>
</CardGroup>

<Info>
  Custom MCP is available when the workspace feature is enabled. Native Apps (Gmail, Slack, Notion, and the rest of the catalog) stay under [Connectors](/en/connectors) — use Custom MCP for servers that are not in that catalog.
</Info>

## Before you start

You need:

* A **remote MCP endpoint** that speaks **Streamable HTTP** (not a local `npx`/stdio process).
* Permission to **create personal MCP servers** (or governance permission, if you will share the server with the workspace).
* Credentials the server expects: **OAuth** (interactive sign-in) or a **static token** (Bearer, API key, or custom headers).

<Warning>
  Keep personal accounts personal. A WhatsApp, email, or CRM MCP tied to *your* identity should stay a **personal** server. Sharing it with the workspace lets other members opt in and call those tools. See [Sharing and permissions](/en/mcp-sharing-permissions).
</Warning>

## Add a Custom MCP server

<Steps>
  <Step title="Open Connectors">
    In chat, click **+** → **Connectors** → **Add connectors**, then open the **Custom MCP** lane. You can also manage servers from **Settings → MCP Plugins**.
  </Step>

  <Step title="Enter the endpoint">
    Give the server a name and paste the remote URL (for example `https://mcp.attio.com/mcp` or `https://mcp.voltchat.com/mcp`). Tess only accepts allowed remote HTTP(S) endpoints.
  </Step>

  <Step title="Choose how you authenticate">
    * **OAuth** — Tess discovers the server's auth metadata and opens a popup so you authorize *your* account. Allow pop-ups to finish the flow.
    * **Bearer / API key / custom header** — paste the token Tess should send on every call to that server.
  </Step>

  <Step title="Save, then connect">
    After saving an OAuth server, click **Connect** and complete the provider login. Tess then syncs the tool list. Do not enable the server in chat until the connection succeeds — an OAuth server with no connected token cannot run.
  </Step>

  <Step title="Enable the tools you want">
    Each tool can be turned on or off **for you**. Disabling a tool never changes another member's selection. In chat, select the MCP in Connectors like any other app so the agent is allowed to call it.
  </Step>
</Steps>

New servers are **personal** by default. Sharing with the workspace is a separate, explicit action and requires governance permission.

## Authentication models

| How the MCP authenticates     | What Tess stores            | Who it belongs to                                                                       |
| ----------------------------- | --------------------------- | --------------------------------------------------------------------------------------- |
| **OAuth**                     | Per-user connected token    | Always **your** account, even if the server is shared                                   |
| **Bearer / API key / header** | Encrypted static credential | Personal servers: the creator. Shared servers: a workspace credential set by a governor |

<Tip>
  Prefer OAuth when the provider supports it (Attio, Meta Ads, and many hosted MCPs). Each member who uses a shared OAuth MCP must click **Connect** and sign in with their own account. Tess never reuses someone else's OAuth token.
</Tip>

## Use it in chat and agents

Once the server is connected and enabled for you:

* **Chat** — select it under Connectors (same control as Gmail or Slack). If it is not selected, Tess will not inject its tools for that turn.
* **Agent Studio** — add it to the agent's connector policy, or leave **User decision** on so each end user chooses at run time.
* **Tool chips** — turn individual capabilities on or off without deleting the server.

<Note>
  A shared MCP that you have not opted into does not appear in your chat. Opt in from MCP Plugins or the Connectors modal first. Details: [Sharing and permissions](/en/mcp-sharing-permissions).
</Note>

## What Tess does with the server

1. Discovers tools (and resources, when the server exposes them) over MCP.
2. Converts them into the same tool format used by native Tess tools.
3. Injects only the tools **you** enabled, and only if the server is connectable (valid static credential, or a connected OAuth token).
4. Calls the remote server with **your** credential. Executions follow workspace credit and permission rules.

If a server has no usable credential for you, Tess hides it from tool discovery instead of calling it unauthenticated.

## Related

<CardGroup cols={2}>
  <Card title="Sharing and permissions" icon="shield-check" href="/en/mcp-sharing-permissions">
    Personal vs shared servers, opt-in, and who can create, share, or delete.
  </Card>

  <Card title="Best practices" icon="list-check" href="/en/mcp-best-practices">
    OAuth discovery, troubleshooting, and how to keep personal tools from leaking across the workspace.
  </Card>
</CardGroup>
