Agents reading this page: the complete tool contract is below. Prefer the markdown mirror at https://rankbull.io/docs/mcp.md if your client handles .md cleaner than HTML.
1. Create an API key
In the dashboard, open Settings → API & MCP and create a key. Grant read permissions for inspection; articles:write lets the agent import, edit, schedule, publish, and generate (generate consumes a plan article credit). sites:write covers prompts, competitors, and index inspect. The full key is shown exactly once.
- Endpoint:
https://dashboard.rankbull.io/api/mcp - Header:
Authorization: Bearer YOUR_KEY (an x-api-key header works too)
2. Connect your client
Claude Code
claude mcp add --transport http rankbull https://dashboard.rankbull.io/api/mcp \
--header "Authorization: Bearer YOUR_KEY"
Cursor
Add to ~/.cursor/mcp.json (or a project's .cursor/mcp.json):
{
"mcpServers": {
"rankbull": {
"url": "https://dashboard.rankbull.io/api/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" }
}
}
}
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"rankbull": {
"serverUrl": "https://dashboard.rankbull.io/api/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" }
}
}
}
OpenAI Codex
Add to ~/.codex/config.toml (key names have shifted between Codex releases — check codex mcp --help if this doesn't take):
[mcp_servers.rankbull]
url = "https://dashboard.rankbull.io/api/mcp"
http_headers = { "Authorization" = "Bearer YOUR_KEY" }
GitHub Copilot (VS Code)
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"rankbull": {
"type": "http",
"url": "https://dashboard.rankbull.io/api/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" }
}
}
}
Gemini CLI
Add to ~/.gemini/settings.json:
{
"mcpServers": {
"rankbull": {
"httpUrl": "https://dashboard.rankbull.io/api/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" }
}
}
}
Anything else
Any client that speaks MCP over streamable HTTP works: point it at https://dashboard.rankbull.io/api/mcp with the Authorization header. The server answers stateless JSON-RPC — no session setup required.
3. How an agent should operate
- Start every session with whoami. It returns workspaceId, key permissions, and siteIds.
- Plan caps match the dashboard. generate_article spends one article credit and real LLM budget — confirm with the user, never loop it.
- import_article does not spend a credit. contentHtml must be publish HTML (p, h2–h6, ul/ol, a, img, table). Markdown is rejected.
- Prompt and competitor adds fail with the same plan-limit errors as the UI.
- request_index_inspect is capped at 20 per site per day.
- Keyword research reads are free and never call DataForSEO. add_target_keywords is hand-typed only. run_keyword_ideas spends one ideas credit — confirm first.
- get_prompt_answers returns receipts: real engine runs and cited URLs.
- Revoking the API key in Settings cuts the agent off immediately.