rfcxml-mcp
Servidor MCP RFCXML
Un servidor del Protocolo de Contexto de Modelo (MCP) para la comprensión estructurada de documentos RFC.
Propósito
A diferencia de los servidores MCP de RFC basados en texto existentes, este servidor aprovecha la estructura semántica de RFCXML para permitir:
Extracción de requisitos normativos (MUST/SHOULD/MAY) con salida estructurada
Construcción de grafos de dependencia de RFC
Gestión del alcance de definiciones
Generación de listas de verificación de implementación
Related MCP server: Unstructured Document Processor MCP
Arquitectura
┌─────────────────────────┐
│ Markdown / PDF │ Display & Sharing
├─────────────────────────┤
│ Translation │ Explanation & Verification
├─────────────────────────┤
│ RFCXML MCP │ Common Understanding for AI & Humans
├─────────────────────────┤
│ RFCXML │ Single Source of Truth
└─────────────────────────┘Comparación con MCP existentes
Característica | mcp-rfc existente | RFCXML MCP |
Recuperación de texto RFC | ✅ | ✅ |
Extracción de secciones | ✅ (basado en texto) | ✅ (basado en estructura) |
Extracción de MUST/SHOULD/MAY | ❌ | ✅ |
Estructuración de condiciones/excepciones | ❌ | ✅ |
Grafo de dependencia de RFC | ❌ | ✅ |
Gestión del alcance de definiciones | ❌ | ✅ |
Lista de verificación de implementación | ❌ | ✅ |
Inicio rápido
Uso con Claude Desktop / Claude Code
Añada lo siguiente a su archivo de configuración de MCP:
{
"mcpServers": {
"rfcxml": {
"command": "npx",
"args": ["-y", "@shuji-bonji/rfcxml-mcp"]
}
}
}Ubicaciones del archivo de configuración:
Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.jsonClaude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.jsonClaude Code (alcance del proyecto):
.mcp.jsonen la raíz del proyectoClaude Code (alcance del usuario):
~/.claude.jsonClaude Code (CLI):
claude mcp add rfcxml -- npx -y @shuji-bonji/rfcxml-mcp
Instalación (Opcional)
Para una instalación global:
npm install -g @shuji-bonji/rfcxml-mcpLuego configure MCP:
{
"mcpServers": {
"rfcxml": {
"command": "rfcxml-mcp"
}
}
}Herramientas disponibles
Fase 1: Estructura básica
get_rfc_structure- Obtener jerarquía de secciones y metadatosget_requirements- Extraer requisitos normativos (MUST/SHOULD/MAY) con estructuraget_definitions- Obtener definiciones de términos y su alcance
Fase 2: Relaciones
get_rfc_dependencies- Obtener RFCs referenciados (normativos/informativos)get_related_sections- Obtener secciones relacionadas dentro del mismo RFC
Fase 3: Soporte de verificación
validate_statement- Verificar si una declaración cumple con los requisitos del RFCgenerate_checklist- Generar lista de verificación de implementación
Soporte para RFC heredados
Los RFC publicados después del RFC 8650 (diciembre de 2019) están disponibles en el formato oficial RFCXML v3. Es posible que los RFC anteriores no tengan XML disponible.
Este servidor incluye una funcionalidad de reserva automática: cuando el XML no está disponible, analiza el formato de texto en su lugar.
Información de origen
Todas las respuestas incluyen información de origen:
{
"rfc": 6455,
"sections": [...],
"_source": "text",
"_sourceNote": "Warning: Parsed from text format. Accuracy may be limited."
}
| Descripción |
| Analizado desde RFCXML (alta precisión) |
| Analizado desde texto (precisión media) |
Compatibilidad
RFC | Formato | Notas |
RFC 8650+ | XML | Soporte oficial RFCXML v3 |
Antes de RFC 8650 | Texto | Reserva automática |
Muestras de salida
get_rfc_structure - Obtener estructura de RFC
{
"metadata": {
"title": "Transmission Control Protocol (TCP)",
"docName": "draft-ietf-tcpm-rfc793bis-28",
"number": 9293
},
"sections": [
{
"number": "section-1",
"title": "Purpose and Scope"
},
{
"number": "section-3",
"title": "Functional Specification",
"subsections": [
{ "number": "section-3.1", "title": "Header Format" },
{
"number": "section-3.5",
"title": "Establishing a Connection",
"subsections": [
{ "number": "section-3.5.1", "title": "Half-Open Connections and Other Anomalies" },
{ "number": "section-3.5.2", "title": "Reset Generation" }
]
}
]
}
],
"referenceCount": { "normative": 15, "informative": 85 },
"_source": "xml"
}get_requirements - Extraer requisitos normativos
{
"rfc": 9293,
"filter": { "level": "MUST" },
"stats": { "total": 53, "byLevel": { "MUST": 53 } },
"requirements": [
{
"id": "R-section-3.5-5",
"level": "MUST",
"text": "A TCP implementation support simultaneous open attempts (MUST-10).",
"section": "section-3.5",
"sectionTitle": "Establishing a Connection"
},
{
"id": "R-section-3.7.1-9",
"level": "MUST",
"text": "TCP endpoints implement both sending and receiving the MSS Option (MUST-14).",
"section": "section-3.7.1",
"sectionTitle": "Maximum Segment Size Option"
}
],
"_source": "xml"
}get_rfc_dependencies - Obtener dependencias de RFC
{
"rfc": 9293,
"normative": [
{ "rfcNumber": 791, "title": "Internet Protocol", "anchor": "RFC0791" },
{ "rfcNumber": 2119, "title": "Key words for use in RFCs to Indicate Requirement Levels" },
{ "rfcNumber": 5681, "title": "TCP Congestion Control" }
],
"informative": [
{ "rfcNumber": 793, "title": "Transmission Control Protocol" },
{ "rfcNumber": 1122, "title": "Requirements for Internet Hosts - Communication Layers" }
],
"_source": "xml"
}generate_checklist - Generar lista de verificación de implementación
# RFC 9293 Implementation Checklist
**Transmission Control Protocol (TCP)**
Role: Client
## Required (MUST / REQUIRED / SHALL)
- [ ] A TCP implementation support simultaneous open attempts (MUST-10). (section-3.5)
- [ ] TCP endpoints implement both sending and receiving the MSS Option (MUST-14). (section-3.7.1)
- [ ] The RTO be computed according to the algorithm in, including Karn's algorithm (MUST-18). (section-3.8.1)
## Optional (MAY / OPTIONAL)
- [ ] Implementers include "keep-alives" in their TCP implementations (MAY-5). (section-3.8.4)Salida de reserva de texto (RFC heredados)
{
"metadata": {
"title": "The WebSocket Protocol",
"number": 6455
},
"sections": [
{ "number": "1", "title": "Introduction" },
{ "number": "5", "title": "Data Framing" }
],
"_source": "text",
"_sourceNote": "Warning: Parsed from text format. Accuracy may be limited."
}Ejemplos
Consulte el directorio examples/ para ver muestras completas de listas de verificación:
Ejemplo de prompt para Claude:
Generate an implementation checklist for RFC 9293 (TCP).Arquitectura interna
Estructura del módulo
src/
├── index.ts # MCP server entry point
├── config.ts # Centralized configuration
├── constants.ts # BCP 14 keyword definitions + RFC number limits
├── services/
│ ├── rfc-fetcher.ts # RFC fetching (parallel)
│ ├── rfc-service.ts # RFC parse & cache management
│ ├── rfcxml-parser.ts # RFCXML parser
│ ├── rfc-text-parser.ts # Text fallback parser
│ └── checklist-generator.ts # Checklist generation service
├── tools/
│ ├── definitions.ts # MCP tool definitions
│ └── handlers.ts # Tool handlers (toolHandlers map)
├── types/
│ └── index.ts # Type definitions
└── utils/
├── cache.ts # LRU cache
├── fetch.ts # Parallel fetch utility
├── logger.ts # Logger abstraction
├── requirement-extractor.ts # Shared requirement extraction
├── section.ts # Section search utilities
├── statement-matcher.ts # Weighted statement matching
├── text.ts # Text processing utility
└── validation.ts # Input validationOptimización de obtención de RFC
Envía solicitudes paralelas a múltiples fuentes (RFC Editor, IETF Tools, Datatracker) y utiliza la primera respuesta exitosa:
┌─────────────────┐
│ fetchRFCXML() │
└────────┬────────┘
│ Parallel requests
┌────┴────┬────────────┐
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│RFC │ │IETF │ │Data- │
│Editor │ │Tools │ │tracker │
└────┬───┘ └────┬───┘ └────┬───┘
│ │ │
└────┬─────┴──────────┘
│ Promise.any (first success)
▼
┌───────────┐
│ Successful│ → Cancel other requests via AbortController
│ Response │
└───────────┘Estrategia de caché
Caché LRU (Least Recently Used) con límites de memoria:
Caché | Entradas máx. | Contenido |
Caché XML | 20 | RFCXML sin procesar |
Caché de texto | 20 | Texto sin procesar |
Caché de metadatos | 100 | Metadatos de RFC |
Caché de análisis | 50 | Estructura analizada |
Desarrollo
# Install dependencies
npm install
# Development mode
npm run dev
# Build
npm run build
# Test (watch mode)
npm test
# Test (single run — for CI etc.)
npm test -- --run
# E2E test (MCP client integration)
npm run test:e2e
# Lint
npm run lint
# Format
npm run formatLicencia
MIT
Proyectos relacionados
mjpitz/mcp-rfc - MCP de RFC basado en texto
ietf-tools/RFCXML - Esquema RFCXML
xml2rfc - Herramienta oficial de IETF
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables Large Language Models to search and access IETF RFC documents with pagination support.313MIT
- FlicenseBqualityDmaintenanceA Model Context Protocol server that enables LLMs to extract and use content from unstructured documents across a wide variety of file formats.111
- AlicenseAqualityDmaintenanceAn MCP server that enables programmatic access to IETF RFC documents, allowing users to fetch, search, and extract specific sections from RFCs.34219Apache 2.0
- AlicenseBqualityDmaintenanceAn MCP server for obtaining, parsing and reading RFC documents from the ietf.org website, providing programmatic interactive tools.32Apache 2.0
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for generating rough-draft project plans from natural-language prompts.
A Model Context Protocol server for Wix AI tools
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/shuji-bonji/rfcxml-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server