{
    "name": "Todd O'Rourke SEO Tools",
    "description": "MCP server exposing keyword density analysis, Google SERP preview, an AI crawler access checker, an Agentic Resource Discovery (ARD) checker, and an Open Knowledge Format (OKF) discover/convert pair.",
    "version": "1.2.0",
    "url": "https://toddmorourke.com/wp-json/ard/v1/mcp",
    "transport": "streamable-http",
    "protocolVersion": "2025-06-18",
    "capabilities": {
        "tools": {}
    },
    "tools": [
        {
            "name": "keyword_density",
            "description": "Analyze keyword and phrase density of an article. Returns total word count, per-keyword counts and density %, and the top stop-word-free 1/2/3-word phrases."
        },
        {
            "name": "serp_preview",
            "description": "Fetch a public URL and return its Google SERP-relevant metadata: title tag, meta description, favicon, site name and breadcrumb path."
        },
        {
            "name": "ard_check",
            "description": "Check a domain's Agentic Resource Discovery (ARD) implementation. Fetches its /.well-known/ai-catalog.json, validates it against the official ai-catalog JSON Schema (Draft 2020-12), confirms the four discovery signals (well-known file, robots Agentmap, Link header, head <link>), and runs a per-user-agent crawler-reachability (WAF) probe. Returns a score, letter grade, and per-check pass/fail with details."
        },
        {
            "name": "crawler_access",
            "description": "Check whether AI crawlers can actually read a domain. Runs four probes from this server: live per-user-agent reachability for GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot and PerplexityBot (with real-browser, Googlebot and unknown-bot controls to tell a user-agent block from an IP/blanket block); a robots.txt Allow/Disallow verdict bot-by-bot; a response-speed read (the 499 live-fetcher-timeout risk) plus a CDN/WAF fingerprint; and a per-IP burst test. Returns a score, letter grade, and each section's findings. Detects user-agent-based blocks (the common WAF/CDN failure), not IP-reputation blocks that would only affect a crawler on another network."
        },
        {
            "name": "okf_discover",
            "description": "List the crawlable page URLs for a domain by reading its XML sitemap (robots.txt Sitemap directive, then common locations, expanding sitemap indexes). Same-host pages only; capped at 100. Returns the host, the URL list, and the true total found. Pair with okf_convert to build an Open Knowledge Format (OKF) bundle."
        },
        {
            "name": "okf_convert",
            "description": "Fetch one public page and return it as an Open Knowledge Format (OKF) concept file: YAML frontmatter (type, title, description, resource, timestamp) followed by the page's main content converted to clean markdown (navigation, scripts, and layout stripped). Returns the suggested filename, slug, and the markdown. Enumerate URLs with okf_discover first."
        }
    ]
}
