fold3-com-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fold3-com-mcp search for Civil War pension records for John Smith"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
fold3-com-mcp
An MCP server for Fold3, Ancestry's military-records site. It covers:
search across service records, pension files, muster rolls, draft cards, casualty lists, census and newspapers;
reading files, pages, index records, census lines and memorials;
browsing a collection's tree;
full-resolution page images.
It calls the site's own services from Node. It signs in through the Ancestry session that ancestry-com-mcp already saved (Fold3's "Sign in with Ancestry"), so there is no browser or password. It is read-only.
Tools
Tool | Actions | What for |
|
| Hits with their type, collection, index fields and matched values; facet counts to choose filters. |
|
| A FILE (index fields, every page's image id, access, citation), IMAGE, INDEX_RECORD, SUB_IMAGE (a census line) or MEMORIAL (facts and linked Ancestry records). |
|
| Find collections, read one (access level, NARA publication), and walk its browse tree (state › surname › given name › file). |
|
| Page images at full resolution (stitched from the viewer's tiles), inline or to disk; a whole file to a directory with a SHA-256 manifest. |
|
| Whether the session is signed in and what the account may open. |
|
| Read-only requests to Fold3's services, and POST only to the search. |
What the search does, and why (each point checked against live counts; see docs/endpoints.md):
Person dates use the person fields.
birthYear,deathYearandserviceYearmap todate.vital.birth,date.vital.deathanddate.military. Fold3's generic date filter matches collection date spans: a 1775-2019 gravesite index matches any year. That filter is offered ascoverageYearand described as such.namematches every name indexed in a file, witnesses included;matchedshows why a hit came back.[Blank]index fields are dropped. Fold3 lists every field of a collection's schema on every record./record/URLs are resolved by their slug. Index records and census lines share ids (61017601 is both).
Access: searching and index data need no subscription. Images need an account that may view the collection. The
user's account (linked to their Ancestry login) is a Fold3 non-subscriber, so PUBLIC collections (the War of 1812
pension files, among others) open and SUBSCRIBER ones say they need a subscription.
Related MCP server: X Browser MCP
Setup
Requirements: Node 26+ (runs TypeScript directly) and pnpm; no browser.
pnpm install.mcp.json:
{ "mcpServers": { "fold3": { "command": "node", "args": ["/path/to/fold3-com-mcp/src/server.ts"],
"env": { "ANCESTRY_SESSION_FILE": "/path/to/ancestry-com-mcp/.session.json", "FOLD3_SESSION_FILE": "/path/to/fold3-com-mcp/.session.json" } } } }ANCESTRY_SESSION_FILE(default~/Projects/ancestry-com-mcp/.session.json) is only read, never written.FOLD3_SESSION_FILE(default.session.jsonin this checkout, mode 600, git-ignored) keeps the Fold3 cookies.FOLD3_MIN_INTERVAL_MS(default 250) spaces requests.
Tests
pnpm test: unit tests on recorded responses (test/fixtures, re-recorded withnode scripts/record-fixtures.ts, which strips tokens and the account id). No network.pnpm mcp-test: live, over stdio. It calls every action and error path, checks sizes, and downloads a few pages to a temp directory. It also runs a count comparison for every search filter: a real value must narrow the total and a nonsense value must give about zero.pnpm typecheck.
Caveats
Fold3's index is transcribed by volunteers and staff. Read the images for anything that matters, and cite the file (
fold3_record getreturns a citation for a FILE).A search reaches only its first 10,000 hits and returns at most 50 per call.
A full-resolution page is 20 to 60 tiles, so it takes several seconds.
fold3_download filefetches at most 40 pages per call and keeps pages already on disk.
Available Tools
6 toolsfold3_collectionFold3 collectionsARead-onlyIdempotent
Fold3's collections ("titles", about 1,000). Actions:
list: collections whose title contains all the given words (name), with record counts, e.g. name "1812 pension" or "Confederate Tennessee".
get: one collection (needs collectionId): full title, description, source and NARA publication/catalog numbers, access level (free or subscription), record count, browse levels.
browse: walk a collection's browse tree (needs collectionId; path = labels chosen so far). War of 1812 Pension Files: [] → states, ["South Carolina"] → surnames, ["South Carolina","Hunt"] → given names, ["South Carolina","Hunt","Joseph"] → the file(s) with ids. Levels list up to 5,000 entries; contains narrows a long level.
Inputs: action (required), name, path, count, +3 more.
fold3_downloadDownload Fold3 imagesAIdempotent
Fetch Fold3 page images at up to full resolution (stitched from the viewer's tiles; the site's own download is capped at 1600 px). Actions:
image: one page (needs imageId, from fold3_record get or a hit's imageId). Without outPath it is returned inline for reading, scaled to maxSide (default 1600); with outPath the full resolution is written unless maxSide is given.
file: the pages of a multi-page file (needs fileId and outDir), written as page-01.jpg, page-02.jpg, … with a manifest.json (ids, sizes, SHA-256). Pages already on disk are kept. At most 40 pages per call (a full-resolution page takes several seconds); continue with start. Works for collections this account may view (free ones such as the War of 1812 pensions); it signs in through Ancestry by itself when needed, and says so when a collection needs a subscription.
Inputs: action (required), count, start, fileId, +4 more.
fold3_raw_requestRaw Fold3 requestARead-onlyIdempotent
A read-only request to Fold3's own services for data the other tools lack: GET any path under /fold31/, /fold31-search/, /fold31-image-data/, /fold31-index-record/, /fold31-memorial/, or POST a DocumentQuery to /fold31-search/doc-search. docs/endpoints.md lists the useful paths. Prefer the other tools: their results are projected to fit and their filters are checked.
Inputs: action (required), body, path.
fold3_recordRead a Fold3 recordARead-onlyIdempotent
Read one Fold3 document. Action get: needs id + type (as a search hit reports them) or url (a fold3.com /file/, /image/, /record/ or /memorial/ page).
FILE: title, collection and its access, index fields ("[Blank]" fields dropped), page count, every page's imageId, whether this account may view it, and a citation. Long files page with start/count.
IMAGE: the page's title, file, index fields, size and whether it is viewable.
INDEX_RECORD / SUB_IMAGE: the index fields; a SUB_IMAGE (a person's line on a census page) names its imageId and line.
MEMORIAL: facts, stories, and the Ancestry records Fold3 linked (collectionId + recordId for ancestry_record get). Images themselves come from fold3_download.
Inputs: action (required), id, url, type, +2 more.
fold3_searchSearch Fold3ARead-onlyIdempotent
Search Fold3's military and other historical records (service records, pensions, muster rolls, draft cards, census, casualty lists, newspapers, memorials). Actions:
search: hits matching the criteria; needs at least one criterion. Each hit gives type (FILE = a multi-page file such as a pension or service record; IMAGE; INDEX_RECORD = an index entry; SUB_IMAGE = one person's line on an image such as a census page; MEMORIAL), id, title, collection, its index fields, pages, and the index values that matched. Read one with fold3_record get using its type and id. About 360 chars per hit, 50 per call at most; only the first 10000 hits of a search can be reached.
facets: how the matches split by collection, war, record type and document type (counts only), to pick filters before paging through thousands of hits. Searching needs no subscription; viewing images depends on the collection (free collections such as the War of 1812 pensions open with the user's free account; most others need a Fold3 subscription, which this account does not have — fold3_session status says).
Inputs: action (required), war, name, sort, +16 more.
fold3_sessionFold3 sessionAIdempotent
The Fold3 sign-in. status: whether the saved session is signed in, the account's status (subscriber or not) and premium access. login: sign in through the Ancestry session that ancestry-com-mcp saved (Fold3's own "Sign in with Ancestry"); no browser or password, but it needs a valid Ancestry session (ancestry_session status). Downloads sign in by themselves when needed, so login is rarely called directly.
Inputs: action (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
The six tools are mostly distinct: search, record, collection, download, session, and raw request each target a different concern. Some overlap exists between fold3_record and fold3_download (both handle images), and fold3_raw_request could duplicate the others, but the descriptions clarify boundaries.
All tools use a consistent fold3_ prefix with a noun indicating the resource (search, record, collection, download, session, raw_request). The pattern is predictable, though fold3_raw_request is slightly less verb-like than the others.
Six tools is well-scoped for a domain-specific server covering search, retrieval, browsing, downloading, session management, and a fallback raw request. Each tool has a clear purpose and the count feels appropriate.
The server covers the core workflow: search, inspect records, browse collections, download images, and manage session. Minor gaps exist (e.g., no explicit way to list all collections or handle saved records), but the raw request tool fills edge cases.
Related MCP Connectors
Read-only OpenHeritage search for genealogy and cultural heritage records.
Read-only MCP access to authorized Vocci sessions, notes, files, and memory search.
Read-only access to your tabletop campaigns: codex, sessions, and session notes.
Read-only access to your Citlyze workspace: AI search visibility, citations, and recommendations.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search FamilySearch's Family Tree, view person details, explore ancestors and descendants, and search historical records using browser session authentication.7 npm6MIT
- FlicenseBqualityCmaintenanceEnables browser-based Twitter/X research and account workflows through a signed-in browser, supporting search, timeline/profile reads, saved searches, snapshot exports, and prepared account actions without requiring an X developer API key.25-
- AlicenseNot gradedqualityBmaintenanceProvides read-only access to the Internet Archive's Wayback Machine and catalog, enabling retrieval of archived web captures, snapshot metadata, and catalog search.28 PyPIBSD 3-Clause
- AlicenseAqualityBmaintenanceEnables direct interaction with FamilySearch.org's shared Family Tree and historical records, including reading and adding people, facts, relationships, sources, notes, memories, record search, and image downloads, without needing a browser.39MIT