Everything in this guide is an HTTP call your backend makes. The **admin MCP** exposes the same capabilities as tools, so you (or Claude working with you) can provision customers, inspect the fleet, query a customer's index and push content from a chat. 
<strong>
With `plan_integration` you can also hand the AI this entire guide plus your live account state so it can plan the build.
</strong>

<br>
    
| Property | Value |
|---|---|
| **Server URL** | `https://www.context-link.ai/admin_mcp` |
| **Transport** | Streamable HTTP |
| **Authentication** | OAuth 2.1 (PKCE + Dynamic Client Registration), signed in as an **organisation admin** on the RAG White-Label plan |
| **Scopes** | `context:read`, `context:write`, `offline_access` |
| **Tools** | 11, listed below |

## Connect it to Claude

1. In Claude, go to **Settings → Connectors → Add custom connector**.
2. Name it **Context Link Admin** and paste the connector URL: `https://www.context-link.ai/admin_mcp`
3. Under **Authentication**, choose **Required** when the server asks, keep the OAuth client on **Use Anthropic's hosted client metadata**, then click **Add**.
4. First use opens a browser tab. Sign in as your organisation admin and click **Accept**.

The consent screen looks identical to the regular connector's; the difference is the server behind it. You can have both connected at once; they hold separate tokens.

### Claude Code

```bash
claude mcp add --transport http context-link-admin https://www.context-link.ai/admin_mcp
```

Run `/mcp`, pick **context-link-admin** and choose **Authenticate**.

### ChatGPT (developer mode) and other clients

Any client that supports remote MCP servers over HTTP works. Use the URL above wherever the client asks for one; the [MCP server](/docs/mcp-server) page shows the config shape for Cursor, VS Code, Codex and stdio-only clients. Swap `/mcp` for `/admin_mcp`.

## The tools

| Tool | Writes? | What it does |
|---|---|---|
| `plan_integration` | no | Your live account state (plan, whether the provisioning token and webhook secret exist, bundles, free slots) followed by this whole guide as markdown. **Ask Claude to call it first** when planning or building. Optional `sections` trims the guide. |
| `list_api_accounts` | no | The fleet, paginated, with sync status, post/chunk counts and `usage`. Optional `q` filters by uid, label or site. Mirrors `GET /api_accounts`. |
| `get_api_account` | no | One account by `uid`, including `index_ready`, `last_synced_at` and `top_level_context`. Mirrors `GET /api_accounts/:uid`. |
| `create_api_account` | yes | Provision a customer (`uid`, optional `label`, `site_url`, `webhook_url`). Idempotent on `uid`. Returns the **customer token**. Refuses with `bundle_required` when the fleet is full unless `allow_bundle_add` is true. Mirrors `POST /api_accounts`. |
| `resync_api_account` | yes | Re-crawl the customer's website. Mirrors `POST /api_accounts/:uid/resync`. |
| `delete_api_account` | yes | Delete the account and its whole index. **Irreversible.** Mirrors `DELETE /api_accounts/:uid`. |
| `get_customer_context` | no | Semantic search over one customer's index (`uid`), or the whole fleet when `uid` is omitted. Mirrors `GET /context` with the customer token or the provisioning token respectively. |
| `ask_customer_question` | no | A concise cited answer from one customer's index, or fleet-wide. Mirrors `GET /question`. Counts against your monthly question allowance. |
| `list_customer_posts` | no | The documents pushed into a customer's custom connections. |
| `push_content` | yes | Upsert a markdown document (`post_uid`, `title`, `body` ≤ 100KB) into a customer's index. Creates the customer's custom connection on first push. Mirrors `PUT /custom_connections/:id/posts/:uid`. |
| `delete_content` | yes | Remove one pushed document. Pass `connection_name` when the same `post_uid` lives in more than one of the customer's connections. **Irreversible.** |

Every tool returns a `reason` field: `ok`, or why it declined: `auth_required`, `admin_required`, `white_label_required`, `write_scope_required`, `not_found`, plus tool-specific values such as `bundle_required`, `already_syncing`, `quota_exceeded`.

## Things to know

- **Admins only.** A team member who is not an organisation admin can connect the server but every tool returns `admin_required`. Reads keep working for an organisation that has left the plan while it still holds API accounts; writes need an active RAG White-Label subscription and the `context:write` scope, which the consent screen grants by default.
- **Tokens land in the chat.** `create_api_account` returns the customer token in the tool result, exactly as the API does. Treat that transcript as a secret and move the token into your backend; re-running `create_api_account` with the same `uid` shows it again if you lose it.
- **Spend is opt-in.** The REST API adds a bundle of 10 accounts ($50/month) automatically when you provision past your allowance. The MCP tool stops and asks instead. Pass `allow_bundle_add: true` once you have confirmed.
- **Deletes are final.** `delete_api_account` and `delete_content` remove the data immediately. Claude will normally check with you first because the tools are marked destructive.
- **Same limits as the API.** Pushed bodies are capped at 100KB, connections at 1,000 posts and 100MB, crawls at 500 pages, and questions count against the monthly allowance described under [errors and limits](/docs/white-label/errors-and-limits).
