RankControl
NPM · RANKCONTROL · 2 COMPONENTS
Plan, write and publish SEO articles on your own site, and track your Google and AI search traffic.
Available components
Last scanned (4 hours ago)
Scores higher than 38% of npm servers
Category Marketing and SEO
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 94 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 2 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability69
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 6938 tokens (~67/item across 103 items; 103 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage83
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 48% of tool parameters carry a description.Partial
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 12 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "remove_tracked_query" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 103 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 14 Oct 26 66
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 18 Oct 2026 · Analysed npm/rankcontrol@0.19.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 94 packages
| Packages resolved | 94 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
activate_analytics_screen ~39
Turn on the Analytics or Reports screen for this workspace (they ship disabled; activation is one-time per screen).
| Name | Type | Req | Description |
|---|---|---|---|
| screen | string | yes | – |
No output schema declared.
No examples provided.
add_brand_guideline ~78
Add a brand guideline the writer follows in every article, as Brand Control, Writing, Brand Guidelines does: its type (tone, terminology, topic, style or factual), what to avoid and what to write instead (300 characters each).
| Name | Type | Req | Description |
|---|---|---|---|
| avoid | string | yes | – |
| instead | string | yes | – |
| type | string | yes | – |
No output schema declared.
No examples provided.
add_competitor ~78
Track a competitor (max 10). They enter weekly share-of-voice comparisons against the org's own citation rate. Omit websiteUrl to have the site resolved from the name.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Competitor name |
| websiteUrl | string | – | Competitor website URL (optional; resolved from the name when omitted) |
No output schema declared.
No examples provided.
add_site_pages ~44
Add site page URLs for internal linking. Duplicates and articles RankControl published are skipped; page titles fill in automatically in the background.
| Name | Type | Req | Description |
|---|---|---|---|
| urls | array | yes | – |
No output schema declared.
No examples provided.
add_tracked_query ~96
Add a query. Weekly AI citation checks start immediately when a tracking slot is free; otherwise it is saved untracked. Pass coveredByContentId when the query is one of that article's question headings, so Content Ideas does not offer it again.
| Name | Type | Req | Description |
|---|---|---|---|
| coveredByContentId | string | – | contentPage id of the article that already answers this query |
| queryText | string | yes | The search/AI query to track |
No output schema declared.
No examples provided.
archive_content ~66
Archive an article: it moves to the Archived tab and RankControl stops refreshing it. The published post stays live on your site; remove it there separately to take it down. It can't be restored. Refused while the article is still being written.
| Name | Type | Req | Description |
|---|---|---|---|
| contentId | string | yes | – |
No output schema declared.
No examples provided.
cancel_outreach_email ~56
Cancel a queued outreach email (a first email, a reply or a follow-up) before it sends. Refused once it has gone out.
| Name | Type | Req | Description |
|---|---|---|---|
| backlinkId | string | yes | Prospect id from list_outreach_prospects |
No output schema declared.
No examples provided.
commit_planned_titles ~73
Approve reviewed titles onto the content calendar (the approval half of the plan→commit gate). Pass rejected candidates in `discarded` so their keywords recycle into Content Ideas.
| Name | Type | Req | Description |
|---|---|---|---|
| discarded | array | – | Rejected candidates |
| runId | string | – | – |
| titles | array | yes | Titles to schedule |
No output schema declared.
No examples provided.
confirm_brand_reviewed ~34
Mark the brand as reviewed: the Confirm your brand step of Expedition I, as the Overview's Mark reviewed button does.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
contact_support ~106
Send a message or bug report to the RankControl team (emails support with the workspace identified; the org owner is set as reply-to). Use when an API call errors unexpectedly or data looks wrong — include the failing request, ids, and what you expected. Capped at 3/min.
| Name | Type | Req | Description |
|---|---|---|---|
| message | string | yes | Details: what happened, errors, ids, steps to reproduce |
| pageUrl | string | – | Related dashboard or API URL |
| subject | string | yes | – |
No output schema declared.
No examples provided.
delete_planned_title ~62
Remove a planned title from the content calendar. The title's keyword returns to Content Ideas as a saved query, so the topic is not lost. Only planned rows qualify; use archive for generated articles.
| Name | Type | Req | Description |
|---|---|---|---|
| contentId | string | yes | Planned contentPage id |
No output schema declared.
No examples provided.
detect_site_links ~95
Scan the customer's sitemap (nested indexes handled) or crawl a blog root page and return same-site page URLs, minus the articles RankControl published (those are linked already). The source is remembered and re-read daily. Costly (3/min); review the URLs, then call add_site_pages with the keepers.
| Name | Type | Req | Description |
|---|---|---|---|
| source | string | yes | – |
| url | string | yes | Sitemap XML URL or a page URL to crawl |
No output schema declared.
No examples provided.
draft_brand_icp ~146
Draft one buyer profile from a one-sentence description or a suggestion from suggest_brand_icps. Returns the fields to review; nothing is saved until write_brand_icp. Fields passed in given are kept as written.
| Name | Type | Req | Description |
|---|---|---|---|
| describe | string | – | Who the audience is, in one sentence |
| given | object | – | Fields to keep as written (same keys as write_brand_icp, plus ageRange, seniority, department as strings). A key you pass is kept, empty included; a key you leave out is filled. |
| title | string | – | Title of a suggestion from suggest_brand_icps |
| who | string | – | The suggestion's one-line description |
No output schema declared.
No examples provided.
draft_outreach_reply ~73
AI-draft the next reply to a prospect who answered (status replied or rejected; auto-replies don't count). Returns subject and body only. Nothing sends: pass that subject and body to queue_outreach_email to send it.
| Name | Type | Req | Description |
|---|---|---|---|
| backlinkId | string | yes | Prospect id from list_outreach_prospects |
No output schema declared.
No examples provided.
draft_social_reply ~74
AI-draft a reply for a social thread. Nothing posts — the draft lands on the thread for human review. Subject to the same warm-up/pacing guards as the dashboard.
| Name | Type | Req | Description |
|---|---|---|---|
| mentionMode | string | – | Brand-mention mode; warm-up accounts are clamped to none |
| threadId | string | yes | – |
No output schema declared.
No examples provided.
find_outreach_contact ~51
Find an outreach email for one prospect site. Returns the stored contact or found:false. Capped at 5/min.
| Name | Type | Req | Description |
|---|---|---|---|
| backlinkId | string | yes | Prospect id from list_outreach_prospects |
No output schema declared.
No examples provided.
generate_article ~125
Write a PLANNED article's body immediately instead of waiting for the scheduled pipeline (generate-only: its publish slot is unchanged). Allowed for past-due slots and up to 3 days ahead, and at most 5 articles in any 24 hours (the dry run reports withinDailyLimit and nextWriteAt). Defaults to a DRY RUN; a human should approve before calling again with confirm=true since generation is costly.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Set true to actually start generation (default: dry run) |
| contentId | string | yes | The planned content page id |
No output schema declared.
No examples provided.
generate_repurpose_drafts ~70
Draft platform-native social posts for all eight platforms from a published article. Only for an article with no drafts yet; edit existing drafts in the dashboard. Defaults to a DRY RUN; confirm=true generates (costly).
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | – |
| contentId | string | yes | – |
No output schema declared.
No examples provided.
get_agent_activity ~63
Recent pipeline runs per agent lane (brand control, radar, forge, recon, deploy, outreach, sentinel, social).
| Name | Type | Req | Description |
|---|---|---|---|
| perAgent | number | – | Runs per lane, default 15 |
| sinceDays | number | – | Window in days, default 30 |
No output schema declared.
No examples provided.
get_analytics_sources ~65
Per-workspace analytics source setup: the selected writer for human traffic and AI-crawler data, which sources the setup qualifies for, and install state (Cloudflare zone/sync, WordPress plugin version, embed liveness). Both Analytics and Reports screens ship disabled until activated.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_article_settings ~72
The workspace article policy: per-article defaults (auto-write, auto-publish, images, title-in-hero, section infographics, Related Reading, YouTube, emojis, link counts, global instructions) plus the flexible-scheduling flag. News and trending articles always publish manually, regardless of auto-publish.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_backlink_stats ~29
Backlink totals (live, lost, avg DA, unique domains) plus outreach pipeline counts.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_billing ~58
This workspace's billing as Settings, Billing shows it: status (trial, active or cancelling), billing cycle, next charge, add-ons, usage against the plan's limits and recent payments. Read-only; changes are made in Settings, Billing.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_brand ~53
The workspace's brand data in one read: brand profile (voice, colors, meta), links/CTAs, products, buyer profiles (ICPs) and brand guidelines. This is the context RankControl's writers use.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_citability_report ~60
Published pages ranked by citability score (how extractable each page is for AI answers), worst first, each with its top open fixes. Use to decide which articles to improve.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max rows, default 25 |
No output schema declared.
No examples provided.
get_citation_sentiment ~52
How AI answers frame the brand when it's cited: positive / neutral / negative counts, daily trend, and recent answer snippets as receipts.
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | – | Window in days, default 30 |
No output schema declared.
No examples provided.
get_citation_sources ~59
Which domains AI engines cite when answering the brand's tracked queries, typed brand / competitive / UGC / editorial with counts and share. Shows where citation presence must be earned.
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | – | Window in days, default 30 |
No output schema declared.
No examples provided.
get_cloudflare_connect_url ~42
OAuth URL to connect read-only Cloudflare analytics (AI-crawler data source). Open it in a browser; the grant is scoped to Analytics:Read.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_competitors ~46
Tracked competitors used in share-of-voice and visibility comparisons, with each one's AI visibility score, citations of checks over the last 30 days, domain metrics and positioning analysis.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_content_ideas ~48
Scored content-idea backlog: uncovered tracked queries ranked by citation gaps, competitor citations, trending topics, and quick-win rankings. Each idea carries a suggested title and winnability metrics.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_crawler_access ~78
Daily AI-crawler reachability probe result — a DIAGNOSTIC, not a traffic metric: whether the site's edge (e.g. Cloudflare Bot Fight Mode) or robots.txt blocks GPTBot/ClaudeBot. 'shielded' means browsers and bots are both challenged (site-wide shield, ambiguous for real, signed crawlers).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_exec_summary ~42
Executive report: last 30 days vs the 30 before — cite rate, citations, page views, AI-referred views, crawler hits, and articles published.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_help_page ~80
RankControl's help pages: setup guides for each publishing destination, the crawler and its IP address, AI crawler access, the API, CLI and MCP, getting started, and the plan and pricing. Without a page, lists the pages.
| Name | Type | Req | Description |
|---|---|---|---|
| page | string | – | Page slug, such as nextjs, bot, wordpress or plan-and-pricing |
No output schema declared.
No examples provided.
get_internal_links ~63
How the workspace's articles interlink: how many published articles link TO this page (with the source list) and how many internal links it sends out. Recorded from the real injected links at publish render time.
| Name | Type | Req | Description |
|---|---|---|---|
| contentId | string | yes | The content page id |
No output schema declared.
No examples provided.
get_link_network ~36
Editorial Circle state: credit balance/earn/spend, membership (optedIn), and hosted/received placements with partners and anchors.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_outreach_stats ~93
Outreach funnel for the last 90 days by how each prospect was found (intersection = competitor linkers, footprint = resource pages, mention = topical mentions, fresh = fresh competitor links, brand_mention = brand mentions, legacy = earlier rows): prospects, sent, replied and placed with reply and placement rates per send, plus the total. The harvest reads the same numbers to weight its methods; nothing to configure.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_overview_funnel ~31
AI pipeline overview for the last 30 days: AI crawler hits and visits referred by AI engines.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_page_engagement ~34
Per-page engagement for the last 30 days: views, AI citations, and a view sparkline per published page.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_planning_capacity ~32
How many article titles can still be planned onto the content calendar within the scheduling horizon. Check before plan_content.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_query_slots ~30
Tracking slots in use and the plan's limit, as Query Control shows them (18/50 tracked).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_rankings ~131
Verified Google and Bing positions per keyword (top 30), with Search Console clicks, impressions and average position when connected (gscPosition is an average over the searches you appeared in, never a rank), which page earned each query and whether it is one of your articles (isOurs), and how often Google's AI Overview shows above each keyword and cites one of your pages (a rate over the last 8 weekly checks). Defaults to queries your published articles appear for.
| Name | Type | Req | Description |
|---|---|---|---|
| scope | string | – | "ours" (default): queries your published articles appear for. "site": everything on the domain. |
No output schema declared.
No examples provided.
get_repurpose_drafts ~66
Full social drafts (title, body, images, status) for one published article across the 8 platforms (LinkedIn, X/Twitter, Pinterest, Instagram, Facebook, Threads, YouTube, TikTok).
| Name | Type | Req | Description |
|---|---|---|---|
| contentId | string | yes | The content page id |
No output schema declared.
No examples provided.
get_setup_progress ~47
The workspace's expeditions on the Overview: the current expedition, each step's name and whether it is done, and the next step. Use it to help the user finish setting up.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_share_of_voice ~57
Share of voice vs competitors: the brand's citation rate, top competitor mention rates, and the brand's share of all brand appearances in AI answers over the window.
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | – | Window in days, default 30 |
No output schema declared.
No examples provided.
get_social_stats ~14
Social thread pipeline counts.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_team ~27
Workspace members and pending invites, with each member's per-screen permission matrix and the seat cap.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_top_wins ~39
Biggest wins of the last 30 days: most-cited page, best query cite-rate jump, biggest Google ranking climb, best new backlink.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_topics ~27
The workspace's topics. Tracked queries, content ideas and planned articles all group under these.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_traffic_overview ~53
Traffic overview from RankControl's own page analytics: total page views, unique visitors, sessions, bounce rate, and average time on page.
| Name | Type | Req | Description |
|---|---|---|---|
| days | string | – | Window in days, default 30 |
No output schema declared.
No examples provided.
get_visibility_score ~58
Composite AI visibility score for the workspace, blending AI citation rate across the tracked models with Google and Bing rank share. Returns the composite and the score of each part: AI citations, Google and Bing (the AI part includes a per-model breakdown).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
How do I install the RankControl MCP server?
RankControl runs locally as an npm package, launched with npx -y rankcontrol. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · rankcontrol
claude mcp add rankcontrol-rankcontrol -- npx -y rankcontrol
What is the RankControl MCP server?
RankControl is an MCP server listed in the public MCP registry as io.github.rankcontrol/rankcontrol. Plan, write and publish SEO articles on your own site, and track your Google and AI search traffic. This page covers its npm package (rankcontrol).
Is the RankControl MCP server safe to use?
RankControl scores 66 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 18 October 2026. It declares no install or post-install scripts. 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 RankControl MCP server expose?
RankControl exposes 103 tools: get_overview_funnel, get_visibility_trend, list_citations, get_web_footprint, get_web_total_history, and 98 more. Their descriptions and schemas cost roughly 6,938 tokens of context every time the server is loaded.
Is the RankControl MCP server still maintained?
RankControl is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the RankControl MCP server under?
RankControl declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.