MCP server
Connect Claude Code, Cursor, or any MCP client over OAuth and let your agent drive the /v1 API.
The Rank Prompt MCP server is a hosted remote Model Context Protocol
server at https://mcp.rankprompt.com/mcp. It exposes your AI visibility data (brands, reports,
citations) and the in-app Agent’s actions as tools any MCP client can call, each over its own
/v1 API endpoint. Same data and the same entitlement as the API; nothing to host or keep running.
For the product overview see the MCP landing page. This page is the technical reference.
| Property | Value |
|---|---|
| Endpoint | https://mcp.rankprompt.com/mcp |
| Transport | Streamable HTTP (remote), one JSON-RPC request per POST |
| Auth | OAuth 2.1 + PKCE in the browser, or a pass-through API key |
| Plan | Every plan, free included: the same entitlement as the /v1 API |
| Tools | The in-app Agent’s tools, each calling its own /v1 endpoint |
Connect
Pick your client, add the server, then authenticate. In Claude Code you sign in over OAuth and never paste a key. Other clients point at the URL and approve in the browser, or fall back to an API key.
claude mcp add --transport http --scope user rankprompt https://mcp.rankprompt.com/mcp{
"mcpServers": {
"rankprompt": {
"url": "https://mcp.rankprompt.com/mcp"
}
}
}--scope user makes the server available in every project. Once connected, call rankprompt_prime
first: it returns your entitlement status and the canonical workflow the agent should follow.
Authentication
Two ways to authenticate, both resolving to a scoped /v1 API key:
- OAuth 2.1 (interactive clients). The client registers over dynamic client registration, then you
approve access on a consent screen and sign in with Google. The flow uses PKCE (
S256), so no secret ends up in your shell history. The access token the server issues carries your API key encrypted: the client can read the token but not the key, which is decrypted server-side only to call/v1. - Pass-through API key (headless / CI). Send a
rp_live_...key as the bearer token. Mint one on the Developers page inside your workspace. Use this for clients without a built-in OAuth flow.
Either way, every call is bound to the key’s scopes and brand restriction, and revoking a key takes effect on its next call.
Scopes
The consent screen recommends the scopes of the everyday toolset: brands, reports, prompts, citations,
jobs, page audit, scheduled reports, region configs, competitors, content, CMS connections, brand
audits, tasks, analytics, SEO, reading outreach, account metadata and billing, read and write where a tool
needs it. Sending outreach email, community threads, Google Business Profile, client reports, the agency
portfolio and prospect searches are offered unticked. You can grant more or fewer in the picker. A tool
whose endpoint needs a scope you did not grant returns insufficient_scope.
Implementing your own client
Discovery is standard, so any compliant MCP client connects with no manual config. All paths are on the
server origin mcp.rankprompt.com:
| Document | Path |
|---|---|
| Protected resource metadata (RFC 9728) | /.well-known/oauth-protected-resource |
| Authorization server metadata (RFC 8414) | /.well-known/oauth-authorization-server |
| Dynamic client registration (RFC 7591) | POST /oauth/register |
| Authorize | GET /oauth/authorize |
| Token | POST /oauth/token |
Public clients only (token_endpoint_auth_method: none), the authorization_code grant, and PKCE
S256 are required. A tools/call sent without a token returns 401 with a WWW-Authenticate header
pointing at the protected-resource metadata, which is the pointer MCP clients follow to start OAuth.
Tools
The tools are the ones the in-app Agent runs, generated from the same catalog, so the server and the Agent
never drift, each with typed arguments and its credits and plan in its description.
Each one calls its own /v1 endpoint with your key, so it takes that endpoint’s scope,
request units and credits and answers its JSON; rankprompt_call_tool with a tool’s name and no
arguments names its endpoints. Pass dry_run: true to see what a write would spend without running it. A
call that deletes something or acts outside Rank Prompt (sends mail, publishes, opens a checkout), or changes how
a brand reads its Google data, first answers a dry run of the call and what it would do, and runs once called
again with confirm: true after you agree.
There is no generic tool: an endpoint no tool calls is reached over /v1 with your
API key.
Built in
| Tool | What it does |
|---|---|
rankprompt_prime | Start here: how to drive the server, what spends credits, and which playbook to read. |
rankprompt_skills_list, rankprompt_skills_read | The playbooks, one per area (measurement, prompts, content, publishing, keywords, site health, outreach and more), the same ones the Agent loads, and the Agent’s ready-made jobs. |
rankprompt_call_tool | Run a tool the list does not carry, by its name and arguments, under the same rules as a listed one. Without arguments it answers that tool’s arguments, endpoints and scope, and runs nothing. |
By area
The server lists the tools people use most and, for each area, its main read, its main write and the action
that spends credits, so a client without its own tool search does not load every definition in each chat. The
tools marked * are not in the list: the area’s playbook (rankprompt_skills_read) names them, and
rankprompt_call_tool runs them with the same confirmations, dry runs and credits.
| Area | Tools |
|---|---|
| Tasks | rankprompt_list_tasks, rankprompt_get_task, rankprompt_create_task, rankprompt_update_task, rankprompt_generate_report_recommendations |
| Billing | rankprompt_get_credit_balance, rankprompt_buy_credits, rankprompt_subscribe |
| Brand | rankprompt_get_brand_info, rankprompt_update_brand_info, rankprompt_update_brand_facts, rankprompt_research_brand, rankprompt_create_brand, rankprompt_delete_brand*, rankprompt_restore_brand*, rankprompt_list_alias_suggestions*, rankprompt_accept_alias_suggestion*, rankprompt_dismiss_alias_suggestion* |
| Brand audit | rankprompt_list_brand_audits, rankprompt_get_brand_audit, rankprompt_run_brand_audit |
| Reports | rankprompt_list_reports, rankprompt_get_report, rankprompt_get_prompt_answers, rankprompt_create_report, rankprompt_update_report*, rankprompt_delete_report*, rankprompt_analyze_report_visibility |
| Diagnosis | rankprompt_get_report_visibility_breakdown, rankprompt_get_answers_by_platform |
| Report build | rankprompt_get_report_prompts, rankprompt_add_report_prompts, rankprompt_update_prompt*, rankprompt_delete_report_prompts, rankprompt_manage_locations, rankprompt_manage_report_markets |
| Prompts | rankprompt_list_brand_prompts, rankprompt_set_prompt_tracking, rankprompt_list_fanouts*, rankprompt_get_fanout_prompts*, rankprompt_discover_prompts, rankprompt_get_prompt_insights*, rankprompt_suggest_prompt_content* |
| Scheduled reports and trends | rankprompt_list_scheduled_reports, rankprompt_create_scheduled_report, rankprompt_update_scheduled_report, rankprompt_delete_scheduled_report*, rankprompt_run_scheduled_report_now, rankprompt_get_scheduled_report_analytics, rankprompt_get_visibility_trends, rankprompt_list_calendar_events* |
| Competitors | rankprompt_get_named_brands, rankprompt_list_competitors, rankprompt_get_share_of_voice, rankprompt_find_competitor_duplicates*, rankprompt_update_competitor, rankprompt_merge_competitors*, rankprompt_refresh_ranking_keywords* |
| Citations | rankprompt_list_citations, rankprompt_list_cited_sources, rankprompt_list_social_citations, rankprompt_list_offsite_pages, rankprompt_get_citation_trends, rankprompt_list_tracked_pages*, rankprompt_track_pages* |
| Community | rankprompt_list_community_threads |
| Outreach targets | rankprompt_add_outreach_targets, rankprompt_analyze_cited_pages, rankprompt_verify_backlink*, rankprompt_list_cited_authors |
| Outreach contacts | rankprompt_list_outreach_contacts |
| Campaigns | rankprompt_list_campaigns, rankprompt_connect_mailbox* |
| Outreach inbox | rankprompt_list_outreach_emails, rankprompt_list_outreach_replies* |
| Articles | rankprompt_search_brand_knowledge*, rankprompt_manage_brand_knowledge*, rankprompt_list_briefs, rankprompt_generate_article, rankprompt_import_article*, rankprompt_get_article_context, rankprompt_update_article*, rankprompt_optimize_article* |
| Content plan | rankprompt_list_content_opportunities, rankprompt_plan_articles, rankprompt_get_content_plan*, rankprompt_list_undated_articles*, rankprompt_reschedule_article* |
| Publishing | rankprompt_list_cms_connections, rankprompt_publish_article, rankprompt_connect_publishing_target*, rankprompt_test_publishing_target*, rankprompt_get_github_publishing_profile* |
| Autopilot | rankprompt_configure_content_autopilot, rankprompt_get_content_autopilot*, rankprompt_list_content_interlinks*, rankprompt_apply_content_interlink*, rankprompt_get_content_preferences, rankprompt_update_content_preferences |
| Keywords | rankprompt_list_keywords, rankprompt_list_keyword_clusters*, rankprompt_check_keyword_ranks, rankprompt_research_keywords, rankprompt_track_keywords, rankprompt_update_tracked_keywords*, rankprompt_refresh_domain_overview*, rankprompt_refresh_keyword_gap* |
| SEO audits | rankprompt_get_site_health, rankprompt_list_sitemap_pages*, rankprompt_search_site_index*, rankprompt_add_seo_page, rankprompt_run_seo_audit, rankprompt_run_technical_check, rankprompt_run_page_audit |
| Analytics | rankprompt_get_analytics_summary, rankprompt_get_search_console, rankprompt_get_citation_uplift*, rankprompt_get_youtube_channel* |
| Google Business Profile | rankprompt_list_gbp_locations, rankprompt_get_gbp_profile, rankprompt_get_gbp_performance*, rankprompt_update_gbp_profile, rankprompt_list_gbp_scheduled_posts*, rankprompt_schedule_gbp_post*, rankprompt_reschedule_gbp_post*, rankprompt_cancel_gbp_post*, rankprompt_list_gbp_reviews |
| Local SEO | rankprompt_get_gbp_audit*, rankprompt_run_gbp_audit*, rankprompt_configure_local_autopilot* |
| Local pages | rankprompt_get_local_page_plan*, rankprompt_plan_local_pages*, rankprompt_set_local_page_evidence* |
| Local rank | rankprompt_run_local_scan, rankprompt_get_local_scans, rankprompt_manage_local_scan_schedules*, rankprompt_get_local_sources, rankprompt_check_local_sources |
| Sharing | rankprompt_list_shares*, rankprompt_create_share |
| Agency | rankprompt_list_my_brands, rankprompt_get_portfolio_overview, rankprompt_get_cross_brand_intelligence* |
| Client reports | rankprompt_list_client_reports, rankprompt_get_client_report*, rankprompt_create_client_report, rankprompt_edit_client_report* |
| Article reviews | rankprompt_get_article_review*, rankprompt_share_article_review* |
| Prospecting | rankprompt_list_prospect_lists*, rankprompt_get_prospect_list*, rankprompt_search_prospects*, rankprompt_get_prospect_pipeline*, rankprompt_run_prospect_report*, rankprompt_draft_prospect_pitch*, rankprompt_find_prospect_contact*, rankprompt_update_prospect* |
| Prospect outreach | rankprompt_preview_prospect_outreach*, rankprompt_run_prospect_pipeline*, rankprompt_audit_prospect_profile* |
| Developers | rankprompt_list_webhooks*, rankprompt_create_data_export, rankprompt_get_data_export* |
Many tools pick their /v1 endpoint from their arguments, and their endpoints may use different methods, each
with its own dry run and confirmation. An argument names the call: kind, action, view, by, target or
repeat. An id reads that one item instead of the list.
| Tool | Choice |
|---|---|
rankprompt_list_tasks, rankprompt_list_undated_articles | One brand with brand_id, every brand of the account without it (Agency Plus). |
rankprompt_get_brand_info | kind: profile (the default) or facts (what research stored). |
rankprompt_get_prompt_answers | With answer_id, one answer in full: its text and citations. |
rankprompt_get_report_prompts, rankprompt_add_report_prompts, rankprompt_update_prompt | With region_config_id instead of report_id, one market of a scheduled report. |
rankprompt_manage_locations | action: add (the default), list, update (status archives or restores) or import. |
rankprompt_manage_report_markets | action: add (the default), list or update (status pauses, resumes or archives). |
rankprompt_list_scheduled_reports | With scheduled_report_id, one schedule; kind markets lists its markets. |
rankprompt_list_cited_sources | by: page (the default) or domain. |
rankprompt_list_cited_authors | With author_key, that author’s cited pages. |
rankprompt_list_outreach_contacts | With contact_id, one contact in full; kind citations lists the pages it was found on. |
rankprompt_list_campaigns | With campaign_id, one campaign in full. |
rankprompt_list_outreach_emails | kind summary: the totals and rates; with email_id, the whole conversation. |
rankprompt_search_brand_knowledge | kind: search (the default) or list (every item with its status). |
rankprompt_manage_brand_knowledge | action: add (the default, a note or a web page), update or remove (asks first). |
rankprompt_list_cms_connections | kind: sites (the default) or targets (everywhere an article can go, the hosted blog included). |
rankprompt_research_keywords | With keywords instead of seed, the numbers of keywords you already have, without saving them. |
rankprompt_list_keywords | lens: tracked, starred, near_page_one, zero_click, competitors, ideas or all (left out, the tracked and starred keywords), one row per keyword with every source as evidence; idea_seed keeps one research run’s ideas, keyword one row. With domain, what a competitor’s site ranks for. action: market (where keyword numbers are measured and every market on offer) or set_market (saves another market, asks first). |
rankprompt_update_tracked_keywords | With keyword_id, one saved keyword’s target page and star; with ids and rank_tracked, tracking on or off. |
rankprompt_get_site_health | kind crawlers: what AI crawlers fetched; with page_id, a page’s audits, and with audit_id too, one audit. |
rankprompt_get_search_console | action: performance (the default), inspect_url, sitemaps, connection, properties, select_property (asks first), refresh (asks first) or copilot. |
rankprompt_get_citation_uplift | kind: uplift (the default) or visits (AI assistant visits per article). |
rankprompt_get_local_scans | kind: runs (the default), maps, ai, searches, trend, compare, or one scan: maps_scan, ai_grid, ai_businesses, ai_point. |
rankprompt_manage_local_scan_schedules | action: create (the default), list, update, delete (asks first) or run. |
rankprompt_get_gbp_audit | kind: audit (the default) or pilot (the weekly local pilot). |
rankprompt_create_share | target: report (the default), brand, schedule or audit. |
rankprompt_get_cross_brand_intelligence | view: heatmap (the default) or competitors (the leaderboard). |
rankprompt_get_prospect_pipeline | kind: stages (the default), waiting, list (with list_id), suggestions or views (who opened their report). |
rankprompt_get_prospect_list | A list with list_id; a prospect’s Business Profile audits with prospect_id, one in full with audit_id. |
rankprompt_search_prospects | repeat: once (the default) or weekly (saved, runs every week). |
The Agent’s chat helpers (help search, the page on screen, plans, memory), its ready-to-paste copy, its GitHub repo browser and the team list stay in the app.
The workflow
Run it end to end. The value is in shipping the fixes, not in “report done”. rankprompt_prime
returns this loop in full.
- Pick or create a brand, and make sure it has facts. A report cannot run without them.
- Create a report and choose the engines.
- Seed prompts (the questions engines answer), or auto-generate them.
- Run the report and read it back until it completes.
- Read the summary (score plus AI analysis), the cited sources and the tasks it filed: those are the to-do list.
- Audit your pages, implement the fixes in your repo, then track over time with a schedule, and find
new questions to track with
rankprompt_discover_prompts.
Engines and credits
Reports measure mentions and citations across seven answer engines, all on every plan: chatgpt,
claude, gemini, grok, perplexity, muse and ai_overviews (Google AI Mode). Choose the platforms when
you create a report; with none picked it runs on chatgpt, claude and ai_overviews.
- 1 credit per prompt covers up to 3 platforms.
- 2 credits per prompt cover 4 to 6.
- 3 credits per prompt cover all 7.
See Pricing for the full cost model.
Security
- OAuth 2.1 with PKCE (
S256): browser sign-in, no secret in your shell history. - Dynamic client registration plus an explicit consent screen with Google sign-in.
- Your API key is never exposed to the client. It is carried encrypted inside the access token and
decrypted server-side only to call
/v1. - Scoped, brand-restricted access. Revocation is enforced on every call.
- A hosted remote server; the OAuth endpoints are rate-limited per IP.