gedcom-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., "@gedcom-mcp find 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.
gedcom-mcp
A small MCP server that reads and searches a GEDCOM 5.5.1 file. It gives an AI agent a fast, structured way to look up individuals, families, sources, and multimedia references in a family tree, and to suggest folder slugs for an archive of per-person pages.
It is tolerant of the custom tags that Ancestry.com exports emit
(_APID, _TREE, _PRIM, _OID, and M/D/YYYY dates), but it works with
any spec-compliant GEDCOM.
No family data is bundled with this server — you point it at your own .ged
file via an environment variable.
Install
Requires Python 3.10+ and uv.
git clone https://github.com/<you>/gedcom-mcp.git
cd gedcom-mcp
uv syncRelated MCP server: GEDCOM MCP Server
Configuration
One required environment variable:
Variable | Description |
| Absolute path to the |
The file is parsed lazily on the first tool call and cached in memory.
Tools
Tool | What it does |
| File path, Ancestry tree id (if present), counts by record type. |
| Token search over INDI names (incl. AKAs). |
| Full INDI record: events, residences, sources, multimedia, family links, suggested slug, |
| Match FAM records by spouses and/or year. |
| Full FAM record with husband/wife/children resolved. |
| Children across all spouse families. |
| Bounded ancestor walk. |
| Bounded descendant walk. |
| SOUR citations attached to the person and their events, including Ancestry |
| Suggest a stable folder slug for the record (see below). |
IDs may be passed with or without @ delimiters (I123 and @I123@ are
equivalent).
Running locally
GEDCOM_FILE="/path/to/your-tree.ged" uv run gedcom-mcpIt speaks MCP over stdio.
Registering with an MCP client
Add an entry like this to your MCP client's server config (paths are
examples — adjust to your checkout and your .ged file):
{
"mcpServers": {
"gedcom": {
"command": "uv",
"args": ["run", "--directory", "/path/to/gedcom-mcp", "gedcom-mcp"],
"env": {
"GEDCOM_FILE": "/path/to/your-tree.ged"
}
}
}
}Output conventions
The server returns plain JSON-shaped data. Dates are normalized to
ISO 8601 (YYYY-MM-DD, partial dates allowed). The agent is responsible for
turning these dicts into whatever it needs; the server stays out of
formatting decisions.
Slug convention
suggest_slug produces a lowercase, hyphenated, ASCII slug intended as a
stable folder name for a per-record page:
Individual:
<surname>-<given>-<birthyear>(e.g.smith-john-1901)Family:
<husband-surname>-<wife-surname>-<marriageyear>
unknown is used for a missing year. This convention is opinionated; if your
archive uses a different scheme, adapt suggest_slug / the *_slug helpers
in src/gedcom_mcp/model.py.
License
MIT. See LICENSE.
Available Tools
10 toolsfind_familyA
Search families by spouse name and/or marriage year. At least one
of husband_query, wife_query, marriage_year must be set.
Inputs: limit, wife_query, husband_query, marriage_year. Returns: result
find_individualA
Search for individuals by name. Matches all tokens in query
against the union of an individual's NAME records (primary + AKAs).
Returns compact summaries with id, name, sex, birth/death, and a
suggested folder slug per the workspace conventions.
Inputs: query (required), limit. Returns: result
get_familyA
Return the full FAM record for id (e.g. @F1@ or F1)
with husband/wife/children resolved to summary dicts.
Inputs: id (required). Returns: object
get_individualA
Return the full INDI record for id (e.g. @I123@ or
I123). Includes events, residences, sources, multimedia
refs, family links, suggested slug, and external_ids shaped per
the workspace's content schema.
Returns {"error": "..."} if no such record exists.
Inputs: id (required). Returns: object
get_sourcesA
Source citations attached to the individual and their immediate events.
Includes Ancestry's _APID codes when present.
Inputs: individual_id (required). Returns: result
infoA
Return basic info about the loaded GEDCOM: file path, tree id (if Ancestry), and counts of major record types.
Inputs: no named parameters. Returns: object
list_ancestorsA
Ancestors of the given individual, up to generations levels.
Each result includes a generation field (1 = parent, 2 = grandparent…).
Inputs: individual_id (required), generations. Returns: result
list_childrenA
Children of the given individual across all spouse families.
Inputs: individual_id (required). Returns: result
list_descendantsA
Descendants of the given individual, up to generations levels.
Inputs: individual_id (required), generations. Returns: result
suggest_slugA
Apply the workspace folder-slug rule from AGENTS.md to the given record.
For an INDI: <surname>-<given>-<birthyear>.
For a FAM: <husband-surname>-<wife-surname>-<marriageyear>.
unknown is used for missing year. Slugs are lowercase ASCII,
hyphen-separated. Returns the slug plus the inputs used to derive it
so the caller can sanity-check.
Inputs: id (required). Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool has a distinct purpose: get_* fetches by ID, find_* searches by criteria, list_* traverses relations, and get_sources/suggest_slug handle dedicated concerns. The potential overlap between get_family and list_children is minor as they take different inputs and serve different queries.
Tools follow a consistent verb_noun pattern with get_ (by ID), find_ (search), and list_ (relation traversal). The 'info' tool breaks the pattern, and 'suggest_slug' uses a less common verb, but the overall structure is predictable.
Ten tools is well within the ideal range for a focused domain server. Each tool addresses a core genealogy query or workspace utility with no redundancy.
The server covers the full read-only lifecycle: retrieval by ID, search by name/family, ancestor/descendant traversal, source citations, and a slug utility. There are no obvious dead ends or missing operations for its stated purpose.
Maintenance
Related MCP Connectors
Read and search folders on your own computer with explicit consent. Files are never uploaded.
Search and read free, scanned AI agent skills and configs. Read-only, no account.
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Long-term memory for you and your AIs: search memories, read the profile, add facts and documents.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceAllows the AI to read .ged files and genetic data.37MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to create, edit, and query genealogical data from GEDCOM files. Supports complex genealogy searches, automatic data enrichment from web sources, relationship analysis, and biography generation for individuals and families.17MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Gramps genealogy databases for intelligent family tree research and management. Provides comprehensive tools for searching family data, creating records, analyzing relationships, and tracking genealogy research through natural language.51AGPL 3.0
- AlicenseAqualityDmaintenanceEnables AI assistants to load and query local GEDCOM genealogy files, supporting search, browsing, and family tree traversal.22AGPL 3.0