# Rankwise (remote · tryrankwise.com)

AI search visibility: see whether AI answer engines cite a brand, then win the citations back.

- Trust score: 70/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `tryrankwise.com`: 70/100 (this document), [markdown](https://verifymcp.io/servers/com-tryrankwise-rankwise/api-mcp.md), [page](https://verifymcp.io/servers/com-tryrankwise-rankwise/api-mcp)

## Channel facts

- Endpoint: `https://tryrankwise.com/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.1`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: this server exposes a tool marked destructive (remove_domain) and its handshake is open, but we could not confirm whether a tool call is gated, so we do not assert it is callable unauthenticated.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 72/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 4590 tokens (~91/item across 50 items; 50 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 53/100
  - Stability observed for 16 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 83/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 40% of tool parameters carry a description.
  - Structured output schemas are declared (88% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 51 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Rankwise MCP server?

Rankwise is a hosted endpoint at https://tryrankwise.com/api/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.

### Claude

```bash
claude mcp add --transport http com-tryrankwise-rankwise 'https://tryrankwise.com/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-tryrankwise-rankwise": {
      "url": "https://tryrankwise.com/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-tryrankwise-rankwise": {
      "type": "http",
      "url": "https://tryrankwise.com/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-tryrankwise-rankwise]
url = "https://tryrankwise.com/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-tryrankwise-rankwise": {
      "type": "remote",
      "url": "https://tryrankwise.com/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-tryrankwise-rankwise --url 'https://tryrankwise.com/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-tryrankwise-rankwise:
    url: "https://tryrankwise.com/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-tryrankwise-rankwise": {
      "Transport": "http",
      "Url": "https://tryrankwise.com/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-tryrankwise-rankwise -t streamable-http -u 'https://tryrankwise.com/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-tryrankwise-rankwise": {
      "type": "http",
      "url": "https://tryrankwise.com/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 70, +1)

- [security regression] Authorization: fail → unverified

### 2026-11-03 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 68, 0)

- [functional] Server version: 0.1.0 → 0.1.1

### 2026-10-31 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 67, 0)

- [security] New tool “update_live_post”, which the server declares destructive
- [security] Tool “publish_article” rewrote its description, which is the text the model reads
- [security] Tool “replace_article” rewrote its description, which is the text the model reads

### 2026-10-29 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (50)

### `search_rankwise_content` (~89 tokens)

Search Rankwise guides

Search Rankwise's public library: guides, glossary terms, comparisons, free SEO and AI visibility tools, the AI crawler directory (GPTBot, ClaudeBot and others) and the AI engine pages. Returns matching titles with canonical URLs.

Input parameters:

- `limit` (integer): Maximum number of results to return.
- `query` (string, required): Free-text search query matched against titles, descriptions, and topics.

### `list_rankwise_sitemaps` (~28 tokens)

List Rankwise sitemaps

List the sitemap URLs exposed by Rankwise so agents can enumerate indexable content.

### `check_ai_crawler_access` (~73 tokens)

Check AI crawler access

Check whether AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended and others) are allowed or blocked by a website's robots.txt. Returns each crawler's status.

Input parameters:

- `url` (string, required): Any URL on the site to check, e.g. https://example.com

### `score_ai_visibility` (~139 tokens)

Score AI visibility readiness

Score how ready a website's homepage is to be found and cited by AI search engines (crawler access, structured data, content signals). Returns a score, issues and quick wins. This is an on-page readiness check, not a measurement of real AI citations. Called without signing in, the result also carries a claim link: give it to the person who runs the site, and one sign-in opens a Rankwise workspace with that domain already added, ready once they start the 3-day free trial. A claim link works once and expires after 72 hours.

Input parameters:

- `domain` (string, required): The domain to score, e.g. example.com

### `check_citation_readiness` (~58 tokens)

Check page citation readiness

Check whether a single page is easy for AI engines to quote and cite: clear answers, headings, metadata, authorship and freshness signals. Returns findings for that page.

Input parameters:

- `url` (string, required): The full page URL to check

### `get_free_ai_audit_link` (~86 tokens)

Get free AI audit link

Get the link to Rankwise's free AI visibility audit for a domain. The audit checks AI crawler access and technical readiness, and runs live Perplexity queries to see whether the brand is cited. The user opens the link to run it; this tool does not run the audit.

Input parameters:

- `domain` (string, required): The domain to audit, e.g. example.com

### `get_workspace` (~50 tokens)

Get workspace

Show the Rankwise workspace this connection acts in: its name, kind (personal or agency client), your role in it, and the permissions this connection has. Every other account tool works inside this one workspace.

Output parameters:

- `connected_via` (string)
- `dashboard_url` (string)
- `role` (string)
- `scopes` (array)
- `workspace` (object)

### `get_plan_and_credits` (~185 tokens)

Get plan and credits

Show the workspace's billing plan, its credit balance, what one approved brief costs in credits, and the plan limits (domains, questions, AI engines, monthly AI checks). Use it before a tool that spends credits or a plan allowance. A plan of 'free_trial' means the 3-day free trial: trial limits apply, and articles written in it carry a watermark and publish once the plan starts. A plan of 'paused' means the workspace has no active plan: it never started one, its trial or subscription was canceled, its billing is paused, or it took the 14-day money-back guarantee. Nothing is deleted, but checks and writing stay stopped until the workspace has an active plan again. Every plan has a 14-day money-back guarantee from the first payment, once per customer, refunded from the Billing page. pricing_url describes the plans.

Output parameters:

- `agency_billing` (boolean)
- `billing_url` (string)
- `brief_draft_cost_credits` (number)
- `can_publish_to_cms` (boolean)
- `credits` (number)
- `current_period_end` (string|null)
- `limits` (object)
- `plan` (string)
- `pricing_url` (string)
- `trial_ends_at` (string|null)

### `list_sites` (~63 tokens)

List sites

List the site this connection reaches: its id (the workspace id), name, tracked domains, and whether automatic articles are on, how many a week, and whether they are paused. A connection reaches one site; connect again (or add a CLI profile) for another.

Output parameters:

- `sites` (array)

### `pause_site` (~68 tokens)

Pause automatic articles

Pause automatic articles for the site. While paused nothing runs on its own: no planner fill, no drafting, no publishing, no credits used. Manual actions still work. Resume with resume_site.

Input parameters:

- `site_id` (string): The site id from list_sites. Defaults to this connection's site.

Output parameters:

- `site` (object)

### `resume_site` (~58 tokens)

Resume automatic articles

Resume automatic articles for the site after a pause. Cards left on days that passed move to the next free publishing days. Resuming is free.

Input parameters:

- `site_id` (string): The site id from list_sites. Defaults to this connection's site.

Output parameters:

- `site` (object)

### `create_checkout_link` (~124 tokens)

Create a checkout link

Create a Stripe Checkout link for a self-serve Rankwise plan (starter, growth or scale) for this workspace's account, and give it to the person. Nothing is charged by this call: the person opens the link and pays in their browser. If the account already has an active plan, the link opens the billing page to confirm the plan change instead. Agency plans are set up with the Rankwise team. Send a unique idempotency_key and reuse it on a retry.

Input parameters:

- `idempotency_key` (string, required)
- `plan` (string, required)

Output parameters:

- `charged` (boolean)
- `checkout_url` (string)
- `note` (string)
- `plan` (string)
- `plan_name` (string)
- `price_usd_per_month` (number)

### `list_domains` (~69 tokens)

List tracked domains

List the domains this workspace tracks for AI visibility, with each domain's id, composite visibility score (0 to 100, null when not scored yet), number of tracked questions, how many questions AI engines mention the brand for, and the last crawl time. Use the id with the other domain tools.

Output parameters:

- `domains` (array)

### `add_domain` (~87 tokens)

Add a domain

Start tracking a domain's AI visibility in this workspace. Rankwise seeds the homepage and crawls and scores it in the background. Fails when the plan's domain limit is reached. Free: it uses no credits.

Input parameters:

- `brand_domains` (array): Other domains of the same brand, counted as citations of it.
- `domain` (string, required): The domain, e.g. example.com

Output parameters:

- `dashboard_url` (string)
- `domain` (string)
- `id` (string)

### `recrawl_domain` (~64 tokens)

Re-crawl a domain

Queue a fresh crawl and re-score of a tracked domain's pages. It runs in the background and takes a few minutes; read get_scorecard afterwards. Free: it uses no credits.

Input parameters:

- `domain_id` (string, required): The tracked domain's id, from list_domains.

Output parameters:

- `discovered_pages` (integer)
- `queued_pages` (integer)

### `remove_domain` (~47 tokens)

Remove a domain

Stop tracking a domain and permanently delete its questions, AI answers, scores and history. This cannot be undone.

Input parameters:

- `domain_id` (string, required): The tracked domain's id, from list_domains.

Output parameters:

- `domain` (string)
- `removed` (boolean)

### `list_questions` (~71 tokens)

List tracked questions

List the questions tracked for a domain (the prompts Rankwise asks AI engines), each with its id, market locale, and the latest check result: cited, not_cited or error, the citation position and when it ran.

Input parameters:

- `domain_id` (string, required): The tracked domain's id, from list_domains.

Output parameters:

- `questions` (array)

### `add_question` (~116 tokens)

Add a question

Track a new question for a domain, e.g. "best invoicing software for freelancers". Scheduled checks then ask the plan's AI engines whether they cite the brand. Fails at the plan's question limit. Free: it uses no credits.

Input parameters:

- `domain_id` (string, required): The tracked domain's id, from list_domains.
- `locale` (string): Market locale such as en-US or de-DE. Omit for the default market.
- `question` (string, required): The question, as a user would ask an AI engine.

Output parameters:

- `id` (string)

### `remove_question` (~31 tokens)

Remove a question

Stop tracking a question and delete its check history. This cannot be undone.

Input parameters:

- `question_id` (string, required)

Output parameters:

- `removed` (boolean)

### `get_scorecard` (~63 tokens)

Get AI visibility scorecard

Read a domain's AI Visibility Scorecard: the composite score (0 to 100, null when nothing is measured yet) and the latest score, confidence and recommendations for each dimension.

Input parameters:

- `domain_id` (string, required): The tracked domain's id, from list_domains.

Output parameters:

- `composite_score` (number|null)
- `dashboard_url` (string)
- `dimensions` (array)
- `domain_id` (string)

### `list_citations` (~85 tokens)

List AI citations

For each tracked question and AI engine, show the latest real measurement: whether the engine cited the brand, at which position, which URLs it cited, and when. An engine that failed to answer is skipped rather than counted as not cited.

Input parameters:

- `domain_id` (string, required): The tracked domain's id, from list_domains.
- `limit` (integer): Maximum rows to return.

Output parameters:

- `citations` (array)
- `domain` (string)
- `total` (integer)

### `get_share_of_voice` (~71 tokens)

Get AI share of voice

Read a domain's latest AI Share of Voice snapshot: the brand's share of AI answers, its own citations and mentions, the competitor leaderboard, and up to 12 earlier snapshots. Null when it was never measured.

Input parameters:

- `domain_id` (string, required): The tracked domain's id, from list_domains.

Output parameters:

- `domain` (string)
- `history` (array)
- `measured` (object|null)

### `list_visibility_events` (~85 tokens)

List visibility events

List recent AI visibility events in the workspace, newest first: citations won and lost, fixes proposed, goals reached. Optionally only since a date or for one domain.

Input parameters:

- `domain_id` (string): The tracked domain's id, from list_domains.
- `limit` (integer)
- `since` (string): ISO 8601 date-time; only events after it.

Output parameters:

- `events` (array)

### `run_citation_check` (~88 tokens)

Run an AI citation check

Ask the plan's AI engines one tracked question now and record whether each cites the brand. Engines checked in the last few hours are served from that result at no cost. Uses the workspace's monthly on-demand check allowance. Send a unique idempotency_key, and the same one on a retry.

Input parameters:

- `idempotency_key` (string, required)
- `question_id` (string, required)

Output parameters:

- `checked` (integer)
- `engines` (array)
- `message` (string)
- `ok` (boolean)
- `remaining_refreshes_this_month` (number|null)
- `served_fresh` (integer)

### `refresh_share_of_voice` (~98 tokens)

Refresh AI share of voice

Capture a fresh AI Share of Voice snapshot for a domain from DataForSEO LLM Mentions. A snapshot from the last 12 hours is returned instead of buying a new one, because the index lags by days. Send a unique idempotency_key, and the same one on a retry.

Input parameters:

- `domain_id` (string, required): The tracked domain's id, from list_domains.
- `idempotency_key` (string, required)

Output parameters:

- `captured` (boolean)
- `reason` (string|null)
- `share_of_voice` (number|null)

### `list_opportunities` (~66 tokens)

List content opportunities

List the workspace's ranked content opportunities: topics where AI engines answer questions the brand is not cited for, scored by demand, citation gap and feasibility. Dismissed topics are left out. Each item says whether a brief or article already covers it.

Input parameters:

- `limit` (integer)

Output parameters:

- `opportunities` (array)
- `total` (integer)

### `refresh_opportunities` (~75 tokens)

Refresh content opportunities

Recompute the workspace's opportunity queue from its tracked questions and AI citation data, and look for new topics. Uses paid search and AI data, so it runs at most once every 10 minutes per workspace. Send a unique idempotency_key; retry with the same key.

Input parameters:

- `idempotency_key` (string, required)

Output parameters:

- `created` (integer)
- `discovered` (integer)
- `refreshed` (integer)

### `dismiss_opportunity` (~44 tokens)

Dismiss a content opportunity

Remove one topic from the workspace's opportunity queue. It can be restored in the Rankwise app (Demand page). Nothing is deleted.

Input parameters:

- `opportunity_id` (string, required)

Output parameters:

- `id` (string)
- `status` (string)

### `list_briefs` (~67 tokens)

List briefs

List the workspace's content briefs, newest first: drafts waiting for approval (including ones Rankwise suggested), approved pieces being written, and finished ones. Filter by status. An expert sees only the briefs assigned to them.

Input parameters:

- `limit` (integer)
- `status` (string)

Output parameters:

- `briefs` (array)
- `total` (integer)

### `get_brief` (~50 tokens)

Get a brief

Read one brief in full: title, topic, intent, target questions, outline, research notes, suggested sources, status, and the draft article once it exists.

Input parameters:

- `brief_id` (string, required)

Output parameters:

- `approved_at` (string|null)
- `draft_article_id` (string|null)
- `editable` (boolean)
- `id` (string)
- `outline` (array)
- `status` (string)
- `target_queries` (array)
- `title` (string)
- `url` (string)

### `create_brief` (~109 tokens)

Create a brief

Create a draft brief for an article. Nothing is written or charged until the brief is approved with approve_brief. If tracked_domain_id is left out, the workspace's first tracked domain grounds the brief.

Input parameters:

- `audience` (string)
- `intent` (string)
- `language` (string)
- `target_queries` (array)
- `title` (string, required)
- `tone` (string)
- `topic` (string)
- `tracked_domain_id` (string)

Output parameters:

- `brief_id` (string)
- `status` (string)
- `url` (string)

### `update_brief` (~85 tokens)

Update a brief

Edit a draft brief before it is approved: title, topic, intent, target questions or outline. An approved brief cannot be edited; edit its draft article in the app instead.

Input parameters:

- `brief_id` (string, required)
- `intent`
- `outline` (array)
- `target_queries` (array)
- `title` (string)
- `topic`

Output parameters:

- `brief_id` (string)
- `updated` (boolean)

### `archive_brief` (~70 tokens)

Archive a brief

Remove a draft brief that was never approved. Approved briefs cannot be archived because their credits were spent. The brief can be restored in the app, and its topic goes back to the opportunity queue.

Input parameters:

- `brief_id` (string, required)
- `note` (string)
- `reason` (string)

Output parameters:

- `brief_id` (string)
- `status` (string)

### `approve_brief` (~94 tokens)

Approve a brief

Approve a draft brief. This debits the workspace's credits (see get_plan_and_credits for the cost) and starts writing the AI draft article, which then waits for review; nothing is published. Re-approving a draft whose generation failed is free. Send a unique idempotency_key and reuse it on retry.

Input parameters:

- `brief_id` (string, required)
- `idempotency_key` (string, required)

Output parameters:

- `approved` (boolean)
- `brief_id` (string)
- `cost_credits` (number)
- `url` (string)

### `list_articles` (~95 tokens)

List articles

List the articles in this workspace, newest first: title, status (generating, ready, published, failed), publish status and published URL. Experts see only the drafts assigned to them. Filter by status or title words.

Input parameters:

- `page` (integer)
- `page_size` (integer)
- `query` (string): Words in the title
- `status` (string): ready, generating, published, failed or unpublished

Output parameters:

- `articles` (array)
- `page` (integer)
- `page_size` (integer)
- `total` (integer)

### `get_article` (~96 tokens)

Get article

Read one article in this workspace: its metadata, status, meta description, the first 4,000 characters of its text (or the full HTML with include_html), the sources it cites, and the Article and FAQ structured data (JSON-LD) that ships with it. Use list_articles to find the id.

Input parameters:

- `article_id` (string, required)
- `include_html` (boolean): Also return the full article body as HTML.

Output parameters:

- `article` (object)
- `body_excerpt` (string)
- `body_truncated` (boolean)
- `html` (string|null)
- `last_error_code` (string|null)
- `meta_description` (string|null)
- `schema_jsonld`
- `slug` (string|null)
- `sources` (array)

### `generate_article` (~252 tokens)

Generate article

Write a new AI article for a keyword. It uses the same research-and-cite writer as Autopilot: real sources, links only to pages that exist, a closing call to action, and Article and FAQ schema. This spends workspace credits (1 for short, 2 for medium, 3 for long, 4 for comprehensive; check get_plan_and_credits first). The article is generated in the background and is NOT published: call publish_article for that. Retries with the same idempotency_key never spend twice.

Input parameters:

- `article_type` (string): auto (default, chosen from the keyword), how_to, explainer, comparison, reference or listicle
- `idempotency_key` (string, required)
- `integration_id` (string): A connected CMS in this workspace, used for internal links and later publishing
- `keyword` (string, required): The topic or search keyword
- `language` (string)
- `length` (string): short 1,200-1,600 words, medium 1,600-2,400 (default), long 2,400-3,200, comprehensive 3,200-4,200
- `tone` (string)

Output parameters:

- `already_existed` (boolean)
- `article` (object)
- `credits_spent` (number)
- `next_step` (string)

### `publish_article` (~178 tokens)

Publish article

Publish one article to the workspace's connected CMS (WordPress, WordPress.com, Shopify, Webflow, Wix, Ghost, Notion, Framer or a self-hosted site). This makes it live on the customer's website. A brief draft must be approved by its expert first. If the workspace has several CMS connections and no default destination, name one with integration_id. Pass publish_at (an ISO date-time) to schedule it, or "next_slot" for the workspace's next publish time. To change an article that is already published, do not publish it again (on some sites that adds a second post): edit it with replace_article, then call update_live_post.

Input parameters:

- `article_id` (string, required)
- `idempotency_key` (string, required)
- `integration_id` (string)
- `publish_at`

Output parameters:

- `already_queued` (boolean)
- `article_id` (string)
- `integration_id` (string)
- `job_id` (string|null)
- `next_step` (string)
- `scheduled_for` (string|null)

### `update_live_post` (~214 tokens)

Update live post

Send the saved version of a published article over its live post, on the site it is already on, so the post changes at its URL and no second post is added. Edit the article first with replace_article. update_live_post updates the live post in place on WordPress (Rankwise plugin), Next.js (@rankwise/next), Rails (rankwise-rails), the webhook integration and Shopify. On the Rankwise-hosted blog and Framer a saved edit is already live (Framer at its next sync), so there is nothing to push. Webflow, Wix, Notion, Ghost and WordPress.com cannot update a live post from Rankwise: change the post in that CMS by hand. On those sites this call is refused before anything is sent. It runs now and cannot be scheduled. A brief draft must still be approved by its expert. Retries with the same idempotency_key never send twice.

Input parameters:

- `article_id` (string, required)
- `idempotency_key` (string, required)

Output parameters:

- `already_queued` (boolean)
- `article_id` (string)
- `integration_id` (string)
- `job_id` (string|null)
- `next_step` (string)

### `replace_article` (~248 tokens)

Replace an article

Replace an article's title, meta description, slug or full HTML body. Send only the fields to change. The slug must be unique in the workspace, and a published article keeps its slug. Open tracked changes are dropped when the body changes. This saves the article in Rankwise; live_update and next_step in the result say how a published article's live post takes the edit. update_live_post updates the live post in place on WordPress (Rankwise plugin), Next.js (@rankwise/next), Rails (rankwise-rails), the webhook integration and Shopify. On the Rankwise-hosted blog and Framer a saved edit is already live (Framer at its next sync), so there is nothing to push. Webflow, Wix, Notion, Ghost and WordPress.com cannot update a live post from Rankwise: change the post in that CMS by hand. Free.

Input parameters:

- `article_id` (string, required)
- `html` (string): The full article body as HTML. It is sanitised: scripts, styles, frames, forms and event handlers are removed.
- `meta_description` (string)
- `slug` (string)
- `title` (string)

Output parameters:

- `article` (object)

### `bulk_replace_articles` (~48 tokens)

Replace several articles

Replace up to 50 articles in one call, with the same rules as replace_article. Each article succeeds or fails on its own; the result lists both.

Input parameters:

- `articles` (array, required)

Output parameters:

- `failed` (array)
- `replaced` (array)

### `get_autopilot` (~60 tokens)

Get autopilot settings

Show the workspace's content autopilot: its mode (off, draft_only, requires_approval, full_auto), weekly article quota, whether it is paused, the plan's quota ceiling, suggestions waiting for a decision, and the upcoming approval days.

Output parameters:

- `approved_this_week` (integer)
- `article_credit_cost` (number)
- `connected_integrations` (integer)
- `mode` (string)
- `paused_reason` (string|null)
- `pending_suggestions` (integer)
- `plan` (string)
- `plan_ceiling` (integer)
- `scheduled_runs` (array)
- `url` (string)
- `weekly_quota` (integer)

### `set_autopilot` (~130 tokens)

Change autopilot settings

Change the workspace's content autopilot. mode: off, draft_only (only suggests briefs, spends nothing) or requires_approval (approves up to the weekly quota of suggested briefs, which spends credits, and holds every draft for review). weekly_quota is capped by the plan. paused pauses or resumes. Auto-publishing (full_auto) cannot be switched on here; do that in the Rankwise app.

Input parameters:

- `mode` (string): full_auto is refused: switch on auto-publishing in the app.
- `paused` (boolean)
- `weekly_quota` (integer)

Output parameters:

- `mode` (string)
- `updated` (boolean)

### `get_planner` (~101 tokens)

Get the Content Planner

Read the Content Planner: one card per publishing day with its title, keyword, article type, state (planned, writing, review, published, failed), and search volume and difficulty when measured. Defaults to the window the planner page shows; pass from and to (YYYY-MM-DD, at most 120 days apart) for another. Cards waiting for a day come back under unscheduled.

Input parameters:

- `from` (string)
- `to` (string)

Output parameters:

- `cards` (array)
- `from` (string)
- `to` (string)
- `unscheduled` (array)

### `move_planner_card` (~69 tokens)

Move a planner card

Move a card that is not written yet to another publishing day. If another unwritten card holds that day, the two swap. A day held by an article that is being written or is published is refused. Free.

Input parameters:

- `card_id` (string, required)
- `day` (string, required)

Output parameters:

- `day` (string)
- `moved` (boolean)
- `swapped_with` (string|null)

### `list_keywords` (~77 tokens)

List keywords

List the keywords in the Content Planner, one per card, with the article title, its day, state, and search volume and difficulty when measured. Filter by state. To export them as CSV, call GET /api/v1/keywords?format=csv.

Input parameters:

- `state` (string): planned, writing, review, published or failed

Output parameters:

- `keywords` (array)
- `total` (integer)

### `add_keywords` (~100 tokens)

Add keywords to the planner

Add up to 50 keywords to the Content Planner. Each becomes a card. With a day it takes that day (an unwritten card there moves to the next free day); without one it takes the next free publishing day. Keywords already planned are skipped, so a retry never adds twice. Free: articles are drafted when their day comes.

Input parameters:

- `keywords` (array, required): Keywords as strings, or objects with keyword, day, article_type and article_length.

Output parameters:

- `added` (array)
- `failed` (array)
- `skipped` (array)

### `get_search_console_summary` (~49 tokens)

Get Search Console summary

Read the site's Google Search Console numbers for the last 28 days: total clicks and impressions, and the best articles by clicks. connected is false until Search Console is connected and has synced once.

Output parameters:

- `best_articles` (array)
- `clicks` (number|null)
- `connect_url` (string)
- `connected` (boolean)
- `days` (integer)
- `impressions` (number|null)

### `list_fixes` (~85 tokens)

List proposed fixes

List the on-page fixes Rankwise proposes for a domain (structured data, head tags, robots rules and similar), each with the page pattern it targets, the dimension it improves, why, and its status. Rankwise does not change the site; the user or their developer applies a fix.

Input parameters:

- `domain_id` (string, required): The tracked domain's id, from list_domains.

Output parameters:

- `dashboard_url` (string)
- `fixes` (array)

### `preview_fixes` (~61 tokens)

Preview proposed fixes

Show the exact change each proposed fix would make to the domain's pages, as a before and after diff. A dry run: it reads the live pages and changes nothing.

Input parameters:

- `domain_id` (string, required): The tracked domain's id, from list_domains.

Output parameters:

- `previews` (array)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-tryrankwise-rankwise/api-mcp#diagnostics

## Score history

- 2026-11-05: 70
- 2026-11-04: 69
- 2026-11-03: 69
- 2026-11-02: 68
- 2026-11-01: 68
- 2026-10-31: 68
- 2026-10-30: 67
- 2026-10-29: 67
- 2026-10-28: 66
- 2026-10-27: 66
- 2026-10-26: 65
- 2026-10-25: 65
- 2026-10-24: 64
- 2026-10-23: 64
- 2026-10-22: 63
- 2026-10-21: 63
- 2026-10-20: 62

## Common questions

### What is the Rankwise MCP server?

Rankwise is an MCP server listed in the public MCP registry as com.tryrankwise/rankwise. AI search visibility: see whether AI answer engines cite a brand, then win the citations back. This page covers its hosted endpoint (https://tryrankwise.com/api/mcp).

### Is the Rankwise MCP server safe to use?

Rankwise scores 70 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 Rankwise MCP server expose?

Rankwise exposes 50 tools: search_rankwise_content, list_rankwise_sitemaps, check_ai_crawler_access, score_ai_visibility, check_citation_readiness, and 45 more. Their descriptions and schemas cost roughly 4,519 tokens of context every time the server is loaded.

### Does the Rankwise MCP server require authentication?

No. We connected to Rankwise without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Rankwise MCP server still maintained?

Rankwise 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.

## Links

- Remote endpoint: https://tryrankwise.com/api/mcp
- Repository: https://github.com/0xrome/rankwise-plugin
- Website: https://tryrankwise.com/api-docs#mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-tryrankwise-rankwise/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-tryrankwise-rankwise/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-tryrankwise-rankwise/api-mcp
