# Context Link MCP Server

Context Link runs a hosted [Model Context Protocol](https://modelcontextprotocol.io) server. Any MCP-capable client can connect to it and get four tools for searching, answering from, and writing to your connected sources.

This is the same server that powers the two first-party integrations, so if you use Claude or ChatGPT you almost certainly want one of those guides instead — both wrap this endpoint in a two-click setup and neither needs anything on this page:

- **Claude** — the custom connector *is* this MCP server. Follow the [Claude custom connector guide](/docs/add-context-link-claude-connector); one setup covers Claude on the web, Desktop, Cowork and Claude Code.
- **ChatGPT** — the official Context Link app is an MCP app talking to this same endpoint under the hood. Follow the [ChatGPT app guide](/docs/add-context-link-chatgpt-connector).

This page is for **everything else**: Cursor, VS Code, Claude Code on the command line, Codex, ChatGPT developer mode, or a client you're building yourself.

## Quick reference

| Property | Value |
|----------|-------|
| **Server URL** | `https://www.context-link.ai/mcp` |
| **Transport** | Streamable HTTP (`POST`/`GET`/`DELETE` on the same URL) |
| **Authentication** | OAuth 2.1 — authorization code + PKCE (S256), with Dynamic Client Registration |
| **Scopes** | `context:read`, `context:write`, `offline_access` |
| **Tools** | `get_context`, `ask_question`, `save_memory`, `get_memory` |
| **Rate limit** | 1,000 requests per 10 seconds per IP |

> Use the `www.` host. The server is reachable at `https://www.context-link.ai/mcp` — that is the URL to put in every client config.

### Prerequisites

* A **Context Link** account with at least one connection set up (Notion, Google Drive, a website, email, and so on).
* An MCP client that supports **remote servers over HTTP**. Clients that only speak stdio need a bridge — see [stdio-only clients](#stdio-only-clients) below.
* `ask_question` requires a Pro plan. The other three tools work on any active plan.

---

## The tools

| Tool | Scope | What it does |
|------|-------|--------------|
| `get_context` | `context:read` | Semantic search across everything you've connected. Returns the matching snippets plus the sources they came from. Takes `query`, and an optional `mode` to weight results. |
| `ask_question` | `context:read` | Runs the same retrieval, then has an LLM compose one concise paragraph grounded in your sources, with numbered citations. Takes `query` and optional `mode`. **Pro plan only.** |
| `save_memory` | `context:write` | Saves content back to Context Link as a Memory. Takes `content` (markdown or plain text, up to 100KB) and an optional `namespace` — a dashed name like `brand-voice`. Without a namespace you get a timestamped one. |
| `get_memory` | `context:read` | Retrieves a Memory you saved earlier. Takes `namespace`. |

`mode` maps to the named weighting profiles you configure on your **Connections** page — pass something like `customer-support` and the results lean toward the connections you've weighted for that mode.

![The four Context Link tools listed in Claude Code: Get Context, Ask Question, Save Memory and Get Memory](/docs/mcp-claude-code-tools.png)

---

## Setting it up

Every client wants the same two things: the server URL, and permission to open a browser window for the OAuth handshake. The steps below cover the common ones.

### Claude Code

From your terminal:

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

Add `--scope user` to that command if you want the server available in every project rather than only the current one.

Then run `/mcp` inside Claude Code, choose the Context Link server and pick **Authenticate**. Claude Code opens a browser tab for you (and prints the URL in case it doesn't):

![Claude Code authenticating with Context Link, showing the OAuth authorize URL it opens in the browser](/docs/mcp-claude-code-authenticate.png)

Approve the consent screen in the browser — this is where you grant the read, write and offline access the tools need:

![The Context Link consent screen asking whether to authorize Claude Code, listing Context:Read, Context:Write and Offline Access](/docs/mcp-oauth-consent.png)

Back in the terminal, `/mcp` should now show the server connected and authenticated:

![Claude Code showing the Context Link MCP server connected, authenticated, and exposing 4 tools](/docs/mcp-claude-code-connected.png)

### Cursor

Add the server to `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` in your project:

```json
{
  "mcpServers": {
    "context-link": {
      "url": "https://www.context-link.ai/mcp"
    }
  }
}
```

Reopen **Settings → MCP**, and Cursor will prompt you to sign in the first time it calls a tool.

### VS Code (GitHub Copilot)

Add the server to `.vscode/mcp.json` in your workspace:

```json
{
  "servers": {
    "context-link": {
      "type": "http",
      "url": "https://www.context-link.ai/mcp"
    }
  }
}
```

Start the server from the gutter action in that file, then approve the sign-in prompt.

### Codex

Codex reads MCP servers from `~/.codex/config.toml`:

```toml
[mcp_servers.context-link]
url = "https://www.context-link.ai/mcp"
```

If you'd rather use skills than MCP, Context Link ships those too — see [Ways to Talk to Context Link](/docs/ways-to-talk-to-context-link).

### ChatGPT (developer mode)

ChatGPT users are usually better served by the [official Context Link app](/docs/add-context-link-chatgpt-connector), which is two clicks and needs no configuration. If you specifically want to wire the raw MCP server up yourself, enable **developer mode** in ChatGPT's connector settings, create a new connector pointing at `https://www.context-link.ai/mcp`, and choose OAuth for authentication. Leave any "requires OIDC / userinfo" option off — Context Link issues opaque OAuth tokens and does not expose a userinfo endpoint.

### stdio-only clients

Some clients still only launch MCP servers as local subprocesses. Bridge to the remote server with `mcp-remote`:

```json
{
  "mcpServers": {
    "context-link": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.context-link.ai/mcp"]
    }
  }
}
```

The bridge handles the OAuth dance and opens a browser window on first use.

---

## Troubleshooting

**"Unable to reach Context Link" / connection fails immediately.** Check the host — it's `https://www.context-link.ai/mcp`, with the `www`.

**The client connects but every tool call returns 401.** The client isn't attaching a token. Look for an "authenticate" or "sign in" action in the client's MCP panel; most only trigger the OAuth flow on demand rather than at connection time.

**`ask_question` returns a `pro_required` reason.** That tool is Pro-only. `get_context` gives you the underlying snippets on any plan.

**Tools return no context.** The token is bound to the Context Link user who approved the consent screen. If that user's account has no connections, or the content sits on another teammate's personal connection, there's nothing to search. Check the **Connections** page while signed in as the same user.

**A tool call reports the allowance is exhausted.** `ask_question` spends from your organisation's monthly LLM allowance. It resets at the start of each month.

**Your client insists on OIDC.** Turn it off. Context Link serves `/.well-known/openid-configuration` for discovery compatibility, but it isn't a full OpenID Provider — no ID tokens, no userinfo, no JWKS.

---

## Related

- [Claude custom connector](/docs/add-context-link-claude-connector) — the guided setup for the Claude apps
- [ChatGPT app](/docs/add-context-link-chatgpt-connector) — the official ChatGPT connector
- [Ways to Talk to Context Link](/docs/ways-to-talk-to-context-link) — skills, direct links and the API
- [API Reference](/docs/api-reference) — the REST API, if you'd rather not use MCP at all
