Skip to main content
Glama

RFCXML MCP サーバー

npm version CI License: MIT Node.js Claude Code

日本語版 README

RFCドキュメントを構造的に理解するためのModel Context Protocol (MCP) サーバーです。

目的

既存のテキストベースのRFC MCPサーバーとは異なり、本サーバーはRFCXMLのセマンティック構造を活用することで、以下を実現します:

  • 構造化された出力による規範的要件(MUST/SHOULD/MAY)の抽出

  • RFC依存関係グラフの構築

  • 定義スコープの管理

  • 実装チェックリストの生成

Related MCP server: Unstructured Document Processor MCP

アーキテクチャ

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

既存のMCPとの比較

機能

既存の mcp-rfc

RFCXML MCP

RFCテキスト取得

セクション抽出

✅ (テキストベース)

✅ (構造ベース)

MUST/SHOULD/MAY抽出

条件/例外の構造化

RFC依存関係グラフ

定義スコープ管理

実装チェックリスト

クイックスタート

Claude Desktop / Claude Code での使用

MCP設定ファイルに以下を追加してください:

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

設定ファイルの場所:

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

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

  • Claude Code (プロジェクトスコープ): プロジェクトルートの .mcp.json

  • Claude Code (ユーザースコープ): ~/.claude.json

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

インストール (オプション)

グローバルインストールの場合:

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

その後、MCPを設定します:

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

利用可能なツール

フェーズ 1: 基本構造

  • get_rfc_structure - セクション階層とメタデータを取得

  • get_requirements - 規範的要件(MUST/SHOULD/MAY)を構造付きで抽出

  • get_definitions - 用語定義とそのスコープを取得

フェーズ 2: 関係性

  • get_rfc_dependencies - 参照されているRFC(規範的/参考)を取得

  • get_related_sections - 同一RFC内の関連セクションを取得

フェーズ 3: 検証サポート

  • validate_statement - ステートメントがRFC要件に準拠しているか検証

  • generate_checklist - 実装チェックリストを生成

レガシーRFCのサポート

RFC 8650(2019年12月)以降に発行されたRFCは、公式のRFCXML v3形式で利用可能です。それ以前のRFCはXMLが利用できない場合があります。

本サーバーには自動フォールバック機能が含まれており、XMLが利用できない場合は代わりにテキスト形式を解析します。

ソース情報

すべてのレスポンスにはソース情報が含まれます:

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

_source

説明

xml

RFCXMLから解析(高精度)

text

テキストから解析(中精度)

互換性

RFC

形式

備考

RFC 8650+

XML

公式RFCXML v3サポート

RFC 8650以前

テキスト

自動フォールバック

出力サンプル

get_rfc_structure - 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 - 規範的要件の抽出

{
  "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依存関係の取得

{
  "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 - 実装チェックリストの生成

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

テキストフォールバック出力 (レガシーRFC)

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

チェックリストの完全なサンプルについては、examples/ ディレクトリを参照してください:

RFC

プロトコル

ソース

RFC 6455

WebSocket

テキスト (フォールバック)

RFC 9293

TCP

RFCXML

RFC 7540

HTTP/2

テキスト (フォールバック)

Claudeへのプロンプト例:

Generate an implementation checklist for RFC 9293 (TCP).

内部アーキテクチャ

モジュール構造

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取得の最適化

複数のソース(RFC Editor、IETF Tools、Datatracker)に並列リクエストを送信し、最初に成功したレスポンスを使用します:

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

キャッシュ戦略

メモリ制限付きのLRU(Least Recently Used)キャッシュ:

キャッシュ

最大エントリ数

コンテンツ

XMLキャッシュ

20

生RFCXML

テキストキャッシュ

20

生テキスト

メタデータキャッシュ

100

RFCメタデータ

解析キャッシュ

50

解析済み構造

開発

# 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

ライセンス

MIT

関連プロジェクト

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