io.github.abhibavishi/rankparse-mcp
REMOTE · MCP.RANKPARSE.COM · SCANNED SEP 20
SEO MCP server — backlinks, domain authority, tech stack, and 18+ tools via Common Crawl.
Available components
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 Security74
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- 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 check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability71
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 7936 tokens (~108/item across 73 items; 73 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage92
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 77% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 73 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
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'
{
"mcpServers": {
"abhibavishi-rankparse-mcp": {
"url": "https://mcp.rankparse.com/mcp"
}
}
} {
"servers": {
"abhibavishi-rankparse-mcp": {
"type": "http",
"url": "https://mcp.rankparse.com/mcp"
}
}
} [mcp_servers.abhibavishi-rankparse-mcp] url = "https://mcp.rankparse.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"abhibavishi-rankparse-mcp": {
"type": "remote",
"url": "https://mcp.rankparse.com/mcp",
"enabled": true
}
}
} openclaw mcp add abhibavishi-rankparse-mcp --url 'https://mcp.rankparse.com/mcp' --transport streamable-http
mcp_servers:
abhibavishi-rankparse-mcp:
url: "https://mcp.rankparse.com/mcp" {
"McpServers": {
"abhibavishi-rankparse-mcp": {
"Transport": "http",
"Url": "https://mcp.rankparse.com/mcp"
}
}
} assistant mcp add abhibavishi-rankparse-mcp -t streamable-http -u 'https://mcp.rankparse.com/mcp'
{
"mcpServers": {
"abhibavishi-rankparse-mcp": {
"type": "http",
"url": "https://mcp.rankparse.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 17 Sept 26 0
- Schema quality: 7136 → 7936 ▼ functional
- New tool “get_rank_alert_settings” functional
- New tool “list_rank_change_alerts” functional
- New tool “provision_indexnow_key” functional
- New tool “submit_indexnow_urls” functional
- New tool “update_rank_alert_settings” functional
- “get_keyword_rank_history” added an optional parameter “dimension” cosmetic
- 9 Sept 26 0
- Tool “get_schema_markup” rewrote its description, which is the text the model reads security
- 6 Sept 26 0
- Schema quality: pass → fail ▼ functional
- New tool “get_keyword_rank_history” functional
- New tool “get_keyword_rankings” functional
- New tool “list_rank_tracking_sites” functional
- New tool “list_tracked_keywords” functional
- 26 Aug 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 0
- Stability: 0.97 → pass security
- 24 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 22 Aug 26 82
- Tool “zeekeo_list_campaigns” rewrote its description, which is the text the model reads security
- Tool “zeekeo_send_message” rewrote its description, which is the text the model reads security
- Schema quality: 5604 → 6377 ▼ functional
- New tool “zeekeo_activate_campaign” functional
- New tool “zeekeo_create_campaign” functional
- New tool “zeekeo_create_template” functional
- 21 Aug 26 0
- New tool “zeekeo_list_campaigns” functional
- New tool “zeekeo_send_message” 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 20 Sept 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 | 21 Aug 2026 | 19 Nov 2026 | ECDSA 256 | ECDSA-SHA256 | 96fc8688c5ed8f931300de47a94dccef |
| 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 insecure
Validation of mcp.rankparse.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| rankparse.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
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 | Verified | 200 | |
| 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_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_rank_change_alerts ~175
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 by the daily digest pass. 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_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.
outreach_add_contacts ~257
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.
| 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 ~100
Update the Gmail sending schedule: max_sends_per_day (1-100, applies account-wide across all campaigns) and/or auto_send_enabled (false stops ALL sending, true resumes it). 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 |
| max_sends_per_day | integer | – | Daily send cap across all campaigns (1-100) |
No output schema declared.
No examples provided.
outreach_create_campaign ~239
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 and get their OK, 8) outreach_launch_campaign. 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.
| 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" |
| 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 ~124
LAUNCH a campaign: REAL EMAILS will be sent from the user's Gmail account, paced under their daily send cap by an hourly background sweep. Only call this after the user has seen the drafted emails and explicitly approved sending. Contacts already emailed in any previous campaign are automatically suppressed. Safe to call again on an already-launched campaign to queue newly added contacts: it arms only contacts not yet queued, and never re-sends anything. Returns queued/suppressed counts for THIS call and the estimated days to complete.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign id to launch |
No output schema declared.
No examples provided.
outreach_list_campaigns ~22
List this account's outreach campaigns with status and contact counts.
Input schema present but exposes no named parameters.
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 ~50
Get the Gmail sending pipeline status: connected account, auto-send on/off, daily cap, how many sent today, remaining budget today, total queued across campaigns, and estimated days to drain the queue.
Input schema present but exposes no named parameters.
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.
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.
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 ~182
Update rank-change alert settings for one RankParse website: enable/disable the daily 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 daily email.
| 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 daily 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.
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 84 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 73 tools: get_backlinks, get_referring_domains, get_outbound_links, get_domain_authority, get_domain_rank, and 68 more. Their descriptions and schemas cost roughly 7,936 tokens of context every time the server is loaded.
Does the io.github.abhibavishi/rankparse-mcp server require authentication?
No. We connected to io.github.abhibavishi/rankparse-mcp without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
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 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.