← /docs

mcp_server · jsonrpc 2.0 · sse

MCP server — wire AEO Pro into Claude / Cursor

Single endpoint, JSON-RPC 2.0 over both HTTP POST and Server-Sent Events. Four tools: scan, score, fix, generate.

Endpoint

POST https://www.aeo-pro.app/api/mcp     # one JSON-RPC request → JSON-RPC response
GET  https://www.aeo-pro.app/api/mcp     # SSE stream — emits "ready" then heartbeat every 25s

Auth

Authorization: Bearer aeopro_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
# or
X-API-Key: aeopro_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

Generate a key in Dashboard → Settings → API Keys.

Connect via SSE (curl)

curl -N https://www.aeo-pro.app/api/mcp \
  -H "Authorization: Bearer aeopro_xxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# Output:
# event: ready
# data: { "protocolVersion": "2025-03-26",
#         "serverInfo": { "name": "aeo-pro-mcp", "version": "1.0.0" },
#         "endpoint": { "post": "/api/mcp" },
#         "tools": ["scan","score","fix","generate"] }
# : heartbeat       # every 25s

tools/list (POST)

curl -X POST https://www.aeo-pro.app/api/mcp \
  -H "Authorization: Bearer aeopro_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

AEO tool library

Crawlable reference pages for the public MCP tools, generated from the same tool registry used by the server.

tools/call examples

  • scantool

    Run a quick SEO/AEO/GEO scan and return scores in ~10s.

    arguments

    • urlstring (required) — absolute URL
    curl -X POST https://www.aeo-pro.app/api/mcp \
      -H "Authorization: Bearer aeopro_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
      -H "Content-Type: application/json" \
      -d '{
        "jsonrpc": "2.0",
        "id": 2,
        "method": "tools/call",
        "params": {
          "name": "scan",
          "arguments": {"url":"https://example.com"}
        }
      }'
  • scoretool

    Look up the latest scan summary for a scan id or URL.

    arguments

    • scan_idstring (uuid)
    • urlstring
    curl -X POST https://www.aeo-pro.app/api/mcp \
      -H "Authorization: Bearer aeopro_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
      -H "Content-Type: application/json" \
      -d '{
        "jsonrpc": "2.0",
        "id": 2,
        "method": "tools/call",
        "params": {
          "name": "score",
          "arguments": {"url":"https://example.com"}
        }
      }'
  • fixtool

    List actionable fix recommendations for a scan.

    arguments

    • scan_idstring (required)
    curl -X POST https://www.aeo-pro.app/api/mcp \
      -H "Authorization: Bearer aeopro_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
      -H "Content-Type: application/json" \
      -d '{
        "jsonrpc": "2.0",
        "id": 2,
        "method": "tools/call",
        "params": {
          "name": "fix",
          "arguments": {"scan_id":"00000000-0000-0000-0000-000000000000"}
        }
      }'
  • generatetool

    Output ready-to-paste meta tags + JSON-LD Organization schema.

    arguments

    • urlstring (required)
    • brand_namestring
    curl -X POST https://www.aeo-pro.app/api/mcp \
      -H "Authorization: Bearer aeopro_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
      -H "Content-Type: application/json" \
      -d '{
        "jsonrpc": "2.0",
        "id": 2,
        "method": "tools/call",
        "params": {
          "name": "generate",
          "arguments": {"url":"https://example.com","brand_name":"Example"}
        }
      }'

Claude Desktop config

Add this to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or the equivalent on Windows / Linux. Re-launch Claude Desktop after saving.

{
  "mcpServers": {
    "aeo-pro": {
      "url": "https://www.aeo-pro.app/api/mcp",
      "transport": "sse",
      "headers": {
        "Authorization": "Bearer aeopro_xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

JSON-RPC error codes

-32700  Parse error          (invalid JSON body)
-32600  Invalid Request      (missing/malformed jsonrpc field)
-32601  Method not found
-32000  Tool execution failed
-32001  API key required     (HTTP 401)
-32002  Rate limited         (HTTP 429)

also available

REST API

5 endpoints (scan / scan/:id / sites / keywords / citations), same auth, paginated envelope. See /docs/api.