Skip to content

Data Sync

Source

RFC data is mirrored from rfc-editor.org via rsync:

rsync -avz --delete \
  rsync.rfc-editor.org::rfc-index/rfc-json.tar.gz \
  rsync.rfc-editor.org::rfc-index/rfc-text.tar.gz \
  rsync.rfc-editor.org::rfc-index/rfc-html.tar.gz \
  data/

Incremental reindex

scripts/ingest.sh performs an incremental reindex — only changed RFCs are reparsed. This is fast (~seconds) on subsequent runs after the initial full build.

Schedule

Inside the container, scripts/entrypoint.sh runs a background loop:

  1. Sync data from rfc-editor (immediately on first boot)
  2. Run python -m rfc_mcp.ingest (incremental)
  3. Sleep RFC_SYNC_INTERVAL seconds (default 24h)
  4. Repeat

The server starts immediately; the health endpoint reports "starting" until the index is ready.

Manual sync outside Docker

scripts/sync_data.sh
scripts/ingest.sh           # incremental
scripts/ingest.sh --full    # force full rebuild

Section parsing tiers

Each RFC's sections come from one of two sources:

Tier Source Reliability
structured xml2rfc HTML with <section id> markup High (last ~10 years)
heuristic Pattern-matched from plain text Best-effort (older RFCs)
null No sections could be determined