Skip to content
intentdocs/ docs
Docs menu
MCP Integration · 3.3

Cursor & remote setup

Connect Cursor, Claude, Grok Bot, and other MCP clients to IntentDocs.

Every client below connects to the same hosted server, except the ChatGPT plugin, which has its own address. The steps for each tool live on its public page. For Claude Code, see Connect Claude Code. This page keeps the shared endpoint rules, OAuth, and the local server.

All of them need a token or an OAuth sign-in. To create a token, open Settings → Access Tokens. Choose the workspace the token is bound to when you create it. See Workspace tokens.

Cursor

Hosted server

The hosted server steps are on Connect Cursor to IntentDocs.

If you ran npx intentdocs setup for Cursor, run /intent-next in Cursor's chat to start your first story.

Cursor keeps its auto-run settings in its own preferences, so npx intentdocs init can't write them for you. It prints the tools worth allowing: the reads, plus next_in_run, start_story, report_criteria, save_tests, complete_story, link_pr and add_note. Leave replace_criteria, update_stories, create_stories and cancel_story asking.

Local server

npx intentdocs setup

Choose Cursor when asked. setup writes or updates .cursorrules with the IntentDocs workflow, then prints a snippet for the local server. It doesn't write Cursor's MCP config itself. Add the snippet to .cursor/mcp.json:

{
  "mcpServers": {
    "intentdocs": {
      "command": "npx",
      "args": ["intentdocs", "mcp"],
      "cwd": "/path/to/your/project"
    }
  }
}

This is the same local server Claude Code runs, with the same --mode flag and tools. See Claude Code setup → Local server.

Claude

The steps are on Connect Claude to IntentDocs.

Claude.ai renders an interactive card for some tool results. See Resources and prompts.

ChatGPT

The steps are on Connect ChatGPT to IntentDocs.

The ChatGPT plugin connects to its own address:

https://www.intentdocs.com/api/mcp/chatgpt

It signs in with OAuth. It is the same server, with a tool set for talking about the product rather than building it:

  • Start: create_project
  • Find and read: list_projects, get_context, list_stories, get_story, get_status, get_build_order, check_release_readiness, get_vision
  • Shape the product: set_vision, create_stories, update_stories, add_criteria, add_note, log_decision
  • Think with the project as context: research, import_prd

Any other tool is unknown at this address, not just disabled. ChatGPT is told to say what it is about to change and get a yes before every write, and not to claim a story is built or tested. Building happens in a coding agent connected to the same project.

Grok Bot

The steps are on Connect Grok Bot to IntentDocs.

Grok

The steps are on Connect Grok to IntentDocs.

VS Code

The steps are on Connect VS Code to IntentDocs.

Codex

The steps are on Connect Codex to IntentDocs.

Gemini CLI

The steps are on Connect Gemini CLI to IntentDocs.

Zed

The steps are on Connect Zed to IntentDocs.

Windsurf

The steps are on Connect Windsurf to IntentDocs.

Warp

The steps are on Connect Warp to IntentDocs.

Other clients

Any MCP client that supports remote servers over Streamable HTTP can connect.

{
  "mcpServers": {
    "intentdocs": {
      "type": "streamable-http",
      "url": "https://www.intentdocs.com/api/mcp",
      "headers": {
        "Authorization": "Bearer intent_cli_your_token"
      }
    }
  }
}

Or set it up by hand:

SettingValue
URLhttps://www.intentdocs.com/api/mcp
HeaderAuthorization
ValueBearer intent_cli_your_token

A client that supports OAuth can sign in instead of using a header. See OAuth.

Endpoint details

  • Use the www. host. https://intentdocs.com redirects to https://www.intentdocs.com, and the Authorization header is dropped on that redirect.
  • POST only. Send JSON-RPC with POST. Responses are JSON, not an event stream. GET returns 405, because the server has no server-to-client stream. DELETE returns 202.
  • Sessions. On initialize, the server returns an Mcp-Session-Id header. Send it back on every later request. It is how the server tells your agent session apart from others when it claims stories. The ChatGPT address doesn't issue one.
  • Tokens. Bearer tokens start with intent_cli_. The older pb_cli_ prefix is still accepted.
  • Manifest. GET https://www.intentdocs.com/api/mcp/manifest returns the server's name, endpoint, OAuth endpoints and every tool's name, description and input schema.

OAuth

The server publishes standard OAuth discovery documents, so an OAuth-aware client can sign in without setup:

DocumentURL
Protected resourcehttps://www.intentdocs.com/.well-known/oauth-protected-resource/api/mcp
Protected resource (ChatGPT address)https://www.intentdocs.com/.well-known/oauth-protected-resource/api/mcp/chatgpt
Authorization serverhttps://www.intentdocs.com/.well-known/oauth-authorization-server

A request without a valid token gets 401 with a WWW-Authenticate header that points at the protected resource document.

  • The flow is the authorization code grant with PKCE. The code challenge method must be S256.
  • Clients can register themselves at https://www.intentdocs.com/api/oauth/register.
  • You approve the client on a consent page in IntentDocs.
  • The access token is an intent_cli_ token named "MCP OAuth". It is bound to your personal workspace. To give an agent a team workspace, create a token bound to it in Settings → Access Tokens and use the header instead.
  • The OAuth token expires after 90 days. Reconnect the client when it does.
  • You can revoke it at any time in Settings → Access Tokens.