Skip to content

MCP Protocol

rfc-mcp exposes the Model Context Protocol on two transports, both served on port 8000.

Hosted instance: https://rfc-mcp.connorw600.dev/mcp (Streamable HTTP) — free to use, no registration.

Transports

POST https://rfc-mcp.connorw600.dev/mcp
Content-Type: application/json

Or locally:

POST http://localhost:8000/mcp
Content-Type: application/json

The current standard. Most MCP clients (opencode, etc.) prefer this.

SSE (legacy)

GET https://rfc-mcp.connorw600.dev/sse
POST https://rfc-mcp.connorw600.dev/messages

Or locally:

GET http://localhost:8000/sse
POST http://localhost:8000/messages

The original SSE-based transport. Kept for clients that don't yet support Streamable HTTP.

Tools

Tool Description Input
get_rfc RFC metadata + relations number: int
get_rfc_text Full plain-text body number: int, max_chars?: int
get_rfc_sections List of section headers number: int
get_rfc_section One section's content number: int, section_id: str
search_rfcs Full-text across docs query: str, status?: str, limit?: int, offset?: int
search_rfc_sections Full-text across sections query: str, number?: int, limit?: int
list_relations Relation links for an RFC number: int
list_rfcs Filter/paginate RFCs status?: str, keyword?: str, author?: str, since?: str, until?: str, limit?: int, offset?: int

Prompts

Prompt Description Arguments
summarize_rfc Structured summary number: int
compare_rfcs Side-by-side comparison a: int, b: int
check_deprecation Status check number: int

Connection example

// Request to /mcp (hosted)
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_rfc",
    "arguments": { "number": 9000 }
  }
}