MCP · Flask · SQLite FTS5
RFCs, meet AI.
Query the IETF standards corpus through natural language — no scraping, no parsing, just ask.
# Point any MCP client to:
https://rfc-mcp.connorw600.dev/mcp
# Try it with curl:
curl https://rfc-mcp.connorw600.dev/api/v1/rfcs/9000
Why rfc-mcp
Query the IETF standards corpus through AI — no setup required
A public instance runs at https://rfc-mcp.connorw600.dev/ — free to use, no registration. Or run your own.
🧩
MCP protocol native
Exposes the corpus as tools and prompts to AI agents over Streamable HTTP (/mcp). Works with opencode, Claude, Cline, Cursor, VS Code, Continue.dev, Zed, and 30+ other MCP clients.
🔍
Semantic + FTS5 search
Full-text search over whole RFCs and individual sections via SQLite FTS5. Section-level queries bounded by reliable <section> markup or best-effort heuristics.
🗄️
Per-section lookup
Each RFC is split into sections — structured (from xml2rfc markup) or heuristic (pattern-matched from plain text). Drill into section_id like "2.1" or "A".
🔗
Relation graph
Every RFC carries its relations: obsoletes, obsoleted-by, updates, updated-by, see-also. Trace the standards lineage through the API or MCP tools.
📦
Single container
One uvicorn process, one port. Flask API and MCP server in the same process. Docker image built with Gitea CI/CD. Self-host in minutes.
⏰
Auto-synced corpus
Daily rsync from rfc-editor.org. Container starts immediately; data syncs and reindexes in the background. No manual refresh.
Quickstart
Query the API with curl
Configure your MCP client
{
"mcpServers": {
"rfc-mcp": {
"type": "streamable-http",
"url": "https://rfc-mcp.connorw600.dev/mcp"
}
}
}
See Agent Configuration for client-specific setup guides.