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

# Connecting an assistant

> Create a connection under Bevel → MCP Connectors and paste it into Claude, ChatGPT, Claude Code or Cursor.

Every assistant connects through a **connection**: a secret URL you create once on the site. The secret is shown once and stored only as a hash. Anyone holding it acts as the WordPress user who created it, with that user's capabilities, and you can revoke it at any time.

## Before you start

To create pages and blog posts, connect the site to a Bevel account first: **Bevel → Site Settings → Account → Connect**. The free plan is enough to start. Without an account an assistant can still set the design system and build headers, footers and logos. See [AI generations](/mcp/overview#ai-generations).

## Create a connection

1. Go to **Bevel → MCP Connectors**.
2. Choose the capabilities the assistant may use. See [Capabilities and scopes](/mcp/capabilities).
3. Name the connection, pick which assistant it is for, and click **Create connection**.
4. Copy the URL now. It is not shown again. Lose it, revoke it and create another.

The connection row shows when it was last used, which client actually connected (the assistant identifies itself on its first call), and whether the token arrived in the URL or in a header.

## Claude (claude.ai and the desktop app)

1. In Claude, open **Settings → Connectors → Add custom connector**.
2. Paste the connection URL. No extra sign-in: the secret is inside the URL.
3. In a chat, enable the connector and ask Claude to read or build the site.

For long builds use **Claude Cowork** (the agent mode in the desktop app). It can run commands, which means it uploads your files itself and works through a whole site without hitting a chat limit.

## Claude Code

Claude Code takes the token in a header, so the secret never sits in a URL. The screen shows the command after you create the connection:

```bash theme={null}
claude mcp add --transport http bevel "https://example.com/wp-json/bevel-mcp/v1/mcp" --header "Authorization: Bearer <token>"
```

Claude Code runs on your machine, so a **local site** works with it. Plain `http://` is fine.

## ChatGPT

1. In ChatGPT open **Settings → Connectors** (Developer mode) and add an MCP server.
2. Type **Streamable HTTP**, no authentication, and paste the connection URL.
3. Enable the server from the composer's tools menu.

**ChatGPT Work** and **Codex** can run commands and upload files themselves; a plain chat can too, through the drop page. See [Uploads](/mcp/uploads).

## Cursor and other MCP clients

Any client that speaks Streamable HTTP can use the connection URL as its server URL. Clients that support headers can use the Bearer form instead.

## Local sites

A site that is only reachable on your own computer (a `.local`, `.test` or `localhost` address, or a private IP) cannot be reached by claude.ai, the Claude desktop connector or ChatGPT: those fetch from their cloud. The screen detects this and says so. Use Claude Code or an IDE client, which connect from your machine, or move the site to a public https address.

## Files on your machine: the bridge

A remote site cannot read your laptop, and MCP carries no file bytes. For Claude Desktop, Cursor and Claude Code there is a small local helper, `@wpbevel/bridge`, that lists a folder and uploads from it with no clicks. Install it beside the site's connector:

```bash theme={null}
claude mcp add bevel-bridge -e BEVEL_MCP_URL="<connection URL>" -- npx -y @wpbevel/bridge
```

For Claude Desktop or Cursor, add the same server in their MCP configuration:

```json theme={null}
{
  "mcpServers": {
    "bevel-bridge": {
      "command": "npx",
      "args": ["-y", "@wpbevel/bridge"],
      "env": { "BEVEL_MCP_URL": "<connection URL>" }
    }
  }
}
```

Then "use the logo in \~/Brand" uploads it. Keep the site's own connector too: the bridge only moves files; building happens through the site.

## Revoking and deleting

**Revoke** stops a connection immediately, including any upload links it handed out. A revoked connection can be **deleted** from the list with a second click. Deactivating the plugin stops every connection; the pages, templates, menus and media the assistant built stay, because they are ordinary site content.
