rfcxml-mcp
RFCXML MCP 서버
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.jsonClaude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.jsonClaude Code (프로젝트 범위): 프로젝트 루트의
.mcp.jsonClaude Code (사용자 범위):
~/.claude.jsonClaude 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."
}
| 설명 |
| RFCXML에서 파싱됨 (높은 정확도) |
| 텍스트에서 파싱됨 (중간 정확도) |
호환성
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/ 디렉토리를 참조하세요:
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 validationRFC 가져오기 최적화
여러 소스(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
관련 프로젝트
mjpitz/mcp-rfc - 텍스트 기반 RFC MCP
ietf-tools/RFCXML - RFCXML 스키마
xml2rfc - 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