Aeo Mcp

io.github.arthurcarlsonnPublished by GitHub account arthurcarlsonnv1.0.1Updated Oct 24, 2026

AEO tools for AI agents: crawler permissions, llms.txt, structured data, AI-readiness audit.

VerifiedSTDIODesktop onlyWeb Search & ScrapingDeveloper Tools

Overview

AI-generated overview

Local MCP server that lets an assistant audit how visible a website is to AI answer engines: crawler rules, llms.txt, structured data and on-page signals.

What you can do
  • Run a full AI-readiness audit of a URL with a 0-100 score, grade and failed checks with fixes
  • Check robots.txt policy per AI crawler (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, Bingbot) and list sitemaps
  • Inspect a site's llms.txt for structure, links and validity issues
  • Extract JSON-LD structured data types, key fields and parse errors from a page
  • Read on-page signals such as title, meta description, h1, canonical, lang, text ratio and heading outline
When to use it
Useful when you want to know whether a site can be found and cited by AI answer engines, compare crawler policies across sites, or check and draft an llms.txt. Good for SEO/AEO reviews and content visibility checks.
Requirements
Runs locally over stdio, installed via the npm package aeo-mcp (typically launched with npx), so Node.js is needed. No API keys, accounts or environment variables are declared. It needs outbound network access to fetch the URLs being audited.
Before you install
The server fetches URLs supplied by the model, so it makes outbound requests to arbitrary public hosts; it includes an SSRF guard, timeouts and size limits. Tools are described as read-only with no telemetry and no LLM calls inside the server, but the fetched page content is returned to the assistant.

Installation

In SourceWeft

  1. Open Aeo Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

aeo-mcp

An MCP server that gives AI agents — Claude, Claude Code, Cursor, anything speaking the Model Context Protocol — tools to inspect a website's visibility to AI answer engines. Crawler permissions, llms.txt, structured data, on-page signals, and a full 29-check AI-readiness audit (powered by answer-audit), each one tool call away. Read-only, no API keys, no telemetry.

[Claude Desktop using aeo-mcp to inspect The Verge's AI crawler policy]

Real session: Claude Desktop discovers The Verge allows GPTBot (OpenAI licensing deal) while blocking ClaudeBot, PerplexityBot, Google-Extended, and CCBot — one tool call.

Install

Claude Code

bash
claude mcp add aeo -- npx -y aeo-mcp

Claude Desktop (claude_desktop_config.json)

json
{ "mcpServers": { "aeo": { "command": "npx", "args": ["-y", "aeo-mcp"] } } }

Cursor (.cursor/mcp.json)

json
{ "mcpServers": { "aeo": { "command": "npx", "args": ["-y", "aeo-mcp"] } } }

Tools

ToolWhen the agent uses itInputReturns
audit_url"How visible is this site to ChatGPT/Perplexity?" — full AEO health check{ url }0-100 score, grade, category breakdown, failed/warned checks with fixes
check_ai_crawlers"Is GPTBot blocked?" — robots.txt policy per AI bot{ url }Per-bot allow/block verdicts with the matching rule, plus sitemaps
inspect_llms_txt"Does this site have llms.txt? Is it valid?"{ url }Title, summary, sections with links, structural issues, raw excerpt
extract_structured_data"What schema markup does this page have?"{ url }JSON-LD types, key fields per node, parse errors
extract_page_signals"Why do engines misread this page?"{ url }Title, meta description, h1, canonical, lang, text ratio, heading outline, client-side-rendering flag

Bots checked by check_ai_crawlers: GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, Bingbot.

Try these prompts

  • "Audit glowlab.com and summarize the top 3 AEO fixes."
  • "Compare the AI crawler policies of nike.com and adidas.com — who is more open to being cited?"
  • "Check if my site has a valid llms.txt, and if not, draft one from my page signals."

Security

The server fetches model-supplied URLs, so it ships with an SSRF guard: http/https only, DNS resolution checked against private and special ranges (loopback, RFC1918, link-local, unique-local, IPv4-mapped forms), re-validation on every redirect hop, 10 s timeout, 2 MB body cap, max 5 redirects. Violations return a clean tool error, never an exception. All tools are read-only and no LLM calls happen inside the server.

Development

bash
npm installnpm run build   # required before npm test (the protocol test runs dist/)npm test

Tests include a scripted stdio round-trip (initialize → tools/list → tools/call) against the built server. To inspect interactively:

bash
npx @modelcontextprotocol/inspector node dist/index.js

License

MIT © Arthur Carlson

Source: README.md at commit 5341ec9

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts