Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

RankControl

NPM · RANKCONTROL · 2 COMPONENTS

Plan, write and publish SEO articles on your own site, and track your Google and AI search traffic.

66 Trust /100

Last scanned (5 hours ago)

Scores higher than 38% of npm servers

Category Marketing and SEO

Trust breakdown (7 categories)

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

Changelog

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.

Diagnostics

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 →

MCP tools · 103 exposed · ~6,938 tokens

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 →

Tool Tokens
get_visibility_trend ~47

Daily AI visibility score series across the 6 tracked AI engines, from RankControl's stored weekly citation checks.

NameTypeReqDescription
daysstring–Window size in days, default 30

No output schema declared.

No examples provided.

get_web_footprint ~53

Web footprint for the workspace and every competitor it tracks: how much of the web links to each domain, scored 0 to 10. A new domain scoring near zero is why AI citations are still absent.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_web_total_history ~58

Web total history for the workspace and every competitor it tracks: each domain's monthly web total over the last 3 months, oldest month first. The web total counts citations in ChatGPT and Google answers, including queries you do not track.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

hide_content_idea ~54

Hide an idea from Content Ideas. A tracked query keeps its weekly checks and its slot; use remove_tracked_query to delete a query outright.

NameTypeReqDescription
queryIdstringyesIdea id from get_content_ideas

No output schema declared.

No examples provided.

install_framer_embed ~68

Install site-wide visit tracking on the connected Framer project via its custom-code API. Dry run unless confirm is true. Confirming ALSO PUBLISHES the customer's Framer site.

NameTypeReqDescription
confirmboolean–Actually install (default: dry run)
integrationIdstring––

No output schema declared.

No examples provided.

install_webflow_custom_code ~102

Register and apply the tracking loader via Webflow's Custom Code API. Dry run unless confirm is true. Needs a site token with CMS + Custom code scopes (pass apiToken to upgrade the stored one). Goes live on the customer's next Webflow site publish.

NameTypeReqDescription
apiTokenstring–New site token with CMS + Custom code scopes
confirmboolean–Actually install (default: dry run)
integrationIdstring––

No output schema declared.

No examples provided.

invite_team_member ~85

Invite a member to the workspace with per-screen none/read/write access (unspecified screens default to none — grant at least one). Dry-run unless confirm is true; confirming sends the invite email.

NameTypeReqDescription
confirmboolean–Set true to actually send the invite (default dry-run)
emailstringyesInvitee email address
screenPermissionsobject––

No output schema declared.

No examples provided.

list_backlinks ~60

The workspace's backlink table, newest first. Each row carries its source (index, outreach, managed, network).

NameTypeReqDescription
statusstring–Filter: discovered, verified, lost, placed, identified, contacted, replied, link_placed, rejected

No output schema declared.

No examples provided.

list_citations ~58

Recent AI citation checks: which tracked queries were checked on which AI model and whether the brand was cited.

NameTypeReqDescription
limitnumber––
modelstring–Filter by AI model, e.g. chatgpt, perplexity

No output schema declared.

No examples provided.

list_cloudflare_zones ~27

Cloudflare zones visible to the connected grant, for picking which zone to poll.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_content ~24

List content pages in the workspace with their status (planned, draft, published).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_jobs ~35

Recent agent runs (job status feed). Async actions like content planning show up here with their outputs.

NameTypeReqDescription
limitnumber––

No output schema declared.

No examples provided.

list_outreach_prospects ~68

Link outreach pipeline: prospect sites per published article with status (identified → contacted → replied → link placed), Domain Rating (dr, with drSource ahrefs; dataforseo marks an authority estimate for a domain Ahrefs has no number for) and any contact email already found.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_postiz_channels ~38

Connected social channels across Postiz and Buffer (scheduler, id, name, platform). Channel ids are required by push_repurpose_draft.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_repurpose_queue ~43

Published articles with their social repurpose drafts per platform (platform + status chips). Shows which articles still need drafts and which scheduler is connected (Buffer or Postiz).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_site_pages ~31

Site pages RankControl links to from inside articles and the Related Reading block (with linkable/alive flags).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_social_threads ~57

Social thread prospects (Reddit/X) where the brand's articles could earn a mention, with subreddit rules context, sorted by intent.

NameTypeReqDescription
agestring––
platformstring––
statusstring––

No output schema declared.

No examples provided.

list_tracked_queries ~56

The workspace's tracked queries — the questions RankControl checks weekly across the 6 AI engines for brand citations — with their status and, for each tracked query, how many of the 6 engines cited it in their latest check.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mark_repurpose_posted ~40

Mark a repurpose draft as posted — use after publishing its text manually (outside Buffer or Postiz).

NameTypeReqDescription
draftIdstringyes–

No output schema declared.

No examples provided.

open_social_thread ~94

Open a drafted social thread to post the reply yourself: returns the thread URL (for X, a link that opens X's composer with the reply filled in) and starts four checks over 72 hours that mark the thread Posted once your reply is found there. Pass text to use an edited reply; X replies must be 280 characters or fewer.

NameTypeReqDescription
textstring––
threadIdstringyes–

No output schema declared.

No examples provided.

plan_content ~200

Generate candidate article titles (capacity-gated). This DOES NOT put anything on the calendar: review the returned titles, then call commit_planned_titles with the keepers. To plan titles about something specific, pass it as subject with the workspace topics it fits as topics. If it fits none of them, offer to add a topic first (set_topics). Costly; capped at 5/min.

NameTypeReqDescription
contentTypesarray––
intentsarray–informational / commercial / transactional
maxDifficultynumber–Keyword-difficulty ceiling
subjectstring–What the titles should be about, in the user's words (150 characters max). Needs topics.
topicsarray–Topic names from get_topics; omit for auto
useCitationGapsboolean–Target queries where AI cites competitors but not us
useRankingGapsboolean–Target keywords ranking page 2-3 or slipping

No output schema declared.

No examples provided.

plan_content_idea ~68

Put one of your Content Ideas on the calendar as a planned article. Pass its queryText from get_content_ideas. The idea's own title and numbers are used; a title is generated only when it has none.

NameTypeReqDescription
queryTextstringyesThe idea's keyword/query text

No output schema declared.

No examples provided.

publish_content ~104

Publish an article to the customer's connected CMS. Defaults to a DRY RUN describing what would happen; a human should approve before calling again with confirm=true. Delivery runs after this call returns. If the article does not go live, list_content shows its lastPublishError. Webhook receivers: https://rctrl.com/docs/webhook

NameTypeReqDescription
confirmboolean–Set true to actually publish (default: dry run)
contentIdstringyesThe content page id

No output schema declared.

No examples provided.

push_repurpose_draft ~158

Send a repurpose draft to a connected scheduler's channels: Postiz or Buffer (schedule, save as a draft, or add to Buffer's queue). YouTube and TikTok drafts are recording scripts and never push. PUBLICLY VISIBLE side effect: defaults to a DRY RUN; a human should approve before calling again with confirm=true.

NameTypeReqDescription
confirmboolean––
datestring–ISO time for scheduleType=schedule
draftIdstringyes–
integrationIdsarray–Channel ids from list_postiz_channels (required with confirm)
scheduleTypestring–Default draft; queue is Buffer only
schedulerstring–Which scheduler; required when both are connected

No output schema declared.

No examples provided.

queue_outreach_email ~148

Queue an outreach email to a prospect. It sends from the workspace's own connected mailbox, paced automatically with a daily cap. Uses the stored draft unless subject/body are given (a reply to a prospect who answered must pass both); a "[Your name]" sign-off in the draft is replaced with the owner's profile name at send time. Dry-run unless confirm is true — a confirmed queue leads to a REAL email being sent.

NameTypeReqDescription
backlinkIdstringyesProspect id from list_outreach_prospects
bodystring–Override the drafted body
confirmboolean–Set true to actually queue the send
subjectstring–Override the drafted subject

No output schema declared.

No examples provided.

remove_brand_guideline ~34

Delete a brand guideline. This can't be undone; turning it off keeps it.

NameTypeReqDescription
guidelineIdstringyes–

No output schema declared.

No examples provided.

remove_competitor ~31

Stop tracking a competitor.

NameTypeReqDescription
competitorIdstringyesCompetitor id from get_competitors

No output schema declared.

No examples provided.

remove_network_placement ~69

Retire one Editorial Circle placement on an article your site hosts (a link you received can't be removed). VISIBLE on the partner site: defaults to a DRY RUN; call again with confirm=true after human approval.

NameTypeReqDescription
confirmboolean––
placementIdstringyes–

No output schema declared.

No examples provided.

remove_site_page ~48

Remove a page from your site pages. Articles published after this don't link to it, and scans don't add it back; add_site_pages adds it again.

NameTypeReqDescription
pageIdstringyes–

No output schema declared.

No examples provided.

remove_team_member ~48

Remove a member from the workspace (access revoked immediately). Dry-run unless confirm is true.

NameTypeReqDescription
confirmboolean––
userIdstringyesMember user id from get_team

No output schema declared.

No examples provided.

remove_tracked_query ~39

Delete a query. Frees its tracking slot if it was tracked.

NameTypeReqDescription
queryIdstringyesQuery id from get_tracked_queries

No output schema declared.

No examples provided.

reschedule_article ~76

Move a PLANNED article to another day (requires the flexible schedule; max 5/day; the exact hour is placed automatically). Pass the target day as YYYY-MM-DD in the workspace's timezone.

NameTypeReqDescription
contentIdstringyes–
datestringyesTarget day as YYYY-MM-DD in the workspace's timezone

No output schema declared.

No examples provided.

revoke_team_invite ~32

Revoke a pending team invite by invitation id (from get_team).

NameTypeReqDescription
invitationIdstringyes–

No output schema declared.

No examples provided.

select_cloudflare_zone ~72

Pick the Cloudflare zone to poll. A crawler source already set stays; Cloudflare becomes the source only when none is set, and its first sync backfills up to 7 days.

NameTypeReqDescription
zoneIdstringyes–
zoneNamestringyesZone name, e.g. example.com

No output schema declared.

No examples provided.

set_analytics_source ~67

Select the active writer for a data type. Validated server-side against what the customer's setup supports. Switching aiCrawlers to cloudflare starts a backfill sync.

NameTypeReqDescription
dataTypestringyes–
sourcestringyescloudflare, wordpress_plugin or site_hook

No output schema declared.

No examples provided.

set_brand_guideline_active ~42

Turn a brand guideline on or off. Guideline ids come from get_brand.

NameTypeReqDescription
guidelineIdstringyes–
onbooleanyes–

No output schema declared.

No examples provided.

set_link_network_opt_in ~64

Join or leave the Editorial Circle. SIDE EFFECT on partner sites (leaving retires live links): defaults to a DRY RUN; a human should approve before calling again with confirm=true.

NameTypeReqDescription
confirmboolean––
optInbooleanyes–

No output schema declared.

No examples provided.

set_query_tracking ~73

Pause or resume weekly AI citation checks on a saved query. Tracking uses one of the plan's tracking slots; pausing frees it. The query is kept either way.

NameTypeReqDescription
queryIdstringyesQuery id from get_tracked_queries
trackedbooleanyestrue to track weekly, false to pause

No output schema declared.

No examples provided.

set_reddit_profile ~135

Save the Reddit account the Social tab drafts for: username (optional), comment karma, account age (under1mo, 1to6mo, 6moto2yr or over2yr), goal, founderStory and tone. Karma and age decide whether drafts may mention your product; the reply returns the readiness tier (warmup or ready). Replaces the stored profile — send every field.

NameTypeReqDescription
accountAgestringyes–
founderStorystringyes–
goalstringyes–
karmanumberyes–
tonestringyes–
usernamestring––

No output schema declared.

No examples provided.

set_site_page_linking ~56

Turn linking to a site page on or off. Off keeps the page in your list, but articles published after this don't link to it.

NameTypeReqDescription
isLinkablebooleanyes–
pageIdstringyes–

No output schema declared.

No examples provided.

set_social_x_handle ~44

Save the X handle used to recognise your posted replies (optional; text matching covers the rest). Pass an empty handle to clear it.

NameTypeReqDescription
handlestringyes–

No output schema declared.

No examples provided.

set_topics ~61

Replace the FULL topic list. Send every topic that should exist; missing ones are removed, new ones created, duplicates merged. Read get_topics first and modify that list. Up to 20 topics.

NameTypeReqDescription
topicsarrayyesThe complete list of topic names

No output schema declared.

No examples provided.

suggest_brand_icps ~69

Suggest up to 8 audiences for this site from its brand, products, competitors and topics. Saves nothing. Pick one and pass it to draft_brand_icp, or write your own with write_brand_icp.

NameTypeReqDescription
excludearray–Audience titles already shown, to get different ones

No output schema declared.

No examples provided.

update_article_settings ~89

Merge-patch the article policy: only the fields you pass change. Set flexibleScheduling true to allow 1-5 articles/day and manual rescheduling. styleSet picks your workspace's image style for article hero images.

NameTypeReqDescription
articleSettingsobject––
flexibleSchedulingboolean––
styleSetstring–Your workspace's image style, one of the 25 styles.

No output schema declared.

No examples provided.

update_brand_identity ~222

Update workspace identity: name, industry and subIndustry (values from the dashboard's industry list; a new industry without a subIndustry clears the old one), productDescription, authors (EEAT bylines used in article JSON-LD), styleReferenceUrls (articles whose writing style the writer imitates), brandAliases (other spellings and short forms of the brand; pages using them count as brand mentions) and brandExclusions (same-name companies or products whose pages are skipped). Every array REPLACES the stored list — call get_brand first and send the full updated list. Saving a name change runs the brand-mention search once a day at most. websiteUrl is immutable and cannot be changed.

NameTypeReqDescription
authorsarray––
brandAliasesarray––
brandExclusionsarray––
industrystring––
namestring––
productDescriptionstring––
styleReferenceUrlsarray––
subIndustrystring–Specialty within the industry, from the same list

No output schema declared.

No examples provided.

update_brand_profile ~100

Patch brand voice/style fields: tone, colors, defaultLocale, flexibleScheduling. Only provided fields change; they steer all future article generation.

NameTypeReqDescription
defaultLocalestring–BCP-47 tag from the supported registry
flexibleSchedulingboolean––
primaryColorstring––
secondaryColorstring––
tonestring–One of: professional, conversational, technical, friendly, journalistic, persuasive

No output schema declared.

No examples provided.

update_outreach_status ~61

Move an outreach prospect through the pipeline. A move to link_placed is confirmed by reading their page now and again tomorrow; the row keeps Placed and shows what was seen.

NameTypeReqDescription
backlinkIdstringyes–
statusstringyes–

No output schema declared.

No examples provided.

update_planned_article ~163

Change a planned article's own settings before it is written: length, tone, image style and custom instructions. Locked once writing starts.

NameTypeReqDescription
contentIdstringyes–
imageStylestring–One of the 25 image styles, or default to use your workspace's image style.
instructionsstring–Applied when this article is written, on top of your workspace's article settings. Empty clears them.
lengthstring–auto (the article type's default), short (1,200–1,800 words), medium (2,000–2,800) or long (3,200–4,000)
tonestring–One of the six brand tones, or default to follow your brand tone.

No output schema declared.

No examples provided.

update_repurpose_draft ~48

Edit a repurpose draft's body and/or title before pushing or posting.

NameTypeReqDescription
bodystring––
draftIdstringyes–
titlestring––

No output schema declared.

No examples provided.

update_social_thread_status ~53

Skip a social thread so it leaves the queue (the only manual status; Posted is set automatically once your reply is found in the thread).

NameTypeReqDescription
statusstringyes–
threadIdstringyes–

No output schema declared.

No examples provided.

Install

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

# add to Claude Code
claude mcp add rankcontrol-rankcontrol -- npx -y rankcontrol
Common questions

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.