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을 사용할 수 없을 수도 있습니다.

이 서버에는 자동 폴백(fallback) 기능이 포함되어 있어, 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