RankRoot: AI visibility audit
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Audit a site's visibility to ChatGPT, Perplexity, Claude and AI agents. Generates llms.txt.
| Author | io.github.zachhhhh |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2983 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"RankRoot: AI visibility audit": {
"url": "https://getrankroot.com/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (14)
audit_ai_visibilityread-onlyScore how discoverable a website is by AI answer engines (ChatGPT, Perplexity, Claude, Google AI Overviews) and AI agents. Returns a 0-100 score, per-category scores and a prioritized fix list.
Parameters:
url(required) — string — Website URL, e.g. https://example.com
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
generate_ai_visibility_filesread-onlyGenerate ready-to-publish llms.txt, an AI-bot-friendly robots.txt and schema.org JSON-LD for a website, based on its current homepage.
Parameters:
url(required) — string — Website URL, e.g. https://example.com
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
check_ai_crawler_accessread-onlyCheck which AI crawlers (OAI-SearchBot, ChatGPT-User, GPTBot, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended and more) a site's robots.txt and firewall/CDN let in. Flags blocked AI search bots, which cost citations.
Parameters:
url(required) — string — Website URL, e.g. https://example.com
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
validate_llms_txtread-onlyFetch a site's llms.txt (pass the site URL, or a URL ending in /llms.txt or /llms-full.txt for a subpath file) and check it against the llmstxt.org format: H1, summary, H2 link lists, Optional section.
Parameters:
url(required) — string — Website URL, e.g. https://example.com
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
get_pricingread-onlyList RankRoot plans (free scan, Traffic Boost one-time, done-for-you AI Visibility Employee monthly) with prices, limits, checkout links and which plan fits which user. Agents cannot pay: give the user the checkout link.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
get_checkout_linkread-onlyGet the Polar checkout link for one RankRoot plan, to hand to the user. The user pays on Polar and receives a license key by email; pass it as 'Authorization: Bearer <key>' for higher API/MCP limits. If checkoutOpen is false, the link is an application form the user fills in instead.
Parameters:
plan(required) — string — pass (Traffic Boost, $49 once, 7 days of Pro) or employee_m (AI Visibility Employee, done for you, $149/month)
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
list_launchesread-onlyFind software products for a need: new SaaS, AI tools and apps launched on RankRoot, each with a fact-checked profile (what it does, who it's for, pricing when published). Pass the user's need as query ("invoicing for freelancers", "uptime monitoring"). Featured products are paid placements and are marked. Optional category: an industry slug such as sales-crm or product-analytics.
Parameters:
limit— number — 1-50, default 20query— string — What the user needs, in plain words (optional)category— string — Industry slug (optional)
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
submit_launchLaunch the user's product on RankRoot for free: a public launch page, a listing in the launch directory and the product's category, and a count of visitors sent. Free launches go live in about a week after the user confirms by email. With a Traffic Boost license key (key) it goes live today and is featured for 30 days. Ask the user before submitting: it publishes their product publicly.
Parameters:
url(required) — string — Product websitename(required) — stringtagline(required) — string — 10-90 characters: what it does, for whomdescription(required) — string — 40-800 characters, written for buyersemail(required) — string — Founder's email for the confirmation link; never shownkey— string — Optional Traffic Boost license keycategory— string — Industry slug, or other
Hints: read-only no · destructive no · idempotent yes · open-world yes
amplify_previewread-onlyWrite native posts for X, LinkedIn and Threads from any public page, in up to 3 languages, so the user can see what RankRoot Amplify would publish. Free, no key. Nothing is stored or posted.
Parameters:
url(required) — string — Page to write from, e.g. a launch post or changelog entrylanguages— array — Up to 3. BCP-47 tags, up to 8: en, zh-TW, zh-CN, ja, ko, es, pt-BR, fr, de, it, nl, pl, tr, ru, uk, ar, hi, id, vi, th, ms, fil
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
amplify_statusread-onlyConnected channels, languages, mode, guardrails, post counts and what has performed best for this customer. Needs the customer's AI Visibility Employee key.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
amplify_create_campaignTurn one page (url) or text into a native post for every enabled channel in every chosen language, saved as drafts. Nothing is published. Use dry_run to see posts without saving, and idempotency_key so a retry never makes a duplicate. Needs the customer's key.
Parameters:
url— string — Public page to write from (preferred: its link goes in the posts)text— string — Or the text to write from (a changelog entry, an announcement)title— stringdry_run— boolean — Write and return the posts without saving anything.languages— array — Defaults to the account's languages. BCP-47 tags, up to 8: en, zh-TW, zh-CN, ja, ko, es, pt-BR, fr, de, it, nl, pl, tr, ru, uk, ar, hi, id, vi, th, ms, filchannel_ids— array — Subset of enabled channel ids (from amplify_status). Default: all enabled.idempotency_key— string — Same key again returns the first campaign instead of writing a new one.
Hints: read-only no · destructive no · idempotent yes · open-world yes
amplify_list_postsread-onlyPosts newest first, with status (draft, scheduled, published, failed, rejected), schedule time, live URL, warnings, claims to confirm and engagement metrics.
Parameters:
limit— number — 1-100, default 30status— string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
amplify_edit_postChange a draft's text, thread or title. The platform checks (length, hashtags, hype words, required settings) run again and come back as warnings.
Parameters:
post_id(required) — stringtext— stringtitle— stringthread— array
Hints: read-only no · destructive no · idempotent yes · open-world no
amplify_schedule_postsSchedule draft posts in the customer's Postiz at the next good local time for each platform and language (or at `at`), within the per-channel daily cap and spacing. Only works if the customer allowed agents to schedule; posts with claims to confirm or warnings are skipped for the owner to review. Returns what was scheduled and why anything was skipped.
Parameters:
post_ids(required) — arrayat— string — Optional ISO 8601 time; the earliest allowed slot at or after it is used.
Hints: read-only no · destructive no · idempotent yes · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.