rfcxml-mcp
A Model Context Protocol (MCP) server for structured understanding of RFC documents.
Install / Use
claude mcp add shuji-bonji -- npx -y github:shuji-bonji/rfcxml-mcpIf the server publishes to npm under a different name, use that package instead โ check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Content & MediaSupported Platforms
Tags
Our assessment of rfcxml-mcp
rfcxml-mcp scores 80/100 on our quality scale, 1044th of 1,178 Content & Media skills we index.
Its MCP Server is 17 KB long, well organised into 44 sections with 19 code examples: a thorough specification that gives an agent plenty to work with.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 36 days ago, so rfcxml-mcp is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 87/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit โ read the skill file before letting an agent act on it.
rfcxml-mcp compared with similar skills
All 4 of these similar skills score higher than rfcxml-mcp; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| rfcxml-mcp (this skill)by shuji-bonji | 80 | 3 | 36d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 96.5k | 4d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 75.1k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.4k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 87.0k | today | MCP Server |
Frequently asked questions
- How do I install rfcxml-mcp?
- Run
claude mcp add shuji-bonji -- npx -y github:shuji-bonji/rfcxml-mcp. The install tabs above show the steps for each supported agent. - Which AI agents does rfcxml-mcp work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is rfcxml-mcp safe to use?
- It is MIT-licensed and scores 87/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is rfcxml-mcp still maintained?
- The repository was last updated 36 days ago, so rfcxml-mcp is actively maintained.
Skill content
View source on GitHubRFCXML MCP Server
ๆฅๆฌ่ช็ README ยท Documentation
A Model Context Protocol (MCP) server for structured understanding of RFC documents.
Purpose
Unlike existing text-based RFC MCP servers, this server leverages the semantic structure of RFCXML to enable:
- Normative requirements extraction (MUST/SHOULD/MAY) with structured output
- RFC dependency graph construction
- Definition scope management
- Implementation checklist generation
Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Markdown / PDF โ Display & Sharing
โโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Translation โ Explanation & Verification
โโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ RFCXML MCP โ Common Understanding for AI & Humans
โโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ RFCXML โ Single Source of Truth
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
Comparison with Existing MCPs
| Feature | Existing mcp-rfc | RFCXML MCP | | ------------------------------- | ---------------- | -------------------- | | RFC text retrieval | โ | โ | | Section extraction | โ (text-based) | โ (structure-based) | | MUST/SHOULD/MAY extraction | โ | โ | | Condition/exception structuring | โ | โ | | RFC dependency graph | โ | โ | | Definition scope management | โ | โ | | Implementation checklist | โ | โ |
Quick Start
Using with Claude Desktop / Claude Code
Add the following to your MCP configuration file:
{
"mcpServers": {
"rfcxml": {
"command": "npx",
"args": ["-y", "@shuji-bonji/rfcxml-mcp"]
}
}
}
To pin a version (0.6.x ships patch releases frequently), write the version into the package spec:
{
"mcpServers": {
"rfcxml": {
"command": "npx",
"args": ["-y", "@shuji-bonji/rfcxml-mcp@0.6.53"]
}
}
}
To keep fetched RFCs on disk across restarts, pass RFCXML_CACHE_DIR (see Disk cache and rfcxml-prefetch):
{
"mcpServers": {
"rfcxml": {
"command": "npx",
"args": ["-y", "@shuji-bonji/rfcxml-mcp@0.6.53"],
"env": { "RFCXML_CACHE_DIR": "/home/you/.cache/rfcxml-mcp" }
}
}
}
Configuration file locations:
- Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.json - Claude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.json - Claude Code (project scope):
.mcp.jsonat the project root - Claude Code (user scope):
~/.claude.json - Claude Code (CLI):
claude mcp add rfcxml -- npx -y @shuji-bonji/rfcxml-mcp
Installation (Optional)
For global installation:
npm install -g @shuji-bonji/rfcxml-mcp
Then configure MCP:
{
"mcpServers": {
"rfcxml": {
"command": "rfcxml-mcp"
}
}
}
Available Tools
Phase 1: Basic Structure
get_rfc_structure- Get section hierarchy and metadataget_requirements- Extract normative requirements (MUST/SHOULD/MAY) with structureget_definitions- Get term definitions and their scope
Phase 2: Relationships
get_rfc_dependencies- Get referenced RFCs (normative/informative)get_related_sections- Get related sections within the same RFC
Phase 3: Verification Support
validate_statement- Find the RFC requirements that bear on a statement and report detected contradictions. This is not a conformance judgment:isValidis three-valued (null= nothing matched strongly enough to judge,false= a contradiction was detected,true= no contradiction was detected among the matches). The verdict is yours.generate_checklist- Generate implementation checklist
Legacy RFC Support
RFCs published after RFC 8650 (December 2019) are available in official RFCXML v3 format. Earlier RFCs may not have XML available.
This server includes automatic fallback functionality - when XML is unavailable, it parses the text format instead.
Source Information
All responses include source information:
{
"rfc": 6455,
"sections": [...],
"_source": "text",
"_sourceNote": "Warning: Parsed from text format. Accuracy may be limited."
}
| _source | Description |
| --------- | ---------------------------------- |
| xml | Parsed from RFCXML (high accuracy) |
| text | Parsed from text (medium accuracy) |
Compatibility
| RFC | Format | Notes | | --------------- | ------ | -------------------------- | | RFC 8650+ | XML | Official RFCXML v3 support | | Before RFC 8650 | Text | Automatic fallback |
Output Samples
Every sample below is trimmed from the actual output of the current build (npm run build, then the listed tool call through an MCP client). Field names and values are verbatim; long arrays are cut with ....
get_rfc_structure - Get RFC Structure
get_rfc_structure { "rfc": 9293 }
{
"metadata": {
"title": "Transmission Control Protocol (TCP)",
"docName": "draft-ietf-tcpm-rfc793bis-28",
"number": 9293,
"date": "2022-08",
"category": "std",
"stream": "IETF",
"abstract": "This document specifies the Transmission Control Protocol (TCP). ..."
},
"sections": [
{ "number": "1", "title": "Purpose and Scope" },
{ "number": "2", "title": "Introduction" },
{
"number": "3",
"title": "Functional Specification",
"subsections": [
{ "number": "3.1", "title": "Header Format" },
{
"number": "3.5",
"title": "Establishing a Connection",
"subsections": [
{ "number": "3.5.1", "title": "Half-Open Connections and Other Anomalies" },
{ "number": "3.5.2", "title": "Reset Generation" },
{ "number": "3.5.3", "title": "Reset Processing" }
]
}
]
}
],
"referenceCount": { "normative": 15, "informative": 85 },
"_source": "xml"
}
number is the section number as printed in the RFC (3.5, A.2), not the RFCXML pn (section-3.5). category / stream / abstract come from the IETF Datatracker API and are omitted when the API is unreachable or reports a value outside the mapping (e.g. RFC 1 is unkn / legacy); in that case _sourceNote says so.
get_requirements - Extract Normative Requirements
get_requirements { "rfc": 9293, "level": "MUST" }
{
"rfc": 9293,
"filter": { "section": "all", "level": "MUST" },
"stats": { "total": 55, "byLevel": { "MUST": 55 } },
"requirements": [
{
"id": "R-3.5-1",
"level": "MUST",
"text": "A TCP implementation MUST support simultaneous open attempts (MUST-10).",
"section": "3.5",
"sectionTitle": "Establishing a Connection",
"fullContext": "A TCP implementation MUST support simultaneous open attempts (MUST-10).",
"subject": "tcp implementation",
"action": "support simultaneous open attempts (MUST-10)"
},
{
"id": "R-3.7.1-1",
"level": "MUST",
"text": "TCP endpoints MUST implement both sending and receiving the MSS Option (MUST-14).",
"section": "3.7.1",
"sectionTitle": "Maximum Segment Size Option",
"fullContext": "TCP endpoints MUST implement both sending and receiving the MSS Option (MUST-14).",
"subject": "tcp endpoints",
"action": "implement both sending and receiving the MSS Option (MUST-14)"
}
],
"_source": "xml"
}
id is R-<section>-<n> with n numbered per section, so the identifier stays stable when requirements are added elsewhere in the document.
get_rfc_dependencies - Get RFC Dependencies
get_rfc_dependencies { "rfc": 9293 }
{
"rfc": 9293,
"normative": [
{ "rfcNumber": 791, "title": "Internet Protocol", "anchor": "RFC0791" },
{ "rfcNumber": 1191, "title": "Path MTU discovery", "anchor": "RFC1191" },
{
"rfcNumber": 2119,
"title": "Key words for use in RFCs to Indicate Requirement Levels",
"anchor": "RFC2119"
}
],
"informative": [
{ "rfcNumber": 793, "title": "Transmission Control Protocol", "anchor": "RFC0793" },
{ "rfcNumber": 896, "title": "Congestion Control in IP/TCP Internetworks", "anchor": "RFC0896" }
],
"_source": "xml",
"_referencesSource": "xml"
}
_referencesSource tells where the reference list came from: xml (RFCXML <references>), text (the References section of the plain text), or api (Datatracker relateddocument, with placeholder titles).
generate_checklist - Generate Implementation Checklist
generate_checklist { "rfc": 9293, "role": "client", "sections": ["3.5", "3.7.1"] } โ the markdown field:
# RFC 9293 Implementation Checklist
**Transmission Control Protocol (TCP)**
Role: client
Generated: 2026-09-04T17:09:37.833Z
## Mandatory Requirements (MUST / REQUIRED / SHALL)
- [ ] **MUST** A TCP implementation MUST support simultaneous open attempts (MUST-10). (ยง3.5)
- [ ] **MUST** TCP endpoints MUST implement both sending and receiving the MSS Option (MUST-14). (ยง3.7.1)
- [ ] **MUST** If an MSS Option is not received at connection setup, TCP implementations MUST assume a default send MSS of 536 (576 - 40) for IPv4 or 1220 (1280 - 60) for IPv6 (MUST-15). (ยง3.7.1)
## Recommended Requirements (SHOULD / RECOMMENDED)
- [ ] **SHOULD** TCP implementations SHOULD allow a received RST segment to include data (SHLD-2). (ยง3.5.3)
The same call also returns "stats": { "must": 6, "should": 2, "may": 1, "total": 9 }.
validate_statement - Find Bearing Requirements
validate_statement { "rfc": 6455, "statement": "The client MUST mask all frames sent to the server." }
{
"rfc": 6455,
"statement": "The client MUST mask all frames sent to the server.",
"analysis": { "detectedLevel": "MUST", "detectedSubject": "client" },
"isValid": true,
"matchingRequirements": [
{
"id": "R-5.3-2",
"level": "MUST",
"text": "When preparing a masked frame, the client MUST pick a fresh masking key from the set of allowed 32-bit values.",
"section": "5.3",
"sectionTitle": "Client-to-Server Masking",
"_matchScore": 17,
"_matchedKeywords": ["client", "mask", "frames"],
"_subjectMatch": true,
"_levelMatch": true
}
],
"conflicts": [],
"_source": "text",
"_sourceNote": "Warning: Parsed from text format. Validation accuracy may be limited."
}
isValid: true means only that no contradiction was detected among the matched requirements. When nothing matches strongly enough, isValid is null and _verdictNote explains why.
Text Fallback Output (Legacy RFCs)
get_rfc_structure { "rfc": 6455 } โ RFC 6455 predates RFCXML v3, so the plain text is parsed:
{
"metadata": {
"title": "The WebSocket Protocol",
"number": 6455,
"date": "2011-12",
"category": "std",
"stream": "IETF",
"abstract": "The WebSocket Pr
Truncated for display โ read the full file on GitHub.
Related Skills
Agent-Reach
96.5kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu โ one CLI, zero API fees.
headroom
75.1kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.4kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
87.0k๐ท๏ธ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit โ see the Safety scan above for what the skill file itself contains.
