Skip to main content

MCP server for looking up IETF RFCs, with obsolescence warnings and section-level reads

Project description

mcp-server-rfc

An MCP server for looking up IETF RFCs.

{
  "mcpServers": {
    "rfc": {
      "command": "uvx",
      "args": ["mcp-server-rfc"]
    }
  }
}

No clone, no virtualenv, no path. That is the whole installation. Your client spawns the server on your machine and talks to it over stdin and stdout.

A client showing the server as connected has not necessarily used it, and a model will happily answer an RFC question from memory instead. On Claude Desktop the per-server log records only the handshake, so it cannot tell you either way — docs/desktop-verification.md says where the evidence actually is.

Tools

Tool What it does
search_rfcs Search titles, or the full text of every RFC if a mirror has been synced
list_sections An RFC's headings with line numbers — the cheap first call
get_rfc Read one section, or a line range

get_rfc refuses an unscoped read of an RFC over 1500 lines, and an uncapped read of a section over 1000, answering with its size and a pointer to list_sections rather than filling the context with a specification the model had one question about. list_sections reports each section's length so the choice can be made before the read, max_lines caps any read including a section, and full=true overrides both guards.

Every response carries a banner with the RFC's status and, when it applies, a warning that it has been superseded:

RFC 2616 — Hypertext Transfer Protocol -- HTTP/1.1  [DRAFT STANDARD]
!! OBSOLETED BY: RFC 7230, 7231, 7232, 7233, 7234, 7235

That warning is the reason to use this rather than let a model fetch rfc-editor.org itself. Models cite dead specifications with great confidence.

Full-text search

Works with no setup, fetching documents on demand. Full-text search additionally requires a local mirror, which the user creates from a shell:

uvx mcp-server-rfc sync

The same command that runs the server runs its CLI: sync downloads the corpus, status reports what is present, and uvx mcp-server-rfc <command> --help covers the rest. It is also the command the server names in the error you get when full-text search is asked for without a mirror.

512 MB, a few minutes, entirely optional. The server deliberately does not expose a sync tool: half a gigabyte pulled from a volunteer-run mirror should be a person's decision, not a model's.

If a mirror already exists — synced for the companion skill, say — this server picks it up automatically. Set $RFC_MIRROR to point at a non-default location.

HTTP mode

The config above is the stdio transport, which needs a client that can spawn a process on your machine. A session running in the cloud — claude.ai on the web, Cowork — cannot, and no configuration fixes that. For those, the server has to be deployed somewhere they can reach:

mcp-server-rfc --transport http --host 0.0.0.0 --port 8080

RFC_TRANSPORT, HOST and PORT are read from the environment too. The repository carries a Dockerfile and a fly.toml that do this. No public instance of this server exists and none is planned — if you want one, you host it, and you should put authentication in front of it, since the server has none and would otherwise be an open proxy to a volunteer-run mirror.

Full-text search is the one thing that does not survive: it reads a local 512 MB corpus, so a hosted instance returns an error saying so instead of silently answering a title search. The obsolescence banner, section reads and the unscoped-read guard all work, because they need only the 2 MB index.

If your client has a shell

Use the skill instead — Claude Code, Codex CLI, OpenClaw, Cursor and Zed all qualify. It does the same things with fewer moving parts and gives the agent ripgrep over the corpus:

npx skills add shbernal/rfc-ai-tooling      # from the repo, into .claude/skills/
clawhub install @shbernal/rfc-lookup        # or the last released version

This server is for clients that give the model no shell of its own. Claude Desktop is the clearest case: its chat cannot run a command on your machine, but it will spawn this server there.

Source, issues and the skill: https://github.com/shbernal/rfc-ai-tooling

MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_rfc-0.2.2.tar.gz (24.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_rfc-0.2.2-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_rfc-0.2.2.tar.gz.

File metadata

  • Download URL: mcp_server_rfc-0.2.2.tar.gz
  • Upload date:
  • Size: 24.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mcp_server_rfc-0.2.2.tar.gz
Algorithm Hash digest
SHA256 39e0dad1701246add8b499a4639f2d6f862d965cf3568cebaaa2be958ce89927
MD5 62bdc6053f8c360a9b29361719cab698
BLAKE2b-256 bf0eccb735d5380f3ff2bd6bceec32324db5200dd73dc8b9b598c130d1408608

See more details on using hashes here.

File details

Details for the file mcp_server_rfc-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: mcp_server_rfc-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 22.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mcp_server_rfc-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2a5b938cf050db3cffb8198af8129f9db1aff81a54b23522c33910d0b2a1faf2
MD5 2389f6461a13defea254a2550089976c
BLAKE2b-256 e7d9ce22719100938855dde51ef7423768f66579a6b8d6c8ed54adf7189e038d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page