io.github.abhibavishi/rankparse-mcp
REMOTE · MCP.RANKPARSE.COM
SEO MCP server — backlinks, domain authority, tech stack, and 18+ tools via Common Crawl.
Available components
Last scanned (4 hours ago)
Scores higher than 28% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Marketing and SEO
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security95
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
- The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism. View diagnostics → Pass
Transport & Reachability0
- Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http. See how to fix → View diagnostics → Unverified
Schema Quality & AI Usability0
- Schema blocked by authentication: the endpoint requires auth we don't have to read it. See how to fix → Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Tool Safety0
- Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Capabilities0
- Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. See how to fix → Unverified
Unverified: 6 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm. Claim this server and supply a read-only token to verify it and lift the score.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 −46
- Endpoint reachability: reachable → behind authorisation ▼ security
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Transport: pass → unverified ▼ security
- Authorization: partial → pass ▲ security
- First check of Authorization: pass security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 29 Oct 26 −1
- Tool “get_ai_visibility” rewrote its description, which is the text the model reads security
- Tool “recheck_ai_visibility” rewrote its description, which is the text the model reads security
- Schema quality: 10553 → 11730 ▼ functional
- New tool “get_indexing_status” functional
- New tool “list_site_issues” functional
- “get_gsc_top_queries” added an optional parameter “searchType” cosmetic
- “get_gsc_country_breakdown” added an optional parameter “searchType” cosmetic
- “get_gsc_date_trends” added an optional parameter “searchType” cosmetic
- “get_gsc_device_breakdown” added an optional parameter “searchType” cosmetic
- “get_gsc_low_ctr_pages” added an optional parameter “searchType” cosmetic
- “get_gsc_low_ctr_queries” added an optional parameter “searchType” cosmetic
- “get_gsc_opportunity_queries” added an optional parameter “searchType” cosmetic
- “get_gsc_page_queries” added an optional parameter “searchType” cosmetic
- “get_gsc_page_segment” added an optional parameter “searchType” cosmetic
- “get_gsc_page_trend” added an optional parameter “searchType” cosmetic
- “get_gsc_query_page_pairs” added an optional parameter “searchType” cosmetic
- “get_gsc_query_pages” added an optional parameter “searchType” cosmetic
- “get_gsc_query_trend” added an optional parameter “searchType” cosmetic
- “get_gsc_search_appearance” added an optional parameter “searchType” cosmetic
- “get_gsc_top_pages” added an optional parameter “searchType” cosmetic
- 26 Oct 26 +2
- DNSSEC: fail → pass ▲ security
- New tool “get_ai_visibility” functional
- New tool “recheck_ai_visibility” functional
- 23 Oct 26 0
- Tool “outreach_add_contacts” rewrote its description, which is the text the model reads security
- Tool “outreach_create_campaign” rewrote its description, which is the text the model reads security
- New tool “outreach_update_contacts” functional
- 22 Oct 26 −1
- Tool “outreach_configure_sending” rewrote its description, which is the text the model reads security
- Tool “outreach_sending_status” rewrote its description, which is the text the model reads security
- “outreach_configure_sending” added an optional parameter “mailbox_id” cosmetic
- “outreach_sending_status” added an optional parameter “mailbox_id” cosmetic
- “outreach_configure_sending” reworded the description of “auto_send_enabled” cosmetic
- “outreach_configure_sending” reworded the description of “max_sends_per_day” cosmetic
- 21 Oct 26 0
- Tool “outreach_create_campaign” rewrote its description, which is the text the model reads security
- Tool “outreach_launch_campaign” rewrote its description, which is the text the model reads security
- Tool “propose_outreach_send” rewrote its description, which is the text the model reads security
- 3 Oct 26 84
- Tool “get_domain_authority” rewrote its description, which is the text the model reads security
- Tool “get_gsc_country_breakdown” rewrote its description, which is the text the model reads security
- Tool “get_gsc_date_trends” rewrote its description, which is the text the model reads security
- Tool “get_gsc_device_breakdown” rewrote its description, which is the text the model reads security
- Tool “get_gsc_low_ctr_pages” rewrote its description, which is the text the model reads security
- Tool “get_gsc_low_ctr_queries” rewrote its description, which is the text the model reads security
- Tool “get_gsc_opportunity_queries” rewrote its description, which is the text the model reads security
- Tool “get_gsc_page_queries” rewrote its description, which is the text the model reads security
- Tool “get_gsc_page_segment” rewrote its description, which is the text the model reads security
- Tool “get_gsc_page_trend” rewrote its description, which is the text the model reads security
- Tool “get_gsc_properties” rewrote its description, which is the text the model reads security
- Tool “get_gsc_query_page_pairs” rewrote its description, which is the text the model reads security
- Tool “get_gsc_query_pages” rewrote its description, which is the text the model reads security
- Tool “get_gsc_query_trend” rewrote its description, which is the text the model reads security
- Tool “get_gsc_search_appearance” rewrote its description, which is the text the model reads security
- Tool “get_gsc_sitemaps” rewrote its description, which is the text the model reads security
- Tool “get_gsc_top_pages” rewrote its description, which is the text the model reads security
- Tool “get_gsc_top_queries” rewrote its description, which is the text the model reads security
- Tool “get_gsc_url_inspection” rewrote its description, which is the text the model reads security
- Tool “outreach_configure_sending” rewrote its description, which is the text the model reads security
- Tool “outreach_create_campaign” rewrote its description, which is the text the model reads security
- Tool “outreach_launch_campaign” rewrote its description, which is the text the model reads security
- Tool “outreach_list_campaigns” rewrote its description, which is the text the model reads security
- Schema quality: 7956 → 9512 ▼ functional
- New tool “complete_agent_task” functional
- New tool “get_agent_tasks” functional
- New tool “list_proposals” functional
- New tool “list_websites” functional
- New tool “log_activity” functional
- New tool “propose_indexnow_submit” functional
- New tool “propose_outreach_send” functional
- “outreach_create_campaign” added an optional parameter “site_id” cosmetic
- “outreach_list_campaigns” added an optional parameter “site_id” cosmetic
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://mcp.rankparse.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=rankparse.com | CN=WE1,O=Google Trust Services,C=US | 19 Oct 2026 | 17 Jan 2027 | ECDSA 256 | ECDSA-SHA256 | b7c251857f7150da135329fb45233387 |
| SANs: rankparse.com, mcp.rankparse.com, *.mcp.rankparse.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of mcp.rankparse.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| rankparse.com. | present | 2371 | 13 | Verified |
| mcp.rankparse.com. | Verified address RRset verified with the apex keys |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On connection |
| HTTP status | 401 |
WWW-Authenticate challenge Bearer resource_metadata="https://mcp.rankparse.com/.well-known/oauth-protected-resource/mcp", scope="seo:read account:read workspace:read workspace:write offline_access"
Bearer resource_metadata="https://mcp.rankparse.com/.well-known/oauth-protected-resource/mcp", scope="seo:read account:read workspace:read workspace:write offline_access" | Header | Value |
|---|---|
| www-authenticate | Bearer resource_metadata="https://mcp.rankparse.com/.well-known/oauth-protected-resource/mcp", scope="seo:read account:read workspace:read workspace:write offline_access" |
Protected resource metadata
| Document | https://mcp.rankparse.com/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://mcp.rankparse.com/mcp |
| Authorisation server | https://connect.rankparse.com |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.rankparse.com/mcp | Auth required | 401 | |
| http (plaintext) | http://mcp.rankparse.com/mcp | HTTPS enforced | 301 | https://mcp.rankparse.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
get_similar_domains ~42
Find domains with similar link profiles, useful for competitor discovery. May return partial results when the query fan-out hits time budget.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | – |
No output schema declared.
No examples provided.
get_site_explorer ~35
Full SEO overview for a domain (backlinks, authority, top pages, anchor text)
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | – |
No output schema declared.
No examples provided.
get_site_health ~58
Real-time site health check: HTTPS enforcement, HSTS, www redirect behavior, key URL availability and response times, security headers (CSP, X-Frame-Options, HSTS), robots.txt analysis
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | – |
No output schema declared.
No examples provided.
get_sitemap ~43
Discover and parse a domain's sitemap. Returns URLs with lastmod, changefreq, and priority
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | – |
| limit | number | – | – |
No output schema declared.
No examples provided.
get_tech_stack ~47
Real-time technology detection for a domain: frameworks, CMS, analytics, CDN, hosting, e-commerce, payments, and more (50+ technologies)
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | – |
No output schema declared.
No examples provided.
get_top_pages ~31
Get most-linked pages for a domain
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | – |
| limit | number | – | – |
No output schema declared.
No examples provided.
list_proposals ~115
List actions you or RankParse proposed and their status (pending, approved, succeeded, failed, skipped, expired). Use it to see what the user approved or skipped. A failed or partly failed proposal carries an error_code, for example nothing_to_send (everything was already queued or suppressed), payload_changed_since_approval (it changed after approval, so propose again) or approver_lost_permission (tell the user).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| site_id | string | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
list_rank_change_alerts ~177
List recent rank-change alert events for one RankParse website: significant stored-ranking moves (entered/left top 3 or top 10, moved up/down past the configured threshold, new/lost rankings) detected daily and summarized in a weekly email. Reads recorded events, never runs a live check; a keyword with no events simply had no significant moves. Events exist only while alerts are enabled for the site (see get_rank_alert_settings) and only for engines whose data was actually available -- provider-limited or pending engines generate nothing rather than false "lost ranking" alerts.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max events to return (default 100, max 100) |
| offset | integer | – | Pagination offset (default 0) |
| site_id | string | yes | Logical RankParse website ID, from list_rank_tracking_sites |
No output schema declared.
No examples provided.
list_rank_tracking_sites ~48
List websites configured for stored Google, Bing, and Yandex keyword tracking, including provider freshness and sync state. This reads RankParse snapshots; it does not run a live SERP check.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_site_issues ~394
List the problems RankParse has found on the user's websites: the same list as the Issues tab in the RankParse dashboard, worst first. Types: not-indexed (tracked pages Google has not indexed, or has not confirmed yet), click-drop (tracked queries that lost at least 30% of their clicks or fell off page one, last 4 weeks against the 4 before), low-ctr (Google queries on page one with well under half the usual click-through rate for their position), connection (a Search Console, Bing or Yandex source that needs reconnecting or failed to sync), ai-visibility and site-health (failing checks from the daily site scan, paid plans only). Each issue has a title, detail, evidence lines, affected pages, a suggested_task to act on, links to the dashboard and, for not-indexed, indexnow_urls (pages not submitted to IndexNow in the last 24 hours: pass them to propose_indexnow_submit). For one page's Google index details use get_indexing_status or get_gsc_url_inspection; after fixing a scan issue use recheck_ai_visibility. Reads stored data (synced daily); it is not a live crawl. Without site_id it covers the workspace: not-indexed, click-drop, low-ctr and connection issues for the 25 most recently synced websites (truncated: true says other websites were left out of those four types), and ai-visibility and site-health issues for up to 500 websites. limit caps the list at 100 with no paging; total says how many matched. 0 credits.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max issues (default 50, max 100) |
| site_id | string | – | Logical RankParse website ID, from list_websites or list_rank_tracking_sites. Omit for every website in the workspace. |
| type | array | – | Only these issue types |
No output schema declared.
No examples provided.
list_tracked_keywords ~85
List the tracked keyword IDs and text for one RankParse website. Call list_rank_tracking_sites first to obtain site_id.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max keywords to return (default 100, max 100) |
| offset | integer | – | Pagination offset (default 0) |
| site_id | string | yes | Logical RankParse website ID, from list_rank_tracking_sites |
No output schema declared.
No examples provided.
list_websites ~56
List this account's websites (id, host, name). Use the id as site_id in propose_* and log_activity. At the start of any RankParse session, call get_agent_tasks to see work the user queued for you.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
log_activity ~89
Record what you did for the user in their RankParse activity feed, in plain text (max 500 characters). Credits are taken from your recent RankParse calls automatically; do not report credits yourself. Pass client_request_id to make retries safe.
| Name | Type | Req | Description |
|---|---|---|---|
| client_request_id | string | – | – |
| kind_hint | string | – | – |
| site_id | string | – | – |
| summary | string | yes | – |
No output schema declared.
No examples provided.
outreach_add_contacts ~297
Add contacts with per-contact email copy to a campaign (max 100 per call, 500 per campaign, one contact per domain). Works on a draft campaign AND on an already-launched one, which is how you top a live campaign up with fresh prospects. Each contact needs a researched, real email address (never guess addresses) plus a personalized subject and plain-text body (subject ≤500 chars, body ≤10,000). Write like a human: plain punctuation, and NEVER use em-dashes in subjects or bodies. Subjects must be 2-5 words that read like a note from a colleague and reference their content (e.g. "your AI tools guide"): never sales words like exclusive, lifetime, revenue, or deal. Internationalized (non-ASCII) domains must be given in punycode (xn--) form. Returns how many were added and which were skipped (invalid email, duplicate domain/email, copy too long, campaign full, already_contacted = this person was emailed in an earlier campaign). Contacts added to a launched campaign sit inert until you call outreach_launch_campaign again. A contact already in the campaign is skipped as duplicate_email or duplicate_domain and its copy is NOT changed: to rewrite the copy of existing contacts use outreach_update_contacts, do not create a new campaign.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign id from outreach_create_campaign |
| contacts | array | yes | Contacts with their personalized copy |
No output schema declared.
No examples provided.
outreach_configure_sending ~330
Update the Gmail sending schedule of ONE mailbox (the workspace default unless you pass mailbox_id from outreach_sending_status; each mailbox has its own cap and switch): max_sends_per_day (1-100, shared by the campaigns that send from that mailbox) and/or auto_send_enabled (false stops all sending from that mailbox, true resumes it). Lowering the cap or turning sending off applies immediately. For most accounts, raising the cap or turning sending on needs the user's approval in RankParse: the response is 202 with ok true, status awaiting_approval and a review_url, and nothing has been increased yet, so show the user the review_url. For other accounts a raise applies directly and returns ok true. A request that mixes both applies the decrease or disable now and proposes the rest; the message then starts "Applied now: ...". If it fails with change_in_progress, another sending change is already approved or running. The increase was not applied, but any decrease or disable in the same request has been applied (see applied and message): send the increase again after it completes (check list_proposals). If status is approved, it is already approved; do not ask again. Confirm with the user before changing these; they control real email volume.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_send_enabled | boolean | – | Master switch for the hourly send sweep of the mailbox |
| mailbox_id | string | – | A mailbox_id from outreach_sending_status. Omit it for the workspace default mailbox. |
| max_sends_per_day | integer | – | Daily send cap for the mailbox (1-100) |
No output schema declared.
No examples provided.
outreach_create_campaign ~453
Create a draft link-building outreach campaign (sends via the user's connected Gmail). Outreach flow: 1) interview the user (their site, goal, competitors), 2) build a prospect list with get_competitor_gap / get_referring_domains / get_domain_authority, 3) research one real contact email per prospect domain, 4) write a short personalized subject+body per contact, 5) outreach_create_campaign, 6) outreach_add_contacts, 7) show the user the emails you drafted and get their OK before launching, 8) outreach_launch_campaign: this tells RankParse the campaign is ready and returns status ready_for_review with a review_url (the campaign page), and nothing is sent until the user approves the emails there one by one; tell the user it is ready to review in RankParse and share the review_url (if status is approved it is already approved, so do not launch again). Shortcut: propose_outreach_send does steps 5, 6 and 8 in one call (creates or tops up the campaign, adds the contacts, marks it ready for review). Requires the user to have Gmail connected at rankparse.com/dashboard/integrations. To CONTINUE an existing campaign rather than start a new one, begin at outreach_suggest_prospects instead of step 1: campaigns are topped up, not replaced. To change the email copy of contacts already in a campaign (for example when the user asks for a rewrite), call outreach_update_contacts on the SAME campaign and then outreach_launch_campaign again; never create a second campaign for that, because the first one would keep its old unsent emails.
| Name | Type | Req | Description |
|---|---|---|---|
| goal | string | – | What the outreach is trying to achieve, for the campaign record |
| name | string | yes | Campaign name, e.g. "SaaS blogs - competitor gap Aug 2026" |
| site_id | string | – | Optional RankParse website id (from list_websites, or given to you in a website-scoped outreach prompt) to link this campaign to a website. Omit to leave it unassigned. |
| your_domain | string | yes | The domain being promoted, e.g. "example.com" |
No output schema declared.
No examples provided.
outreach_get_campaign ~51
Get a campaign's status and delivery counts (awaiting launch, queued, sending, sent, skipped). Use to answer "how is my campaign doing?".
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign id |
No output schema declared.
No examples provided.
outreach_launch_campaign ~182
Tell RankParse a campaign's emails are ready. It returns status ready_for_review with a review_url (the campaign page): the user reviews and approves each email there, and nothing is sent until they do. Only if the user turned on "Let Claude send without review" in RankParse does it queue the emails directly (queued/suppressed counts). Safe to call again; it never re-sends. When it returns ready_for_review, tell the user the emails are ready to review in RankParse and show them the review_url. If status is approved, it is already approved; do not launch again. If it returns queued/suppressed counts instead of ready_for_review, the emails are being sent now, so only call it after the user has seen the drafted emails and explicitly approved sending.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign id to launch |
No output schema declared.
No examples provided.
outreach_list_campaigns ~64
List this account's outreach campaigns with status and contact counts. Optionally filter to one website; an unknown site_id returns an empty list.
| Name | Type | Req | Description |
|---|---|---|---|
| site_id | string | – | Optional RankParse website id (from list_websites) to list only that website's campaigns |
No output schema declared.
No examples provided.
outreach_pause_campaign ~49
Pause one campaign: its queued emails stop sending but stay queued, so resuming continues exactly where it left off. Other campaigns keep sending.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign id to pause |
No output schema declared.
No examples provided.
outreach_resume_campaign ~39
Resume a paused campaign; its queued emails become eligible for the next hourly send sweep again.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign id to resume |
No output schema declared.
No examples provided.
outreach_sending_status ~126
Get the Gmail sending status of one mailbox (the workspace default, or the one named by mailbox_id): connected account, auto-send on/off, daily cap, how many sent today, remaining budget today, how many emails it has queued, and estimated days to drain them. It also returns mailboxes: every connected Gmail mailbox with its own account, cap and queue. Each website sends from the mailbox it is mapped to, or from the default one.
| Name | Type | Req | Description |
|---|---|---|---|
| mailbox_id | string | – | A mailbox_id from the mailboxes list. Omit it for the workspace default mailbox. |
No output schema declared.
No examples provided.
outreach_suggest_prospects ~204
START HERE when adding more websites to an existing campaign. Returns the campaign's own context (domain, goal), how much room it has left, its send queue, and — critically — exclude_domains: every prospect domain this account has already used in ANY campaign. You MUST filter your discovery results against exclude_domains. get_competitor_gap is cached and unpaginated, so calling it again returns the identical top-N: request a limit several times larger than recommended_batch_size, drop everything already in exclude_domains, and keep what is left. Widen the pool with get_similar_domains, get_link_intersect, or get_platform_domains when the competitor gap is exhausted. Then research one real contact per surviving domain, call outreach_add_contacts, and finish with outreach_launch_campaign to queue them. Note exclude_domains_truncated: when true the list is capped and you should prefer clearly-unseen domains.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign id to top up |
No output schema declared.
No examples provided.
outreach_update_contacts ~306
Rewrite the subject and body of contacts that are already in a campaign, in that same campaign (max 100 per call). Use this when the user asks to change or redo email copy; do NOT create a new campaign for that, and do not try outreach_add_contacts, which skips contacts the campaign already holds. Contacts are matched by email address; the address itself never changes. Only emails still waiting for review (the awaiting_launch count in outreach_get_campaign) are rewritten, and any approval they had is cleared so the user reviews the new copy. Emails that are queued, sending, sent or skipped come back as not_editable and are left exactly as they were: if a queued email should change too, ask the user to take it back to review in RankParse (Unapprove), then call this again; a sent email cannot change and a skipped one must be restored in RankParse first. Same copy rules as outreach_add_contacts: plain punctuation, NEVER use em-dashes, subject 2-5 words that reads like a note from a colleague, subject ≤500 chars, body ≤10,000. Returns one result per contact (updated, not_found, not_editable with the state it is in, or invalid with the reason). After updating, call outreach_launch_campaign again so the rewritten emails go back to the user for review.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign id the contacts are already in |
| contacts | array | yes | Contacts with their new copy |
No output schema declared.
No examples provided.
propose_indexnow_submit ~141
Ask the user to approve submitting URLs to IndexNow (Bing, Yandex, Seznam, Naver). All URLs on one host that is one of the user's websites, max 1000. Costs 1 credit only when it runs. If status is approved, it is already approved; do not propose it again. Nothing happens until the user approves it in RankParse (unless they allowed it in website settings). Show them the review_url.
| Name | Type | Req | Description |
|---|---|---|---|
| note | string | – | Why, in one or two plain sentences. Shown to the user labelled as your note. |
| site_id | string | – | – |
| urls | array | yes | – |
No output schema declared.
No examples provided.
propose_outreach_send ~254
Put outreach emails in front of the user for review. Pass contacts inline (max 100, one per domain, researched real addresses, personalized subject and plain-text body, no em-dashes). RankParse creates or tops up the draft campaign and marks it ready: the user reviews and approves each email on the campaign page (the review_url), and nothing is sent until they do. Use site_id from list_websites (required when creating a campaign; with campaign_id it must match that campaign's website). To propose the copy-ready contacts a campaign already has, pass campaign_id without contacts. If status is approved, it is already approved; do not propose it again. Nothing is sent until the user approves it in RankParse. Show them the review_url.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | – | Existing campaign to top up; omit to create one |
| campaign_name | string | – | Required when campaign_id is omitted |
| contacts | array | – | Required when campaign_id is omitted |
| note | string | – | Why, in one or two plain sentences. Shown to the user labelled as your note. |
| site_id | string | – | Website id from list_websites. Required when campaign_id is omitted |
No output schema declared.
No examples provided.
provision_indexnow_key ~130
Get (or create) the IndexNow key for a host. Idempotent per host: repeated calls return the same key. Free (0 credits). Returns the key, its required key_location (https://<host>/<key>.txt), and verified (whether the hosted key file has already been confirmed). The USER must host a UTF-8 text file containing exactly the key at key_location before submit_indexnow_urls will work — tell them the location and the key, then submit.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | The website host to provision a key for, e.g. "example.com" |
No output schema declared.
No examples provided.
recheck_ai_visibility ~141
Queue a fresh AI visibility scan for one verified RankParse website, for example after the user fixed robots.txt or published llms.txt. The scan runs in the background within a few minutes; read the result with get_ai_visibility. Limited to one re-check per website per 10 minutes: a throttled call answers status "throttled" with retry_after_seconds and changes nothing. Fails with site_scan_not_verified for a website that is not verified and site_scan_plan_required (403) on the Free plan. 0 credits.
| Name | Type | Req | Description |
|---|---|---|---|
| site_id | string | yes | Logical RankParse website ID, from list_rank_tracking_sites or list_websites |
No output schema declared.
No examples provided.
submit_indexnow_urls ~147
Submit changed/new/deleted URLs to IndexNow so search engines (Bing, Yandex, Seznam, Naver, ...) recrawl them promptly. All URLs must share one host, max 1000 per call. Requires the host's IndexNow key file to be live: call provision_indexnow_key first and make sure the user hosted the key file at its key_location (indexnow_key_not_verified means the file is missing or wrong). Costs 1 credit, refunded automatically when the submission fails.
| Name | Type | Req | Description |
|---|---|---|---|
| urls | array | yes | Full URLs to submit, e.g. ["https://example.com/a", "https://example.com/b"] — all on the same host |
No output schema declared.
No examples provided.
update_rank_alert_settings ~186
Update rank-change alert settings for one RankParse website: enable/disable the weekly digest (opt-in, default off), set the moved_up/moved_down position threshold (1-50, default 5), or set/clear an email override for that site's digest lines (null reverts to the account email). Only the fields you pass change. Confirm with the user before enabling -- this turns on a real weekly email when meaningful changes exist.
| Name | Type | Req | Description |
|---|---|---|---|
| email_override | string|null | – | Email address to send this site's digest lines to instead of the account email; null clears it |
| enabled | boolean | – | Turn the weekly alert digest on or off for this site |
| move_threshold | number | – | Average-position delta that counts as moved_up/moved_down (default 5) |
| site_id | string | yes | Logical RankParse website ID, from list_rank_tracking_sites |
No output schema declared.
No examples provided.
zeekeo_activate_campaign ~132
Activates a paused Zeekeo campaign so it starts running (sends real LinkedIn connection invites per the campaign's configured limit/delay). Zeekeo campaigns are created paused by default — call this after zeekeo_create_campaign to actually start sending. This resumes REAL LinkedIn automation — confirm with the user before calling. Requires the user to have connected their own Zeekeo Launchpad account. Direct them to rankparse.com/dashboard/integrations to connect it.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Zeekeo campaign id from zeekeo_list_campaigns or zeekeo_create_campaign |
No output schema declared.
No examples provided.
zeekeo_create_campaign ~387
Creates a Zeekeo LinkedIn campaign: sends a connection invite using invite_template_id, and optionally — if followup_template_id is given — waits for the invite to be accepted, then sends a follow-up message using that template. Create templates first with zeekeo_create_template. Provide exactly one of filter_url (a LinkedIn search results URL) or profile_urls (specific profiles) as the target. This starts REAL LinkedIn automation once the campaign has profiles in it — confirm with the user before calling. Requires the user to have connected their own Zeekeo Launchpad account. Direct them to rankparse.com/dashboard/integrations to connect it.
| Name | Type | Req | Description |
|---|---|---|---|
| exclude_first_degree_connections | boolean | – | Skip people already connected to the user (default true) |
| exclude_past_campaigns_targets | boolean | – | Skip people already targeted in a previous campaign (default true) |
| filter_url | string | – | A LinkedIn search results URL to source profiles from. Provide this or profile_urls, not both. |
| followup_delay_hours | number | – | Hours to wait after connection before the follow-up (default 24) |
| followup_template_id | string | – | Template id from zeekeo_create_template (type linkedin_message) for a follow-up message sent after the invite is accepted. Omit for an invite-only campaign. Must be a linkedin_message template — emai… |
| invite_delay | number | – | Seconds to wait before the first invite (default 0) |
| invite_limit | number | – | Max invites to send (default 20) |
| invite_template_id | string | yes | Template id from zeekeo_create_template (type linkedin_invite) |
| name | string | yes | Campaign name |
| profile_urls | array | – | Specific LinkedIn profile URLs to target. Provide this or filter_url, not both. |
No output schema declared.
No examples provided.
zeekeo_create_template ~183
Creates a reusable Zeekeo message template. Call this BEFORE zeekeo_create_campaign — a campaign references templates by the template_id this returns, not inline text. type must be 'linkedin_invite' for a connection-request template, or one of linkedin_message/linkedin_inmail/email_message for a follow-up/reply template. Requires the user to have connected their own Zeekeo Launchpad account. Direct them to rankparse.com/dashboard/integrations to connect it.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | yes | Message text. Supports Zeekeo merge variables like {{FIRST_NAME}} and {{COMPANY}}. |
| name | string | yes | Template name, for your own reference in the Zeekeo dashboard |
| subject | string | – | Subject line, required when type is email_message |
| type | string | yes | What kind of message this template is for |
No output schema declared.
No examples provided.
zeekeo_list_campaigns ~82
List the user's Zeekeo Launchpad campaigns (LinkedIn automation). Use this to find a campaign_id for zeekeo_send_message, or call zeekeo_create_campaign to make a new one. Requires the user to have connected their own Zeekeo Launchpad account. Direct them to rankparse.com/dashboard/integrations to connect it.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
zeekeo_send_message ~191
Sends a REAL LinkedIn message, InMail, or email through Zeekeo Launchpad to a profile in one of the user's existing Zeekeo campaigns. Only call this after showing the user the drafted message and getting explicit approval. Resolves linkedin_url into that campaign first, so the profile must be reachable from it (use zeekeo_list_campaigns to pick campaign_id). Requires the user to have connected their own Zeekeo Launchpad account. Direct them to rankparse.com/dashboard/integrations to connect it.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | yes | Message text |
| campaign_id | string | yes | Zeekeo campaign id from zeekeo_list_campaigns |
| linkedin_url | string | yes | LinkedIn profile URL or public identifier of the recipient |
| subject | string | – | Subject line, required when type is email_message |
| type | string | yes | Channel to send through |
No output schema declared.
No examples provided.
How do I install the io.github.abhibavishi/rankparse-mcp server?
io.github.abhibavishi/rankparse-mcp is a hosted endpoint at https://mcp.rankparse.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.rankparse.com
claude mcp add --transport http abhibavishi-rankparse-mcp 'https://mcp.rankparse.com/mcp'
What is the io.github.abhibavishi/rankparse-mcp server?
io.github.abhibavishi/rankparse-mcp is listed in the public MCP registry as io.github.abhibavishi/rankparse-mcp. SEO MCP server, backlinks, domain authority, tech stack, and 18+ tools via Common Crawl. This page covers its hosted endpoint (https://mcp.rankparse.com/mcp).
Is the io.github.abhibavishi/rankparse-mcp server safe to use?
io.github.abhibavishi/rankparse-mcp scores 38 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.abhibavishi/rankparse-mcp server expose?
io.github.abhibavishi/rankparse-mcp exposes 85 tools: get_backlinks, get_referring_domains, get_outbound_links, get_domain_authority, get_domain_rank, and 80 more. Their descriptions and schemas cost roughly 11,730 tokens of context every time the server is loaded.
Does the io.github.abhibavishi/rankparse-mcp server require authentication?
Yes. io.github.abhibavishi/rankparse-mcp asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the io.github.abhibavishi/rankparse-mcp server still maintained?
io.github.abhibavishi/rankparse-mcp is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.