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 setupChoose 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:
| Setting | Value |
|---|---|
| URL | https://www.intentdocs.com/api/mcp |
| Header | Authorization |
| Value | Bearer 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.comredirects tohttps://www.intentdocs.com, and theAuthorizationheader is dropped on that redirect. - POST only. Send JSON-RPC with
POST. Responses are JSON, not an event stream.GETreturns405, because the server has no server-to-client stream.DELETEreturns202. - Sessions. On
initialize, the server returns anMcp-Session-Idheader. 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 olderpb_cli_prefix is still accepted. - Manifest.
GET https://www.intentdocs.com/api/mcp/manifestreturns 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:
| Document | URL |
|---|---|
| Protected resource | https://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 server | https://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.