Your visibility data,
inside your agent.
The CiteSurge MCP server puts your AI-visibility data where the work happens: your coding agent reads the recommendations, applies the fixes in your repo, and triggers a re-audit to verify the score moved. Works with Claude Code, Claude Desktop, Cursor, and any MCP-capable client.
Connect
The server speaks Streamable HTTP at https://citesurge.com/api/mcp and authenticates with the same API keys as the REST API. In Claude Code:
claude mcp add --transport http citesurge https://citesurge.com/api/mcp \
--header "Authorization: Bearer cs_live_..."For Claude Desktop, Cursor, and other clients that launch local servers, use mcp-remote:
{
"mcpServers": {
"citesurge": {
"command": "npx",
"args": [
"mcp-remote",
"https://citesurge.com/api/mcp",
"--header",
"Authorization: Bearer cs_live_..."
]
}
}
}Keys are created by account owners in Settings → API access and can be scoped to specific projects. A read-only key covers every tool except trigger_audit, which needs the "read and trigger audits" role. MCP access is included on every paid plan — Pro, Agency, and Enterprise — and turns on automatically once your account has a paid project.
Tools
list_projects
Projects visible to the key, with each project's latest overall score.
get_visibility_report
Latest scores and deltas vs the previous audit, plus a one-paragraph summary.
get_recommendations
Prioritized recommendations from the latest completed audit — the fix-loop entry point.
get_citations
Sources AI answers cited, with domain ownership flags. Filter by engine or date.
get_mentions
Brand and competitor mentions inside AI answers. Filter by engine or date.
get_score_history
Scores over time, newest first.
trigger_audit
Start an audit run (keys with the trigger role only; once per hour per project).
Responses are compact and paginated so they sit well in an agent's context window; pass the previous response's nextCursor to page. The full audit report is exposed as the MCP resource citesurge://projects/{project}/report (Markdown), and the analyze_visibility prompt walks an agent from report to recommendations to proposed fixes.
Multiple projects
One key can serve every project in the account. The agent calls list_projects to see what the key can reach, then passes a project's project slug to each subsequent tool — no interactive picker required. Scope a key to specific projects at creation time to narrow what it can read.
The fix loop: skills pack
Two ready-made skills turn the MCP server into a closed loop for your agent:
citesurge-fix
Pulls your prioritized findings and maps each category to concrete site edits — structured data, llms.txt, content structure, answer-block formatting — applies them in your repo, then verifies with a re-audit.
citesurge-report
Composes a stakeholder-ready Slack or email update from your live scores, trend, and top recommendations.
Install both skills with one command:
npx @citesurge/skills # into ./.claude/skills
npx @citesurge/skills --global # into ~/.claude/skillsThe package is public on npm — the value stays gated because every tool call still authenticates with your org API key. You can also copy the skill directories into your agent's skills location by hand (for Claude Code, .claude/skills/ in your repo).
Limits and safety
MCP calls share the API's rate limits: 60 reads and 10 writes per minute per key. trigger_audit is additionally gated to one run per hour per project and is refused while a project is at its plan's usage cap — an agent loop hits a clear refusal, never surprise spend. Refusals name the reason so the agent can report it and stop.
Errors
Bad, revoked, or expired keys get a 401 challenge at the transport level. Within a session, tool failures return MCP tool errors with a stable code — not-found for anything outside the key's reach, rate-limit-exceeded with a retry hint, and reason codes like audit-recently-requested for trigger refusals. Error responses never include internal details.
More help
Setup questions, plan eligibility, and quick fixes for a key that will not authenticate are collected on the Help & FAQ page. The same keys power the REST API.