Website Spec

MCP server

Connect any Model Context Protocol–aware agent and query the whole spec — by keyword, by category, by status, or page by page. Read-only. No authentication.

Endpoint

Streamable HTTP MCP, 2025-03-26 protocol revision. Stateless. Wide-open CORS. No authentication.

https://mcp.specification.website/mcp

Server card: /.well-known/mcp/server-card.json. Landing page: mcp.specification.website/.

Tools

ToolWhat it returns
search(query, limit?)Ranked spec pages with title, status, category, URL, and body excerpts.
list_topics({ category?, status?, limit? })Filtered index — slug, title, status, summary, URL.
get_topic({ slug })Full canonical Markdown for one page — frontmatter, sources, body.
get_checklist({ category?, status? })Tickable Markdown checklist grouped by category.
get_categories()The ten top-level categories with topic counts.

Prompts

PromptWhat it generates
audit_url(url, focus?)An audit plan for a target URL against required spec items, optionally narrowed to a category (e.g. security).

Connect from Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows) and add:

{
  "mcpServers": {
    "specification-website": {
      "transport": "http",
      "url": "https://mcp.specification.website/mcp"
    }
  }
}

Restart Claude Desktop; the tools appear under the connector menu.

Other MCP clients

Any client that speaks Streamable HTTP MCP (2025-03-26 revision) connects with one URL. There is no client SDK to install and no token to manage. MCP Inspector is the fastest way to poke at the schema.

Quick example — raw JSON-RPC

curl -sX POST https://mcp.specification.website/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search","arguments":{"query":"CSP","limit":3}}}'

Design notes

  • Single source of truth. Both this site and the MCP server build from the same Markdown files in src/content/spec/. The Worker bundles a JSON manifest at build time so there is no runtime parsing and no drift.
  • Stateless. No sessions, no SSE. Every request is independent.
  • No auth, no PII. Public read-only data; no cookies; no logs that identify individual callers beyond Cloudflare's standard request metadata.
  • It is itself a worked example of the MCP and tool discovery spec page. Source under mcp/ in the repo (~600 lines of TypeScript).

Discoverability surfaces

Search
esc close navigate open