@pipeworx/us-national-archives
Connect: https://gateway.pipeworx.io/us-national-archives/mcp · Install: one-click buttons
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 3
The US National Archives Catalog (NARA) — descriptions of the federal government’s permanent records from every agency and presidential library, with direct links to the digitised page images where they exist.
Tools
nara_search(query, limit?, page?, available_online?, level_of_description?, record_group_number?, include_digital_objects?)— keyword search across the catalog.nara_record(naid)— one record in full, with its archival hierarchy.nara_digital_objects(naid, limit?)— the scans attached to a record, with public-domain download URLs.
Auth
Keyless. No x-api-key is needed or used — see below.
Data sources
- https://catalog.archives.gov/proxy/v3/records/search — search and record fetch.
Things worth knowing:
- The documented
/api/v2/path with anx-api-keyis not routed. Everycatalog.archives.gov/api/v2/...URL returns the catalog’s single-page app astext/htmlwith a 200 and the same ETag as a deliberately nonsensical path, with or without a key. It is not an outage and a key would not fix it; the path simply is not served. The endpoint the catalog’s own front end calls is/proxy/v3/records/search, and it is unauthenticated. /proxy/records/search(nov3) rejects most page sizes.limit1, 10, 20, 50, 100 and 1000 return JSON; 2, 3, 4, 5, 15 and 25 return the SPA HTML with a 200. Deterministic over three runs each./proxy/v3/records/searchaccepts any limit, which is why this pack only calls v3 — and it still checks the content type before parsing, because a 200 that is secretly HTML is exactly the shape of a silent failure.- Paging is
page(1-based).offsetandfromare ignored. - A single record is
naId_is=, notnaId=; the latter is the comma-list multi-fetch form. - NAIDs are JSON numbers in the body and strings in arguments. Reading only the string form blanks every id in a search result without erroring.
- The payload is raw Elasticsearch:
body.hits.total.valueandbody.hits.hits[]._source.record.
Tools
- nara_search — Keyword-search the US National Archives Catalog — the descriptions of the federal government’s permanent records: agency files, military service and unit records, photographs, motion pictures, maps, t
- nara_record — Fetch one US National Archives Catalog record in full by its NAID (National Archives Identifier, the number in a catalog.archives.gov/id/ URL). Returns title, scope and content note, dates, access and
- nara_digital_objects — List the digitised files attached to one US National Archives Catalog record — scanned page images, PDFs, audio and video — with a direct, public-domain download URL, file type and size for each. Use
Tools
nara_digital_objects— List the digitised files attached to one US National Archives Catalog record — scanned page images, PDFs, audio and video — with a direct, public-domain download URL, file type and size for each. Usenara_record— Fetch one US National Archives Catalog record in full by its NAID (National Archives Identifier, the number in a catalog.archives.gov/id/ URL). Returns title, scope and content note, dates, access andnara_search— Keyword-search the US National Archives Catalog — the descriptions of the federal government's permanent records: agency files, military service and unit records, photographs, motion pictures, maps, t