Maintain a local, queryable corpus of an IETF effort's public record — a Working Group, an IRTF Research Group, a mailing list, or a set of drafts. It pulls together charter, drafts, RFCs, meeting agendas, minutes, slides, transcripts, attendance, mailing list archives, and GitHub issues for use with LLM-based tools.
A working group's history is spread across mailing list archives, Datatracker, GitHub, and meeting materials — too much to hold in your head, and too scattered to search well by hand. With the record gathered into one queryable corpus, an LLM can help you:
- Get up to date with the state of discussions — what's open, what was recently decided, where a debate currently stands.
- Summarise the arguments already made about an issue — every distinct position on a topic, who holds it, and how the chairs ruled.
- Formulate a new proposal — surface the objections raised against similar ideas before, so you can anticipate them.
- Fact-check assertions about what's happened so far — grounded in the actual list traffic and chair statements, not someone's recollection.
Tip: for an IRTF Research Group, pass its shortname (e.g.
cfrg,hrpc,pearg) wherever the docs use<name>— it works the same as a WG.
There are three supported workflows:
- Use it as an MCP server — register it with Claude, Codex, Cursor, Gemini, Zed,
etc. and ask questions across any corpus you've gathered. Two ways to run it:
- Local MCP — one server subprocess per client, on your own machine. <-- Best starting point
- As a shared HTTP MCP server — one process serving many concurrent clients (hosted).
- Use it from the CLI — run
semantic search over the cache directly with
ietf-llm-search, no LLM client required.
See the workflow documentation linked above for installation and use instructions, or the full documentation listing.
All three read a corpus you first gather with ietf-llm <corpus>.
Heads up — gathering reaches the network by default. To make a first gather fast,
ietf-llmpulls a prebuilt snapshot of covered corpora from the public seed store atseed-store.mnot.net(andlist_corporalooks its catalog up there), then freshens only the delta — skipping most of the embedding and download cost. To turn this off:ietf-llm <corpus> --no-seed(it persists across gathers; re-enable with--seed), or setIETF_LLM_SEED_ENABLED=off(orIETF_LLM_SEED_URL=off) in your environment. With seeding off, gathers run fully cold and offline. It is best-effort either way — an unreachable or unlisted corpus just gathers from scratch.