ctrimm/local-mcp-server-ancestry
If you are the rightful owner of local-mcp-server-ancestry and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A Model Context Protocol (MCP) server for exploring genealogy data on Ancestry.com.
Ancestry.com MCP Server
A Model Context Protocol (MCP) server for exploring genealogy data on Ancestry.com. This server provides tools to search for people, extract family tree information, and generate historical narratives.
Features
- Authentication: Login to Ancestry.com using credentials
- Person Search: Search for individuals by name, dates, and location
- Profile Details: Extract detailed information from person profiles
- Family Tree Navigation: Explore family relationships across generations
- Historical Records: Access attached records and documents
- Timeline Extraction: Get chronological life events
- Narrative Generation: Create historical narratives with contextual information
Installation
npm install
Configuration
For Claude Desktop
Add this to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"ancestry": {
"command": "node",
"args": ["/path/to/ancestry-mcp-server/index.js"],
"env": {
"ANCESTRY_USERNAME": "your-username@email.com",
"ANCESTRY_PASSWORD": "your-password"
}
}
}
}
For Other MCP Clients
Set environment variables:
export ANCESTRY_USERNAME="your-username@email.com"
export ANCESTRY_PASSWORD="your-password"
Available Tools
ancestry_login
Login to Ancestry.com using configured credentials.
{}
ancestry_search_person
Search for a person by name and optional criteria.
{
"firstName": "John",
"lastName": "Smith",
"birthYear": "1850",
"deathYear": "1920",
"location": "New York"
}
ancestry_get_person_details
Get detailed information about a person from their profile.
{
"profileUrl": "https://www.ancestry.com/family-tree/person/tree/..."
}
ancestry_get_tree_view
Explore family tree relationships.
{
"treeUrl": "https://www.ancestry.com/family-tree/tree/...",
"generations": 3
}
ancestry_get_records
Get historical records attached to a person.
{
"profileUrl": "https://www.ancestry.com/family-tree/person/tree/..."
}
ancestry_get_timeline
Extract timeline of life events.
{
"profileUrl": "https://www.ancestry.com/family-tree/person/tree/..."
}
generate_historical_narrative
Generate a narrative story about a person's life with historical context.
{
"personData": {
"name": "John Smith",
"birthDate": "1850-03-15",
"birthPlace": "New York, NY",
"deathDate": "1920-12-01",
"deathPlace": "Boston, MA",
"events": [
{
"type": "Marriage",
"date": "1875-06-20",
"location": "New York, NY"
},
{
"type": "Immigration",
"date": "1848-01-10",
"location": "Ellis Island, NY"
}
]
},
"includeWorldEvents": true,
"includeRegionalHistory": true
}
Usage Examples
With Claude Desktop
Once configured, you can use natural language:
"Search for John Smith born around 1850 in New York"
"Get the family tree for this person"
"Create a narrative about their life with historical context"
Programmatic Usage
// The MCP server runs as a subprocess
// Tools are called via the MCP protocol
Architecture
- Playwright: Headless browser automation for Ancestry.com navigation
- MCP SDK: Standard protocol for tool communication
- Node.js: Runtime environment
Security Notes
- Credentials are stored in your local MCP config file
- The server runs locally on your machine
- Browser automation is performed in headless mode
- No data is sent to external services (except Ancestry.com)
Limitations
- Requires active Ancestry.com subscription
- Web scraping may be affected by site updates
- Rate limiting may apply
- Some features require specific subscription tiers
Development
The server uses Playwright selectors that may need updating if Ancestry.com changes their HTML structure. Check index.js for selector definitions.
Troubleshooting
Login fails: Verify credentials in config file
Selectors not working: Ancestry.com may have changed their HTML structure
Browser crashes: Check Playwright installation: npx playwright install chromium
License
MIT
Contributing
This is a personal project. Feel free to fork and customize for your needs.