Skip to main content
Glama

RFCXML MCP Server

npm version CI License: MIT Node.js Claude Code

日本語版 README

Ein Model Context Protocol (MCP) Server für das strukturierte Verständnis von RFC-Dokumenten.

Zweck

Im Gegensatz zu bestehenden textbasierten RFC-MCP-Servern nutzt dieser Server die semantische Struktur von RFCXML, um Folgendes zu ermöglichen:

  • Extraktion normativer Anforderungen (MUST/SHOULD/MAY) mit strukturierter Ausgabe

  • Erstellung von RFC-Abhängigkeitsgraphen

  • Verwaltung von Definitionsbereichen

  • Generierung von Implementierungs-Checklisten

Related MCP server: Unstructured Document Processor MCP

Architektur

┌─────────────────────────┐
│  Markdown / PDF         │  Display & Sharing
├─────────────────────────┤
│  Translation            │  Explanation & Verification
├─────────────────────────┤
│  RFCXML MCP             │  Common Understanding for AI & Humans
├─────────────────────────┤
│  RFCXML                 │  Single Source of Truth
└─────────────────────────┘

Vergleich mit bestehenden MCPs

Funktion

Bestehendes mcp-rfc

RFCXML MCP

RFC-Textabruf

Abschnittsextraktion

✅ (textbasiert)

✅ (strukturbasiert)

MUST/SHOULD/MAY-Extraktion

Strukturierung von Bedingungen/Ausnahmen

RFC-Abhängigkeitsgraph

Verwaltung von Definitionsbereichen

Implementierungs-Checkliste

Schnellstart

Verwendung mit Claude Desktop / Claude Code

Fügen Sie Folgendes zu Ihrer MCP-Konfigurationsdatei hinzu:

{
  "mcpServers": {
    "rfcxml": {
      "command": "npx",
      "args": ["-y", "@shuji-bonji/rfcxml-mcp"]
    }
  }
}

Speicherorte der Konfigurationsdatei:

  • Claude Desktop (macOS): ~/Library/Application Support/Claude/claude_desktop_config.json

  • Claude Desktop (Windows): %APPDATA%\Claude\claude_desktop_config.json

  • Claude Code (Projektbereich): .mcp.json im Projektstammverzeichnis

  • Claude Code (Benutzerbereich): ~/.claude.json

  • Claude Code (CLI): claude mcp add rfcxml -- npx -y @shuji-bonji/rfcxml-mcp

Installation (Optional)

Für eine globale Installation:

npm install -g @shuji-bonji/rfcxml-mcp

Konfigurieren Sie dann MCP:

{
  "mcpServers": {
    "rfcxml": {
      "command": "rfcxml-mcp"
    }
  }
}

Verfügbare Tools

Phase 1: Grundlegende Struktur

  • get_rfc_structure - Abrufen der Abschnittshierarchie und Metadaten

  • get_requirements - Extrahieren normativer Anforderungen (MUST/SHOULD/MAY) mit Struktur

  • get_definitions - Abrufen von Begriffsdefinitionen und deren Geltungsbereich

Phase 2: Beziehungen

  • get_rfc_dependencies - Abrufen referenzierter RFCs (normativ/informativ)

  • get_related_sections - Abrufen verwandter Abschnitte innerhalb desselben RFC

Phase 3: Unterstützung bei der Verifizierung

  • validate_statement - Überprüfen, ob eine Aussage den RFC-Anforderungen entspricht

  • generate_checklist - Generieren einer Implementierungs-Checkliste

Unterstützung für ältere RFCs

RFCs, die nach RFC 8650 (Dezember 2019) veröffentlicht wurden, sind im offiziellen RFCXML v3-Format verfügbar. Für frühere RFCs ist möglicherweise kein XML verfügbar.

Dieser Server enthält eine automatische Fallback-Funktionalität – wenn kein XML verfügbar ist, wird stattdessen das Textformat geparst.

Quellinformationen

Alle Antworten enthalten Quellinformationen:

{
  "rfc": 6455,
  "sections": [...],
  "_source": "text",
  "_sourceNote": "Warning: Parsed from text format. Accuracy may be limited."
}

_source

Beschreibung

xml

Geparsed aus RFCXML (hohe Genauigkeit)

text

Geparsed aus Text (mittlere Genauigkeit)

Kompatibilität

RFC

Format

Hinweise

RFC 8650+

XML

Offizielle RFCXML v3-Unterstützung

Vor RFC 8650

Text

Automatischer Fallback

Ausgabebeispiele

get_rfc_structure - RFC-Struktur abrufen

{
  "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 - Normative Anforderungen extrahieren

{
  "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 - RFC-Abhängigkeiten abrufen

{
  "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 - Implementierungs-Checkliste generieren

# 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)

Text-Fallback-Ausgabe (Ältere RFCs)

{
  "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."
}

Beispiele

Siehe das Verzeichnis examples/ für vollständige Checklisten-Beispiele:

RFC

Protokoll

Quelle

RFC 6455

WebSocket

Text (Fallback)

RFC 9293

TCP

RFCXML

RFC 7540

HTTP/2

Text (Fallback)

Beispiel-Prompt für Claude:

Generate an implementation checklist for RFC 9293 (TCP).

Interne Architektur

Modulstruktur

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 validation

RFC-Abrufoptimierung

Sendet parallele Anfragen an mehrere Quellen (RFC Editor, IETF Tools, Datatracker) und verwendet die erste erfolgreiche Antwort:

┌─────────────────┐
│  fetchRFCXML()  │
└────────┬────────┘
         │ Parallel requests
    ┌────┴────┬────────────┐
    ▼         ▼            ▼
┌────────┐ ┌────────┐ ┌────────┐
│RFC     │ │IETF    │ │Data-   │
│Editor  │ │Tools   │ │tracker │
└────┬───┘ └────┬───┘ └────┬───┘
     │          │          │
     └────┬─────┴──────────┘
          │ Promise.any (first success)
          ▼
    ┌───────────┐
    │ Successful│ → Cancel other requests via AbortController
    │ Response  │
    └───────────┘

Cache-Strategie

LRU (Least Recently Used) Cache mit Speicherlimits:

Cache

Max. Einträge

Inhalt

XML-Cache

20

Rohes RFCXML

Text-Cache

20

Roher Text

Metadaten-Cache

100

RFC-Metadaten

Parse-Cache

50

Geparsed Struktur

Entwicklung

# 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 format

Lizenz

MIT

Verwandte Projekte

Install Server
A
license - permissive license
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity
Issues opened vs closed

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

  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that enables Large Language Models to search and access IETF RFC documents with pagination support.
    3
    13
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that enables programmatic access to IETF RFC documents, allowing users to fetch, search, and extract specific sections from RFCs.
    3
    42
    19
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    An MCP server for obtaining, parsing and reading RFC documents from the ietf.org website, providing programmatic interactive tools.
    3
    2
    Apache 2.0

View all related MCP servers

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

View all MCP Connectors

Latest Blog Posts

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