io. github. johnsmalls22-rgb/ backlinkmcp-server
by johnsmalls22-rgb · remote · no sign-in to list tools · v1.6.0 · published by GitHub user johnsmalls22-rgb
Backlink & domain authority MCP for AI agents: referring domains, link gap, toxic review queue
13 tools: 7 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things7Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http backlinkmcp https://backlinkmcp.com/api/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnverify_link_live
The server marks "verify_link_live" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "verify_link_live" says "link": a word for a change.
- Warnflag_toxic_links
The server marks "flag_toxic_links" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "flag_toxic_links" says "link": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
13 tools
Changes things 7Claude Code: ask
ai_crawler_auditAudit which AI crawlers a site allows or blocks in robots.txt — sorted by CONSEQUENCE: blocking a VISIBILITY crawler (OAI-SearchBot, PerplexityBot, ChatGPT-User, Claude-User…) remo…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.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Audit which AI crawlers a site allows or blocks in robots.txt — sorted by CONSEQUENCE: blocking a VISIBILITY crawler (OAI-SearchBot, PerplexityBot, ChatGPT-User, Claude-User…) removes the site from live AI answers, while blocking a TRAINING crawler (GPTBot, CCBot, Google-Extended…) only opts out of model training. Those need opposite decisions. Checks 25 known AI crawlers + whether /llms.txt exists, plus general robots.txt hygiene (Sitemap directives, whole-site Disallow foot-guns). Free (no LLM calls).
Annotations the server declares
- title: AI crawler access audit
- openWorldHint: true
- readOnlyHint: true
ai_visibility_reportAI Visibility / GEO audit.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 AI Visibility / GEO audit. Asks a panel of AI models a buyer-intent question ('what's the best <category>?') and reports whether YOUR brand gets recommended, who the models prefer instead (share-of-voice across the panel), WHY the leader wins — diagnosed against BacklinkMCP's own authority/link data (referring-domain gap) — and which domains to earn links from to catch up. Two modes: `parametric` (default — the models' baked-in brand memory) or `retrieval` (live web-search models = what the AI answers right now, SEO-driven). **Pro plan only** (runs a live multi-model AI panel): 8 models × 3 prompts × up to 4 competitors per report.
Annotations the server declares
- title: AI visibility report (Pro, spends credits)
- openWorldHint: true
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
backlinks_for_domainFull backlink payload for a domain: total inlink count plus the ranked list of linking domains (authority + outbound link count per linker).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.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Full backlink payload for a domain: total inlink count plus the ranked list of linking domains (authority + outbound link count per linker). Returns up to 100 rows on Pro, 25 on the free tier; use domain_authority_score for just the headline number.
Annotations the server declares
- title: Backlink profile
- openWorldHint: true
- readOnlyHint: true
common_linkersMulti-domain backlink overlap: given 2-4 domains, returns the domains that link to MORE THAN ONE of them, ranked by overlap (how many of the set they link) then authority.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.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Multi-domain backlink overlap: given 2-4 domains, returns the domains that link to MORE THAN ONE of them, ranked by overlap (how many of the set they link) then authority. Answers 'who links my whole niche?' — the must-have publications, directories, and roundups your competitors all share. Domain-level only (no per-link URL/anchor). Free compares 2 domains, Pro up to 4; returns up to 25 rows free / 100 Pro.
Annotations the server declares
- title: Common linkers across domains
- openWorldHint: true
- readOnlyHint: true
flag_toxic_linksToxic / low-quality backlink audit: scans a domain's LINKERS and flags spammy disavow CANDIDATES — abused TLDs (.tk/.xyz/.loan…), spam keywords in the domain, hyphen/keyword stuffi…1 finding
Why it is in this group
- The name "flag_toxic_links" says "link": 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 "flag_toxic_links" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "flag_toxic_links" says "link": a word for a change.
Description, as the server wrote it Toxic / low-quality backlink audit: scans a domain's LINKERS and flags spammy disavow CANDIDATES — abused TLDs (.tk/.xyz/.loan…), spam keywords in the domain, hyphen/keyword stuffing, and link-farm-level outbound counts. The inverse of find_link_prospects. Domain-level heuristic only (no per-link URL/anchor), so each row is a DOMAIN worth REVIEWING, never a confirmed toxic link. Note: Google says most sites should NOT disavow — use this to audit, not to auto-disavow. Free returns up to 25 flags, Pro up to 100.
Annotations the server declares
- title: Toxic backlink review queue
- openWorldHint: true
- readOnlyHint: true
indexnow_submitSubmit one or more URLs to IndexNow for near-instant indexing by Bing and Yandex.No findings
Why it is in this group
- The name "indexnow_submit" says "submit": a word for a change.
Description, as the server wrote it Submit one or more URLs to IndexNow for near-instant indexing by Bing and Yandex. Requires an IndexNow key that YOU control and have already hosted at https://<your-domain>/<key>.txt — this tool does not create that key for you.
Annotations the server declares
- title: Submit URLs to IndexNow
- openWorldHint: true
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
verify_link_liveLive-verify backlinks: fetches linking domains' homepages RIGHT NOW and confirms an actual href to the target domain exists on each.1 finding
Why it is in this group
- The name "verify_link_live" says "link": 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 "verify_link_live" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "verify_link_live" says "link": a word for a change.
Description, as the server wrote it Live-verify backlinks: fetches linking domains' homepages RIGHT NOW and confirms an actual href to the target domain exists on each. Complements the index with real-time proof. Only homepages are fetched, so 'not_found' means 'no link on the homepage today', not 'the link is gone'. Checks the top 8 linkers by default (max 15).
Annotations the server declares
- title: Verify backlinks live
- openWorldHint: true
- readOnlyHint: true
Only reads 6Claude Code: allow
core_web_vitalsGet Core Web Vitals (LCP, INP, CLS) and a performance score for a page via Google PageSpeed Insights — both a lab Lighthouse run and real-user CrUX field data when available.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get Core Web Vitals (LCP, INP, CLS) and a performance score for a page via Google PageSpeed Insights — both a lab Lighthouse run and real-user CrUX field data when available.
Annotations the server declares
- title: Core Web Vitals
- openWorldHint: true
- readOnlyHint: true
domain_authority_scoreGet an editorial-authority score for a domain (weighted toward high-trust wiki/edu/gov/news referrers, from BacklinkMCP's proprietary web-scale link index).No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get an editorial-authority score for a domain (weighted toward high-trust wiki/edu/gov/news referrers, from BacklinkMCP's proprietary web-scale link index). Returns a domain_rating-style score plus referring domain count.
Annotations the server declares
- title: Domain authority score
- openWorldHint: true
- readOnlyHint: true
find_link_prospectsCompetitor backlink-gap analysis for link building.No findings
Why it is in this group
- The name "find_link_prospects" says "find": a word for reading.
Description, as the server wrote it Competitor backlink-gap analysis for link building. Given YOUR domain (the `domain` arg) and 1-3 competitor domains, returns domains that link to the competitor(s) but NOT to you, ranked by the linking domain's authority — a warm outreach shortlist (aka competitor gap). Domain-level only: the index has no per-link URLs or anchor text, so each row is a DOMAIN worth pitching for a link, not a confirmed link or a specific page. CDN/analytics/marketing-widget/social noise is filtered out. Free mines 1 competitor and returns up to 25 prospects; Pro mines up to 3 competitors and returns up to 100.
Annotations the server declares
- title: Competitor link gap
- openWorldHint: true
- readOnlyHint: true
schema_validateExtract and validate JSON-LD structured data (schema.org) from a page.No findings
Why it is in this group
- The name "schema_validate" says "validate": a word for reading.
Description, as the server wrote it Extract and validate JSON-LD structured data (schema.org) from a page. Checks JSON validity and flags missing recommended fields for common types (Article, Product, Organization, WebSite, BreadcrumbList, FAQPage, LocalBusiness).
Annotations the server declares
- title: Structured data check
- openWorldHint: true
- readOnlyHint: true
site_auditFetch a page and audit core on-page SEO signals: title/meta description length, canonical tag, heading structure, image alt text coverage, viewport tag, robots meta, word count.No findings
Why it is in this group
- The description's first verb is "fetch": a word for reading.
Description, as the server wrote it Fetch a page and audit core on-page SEO signals: title/meta description length, canonical tag, heading structure, image alt text coverage, viewport tag, robots meta, word count. Returns a list of concrete issues found. Single page only — not a site crawl.
Annotations the server declares
- title: On-page SEO audit
- openWorldHint: true
- readOnlyHint: true
top_linkers_for_domainReturn the top 25 domains linking to a given domain, ranked by the linking domain's own authority, with link counts.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Return the top 25 domains linking to a given domain, ranked by the linking domain's own authority, with link counts. Good for a quick competitive/backlink-profile skim.
Annotations the server declares
- title: Top linking domains
- openWorldHint: true
- readOnlyHint: true
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.6.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http backlinkmcp https://backlinkmcp.com/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__backlinkmcp__domain_authority_score",
"mcp__backlinkmcp__top_linkers_for_domain",
"mcp__backlinkmcp__find_link_prospects",
"mcp__backlinkmcp__site_audit",
"mcp__backlinkmcp__schema_validate",
"mcp__backlinkmcp__core_web_vitals"
],
"ask": [
"mcp__backlinkmcp__backlinks_for_domain",
"mcp__backlinkmcp__verify_link_live",
"mcp__backlinkmcp__flag_toxic_links",
"mcp__backlinkmcp__common_linkers",
"mcp__backlinkmcp__ai_visibility_report",
"mcp__backlinkmcp__ai_crawler_audit",
"mcp__backlinkmcp__indexnow_submit"
],
"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 backlinkmcp. Review it before you use it.
