Skip to content

SEO Audit MCP Server

by glivera · remote · no sign-in to list tools · v0.2.0 · published by GitHub user glivera

Professional SEO auditing: 15 tools, 9 checks, CWV, E-E-A-T, schema, GEO. Free tier.

Changes · 12

15 tools: 12 change things and 3 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http seo-audit https://seo.accruedev.com/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

15 tools

Changes things 12Claude Code: ask
  • seo_check_contentE-E-A-T and content quality analysis powered by AI.Can send data outNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    E-E-A-T and content quality analysis powered by AI.
  • seo_check_geoAI search readiness: crawler access, llms.txt, passage citability.Can send data outNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    AI search readiness: crawler access, llms.txt, passage citability.
  • seo_check_localLocal SEO signals: NAP consistency, LocalBusiness schema, GBP indicators.Can send data outNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    Local SEO signals: NAP consistency, LocalBusiness schema, GBP indicators.
  • seo_check_metaCheck title, meta description, OG tags, canonical, and robots directives.Can send data outNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    Check title, meta description, OG tags, canonical, and robots directives.
  • seo_check_performanceCore Web Vitals analysis via Google PageSpeed Insights.Can send data outNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    Core Web Vitals analysis via Google PageSpeed Insights.
  • seo_check_schemaDetect and validate JSON-LD structured data on a page.Can send data outNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    Detect and validate JSON-LD structured data on a page.
  • seo_competitor_checkSERP competitor analysis.Can send data outNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    SERP competitor analysis. Shows where you rank for a keyword, top competitors, and on-page comparison. Requires Agency plan or higher.
  • seo_crawl_siteCrawl a website via BFS, check SEO on every page, and return site-wide analysis.Reads text others writeCan send data outNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • untrusted-inputThe name "seo_crawl_site" says "crawl": it reads web pages, which anyone can write.
    • untrusted-inputThe description's first sentence says "crawl": it reads web pages, which anyone can write.
    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    Crawl a website via BFS, check SEO on every page, and return site-wide analysis.
  • seo_deep_auditFull multi-agent SEO audit (async).Can send data outNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    Full multi-agent SEO audit (async). Returns a job_id to poll with seo_audit_status.
  • seo_generate_schemaGenerate appropriate JSON-LD structured data for a page using AI.Can send data outNo findings

    Why it is in this group

    • The name "seo_generate_schema" says "generate": a word for a change.

    What it can reach

    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    Generate appropriate JSON-LD structured data for a page using AI.
  • seo_quick_auditQuick SEO audit of a single page.Can send data outNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    Quick SEO audit of a single page. Returns score, top issues, and actionable fixes.
  • seo_usageCheck remaining audit credits and current plan status.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
    Check remaining audit credits and current plan status.
Only reads 3Claude Code: allow
  • seo_audit_statusCheck the progress and results of an async deep audit job.No findings

    Why it is in this group

    • The name "seo_audit_status" says "status": a word for reading.
    Description, as the server wrote it
    Check the progress and results of an async deep audit job.
  • seo_crawl_statusCheck the progress and results of a site crawl job.Reads text others writeNo findings

    Why it is in this group

    • The name "seo_crawl_status" says "status": a word for reading.

    What it can reach

    • untrusted-inputThe name "seo_crawl_status" says "crawl": it reads web pages, which anyone can write.
    • untrusted-inputThe description's first sentence says "crawl": it reads web pages, which anyone can write.
    Description, as the server wrote it
    Check the progress and results of a site crawl job.
  • seo_historyView your past audit results.No findings

    Why it is in this group

    • The description's first verb is "view": a word for reading.
    Description, as the server wrote it
    View your past audit results. List recent audits or retrieve a specific audit by ID.

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.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data.

Reads private data0
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write2
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out11
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Install

Pinned to version 0.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http seo-audit https://seo.accruedev.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__seo-audit__seo_audit_status",
      "mcp__seo-audit__seo_history",
      "mcp__seo-audit__seo_crawl_status"
    ],
    "ask": [
      "mcp__seo-audit__seo_quick_audit",
      "mcp__seo-audit__seo_check_schema",
      "mcp__seo-audit__seo_check_meta",
      "mcp__seo-audit__seo_usage",
      "mcp__seo-audit__seo_deep_audit",
      "mcp__seo-audit__seo_check_performance",
      "mcp__seo-audit__seo_check_content",
      "mcp__seo-audit__seo_check_local",
      "mcp__seo-audit__seo_check_geo",
      "mcp__seo-audit__seo_generate_schema",
      "mcp__seo-audit__seo_crawl_site",
      "mcp__seo-audit__seo_competitor_check"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as seo-audit. Review it before you use it.

Capability tags behind 12 rules
  • mcp__seo-audit__seo_quick_audit outbound
  • mcp__seo-audit__seo_check_schema outbound
  • mcp__seo-audit__seo_check_meta outbound
  • mcp__seo-audit__seo_deep_audit outbound
  • mcp__seo-audit__seo_check_performance outbound
  • mcp__seo-audit__seo_check_content outbound
  • mcp__seo-audit__seo_check_local outbound
  • mcp__seo-audit__seo_check_geo outbound
  • mcp__seo-audit__seo_generate_schema outbound
  • mcp__seo-audit__seo_crawl_site untrusted-input, outbound
  • mcp__seo-audit__seo_competitor_check outbound
  • mcp__seo-audit__seo_crawl_status untrusted-input