linkaudit-mcp
v0.2.0
Published
MCP server for LinkAudit — scan any website's AI-search visibility (ChatGPT, Perplexity, Gemini), get ready-to-paste fix files, and lint GEO/citability scores in CI.
Maintainers
Readme
linkaudit-mcp
MCP server for LinkAudit — scan any website's AI-search visibility (ChatGPT, Perplexity, Gemini) from inside Claude, Cursor, or your CI pipeline.
Perplexity's citation check is measured, not estimated: it sends real, unbranded buyer questions to the live Perplexity API and checks whether the domain actually gets cited. Everything else in the scan is clearly labelled measured or estimated — never presented as more certain than it is.
Install
Claude Code
claude mcp add linkaudit -- npx -y linkaudit-mcpClaude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"linkaudit": {
"command": "npx",
"args": ["-y", "linkaudit-mcp"]
}
}
}Codex
codex mcp add linkaudit -- npx -y linkaudit-mcpOr install the LinkAudit plugin, which adds this server plus a skill that walks Codex through diagnosing, fixing and verifying in your repo (see plugins/linkaudit in the LinkAudit repo).
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"linkaudit": {
"command": "npx",
"args": ["-y", "linkaudit-mcp"]
}
}
}Tools
| Tool | What it does |
|---|---|
| run_scan | Full AI-visibility scan: SEO/GEO scores, per-engine ChatGPT/Perplexity/Gemini visibility, top-priority fixes. |
| get_fix_pack | Ready-to-paste files: robots.txt, Organization and FAQ schema, sitemap.xml, llms.txt, and answer blocks rewritten from the page's own text. Each is marked add, improve or ok against what the site already serves. |
| check_citability | Is this page "citable" by AI engines? Answer-first structure, quotable passages, question-led headings, FAQ schema. |
| check_perplexity_citations | Measured check: does Perplexity actually cite this domain for real buyer questions? |
| check_ai_crawler_access | Free and deterministic, about a second: can OAI-SearchBot, PerplexityBot, Claude-SearchBot and other AI crawlers reach the page, and is its content in the HTML they receive? Each blocked crawler comes with a fix and a curl command that verifies it. Run it again after a fix to confirm. |
Anonymous use shares the same free-scan limit as linkaudit.app/scan (it's your own machine's IP). Set LINKAUDIT_API_KEY for a higher limit once you have one.
CI: lint your GEO score
npx linkaudit-mcp lint https://example.com --min-geo 70 --min-citability 60Exits non-zero (and prints the failing checks) if either score is below the threshold — drop it into a GitHub Actions step to gate merges on AI-search visibility the same way you gate on tests.
- name: Check AI-search visibility
run: npx linkaudit-mcp lint https://your-site.com --min-geo 70Environment variables
| Var | Default | Purpose |
|---|---|---|
| LINKAUDIT_API_BASE | https://linkaudit.app | API base URL |
| LINKAUDIT_API_KEY | (none) | Optional bearer token, forwarded as Authorization |
License
MIT
