nara-mcp-server
# 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
Scored across 7 tools
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.
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.
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.
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.