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.