An LLM-callable
IETF corpus.

Structured metadata for every IETF RFC and every active Internet-Draft, the updates / obsoletes / replaces graph, and a growing layer of LLM-extracted normative requirements and protocol elements. Exposed over MCP so any agent can compose a corpus query without re-reading the spec series.

An open dataset from Lantern, built from the RFC Editor index and the IETF Datatracker.

9768published RFCs
2509active drafts
4647documents w/ elements
110530elements extracted

Featured

Use it from a Claude Code session

go install github.com/getlantern/ietf-corpus/cmd/ietf-mcp@latest
git clone https://github.com/getlantern/ietf-corpus ~/code/ietf-corpus

claude mcp add -s user ietf-corpus \
  $(go env GOPATH)/bin/ietf-mcp -- --corpus $HOME/code/ietf-corpus

Six tools exposed over MCP, designed for code-mode composition: search_documents, get_document, get_documents (batch), find_related, search_elements, and list_taxonomy.

Top working groups

  • non working group909
  • mpls196
  • avt115
  • idr115
  • ccamp112
  • dhc108
  • tsvwg92
  • v6ops89
  • dnsop82
  • pce75
  • pppext75
  • sip75

By status

  • PROPOSED STANDARD4378
  • INFORMATIONAL2995
  • UNKNOWN887
  • EXPERIMENTAL554
  • HISTORIC353
  • BEST CURRENT PRACTICE331

What you can do with it

Questions

What is the IETF corpus?

The IETF corpus (ietf-corpus) is a structured, LLM-callable index of every IETF RFC and every active Internet-Draft, from Lantern. Each document is a YAML record with its metadata (title, authors, date, stream, area, working group and status) and its updates, obsoletes and replaces links. A growing number also carry LLM-extracted normative requirements and protocol elements. It currently holds 9,768 RFCs and 2,509 Internet-Drafts, and an MCP server lets any AI agent query it.

Who makes the IETF corpus?

Lantern, which also makes a free censorship-circumvention app of the same name. The corpus is general-purpose: it has no Lantern-specific tags or relevance scoring, only IETF metadata plus topic tags anyone can extend. The code and data are on GitHub.

How do I use the IETF corpus from Claude Code or another MCP client?

Install the ietf-mcp server with go install github.com/getlantern/ietf-corpus/cmd/ietf-mcp@latest, clone the repository, and register the server with your client. In Claude Code that's claude mcp add -s user ietf-corpus $(go env GOPATH)/bin/ietf-mcp -- --corpus $HOME/code/ietf-corpus. The server reads the YAML records from your clone.

What tools does the IETF corpus MCP server provide?

Six: search_documents (free-text and filtered search, cursor-paginated), get_document and get_documents (fetch one or a batch of records by id), find_related (follow obsoletes, updates, replaces and the draft-to-RFC links), search_elements (search the extracted requirements and protocol elements) and list_taxonomy (the controlled vocabularies). They're small and composable, so they work well with code-mode agents.

How is it different from rfc-editor.org and the IETF Datatracker?

Those are the authoritative sources, and the corpus is built from them: RFC records come from the RFC Editor's rfc-index.xml, and draft records from the Datatracker API. The corpus doesn't host the documents. It puts their metadata, the relationship graph and the extracted elements in one uniform schema, with tools an LLM can call, and links every record back to its canonical page.

Does the IETF corpus include the full text of RFCs?

No. It's a research index, not a document host, and doesn't redistribute the documents. Each record points at the canonical copy on rfc-editor.org or datatracker.ietf.org.

What are extracted elements?

Short structured records an LLM pulls out of an RFC's text, each tied to a section: normative requirements with their RFC 2119 level (MUST, SHOULD, MAY), protocol elements, wire formats, state machines, IANA registries, security and privacy considerations, interoperability notes and design rationale. They're extracted with Claude, mostly from standards-track RFCs. So far there are 110,530 elements across 4,647 documents, and drafts don't have them yet.

Which Internet-Drafts are included?

Only drafts that were active as of the last crawl. When the crawler syncs, it removes drafts that have expired, been replaced or been published as an RFC. Drafts are identified by their base name without the revision number, such as draft-ietf-tls-esni, and RFCs as rfc- plus the number, such as rfc-9000.

Can I ask the IETF corpus questions in plain English?

Yes. The ask page answers a natural-language question with Claude, using requirements and documents found in the corpus, and cites the RFCs and sections it relied on. It's rate-limited per IP address. For heavier use, connect the MCP server to your own agent.

Can I browse the corpus without an AI agent?

Yes. The browse page filters every document by title, id, working group, area, status and type in your browser. Each RFC and draft has its own page with its metadata, abstract, related documents and any extracted elements, and the taxonomy page lists the controlled vocabularies.

What license is the IETF corpus under?

The schema, taxonomy and document records are released under CC0, into the public domain. The project README says LLM-extracted elements are CC-BY-4.0, with attribution to the source RFC or draft. The RFCs and drafts themselves remain under the IETF Trust Legal Provisions.

Can I run the IETF corpus tools myself?

Yes. The code is in the repository, and the command-line tools are written in Go: go run ./cmd/ietf-crawl --corpus . refreshes the RFC and draft records, ietf-mcp serves them over MCP, and go run ./cmd/ietf-site --corpus . --out dist renders this website.