MCP server

MonoRanks speaks the Model Context Protocol. Point an assistant at one URL and it can read your audits and act on them.

Endpoint

https://app.monoranks.com/api/mcp

Streamable HTTP, JSON responses, no session to keep. Send a key as a bearer header, or let the client sign you in with OAuth (below).

Connect

Claude Code

claude mcp add --transport http monoranks https://app.monoranks.com/api/mcp \
  --header "Authorization: Bearer mr_ws_…"

Claude.ai and Claude Desktop: Settings → Connectors → Add custom connector → the URL above. Add the key as a bearer header if the client asks for one; otherwise it signs you in.

ChatGPT and other OAuth clients: add https://app.monoranks.com/api/mcp as an MCP server. The client reads /.well-known/oauth-protected-resource, registers itself, and you sign in and approve the read scopes once. Write scopes are never granted this way.

Tools

Read

Tool Does Scope
list_sites Websites the key covers, with ids sites:read
portfolio Every website in one call: scores and their change, issues, actions, last and next audit, and Search Console clicks (with search:read) sites:read
site_summary Scores, last audit, open issues, WordPress access, how fresh each connection is sites:read
speed_results Speed per tested page: lab test and real-visitor data sites:read
audit_status The latest audits, or one audit by audit_id, with pages crawled and the page budget sites:read
list_issues Issues, the same list as the Issues screen issues:read
issue_detail One issue with pages, evidence, explanation and suggested new values (100 at a time, suggestions_offset for more) issues:read
list_actions Prioritized actions with estimated gain and how long each has been open issues:read
page_findings Findings for one page, by id or address pages:read
search_summary Search Console totals, top pages and queries search:read
search_rows Search Console rows for a date range, by query, page, query and page, or day search:read
ai_visibility What AI assistants answered to your tracked questions, per week ai:read
answer_gaps Questions where AI answers name other websites but not yours ai:read
geo_access AI crawler access, llms.txt and entity signals from the last audit ai:read
llms_txt The live llms.txt and a ready-to-publish draft ai:read
ai_crawler_rules What robots.txt says to each AI crawler now ai:read
agentic_results Agentic browsing results with what to fix, or one re-run by job_id ai:read

Act

Tool Does Scope
recheck Queue a recheck of an issue issues:recheck
run_agentic_check Re-run the Agentic browsing check for one page issues:recheck
start_audit Start a full audit now, with an optional page budget audits:run
apply Approve an action’s new SEO titles, descriptions, canonicals or noindex and write them to WordPress actions:apply
apply_llms_txt Approve a new llms.txt and write it to WordPress actions:apply
apply_ai_crawler_rules Approve allow or deny rules for AI crawlers and write them into robots.txt actions:apply

site_id is only needed when the key covers several websites; list_sites shows the ids. A missing scope comes back as a tool error that names the scope. The tools give the same answers as the REST API, so the details there apply here too.

Example conversation

“Which of my websites lost the most clicks this month, and what is the top action for it?”

The assistant calls portfolio once, picks the website with the biggest drop, then calls list_actions for it, and answers with the action and its estimated gain. If you say “apply it”, it reads the suggested values with issue_detail, calls apply, and the change shows up in the app’s activity with Undo.

Common questions

Which clients work?

Anything that supports MCP over Streamable HTTP: Claude Code, Claude.ai, Claude Desktop, ChatGPT (developer mode connectors), Cursor, Windsurf and others.

Can the assistant break my site?

Only three tools change your website: apply, apply_llms_txt and apply_ai_crawler_rules. They follow the same rules as the buttons in the app: connected WordPress websites only, the key owner recorded as approver, a check afterwards and Undo in the app for 30 days. recheck, run_agentic_check and start_audit only read your website again.

Why does ChatGPT not need a key?

Clients that discover sign-in themselves use OAuth: they send you to sign in and approve read access. The token they receive is a workspace key with read scopes only, listed and revocable under Settings → API and MCP.