This server wraps the rfc-editor Python library to let you manipulate RFC documents directly through MCP tools. You get session-based editing so you can download an RFC by ID, modify its title, abstract, authors, and sections, then save it back to TXT format without passing the full document around between calls. The workflow is straightforward: load or create a document to get a session ID, then use that ID to list sections, add new ones, update content, or set metadata like copyright notices. Reach for this when you need to programmatically edit RFC documents as part of a larger workflow, whether you're updating existing RFCs or drafting new ones from scratch.
mcp-name: io.github.daedalus/mcp-rfc-editor
An MCP (Model Context Protocol) server for editing RFC TXT documents using the rfc-editor Python library.
pip install mcp-rfc-editor
python -m mcp_rfc_editor
from mcp_rfc_editor import main
main()
The server exposes the following tools:
load_rfc - Load and parse an RFC TXT file (creates session)download_rfc - Download an RFC from rfc-editor by ID (creates session)create_rfc - Create a new empty RFC document (creates session)get_document - Get the current document from session contextsave_rfc - Save an RFC document to TXT formatset_title - Set the document titleset_abstract - Set the document abstractadd_section - Add a new sectionupdate_section - Update an existing sectiondelete_section - Delete a sectionlist_sections - List all sections in the documentset_copyright - Set copyright noticeset_authors - Set document authorsto_dict - Convert document to dictionaryThe server maintains session context so you don't need to pass the full document object on every call:
# 1. Download an RFC - returns Session ID
result = download_rfc(rfc_id="791")
# Returns: {document..., "Session ID": "abc-123"}
# 2. Use session ID to get title (no document needed)
get_title(session_id="abc-123")
# 3. Modify and changes are persisted
set_title(session_id="abc-123", title="New Title")
Alternatively, you can always pass the full document object directly (legacy mode).
pip install -e ".[dev]"
pytest tests/
black src/ tests/
ruff check src/ tests/