Your AI visibility scan, inside your coding agent
CiteGraph is an MCP server. Connect Claude Code, Cursor, Claude Desktop, Windsurf, VS Code or Codex, and the agent that already edits your site can read the answers you lose, the pages the engines cite, the fifteen readiness checks with their fixes, and the pages written to win, then apply the changes in your repo. The last step of the action plan stops being a to-do.
Endpoint https://www.citegraph.app/mcp · Streamable HTTP · API key · included with every plan
Claude.ai and Claude Desktop: sign in, no key
- In Claude, open Settings, then Connectors, then Add custom connector.
- Paste
https://www.citegraph.app/mcpas the URL and click Add. - Click Connect. CiteGraph asks you to sign in and to allow access, once. Disconnect any time from API & MCP in your account.
CiteGraph is an OAuth 2.1 authorization server with dynamic client registration and PKCE, so any client that follows the MCP authorization spec can sign in the same way.
Coding agents: one key
- Create a key at citegraph.app/dashboard/api. Name it after the agent; it is shown once.
- Add the server to your client with the snippet for it below.
- Ask the agent something: “fix my AI readiness” is the one to start with.
Claude.ai and Claude Desktop
Settings → Connectors → Add custom connector. No key: you sign in.
https://www.citegraph.app/mcp
Paste the URL, click Add, then Connect and allow access. Works on claude.ai and in the Claude Desktop app; team and enterprise admins add it once for everyone.
Claude Code
one command in your terminal
claude mcp add --transport http citegraph https://www.citegraph.app/mcp --header "Authorization: Bearer cg_live_YOUR_KEY"
Then, inside Claude Code: "fix my AI readiness".
Cursor
~/.cursor/mcp.json, or .cursor/mcp.json in the project
{
"mcpServers": {
"citegraph": {
"url": "https://www.citegraph.app/mcp",
"headers": {
"Authorization": "Bearer cg_live_YOUR_KEY"
}
}
}
}Windsurf
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"citegraph": {
"serverUrl": "https://www.citegraph.app/mcp",
"headers": {
"Authorization": "Bearer cg_live_YOUR_KEY"
}
}
}
}VS Code (Copilot agent mode)
.vscode/mcp.json in the project
{
"servers": {
"citegraph": {
"type": "http",
"url": "https://www.citegraph.app/mcp",
"headers": {
"Authorization": "Bearer cg_live_YOUR_KEY"
}
}
}
}Codex CLI
~/.codex/config.toml, with the key in the CITEGRAPH_API_KEY environment variable
[mcp_servers.citegraph] url = "https://www.citegraph.app/mcp" bearer_token_env_var = "CITEGRAPH_API_KEY"
Anything else
any MCP client that speaks Streamable HTTP
curl https://www.citegraph.app/mcp \
-H "Authorization: Bearer cg_live_YOUR_KEY" \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'What to ask it
“Fix my AI readiness.”
get_readiness, then edits robots rules, adds JSON-LD and llms.txt, rewrites the title, shows the diff, and marks the moves done once you ship.
“Why am I not named when someone asks for an agency tool?”
get_blind_spots and get_answers for that question, then explains in two sentences what the winning pages say that yours does not.
“Write the page for the question I lose most and add it to the site.”
write_page, waits, get_page as Markdown, creates the route in your framework, and tells you which facts are still marked as gaps.
“Which sources should I chase this weekend?”
get_sources, filtered to gettable and substantive, with the play for each.
The tools
Every tool takes a project by domain or id. Results are Markdown a model reads well, with the ids the next call needs. Numbers carry a margin of error, because one AI answer proves nothing.
list_projectsThe account's projects with the latest headline rate. Call first.get_overviewNamed and cited rates with margins, per engine, share of voice, every buyer question with its rate.get_blind_spotsLost questions: the verbatim answer, who won, the cited pages, why, and the missing claim.get_answersEvery engine's verbatim answer to one question, with cited URLs.get_sourcesThe third-party pages the engines cite, graded by substance and gettability, with the play for each.get_action_planThe moves in order, with status, the drafted artifact, and code to paste for site fixes.get_readinessFifteen site checks with what was seen, why it matters and the fix, including code to paste.check_readinessThe same check for any domain, no project needed. Thirty fresh checks per key per day.set_move_statusMark a move to do, in progress or done.WRITESdraft_moveWrite a move's artifact: the pitch, the paragraph, the forum answer. Counts as a draft.WRITESlist_pagesThe pages written for lost questions, with checks and gaps.get_pageA written page as Markdown or HTML with FAQ schema, with its checks, gaps and the facts it rests on.write_pageWrite the page the engines would cite for a lost question. About five minutes. Counts as a draft.WRITESfill_page_gapsSupply the facts a page marked as gaps and have it rewritten. Free.WRITESrun_scanAsk the engines again: a new scan in the background, within the plan. Refused under a week unless forced.WRITESget_scan_statusWhether a scan is running, its stage, and the latest headline numbers.get_memoryWhat the assistant remembers about the project from earlier conversations.rememberKeep a durable note: a fact, a preference, a decision.WRITESforgetDelete a remembered note.WRITESTwo prompts ship with the server: fix_ai_readiness and win_blind_spot. Clients that list prompts show them as slash commands.
What it will not do
It runs a scan only when asked, never forces a fresh one under a week old without you saying so, and only within your plan. It does not touch billing. It never posts anywhere in public: no forum replies, no pitches sent, no reviews. Agents change what you own and review; that line is the same one the rest of the product keeps.
Limits and security
- Keys and OAuth tokens are hashed at rest; keys are shown once. Revoke a key or disconnect an app from the API page; it stops at the next call.
- OAuth access tokens last a day and refresh for ninety; refresh tokens rotate on every use.
- A key carries the role of the person who made it. View-only members get read tools only.
- 3,000 calls per key per day. Thirty fresh readiness checks of arbitrary domains per key per day.
- Drafting a move and writing a page count against the plan’s monthly draft allowance, the same as in the app. Filling gaps is free.
- Use the www host exactly as written; the bare domain redirects, and some clients do not follow redirects on POST.
Common questions
What is the CiteGraph MCP server?+
A remote Model Context Protocol server at https://www.citegraph.app/mcp. Any MCP client, such as Claude Code, Cursor, Windsurf, VS Code or Claude Desktop, connects to it with an API key and gets nineteen tools: the scan's numbers, the blind spots with verbatim answers, the cited sources, the action plan, the fifteen site readiness checks with code to paste, and the written pages.
What can an agent actually do with it?+
Read everything the app shows and act on the parts a person acts on: apply the readiness fixes in the codebase, mark moves done, draft a move's artifact, write the page for a lost question, fill its gaps, run a scan within the plan, and keep notes about the project for later. It cannot change billing or post anywhere public.
Is it free?+
The server is included with every plan and the trial. Reads are unlimited within a fair-use cap of 3,000 calls per key per day. Drafting and writing pages count against the plan's monthly draft allowance, the same as in the app. The readiness check for any domain allows thirty fresh checks per key per day.
Is my key safe?+
OAuth tokens and keys are stored as hashes; keys are shown once. Each key carries your role: a view-only member's key cannot change anything. Revoke a key from the API page and every agent using it stops at once. Keys are not scoped to a single project yet; they see the projects of the account they belong to.
Which transport does it use?+
Streamable HTTP, stateless, so it works from any machine with no session to keep. Authentication is OAuth 2.1 for clients that sign in (Claude.ai, Claude Desktop) or a bearer API key for coding agents.
No account yet? Start the 7-day trial, run the first scan, then hand the key to your agent.