Skip to main content
Glama
mjpitz

RFC MCP Server

by mjpitz
README.md
# RFC MCP Server

An MCP server for fetching, parsing, and reading RFCs from the ietf.org website. This server provides tools and resources to interact with RFC documents programmatically.

## Features

- Fetch RFC documents by number
- Search for RFCs by keyword
- Extract specific sections from RFC documents
- Parse both HTML and TXT format RFCs
- Caching for better performance

## Installation

Configure your MCP settings file to use the server:

```json
{
  "mcpServers": {
    "rfc-server": {
      "command": "npx",
      "args": ["@mjpitz/mcp-rfc"],
      "disabled": false,
      "autoApprove": []
    }
  }
}
```

## Available Tools

### get_rfc

Fetch an RFC document by its number.

**Parameters:**
- `number` (string, required): RFC number (e.g. "2616")
- `format` (string, optional): Output format (full, metadata, sections), default: "full"

**Example:**
```json
{
  "number": "2616",
  "format": "metadata"
}
```

### search_rfcs

Search for RFCs by keyword.

**Parameters:**
- `query` (string, required): Search keyword or phrase
- `limit` (number, optional): Maximum number of results to return, default: 10

**Example:**
```json
{
  "query": "http protocol",
  "limit": 5
}
```

### get_rfc_section

Get a specific section from an RFC.

**Parameters:**
- `number` (string, required): RFC number (e.g. "2616")
- `section` (string, required): Section title or number to retrieve

**Example:**
```json
{
  "number": "2616",
  "section": "Introduction"
}
```

## Available Resources

### Resource Templates

- `rfc://{number}`: Get an RFC document by its number
- `rfc://search/{query}`: Search for RFCs by keyword

## Development

- Run in watch mode: `npm run dev`
- Start the server: `npm run start`

## License

This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.

## Implementation Details

The server implements two main components:

1. **RFC Service**: Handles fetching, parsing, and extracting data from RFCs
2. **MCP Server**: Implements the MCP protocol and exposes tools and resources

The RFC service supports both HTML and TXT format RFCs, attempting to use HTML first for better structure, then falling back to TXT format if needed.

TDQS

A3.5/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_rfc retrieves a full document, get_rfc_section extracts a specific part, and search_rfcs finds documents by keyword. There is no overlap or ambiguity between these functions, making tool selection straightforward for an agent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (get_rfc, get_rfc_section, search_rfcs). The naming is predictable and readable, with no deviations or mixed conventions.

Tool Count5/5

With 3 tools, the server is well-scoped for its purpose of accessing RFC documents. Each tool earns its place by covering distinct aspects (fetching, sectioning, searching), and the count is appropriate without being too thin or heavy.

Completeness4/5

The tool surface covers core operations for RFC access: retrieving full documents, sections, and searching. A minor gap exists in lifecycle coverage, such as listing all RFCs or filtering by metadata, but agents can work around this with the provided tools.

Maintenance

ActivityInactive
ResponsivenessNo issues