FamilySearch Server
FreeNot checkedEnables AI assistants to search FamilySearch's Family Tree, view person details, explore ancestors and descendants, and search historical records using browser
About
Enables AI assistants to search FamilySearch's Family Tree, view person details, explore ancestors and descendants, and search historical records using browser session authentication.
README
A local Model Context Protocol (MCP) server for FamilySearch. Gives AI assistants access to search the Family Tree, view person details, explore ancestors and descendants, and search historical records.
Features
- Family Tree search — find individuals by name, dates, places, and gender
- Person details — view a person card by ID
- Pedigree exploration — ancestors (up to 8 generations) and descendants (up to 3)
- Historical records — search record collections
- Browser session auth — log in once with Brave; no FamilySearch API key required
How it works
FamilySearch does not approve direct API access for most personal projects. This server reuses your browser session cookies and calls the same internal /service/ endpoints the website uses. Your session is stored locally at ~/.familysearch-mcp/config.json.
Prerequisites
- Node.js 18+ and npm
- Brave browser — Playwright's bundled Chromium is blocked by FamilySearch bot detection
- A free FamilySearch account
Installation
1. Clone and build
git clone https://github.com/JonathanReiss15/familysearch-mcp.git
cd familysearch-mcp
npm install
npm run build
2. Log in to FamilySearch
npm run login
This opens Brave with a dedicated profile. Sign in when prompted. Your session is saved to ~/.familysearch-mcp/config.json.
Tip: You can also ask your AI assistant to run the
login-with-browsertool after the MCP is connected.
3. Configure your MCP client
Add the server to your client using stdio transport. Replace /path/to/familysearch-mcp with the absolute path to this repo.
Recommended config (uses cwd so you don't need absolute paths in args):
{
"mcpServers": {
"familysearch": {
"command": "node",
"args": ["build/index.js"],
"cwd": "/path/to/familysearch-mcp"
}
}
}
Run npm run build whenever you pull changes.
MCP client setup
Cursor
Project-scoped — create .cursor/mcp.json in your project (or add globally in Cursor Settings → MCP):
{
"mcpServers": {
"familysearch": {
"command": "node",
"args": ["build/index.js"],
"cwd": "/path/to/familysearch-mcp"
}
}
}
Restart Cursor or reload MCP servers after saving.
Claude Desktop
Edit claude_desktop_config.json:
| Platform | Config path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
{
"mcpServers": {
"familysearch": {
"command": "node",
"args": ["build/index.js"],
"cwd": "/path/to/familysearch-mcp"
}
}
}
Restart Claude Desktop after saving.
Claude Code
From the repo directory:
claude mcp add familysearch -- node build/index.js
Or with an absolute path from anywhere:
claude mcp add familysearch -- node /path/to/familysearch-mcp/build/index.js
Verify with claude mcp list.
Codex
From the repo directory (after npm run build):
codex mcp add familysearch -- node build/index.js
Or add to ~/.codex/config.toml:
[mcp_servers.familysearch]
command = "node"
args = ["build/index.js"]
cwd = "/path/to/familysearch-mcp"
Use /mcp in Codex to confirm the server is connected.
This repo also includes .codex/config.toml for project-scoped config when the directory is trusted.
VS Code
Add to your user MCP config (Command Palette → MCP: Open User Configuration) or .vscode/mcp.json in a workspace:
{
"servers": {
"familysearch": {
"command": "node",
"args": ["build/index.js"],
"cwd": "/path/to/familysearch-mcp"
}
}
}
Windows
If node is not found, use the full path to your Node executable. For clients that struggle with direct node invocation, wrap with cmd:
{
"mcpServers": {
"familysearch": {
"command": "cmd",
"args": ["/c", "node", "build/index.js"],
"cwd": "C:\\path\\to\\familysearch-mcp"
}
}
}
Authentication
Option 1: Browser login (recommended)
npm run login
Opens Brave (not headless Chromium) to avoid FamilySearch bot detection.
Option 2: Copy cookies manually
- Log in at familysearch.org
- In DevTools → Console, run:
copy(document.cookie) - Use the
set-session-cookieMCP tool with the copied string
The full cookie string is required — bot protection cookies like reese84 and incap_ses_* must be included, not just fssessionid.
Tools
| Tool | Description |
|---|---|
login-with-browser |
Open Brave, log in, and save session locally |
set-session-cookie |
Authenticate by pasting cookies from your browser |
get-current-user |
View your authenticated account info |
search-persons |
Search individuals in the Family Tree |
get-person |
Get details for a person by ID |
get-ancestors |
View ancestors (default 4 generations, max 8) |
get-descendants |
View descendants (default 2 generations, max 3) |
search-records |
Search historical record collections |
Example prompts
Search for persons named "John Smith" born in "New York"
Get person with personId G2KQ-JTH
Get 4 generations of ancestors for personId G2KQ-JTH
Search historical records for surname "Reiss" in "Pennsylvania"
Troubleshooting
| Problem | Fix |
|---|---|
| "Not authenticated" errors | Run npm run login or use set-session-cookie |
| Session expired / 401 errors | Re-run npm run login |
| "Request blocked by FamilySearch security (error 15)" | Re-run npm run login to refresh bot-protection cookies |
| Brave not found | Install Brave or set BRAVE_PATH to your Brave executable |
| MCP tools not appearing | Confirm npm run build succeeded and restart your MCP client |
node not found |
Use the full path to your Node binary in the MCP config |
Security
- Session cookies are stored locally in
~/.familysearch-mcp/config.json - They grant the same access as your browser session — never share this file
- Sessions expire after inactivity; re-authenticate when tools return auth errors
- This server runs locally over stdio; no data is sent to third parties
License
MIT
Installing FamilySearch Server
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/JonathanReiss15/familysearch-mcpFAQ
Is FamilySearch Server MCP free?
Yes, FamilySearch Server MCP is free — one-click install via Unyly at no cost.
Does FamilySearch Server need an API key?
No, FamilySearch Server runs without API keys or environment variables.
Is FamilySearch Server hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install FamilySearch Server in Claude Desktop, Claude Code or Cursor?
Open FamilySearch Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Playwright
Browser automation, scraping, screenshots
by MicrosoftPuppeteer
Browser automation and web scraping.
by modelcontextprotocolopentabs-dev/opentabs
Plugin-based MCP server + Chrome extension that gives AI agents access to web applications through the user's authenticated browser session. 100+ plugins with a
by opentabs-devrobhunter/agentdeals
1,500+ developer infrastructure deals, free tiers, and startup programs across 54 categories. Search deals, compare vendors, plan stacks, and track pricing chan
by robhunterCompare FamilySearch Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All browse MCPs
