Skip to main content
Glama
qckdatabase

SEO/AEO Audit MCP

by qckdatabase

SEO / AEO Audit MCP

An MCP server + skill that produces a 5-section landscape PDF audit for any website:

  1. Executive Summary — health score, key metrics, top gaps, priority plan

  2. Search Demand + Content Performance — Ahrefs keywords/pages, what's working / limiting growth

  3. Technical SEO + AEO Readiness — crawl findings, Core Web Vitals (CrUX), structured-data gaps

  4. Authority + Roadmap — backlink profile (with spam flags), 90-day roadmap

  5. AI Visibility — how often the brand surfaces in AI answer-engine results, vs. competitors

It exposes three tools — fetch_audit_data (crawl + Ahrefs + Core Web Vitals), fetch_ai_visibility (grounded OpenAI brand-visibility), and render_audit_pdf — and a skill that orchestrates them into one audit <url> command.

Setup

  • Have an AI assistant (Claude Code, etc.)? Tell it: "Set up this tool by following AGENT_SETUP.md."AGENT_SETUP.md

  • Doing it yourself?SETUP.md

Related MCP server: geo-audit

Requirements

  • Node.js 18+

  • AHREFS_API_KEY (paid) — required (the core SEO data)

  • OPENAI_API_KEY (paid) — optional; enables the AI Visibility section (omitted/"not measured" without it)

  • CRUX_API_KEY (free, Google Chrome UX Report API) — optional; adds Core Web Vitals

The audit runs with only the Ahrefs key; the other two just add sections.

Keys go in a local .env (copy .env.example); never commit it.

Use

After setup, in your assistant: audit https://example.com → PDF saved to your Desktop.

Each audit makes ~10 OpenAI calls plus Ahrefs API usage — small but metered cost per run.

Available Tools

3 tools
fetch_ai_visibilityA

Measure how often a brand appears in AI/answer-engine results for unbiased, category-level buyer queries. Generates prompts (brand-name excluded), runs grounded web-search rankings, and returns brand visibility %, average position, per-topic breakdown, and competitor brands. Pass brand and industry from fetch_audit_data when available. Requires OPENAI_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL to audit
brandNoBrand name (from fetch_audit_data.brand_name)
industryNoIndustry/context hint (from fetch_audit_data.industry)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the tool generates prompts, runs rankings, and returns specific metrics. It also notes the requirement for OPENAI_API_KEY. No contradictions, and the read-only nature is implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is three sentences with clear structure: first states purpose, second outlines process, third gives usage tip. No unnecessary words, all sentences earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and simple parameters, the description adequately explains the return values, dependencies, and prerequisites. Could mention potential errors or expected environment variable, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, providing baseline of 3. Description adds value by linking brand and industry parameters to fetch_audit_data output, enhancing semantic understanding beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb ('Measure') and resource ('brand visibility in AI/answer-engine results'), with specific details about the process and outputs. It distinguishes itself from siblings by focusing on AI visibility rather than general auditing or PDF rendering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance to pass brand and industry from fetch_audit_data when available, implying a typical workflow. Does not explicitly state when not to use or mention alternatives, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_audit_dataA

Crawl a website and fetch its Ahrefs SEO metrics. Returns a JSON object with: crawl (pages, issues, schema summary), ahrefs (DR, keywords, traffic, backlinks, top pages, referring domains), brand_name (inferred from schema/title), and industry (inferred from page content). Call this first when auditing a site.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL to audit, e.g. https://www.example.com

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes that it returns a JSON object and infers brand_name/industry from content, which adds behavioral context. No annotations provided, so description carries burden. Lacks details on rate limits, authentication, or destructive potential, but crawl is typically non-destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with action and return type, no superfluous words. Each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, description thoroughly covers return object fields and inference logic. Could mention potential prerequisites like robots.txt restrictions, but overall sufficient for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter 'url' already described as 'Full URL to audit'. Description adds example format but no new meaning beyond schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool crawls a website and fetches Ahrefs SEO metrics. It lists the specific return fields (crawl, ahrefs, brand_name, industry) and distinguishes from sibling tools by being the primary audit data fetcher.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Call this first when auditing a site,' providing clear usage context. Does not explicitly mention when not to use or alternatives, but sibling names imply different purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_audit_pdfA

Render the completed SEO/AEO audit report as a PDF file. Pass the ahrefs and crawl objects exactly as returned by fetch_audit_data (pass through unchanged), plus the ai_visibility data you gathered via web search and the narratives you wrote based on the data.

ParametersJSON Schema
NameRequiredDescriptionDefault
cruxNoThe crux object from fetch_audit_data (pass through; optional)
crawlNoThe crawl object exactly as returned by fetch_audit_data
ahrefsNoThe ahrefs object exactly as returned by fetch_audit_data
narrativesYes
output_pathNoAbsolute path for PDF output. Defaults to ~/Desktop/<domain>-seo-audit.pdf
ai_visibilityNo

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden. It states it renders a PDF but does not disclose whether it is a pure read operation (no side effects), what happens on conflict (overwrite?), or any rate limits. The phrase 'pass through unchanged' is helpful but insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first sentence states the purpose, second provides essential input guidance. No wasted words. Perfectly front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the output (PDF file) and default path. It does not mention error handling or prerequisites, but for a simple render tool with clear inputs, it is reasonably complete. Could be improved by noting that all required inputs must be present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 67% coverage (descriptions for 4 of 6 parameters). The description adds value by indicating that ahrefs/crawl should be passed exactly as returned, that ai_visibility comes from web search, and that narratives are user-written. This clarifies data provenance beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Render the completed SEO/AEO audit report as a PDF file.' It specifies the exact resources (ahrefs, crawl, ai_visibility, narratives) and their required form, effectively distinguishing it from sibling fetch tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent to pass through ahrefs/crawl from fetch_audit_data, ai_visibility from web search, and narratives written by the agent. It implies usage after data collection, though it could be clearer about what to do if data is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: fetch_audit_data crawls websites, fetch_ai_visibility measures AI visibility, and render_audit_pdf generates reports. There is no overlap or ambiguity.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (fetch_audit_data, fetch_ai_visibility, render_audit_pdf), making it easy for an agent to infer functionality from names.

Tool Count5/5

With only 3 tools, the server is tightly scoped to its domain. Each tool is necessary and well-justified, avoiding bloat or insufficiency.

Completeness5/5

The tool set covers the full audit workflow: data collection (fetch_audit_data), AI visibility analysis (fetch_ai_visibility), and report generation (render_audit_pdf). No obvious gaps exist for the stated purpose.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides comprehensive website auditing for SEO, performance, accessibility, and security using AI-powered analysis. It enables users to generate detailed audit reports and actionable improvement suggestions for any given URL.
  • A
    license
    Not graded
    quality
    C
    maintenance
    Evaluates any website's AI visibility with 15 checks across crawlability, structure, content, and connectivity, and provides actionable fixes.
    10
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Exposes SEO and AI-readability audit tools to AI agents, enabling one-shot anonymous audits or full authenticated audits with PDF reports and organic traffic data.
    73
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/qckdatabase/seo-aeo-audit-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server