Skip to content

io.github.abhibavishi/rankparse-mcp

by abhibavishi · remote · no sign-in to list tools · v1.0.0 · published by GitHub user abhibavishi

SEO MCP server — backlinks, domain authority, tech stack, and 18+ tools via Common Crawl.

Final · 2Changes · 17

80 tools: 2 do something that can't be undone, 17 change things and 61 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http rankparse https://mcp.rankparse.com/mcp

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "outreach_suggest_prospects" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "start": a word for a change.

    What this check looks for
  • The server marks "provision_indexnow_key" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "get": a word for reading.

    What this check looks for
  • The server marks "log_activity" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "log_activity" says "log": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

80 tools

Can't be undone 2Claude Code: ask
  • propose_outreach_sendPut outreach emails in front of the user for review.No findings

    Why it is in this group

    • The name "propose_outreach_send" says "send": a word for sending, and what is sent cannot be taken back.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Outreach: Propose Emails (asks the user to approve)
  • zeekeo_send_messageSends a REAL LinkedIn message, InMail, or email through Zeekeo Launchpad to a profile in one of the user's existing Zeekeo campaigns.No findings

    Why it is in this group

    • The name "zeekeo_send_message" says "send": a word for sending, and what is sent cannot be taken back.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Zeekeo: Send Message (sends a real message)
Changes things 17Claude Code: ask
  • check_creditsCheck remaining credit balanceNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check remaining credit balance

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Account: Check Credits
  • complete_agent_taskMark a queued task done with a plain-text summary (max 2000 characters) of what you found and what you did.No findings

    Why it is in this group

    • The description's first verb is "mark": a word for a change.
    Description, as the server wrote it
    Mark a queued task done with a plain-text summary (max 2000 characters) of what you found and what you did. The user sees it in RankParse.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: Tasks: Complete Agent Task
  • log_activityRecord what you did for the user in their RankParse activity feed, in plain text (max 500 characters).1 finding

    Why it is in this group

    • The name "log_activity" says "log": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "log_activity" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "log_activity" says "log": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • title: Activity: Log What You Did
  • outreach_add_contactsAdd contacts with per-contact email copy to a campaign (max 100 per call, 500 per campaign, one contact per domain).No findings

    Why it is in this group

    • The name "outreach_add_contacts" says "add": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Outreach: Add Contacts
  • outreach_configure_sendingUpdate 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…No findings

    Why it is in this group

    • The description's first verb is "update": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Outreach: Configure Sending
  • outreach_create_campaignCreate a draft link-building outreach campaign (sends via the user's connected Gmail).No findings

    Why it is in this group

    • The name "outreach_create_campaign" says "create": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Outreach: Create Campaign
  • outreach_launch_campaignTell RankParse a campaign's emails are ready.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Outreach: Launch Campaign (sends real emails)
  • outreach_pause_campaignPause one campaign: its queued emails stop sending but stay queued, so resuming continues exactly where it left off.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Pause one campaign: its queued emails stop sending but stay queued, so resuming continues exactly where it left off. Other campaigns keep sending.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Outreach: Pause Campaign
  • outreach_resume_campaignResume a paused campaign; its queued emails become eligible for the next hourly send sweep again.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Resume a paused campaign; its queued emails become eligible for the next hourly send sweep again.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Outreach: Resume Campaign
  • outreach_suggest_prospectsSTART HERE when adding more websites to an existing campaign.1 finding

    Why it is in this group

    • The description's first verb is "start": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "outreach_suggest_prospects" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "start": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Outreach: Suggest More Prospects
  • propose_indexnow_submitAsk the user to approve submitting URLs to IndexNow (Bing, Yandex, Seznam, Naver).No findings

    Why it is in this group

    • The name "propose_indexnow_submit" says "submit": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • title: IndexNow: Propose Submission (asks the user to approve)
  • provision_indexnow_keyGet (or create) the IndexNow key for a host.1 finding

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "provision_indexnow_key" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Technical SEO: IndexNow Key
  • submit_indexnow_urlsSubmit changed/new/deleted URLs to IndexNow so search engines (Bing, Yandex, Seznam, Naver, ...) recrawl them promptly.No findings

    Why it is in this group

    • The name "submit_indexnow_urls" says "submit": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Technical SEO: Submit URLs to IndexNow
  • update_rank_alert_settingsUpdate 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…No findings

    Why it is in this group

    • The name "update_rank_alert_settings" says "update": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Rank Tracking: Update Alert Settings
  • zeekeo_activate_campaignActivates a paused Zeekeo campaign so it starts running (sends real LinkedIn connection invites per the campaign's configured limit/delay).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Zeekeo: Activate Campaign (starts real LinkedIn automation)
  • zeekeo_create_campaignCreates 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, the…No findings

    Why it is in this group

    • The name "zeekeo_create_campaign" says "create": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Zeekeo: Create Campaign (starts real LinkedIn automation)
  • zeekeo_create_templateCreates a reusable Zeekeo message template.No findings

    Why it is in this group

    • The name "zeekeo_create_template" says "create": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Zeekeo: Create Template
Only reads 61Claude Code: allow
  • batch_lookupGet backlinks for up to 50 domains at onceNo findings

    Why it is in this group

    • The name "batch_lookup" says "lookup": a word for reading.
    Description, as the server wrote it
    Get backlinks for up to 50 domains at once

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Account: Batch Lookup
  • get_agent_tasksGet tasks the user queued for you in RankParse.No findings

    Why it is in this group

    • The name "get_agent_tasks" says "get": a word for reading.
    Description, as the server wrote it
    Get tasks the user queued for you in RankParse. At the start of any RankParse session, call get_agent_tasks to see work the user queued for you. Work on a task, then call complete_agent_task with a short plain-text summary.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Tasks: Get Agent Tasks
  • get_anchor_textGet anchor text distribution for a domainNo findings

    Why it is in this group

    • The name "get_anchor_text" says "get": a word for reading.
    Description, as the server wrote it
    Get anchor text distribution for a domain

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Link Analysis: Get Anchor Text
  • get_competitor_gapFind domains linking to a competitor but not to you: ranked link-building prospects.No findings

    Why it is in this group

    • The name "get_competitor_gap" says "get": a word for reading.
    Description, as the server wrote it
    Find domains linking to a competitor but not to you: ranked link-building prospects. Under time budget the response may come back with partial=true and scored=false, meaning the results are the raw gap set without domain-authority ranking; retrying the same request usually returns a fully scored answer.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Link Analysis: Competitor Gap
  • get_crawl_historyGet first/last seen dates and total snapshot count for a domain (source: Wayback Machine)No findings

    Why it is in this group

    • The name "get_crawl_history" says "get": a word for reading.
    Description, as the server wrote it
    Get first/last seen dates and total snapshot count for a domain (source: Wayback Machine)

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Domain Intelligence: Crawl History
  • get_domain_authorityGet authority score for a domain.No findings

    Why it is in this group

    • The name "get_domain_authority" says "get": a word for reading.
    Description, as the server wrote it
    Get authority score for a domain. If the response has partial=true the lookup timed out or was incomplete: a null score means the authority is unknown (not zero) and the credit was refunded, so retry rather than treating the domain as having no authority.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Domain Intelligence: Domain Authority
  • get_domain_overlapFind domains linking to all queried domainsNo findings

    Why it is in this group

    • The name "get_domain_overlap" says "get": a word for reading.
    Description, as the server wrote it
    Find domains linking to all queried domains

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Link Analysis: Domain Overlap
  • get_domain_rankGet inbound edge count and linking domain statsNo findings

    Why it is in this group

    • The name "get_domain_rank" says "get": a word for reading.
    Description, as the server wrote it
    Get inbound edge count and linking domain stats

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Domain Intelligence: Domain Rank
  • get_google_ads_accountsList the Google Ads accounts the connected Google user can access, as 10-digit customer IDs.No findings

    Why it is in this group

    • The name "get_google_ads_accounts" says "get": a word for reading.
    Description, as the server wrote it
    List the Google Ads accounts the connected Google user can access, as 10-digit customer IDs. Use this to help a user pick which account to select when they have more than one. Requires Google Ads to be connected and an Ads account selected. Direct the user to rankparse.com/dashboard/integrations. Returns search volume and competition data, NOT keyword rankings; use the Google Search Console tools for ranking and position data.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Ads: List Accounts
  • get_google_ads_keyword_ideasDiscover NEW keyword ideas from seed terms and/or a URL, with average monthly search volume, competition level, and top-of-page bid ranges.No findings

    Why it is in this group

    • The name "get_google_ads_keyword_ideas" says "get": a word for reading.
    Description, as the server wrote it
    Discover NEW keyword ideas from seed terms and/or a URL, with average monthly search volume, competition level, and top-of-page bid ranges. Use this for keyword research and content planning: "what should I target?". Supply seed keywords, a URL, or both. Requires Google Ads to be connected and an Ads account selected. Direct the user to rankparse.com/dashboard/integrations. Returns search volume and competition data, NOT keyword rankings; use the Google Search Console tools for ranking and position data.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Ads: Keyword Ideas
  • get_google_ads_keyword_metricsGet average monthly search volume, competition level, and top-of-page bid ranges for a SPECIFIC list of keywords, with no expansion into related terms.No findings

    Why it is in this group

    • The name "get_google_ads_keyword_metrics" says "get": a word for reading.
    Description, as the server wrote it
    Get average monthly search volume, competition level, and top-of-page bid ranges for a SPECIFIC list of keywords, with no expansion into related terms. Use this when the user already has keywords in mind and wants them sized: "how much traffic are these worth?". For discovering new keywords instead, use get_google_ads_keyword_ideas. Requires Google Ads to be connected and an Ads account selected. Direct the user to rankparse.com/dashboard/integrations. Returns search volume and competition data, NOT keyword rankings; use the Google Search Console tools for ranking and position data.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Ads: Keyword Metrics
  • get_gsc_country_breakdownGet search traffic broken down by country.No findings

    Why it is in this group

    • The name "get_gsc_country_breakdown" says "get": a word for reading.
    Description, as the server wrote it
    Get search traffic broken down by country. Useful for understanding geographic audience and international SEO performance. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Country Breakdown
  • get_gsc_device_breakdownGet search traffic broken down by device type (desktop, mobile, tablet).No findings

    Why it is in this group

    • The name "get_gsc_device_breakdown" says "get": a word for reading.
    Description, as the server wrote it
    Get search traffic broken down by device type (desktop, mobile, tablet). Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Device Breakdown
  • get_gsc_low_ctr_pagesFind pages with high impressions but low CTR: pages that Google is showing frequently but users aren't clicking.No findings

    Why it is in this group

    • The name "get_gsc_low_ctr_pages" says "get": a word for reading.
    Description, as the server wrote it
    Find pages with high impressions but low CTR: pages that Google is showing frequently but users aren't clicking. Good starting point for title/description rewrites. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Low CTR Pages
  • get_gsc_low_ctr_queriesFind search queries with high impressions but low CTR.No findings

    Why it is in this group

    • The name "get_gsc_low_ctr_queries" says "get": a word for reading.
    Description, as the server wrote it
    Find search queries with high impressions but low CTR. These are ranking but not getting clicked, usually because the title or meta description is weak or misleading. Fixing these is typically higher ROI than chasing new rankings. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Low CTR Queries
  • get_gsc_opportunity_queriesFind queries where the site ranks on positions 8–20 (page 1 bottom / page 2), the "quick win" zone where small improvements can meaningfully increase clicks.No findings

    Why it is in this group

    • The name "get_gsc_opportunity_queries" says "get": a word for reading.
    Description, as the server wrote it
    Find queries where the site ranks on positions 8–20 (page 1 bottom / page 2), the "quick win" zone where small improvements can meaningfully increase clicks. Returns queries sorted by clicks descending (GSC API default). Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Opportunity Queries
  • get_gsc_page_queriesGet search queries driving traffic to a specific page.No findings

    Why it is in this group

    • The name "get_gsc_page_queries" says "get": a word for reading.
    Description, as the server wrote it
    Get search queries driving traffic to a specific page. Useful for understanding what a page ranks for. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Page Queries
  • get_gsc_page_segmentAnalyze search performance for a URL segment, e.g.No findings

    Why it is in this group

    • The name "get_gsc_page_segment" says "get": a word for reading.
    Description, as the server wrote it
    Analyze search performance for a URL segment, e.g. all blog posts ("/blog/"), all product pages ("/products/"), or all docs ("/docs/"). Returns the top pages within that segment by clicks. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Page Segment
  • get_gsc_page_trendGet daily click/impression/CTR/position trend for a specific page.No findings

    Why it is in this group

    • The name "get_gsc_page_trend" says "get": a word for reading.
    Description, as the server wrote it
    Get daily click/impression/CTR/position trend for a specific page. Use this to see how a single page's search performance has changed over time, useful for measuring the impact of a content update or spotting a ranking drop. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Page Trend
  • get_gsc_propertiesList all Google Search Console properties (sites) connected to this account.No findings

    Why it is in this group

    • The name "get_gsc_properties" says "get": a word for reading.
    Description, as the server wrote it
    List all Google Search Console properties (sites) connected to this account. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the properties visible to any of them are listed once each.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Properties
  • get_gsc_query_page_pairsGet query+page combinations: which exact queries are landing on which pages.No findings

    Why it is in this group

    • The name "get_gsc_query_page_pairs" says "get": a word for reading.
    Description, as the server wrote it
    Get query+page combinations: which exact queries are landing on which pages. Essential for detecting keyword cannibalization (multiple pages competing for the same query) and understanding the search funnel. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Query-Page Pairs
  • get_gsc_query_pagesGet all pages that rank for a specific search query.No findings

    Why it is in this group

    • The name "get_gsc_query_pages" says "get": a word for reading.
    Description, as the server wrote it
    Get all pages that rank for a specific search query. Useful for identifying which pages compete for the same keyword. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Query Pages
  • get_gsc_query_trendGet daily click/impression/CTR/position trend for a specific search query.No findings

    Why it is in this group

    • The name "get_gsc_query_trend" says "get": a word for reading.
    Description, as the server wrote it
    Get daily click/impression/CTR/position trend for a specific search query. Use this to track how a particular keyword's ranking and traffic evolves over time. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Query Trend
  • get_gsc_search_appearanceBreak down traffic by how the site appears in Google Search: organic web results, rich results, AMP, image search, video, news, etc.No findings

    Why it is in this group

    • The name "get_gsc_search_appearance" says "get": a word for reading.
    Description, as the server wrote it
    Break down traffic by how the site appears in Google Search: organic web results, rich results, AMP, image search, video, news, etc. Shows which search features are driving impressions and clicks. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Search Appearance
  • get_gsc_sitemapsList all submitted sitemaps for a property, including submission date, last download time, URL counts, and any errors or warnings.No findings

    Why it is in this group

    • The name "get_gsc_sitemaps" says "get": a word for reading.
    Description, as the server wrote it
    List all submitted sitemaps for a property, including submission date, last download time, URL counts, and any errors or warnings. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Sitemaps
  • get_gsc_top_pagesGet the top pages on a site by clicks from Google Search, with impressions, CTR, and average position.No findings

    Why it is in this group

    • The name "get_gsc_top_pages" says "get": a word for reading.
    Description, as the server wrote it
    Get the top pages on a site by clicks from Google Search, with impressions, CTR, and average position. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Top Pages
  • get_gsc_top_queriesGet the top search queries driving traffic to a site, ordered by clicks.No findings

    Why it is in this group

    • The name "get_gsc_top_queries" says "get": a word for reading.
    Description, as the server wrote it
    Get the top search queries driving traffic to a site, ordered by clicks. Shows clicks, impressions, CTR, and average position for each query. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: Top Queries
  • get_gsc_url_inspectionInspect a specific URL's indexing status in Google Search.No findings

    Why it is in this group

    • The name "get_gsc_url_inspection" says "get": a word for reading.
    Description, as the server wrote it
    Inspect a specific URL's indexing status in Google Search. Returns whether the page is indexed, coverage state, last crawl time, mobile usability, and rich results status. Requires Google Search Console to be connected. Direct the user to rankparse.com/dashboard/integrations to connect it. When several Google accounts are connected, the property is read through the account that can see it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Google Search Console: URL Inspection
  • get_keyword_rank_historyGet the stored day-by-day ranking history for one keyword on one search engine over a date range.No findings

    Why it is in this group

    • The name "get_keyword_rank_history" says "get": a word for reading.
    Description, as the server wrote it
    Get the stored day-by-day ranking history for one keyword on one search engine over a date range. Reads RankParse snapshots synced on a schedule; it is not a live SERP check. History is inherently single-engine, so engine is required (use get_keyword_rankings first to compare across engines). Days with no synced data are simply absent from rows rather than filled with a zero or placeholder value -- do not treat a missing date as "not ranking". Bing and Yandex are opt-in and lower-frequency than Google; their responses may report availability as provider_limited, meaning that provider did not return enough data for that day rather than the keyword ranking nowhere.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Rank Tracking: Get Keyword Rank History
  • get_keyword_rankingsGet stored ranking summaries (current vs previous period) for a website's tracked keywords across Google, Bing, and Yandex.No findings

    Why it is in this group

    • The name "get_keyword_rankings" says "get": a word for reading.
    Description, as the server wrote it
    Get stored ranking summaries (current vs previous period) for a website's tracked keywords across Google, Bing, and Yandex. Reads RankParse snapshots synced on a schedule; it is not a live SERP check. Positions are provider-reported averages over each engine's own returned period and are NOT comparable as one blended rank across engines -- compare per engine, not by averaging across them. A missing engine in a keyword's response means that engine is not connected/attached for this site (check enabled_engines in the response), not a zero or bottom rank. Bing and Yandex are opt-in and many accounts do not have them connected, so their absence is normal, not an error. Each present engine also carries an availability field; a null current/previous position with availability other than "available" (e.g. provider_limited, which Bing/Yandex may report, or pending_first_sync, stale, sync_failed) means a data quality/sync issue for that engine, not evidence the keyword ranks nowhere.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Rank Tracking: Get Keyword Rankings
  • get_page_performanceGoogle PageSpeed Insights report for a URL: Lighthouse performance/accessibility/SEO scores and Core Web Vitals (LCP, CLS, INP, FCP, TTFB), with lab and field (CrUX) data.No findings

    Why it is in this group

    • The name "get_page_performance" says "get": a word for reading.
    Description, as the server wrote it
    Google PageSpeed Insights report for a URL: Lighthouse performance/accessibility/SEO scores and Core Web Vitals (LCP, CLS, INP, FCP, TTFB), with lab and field (CrUX) data. Defaults to mobile; pass strategy=desktop for the desktop profile. Subject to a per-user daily cap (50/day) and a service-wide daily cap; successful responses are cached for 24h.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Technical SEO: Page Performance
  • get_page_seoFull real-time SEO audit for a URL: title/description with length checks, canonical, robots meta, OG tags, Twitter cards, JSON-LD, hreflang, headings, images missing alt, link coun…No findings

    Why it is in this group

    • The name "get_page_seo" says "get": a word for reading.
    Description, as the server wrote it
    Full real-time SEO audit for a URL: title/description with length checks, canonical, robots meta, OG tags, Twitter cards, JSON-LD, hreflang, headings, images missing alt, link counts, word count

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Technical SEO: Page SEO Audit
  • get_platform_domainsGet all domains running a specific platform or technology (e.g.No findings

    Why it is in this group

    • The name "get_platform_domains" says "get": a word for reading.
    Description, as the server wrote it
    Get all domains running a specific platform or technology (e.g. WordPress, Shopify, Wix, Squarespace, Framer). Returns domains with DA scores. Billed at 1 credit per result returned.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_rank_alert_settingsGet the rank-change alert configuration for one RankParse website: whether weekly alert digests are enabled (they are opt-in and default off), the moved_up/moved_down position thre…No findings

    Why it is in this group

    • The name "get_rank_alert_settings" says "get": a word for reading.
    Description, as the server wrote it
    Get the rank-change alert configuration for one RankParse website: whether weekly alert digests are enabled (they are opt-in and default off), the moved_up/moved_down position threshold, and the optional digest email override. Delivery is Sunday at 18:00 UTC when meaningful changes exist.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Rank Tracking: Get Alert Settings
  • get_referring_domainsGet unique domains linking to a domainNo findings

    Why it is in this group

    • The name "get_referring_domains" says "get": a word for reading.
    Description, as the server wrote it
    Get unique domains linking to a domain

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Link Analysis: Get Referring Domains
  • get_schema_markupExtract schema.org JSON-LD structured data from a URL: every entity found (including ones nested in @graph), their types, and any malformed blocksNo findings

    Why it is in this group

    • The name "get_schema_markup" says "get": a word for reading.
    Description, as the server wrote it
    Extract schema.org JSON-LD structured data from a URL: every entity found (including ones nested in @graph), their types, and any malformed blocks

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Technical SEO: Schema Markup
  • get_similar_domainsFind domains with similar link profiles, useful for competitor discovery.No findings

    Why it is in this group

    • The name "get_similar_domains" says "get": a word for reading.
    Description, as the server wrote it
    Find domains with similar link profiles, useful for competitor discovery. May return partial results when the query fan-out hits time budget.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Domain Intelligence: Similar Domains
  • get_site_explorerFull SEO overview for a domain (backlinks, authority, top pages, anchor text)No findings

    Why it is in this group

    • The name "get_site_explorer" says "get": a word for reading.
    Description, as the server wrote it
    Full SEO overview for a domain (backlinks, authority, top pages, anchor text)

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Domain Intelligence: Site Explorer
  • get_site_healthReal-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 anal…No findings

    Why it is in this group

    • The name "get_site_health" says "get": a word for reading.
    Description, as the server wrote it
    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

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Technical SEO: Site Health
  • get_sitemapDiscover and parse a domain's sitemap.No findings

    Why it is in this group

    • The name "get_sitemap" says "get": a word for reading.
    Description, as the server wrote it
    Discover and parse a domain's sitemap. Returns URLs with lastmod, changefreq, and priority

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Technical SEO: Sitemap
  • get_tech_stackReal-time technology detection for a domain: frameworks, CMS, analytics, CDN, hosting, e-commerce, payments, and more (50+ technologies)No findings

    Why it is in this group

    • The name "get_tech_stack" says "get": a word for reading.
    Description, as the server wrote it
    Real-time technology detection for a domain: frameworks, CMS, analytics, CDN, hosting, e-commerce, payments, and more (50+ technologies)

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Technical SEO: Tech Stack
  • get_top_pagesGet most-linked pages for a domainNo findings

    Why it is in this group

    • The name "get_top_pages" says "get": a word for reading.
    Description, as the server wrote it
    Get most-linked pages for a domain

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Domain Intelligence: Top Pages
  • list_proposalsList actions you or RankParse proposed and their status (pending, approved, succeeded, failed, skipped, expired).No findings

    Why it is in this group

    • The name "list_proposals" says "list": a word for reading.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Inbox: List Proposals
  • list_rank_change_alertsList 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/los…No findings

    Why it is in this group

    • The name "list_rank_change_alerts" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Rank Tracking: List Rank-Change Alerts
  • list_rank_tracking_sitesList websites configured for stored Google, Bing, and Yandex keyword tracking, including provider freshness and sync state.No findings

    Why it is in this group

    • The name "list_rank_tracking_sites" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Rank Tracking: List Websites
  • list_tracked_keywordsList the tracked keyword IDs and text for one RankParse website.No findings

    Why it is in this group

    • The name "list_tracked_keywords" says "list": a word for reading.
    Description, as the server wrote it
    List the tracked keyword IDs and text for one RankParse website. Call list_rank_tracking_sites first to obtain site_id.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Rank Tracking: List Keywords
  • list_websitesList this account's websites (id, host, name).No findings

    Why it is in this group

    • The name "list_websites" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Websites: List
  • outreach_get_campaignGet a campaign's status and delivery counts (awaiting launch, queued, sending, sent, skipped).No findings

    Why it is in this group

    • The name "outreach_get_campaign" says "get": a word for reading.
    Description, as the server wrote it
    Get a campaign's status and delivery counts (awaiting launch, queued, sending, sent, skipped). Use to answer "how is my campaign doing?".

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Outreach: Campaign Status
  • outreach_list_campaignsList this account's outreach campaigns with status and contact counts.No findings

    Why it is in this group

    • The name "outreach_list_campaigns" says "list": a word for reading.
    Description, as the server wrote it
    List this account's outreach campaigns with status and contact counts. Optionally filter to one website; an unknown site_id returns an empty list.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Outreach: List Campaigns
  • outreach_sending_statusGet 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 …No findings

    Why it is in this group

    • The name "outreach_sending_status" says "status": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Outreach: Sending Status
  • zeekeo_list_campaignsList the user's Zeekeo Launchpad campaigns (LinkedIn automation).No findings

    Why it is in this group

    • The name "zeekeo_list_campaigns" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • title: Zeekeo: List Campaigns

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http rankparse https://mcp.rankparse.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__rankparse__get_backlinks",
      "mcp__rankparse__get_referring_domains",
      "mcp__rankparse__get_outbound_links",
      "mcp__rankparse__get_domain_authority",
      "mcp__rankparse__get_domain_rank",
      "mcp__rankparse__get_anchor_text",
      "mcp__rankparse__get_top_pages",
      "mcp__rankparse__get_domain_overlap",
      "mcp__rankparse__get_link_intersect",
      "mcp__rankparse__get_similar_domains",
      "mcp__rankparse__get_competitor_gap",
      "mcp__rankparse__get_link_audit",
      "mcp__rankparse__get_sitemap",
      "mcp__rankparse__get_crawl_history",
      "mcp__rankparse__get_page_seo",
      "mcp__rankparse__get_page_performance",
      "mcp__rankparse__get_tech_stack",
      "mcp__rankparse__get_site_health",
      "mcp__rankparse__get_schema_markup",
      "mcp__rankparse__get_internal_links",
      "mcp__rankparse__get_link_velocity",
      "mcp__rankparse__get_new_links",
      "mcp__rankparse__get_lost_links",
      "mcp__rankparse__get_site_explorer",
      "mcp__rankparse__batch_lookup",
      "mcp__rankparse__get_platform_domains",
      "mcp__rankparse__get_platform_trends",
      "mcp__rankparse__list_rank_tracking_sites",
      "mcp__rankparse__list_tracked_keywords",
      "mcp__rankparse__get_keyword_rankings",
      "mcp__rankparse__get_keyword_rank_history",
      "mcp__rankparse__list_rank_change_alerts",
      "mcp__rankparse__get_rank_alert_settings",
      "mcp__rankparse__get_gsc_properties",
      "mcp__rankparse__get_gsc_top_queries",
      "mcp__rankparse__get_gsc_top_pages",
      "mcp__rankparse__get_gsc_page_queries",
      "mcp__rankparse__get_gsc_query_pages",
      "mcp__rankparse__get_gsc_date_trends",
      "mcp__rankparse__get_gsc_country_breakdown",
      "mcp__rankparse__get_gsc_device_breakdown",
      "mcp__rankparse__get_gsc_sitemaps",
      "mcp__rankparse__get_gsc_url_inspection",
      "mcp__rankparse__get_gsc_query_page_pairs",
      "mcp__rankparse__get_gsc_page_trend",
      "mcp__rankparse__get_gsc_query_trend",
      "mcp__rankparse__get_gsc_opportunity_queries",
      "mcp__rankparse__get_gsc_low_ctr_queries",
      "mcp__rankparse__get_gsc_low_ctr_pages",
      "mcp__rankparse__get_gsc_page_segment",
      "mcp__rankparse__get_gsc_search_appearance",
      "mcp__rankparse__get_google_ads_accounts",
      "mcp__rankparse__get_google_ads_keyword_ideas",
      "mcp__rankparse__get_google_ads_keyword_metrics",
      "mcp__rankparse__outreach_get_campaign",
      "mcp__rankparse__outreach_list_campaigns",
      "mcp__rankparse__outreach_sending_status",
      "mcp__rankparse__zeekeo_list_campaigns",
      "mcp__rankparse__list_websites",
      "mcp__rankparse__list_proposals",
      "mcp__rankparse__get_agent_tasks"
    ],
    "ask": [
      "mcp__rankparse__check_credits",
      "mcp__rankparse__update_rank_alert_settings",
      "mcp__rankparse__outreach_create_campaign",
      "mcp__rankparse__outreach_add_contacts",
      "mcp__rankparse__outreach_launch_campaign",
      "mcp__rankparse__outreach_suggest_prospects",
      "mcp__rankparse__outreach_configure_sending",
      "mcp__rankparse__outreach_pause_campaign",
      "mcp__rankparse__outreach_resume_campaign",
      "mcp__rankparse__zeekeo_send_message",
      "mcp__rankparse__zeekeo_create_template",
      "mcp__rankparse__zeekeo_create_campaign",
      "mcp__rankparse__zeekeo_activate_campaign",
      "mcp__rankparse__provision_indexnow_key",
      "mcp__rankparse__submit_indexnow_urls",
      "mcp__rankparse__propose_indexnow_submit",
      "mcp__rankparse__propose_outreach_send",
      "mcp__rankparse__log_activity",
      "mcp__rankparse__complete_agent_task"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as rankparse. Review it before you use it.