Skip to main content
Glama
README.md
# NARA MCP Server

Read-only Model Context Protocol server for the US National Archives Catalog API.

The server uses the public National Archives Catalog API and expects an API key
in the `NARA_API_KEY` environment variable. Do not commit your key.

Data attribution: API responses come from the US National Archives Catalog.
Follow the National Archives API Terms of Service and attribution guidance:
https://www.archives.gov/research/catalog/help/api-terms-of-service

## Tools

- `search_records`: Search National Archives Catalog records.
- `get_record`: Fetch a single record by National Archives Identifier.
- `get_child_records`: Fetch records under a parent National Archives Identifier.
- `get_record_extracted_text`: Fetch extracted text for a record.
- `get_record_comments`: Fetch comments for a record.
- `get_record_tags`: Fetch tags for a record.
- `catalog_request`: Advanced read-only GET request for supported Catalog API paths.

## Setup

```bash
npm install
npm run build
```

Set your API key:

```bash
export NARA_API_KEY="your-api-key"
```

Optional:

```bash
export NARA_API_BASE_URL="https://catalog.archives.gov/api/v2"
```

## Run

```bash
npm start
```

## Claude Desktop Example

```json
{
  "mcpServers": {
    "nara": {
      "command": "node",
      "args": ["/absolute/path/to/nara-mcp-server/dist/index.js"],
      "env": {
        "NARA_API_KEY": "your-api-key"
      }
    }
  }
}
```

## Development

```bash
npm run check
npm run dev
```

## Notes

This project intentionally exposes read-only operations. National Archives
contribution endpoints require additional policy care and a key with write
permissions, so they are not included.

TDQS

A3.5/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct operation: raw API access, search, record retrieval by ID, children, comments, tags, and OCR text. No two tools have overlapping purposes, and descriptions are clear.

Naming Consistency4/5

Most tools follow a consistent 'get_' prefix with noun suffixes (e.g., get_record, get_record_comments). The exception is 'catalog_request' which reverses the pattern (noun_verb), but it remains readable.

Tool Count5/5

Seven tools is well-scoped for a read-only catalog API. Each tool serves a specific need without redundancy, and the count is appropriate for the domain.

Completeness5/5

The tool set covers essential operations: searching, retrieving records, navigating hierarchy (children), and accessing associated metadata (comments, tags, OCR). The raw API tool fills any gaps, ensuring completeness.

Maintenance

ActivitySlowing
ResponsivenessSyncing