MCP server for structured access to Gramps Web genealogy data
Connect Runs on your machine
claude mcp add gramps-web-mcp -e MCP_TRANSPORT=<MCP_TRANSPORT> -e GRAMPS_API_URL=<GRAMPS_API_URL> -e GRAMPS_USERNAME=<GRAMPS_USERNAME> -e GRAMPS_PASSWORD=<GRAMPS_PASSWORD> -e GRAMPS_REFRESH_TOKEN=<GRAMPS_REFRESH_TOKEN> -e GRAMPS_TREE_ID=<GRAMPS_TREE_ID> -e GRAMPS_READ_ONLY=<GRAMPS_READ_ONLY> -e GRAMPS_MUTATION_SERIALIZE=<GRAMPS_MUTATION_SERIALIZE> -e GRAMPS_MUTATION_MIN_INTERVAL_MS=<GRAMPS_MUTATION_MIN_INTERVAL_MS> -e GRAMPS_CONFIRMATION=<GRAMPS_CONFIRMATION> -e GRAMPS_LOG_LEVEL=<GRAMPS_LOG_LEVEL> -e GRAMPS_MEDIA_RESOURCES_ENABLED=<GRAMPS_MEDIA_RESOURCES_ENABLED> -e GRAMPS_MEDIA_MAX_BYTES=<GRAMPS_MEDIA_MAX_BYTES> -e GRAMPS_MEDIA_ALLOW_PRIVATE=<GRAMPS_MEDIA_ALLOW_PRIVATE> -e GRAMPS_MEDIA_UPLOAD_DIRS=<GRAMPS_MEDIA_UPLOAD_DIRS> -e GRAMPS_MEDIA_UPLOAD_MAX_BYTES=<GRAMPS_MEDIA_UPLOAD_MAX_BYTES> -- docker run -i --rm ghcr.io/scormave/gramps-web-mcp:2.10.0
{
"mcpServers": {
"gramps-web-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/scormave/gramps-web-mcp:2.10.0"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"GRAMPS_API_URL": "<GRAMPS_API_URL>",
"GRAMPS_USERNAME": "<GRAMPS_USERNAME>",
"GRAMPS_PASSWORD": "<GRAMPS_PASSWORD>",
"GRAMPS_REFRESH_TOKEN": "<GRAMPS_REFRESH_TOKEN>",
"GRAMPS_TREE_ID": "<GRAMPS_TREE_ID>",
"GRAMPS_READ_ONLY": "<GRAMPS_READ_ONLY>",
"GRAMPS_MUTATION_SERIALIZE": "<GRAMPS_MUTATION_SERIALIZE>",
"GRAMPS_MUTATION_MIN_INTERVAL_MS": "<GRAMPS_MUTATION_MIN_INTERVAL_MS>",
"GRAMPS_CONFIRMATION": "<GRAMPS_CONFIRMATION>",
"GRAMPS_LOG_LEVEL": "<GRAMPS_LOG_LEVEL>",
"GRAMPS_MEDIA_RESOURCES_ENABLED": "<GRAMPS_MEDIA_RESOURCES_ENABLED>",
"GRAMPS_MEDIA_MAX_BYTES": "<GRAMPS_MEDIA_MAX_BYTES>",
"GRAMPS_MEDIA_ALLOW_PRIVATE": "<GRAMPS_MEDIA_ALLOW_PRIVATE>",
"GRAMPS_MEDIA_UPLOAD_DIRS": "<GRAMPS_MEDIA_UPLOAD_DIRS>",
"GRAMPS_MEDIA_UPLOAD_MAX_BYTES": "<GRAMPS_MEDIA_UPLOAD_MAX_BYTES>"
}
}
}
}
{
"mcpServers": {
"gramps-web-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/scormave/gramps-web-mcp:2.10.0"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"GRAMPS_API_URL": "<GRAMPS_API_URL>",
"GRAMPS_USERNAME": "<GRAMPS_USERNAME>",
"GRAMPS_PASSWORD": "<GRAMPS_PASSWORD>",
"GRAMPS_REFRESH_TOKEN": "<GRAMPS_REFRESH_TOKEN>",
"GRAMPS_TREE_ID": "<GRAMPS_TREE_ID>",
"GRAMPS_READ_ONLY": "<GRAMPS_READ_ONLY>",
"GRAMPS_MUTATION_SERIALIZE": "<GRAMPS_MUTATION_SERIALIZE>",
"GRAMPS_MUTATION_MIN_INTERVAL_MS": "<GRAMPS_MUTATION_MIN_INTERVAL_MS>",
"GRAMPS_CONFIRMATION": "<GRAMPS_CONFIRMATION>",
"GRAMPS_LOG_LEVEL": "<GRAMPS_LOG_LEVEL>",
"GRAMPS_MEDIA_RESOURCES_ENABLED": "<GRAMPS_MEDIA_RESOURCES_ENABLED>",
"GRAMPS_MEDIA_MAX_BYTES": "<GRAMPS_MEDIA_MAX_BYTES>",
"GRAMPS_MEDIA_ALLOW_PRIVATE": "<GRAMPS_MEDIA_ALLOW_PRIVATE>",
"GRAMPS_MEDIA_UPLOAD_DIRS": "<GRAMPS_MEDIA_UPLOAD_DIRS>",
"GRAMPS_MEDIA_UPLOAD_MAX_BYTES": "<GRAMPS_MEDIA_UPLOAD_MAX_BYTES>"
}
}
}
}
{
"servers": {
"gramps-web-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/scormave/gramps-web-mcp:2.10.0"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"GRAMPS_API_URL": "<GRAMPS_API_URL>",
"GRAMPS_USERNAME": "<GRAMPS_USERNAME>",
"GRAMPS_PASSWORD": "<GRAMPS_PASSWORD>",
"GRAMPS_REFRESH_TOKEN": "<GRAMPS_REFRESH_TOKEN>",
"GRAMPS_TREE_ID": "<GRAMPS_TREE_ID>",
"GRAMPS_READ_ONLY": "<GRAMPS_READ_ONLY>",
"GRAMPS_MUTATION_SERIALIZE": "<GRAMPS_MUTATION_SERIALIZE>",
"GRAMPS_MUTATION_MIN_INTERVAL_MS": "<GRAMPS_MUTATION_MIN_INTERVAL_MS>",
"GRAMPS_CONFIRMATION": "<GRAMPS_CONFIRMATION>",
"GRAMPS_LOG_LEVEL": "<GRAMPS_LOG_LEVEL>",
"GRAMPS_MEDIA_RESOURCES_ENABLED": "<GRAMPS_MEDIA_RESOURCES_ENABLED>",
"GRAMPS_MEDIA_MAX_BYTES": "<GRAMPS_MEDIA_MAX_BYTES>",
"GRAMPS_MEDIA_ALLOW_PRIVATE": "<GRAMPS_MEDIA_ALLOW_PRIVATE>",
"GRAMPS_MEDIA_UPLOAD_DIRS": "<GRAMPS_MEDIA_UPLOAD_DIRS>",
"GRAMPS_MEDIA_UPLOAD_MAX_BYTES": "<GRAMPS_MEDIA_UPLOAD_MAX_BYTES>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
MCP_TRANSPORTOptional | Pinned to stdio for registry-installed containers that the client spawns itself. The image's own default is http (Streamable HTTP on port 8080) for networked Docker deployments; see the README for that setup. |
GRAMPS_API_URLRequired | Base URL of your Gramps Web instance |
GRAMPS_USERNAMEOptional | Gramps Web API username; required with GRAMPS_PASSWORD unless GRAMPS_REFRESH_TOKEN is set |
GRAMPS_PASSWORDOptional, secret | Gramps Web API password; required with GRAMPS_USERNAME unless GRAMPS_REFRESH_TOKEN is set |
GRAMPS_REFRESH_TOKENOptional, secret | Refresh token for instances with password login disabled; replaces GRAMPS_USERNAME and GRAMPS_PASSWORD |
GRAMPS_TREE_IDRequired | Gramps Web tree UUID |
GRAMPS_READ_ONLYOptional | Set to true to block create, update, and delete tools |
GRAMPS_MUTATION_SERIALIZEOptional | Serialize create/update/delete HTTP calls in-process (set false to allow parallel writes) |
GRAMPS_MUTATION_MIN_INTERVAL_MSOptional | Minimum milliseconds between mutation HTTP calls. Use 250 or 500 on SQLite if you see database is locked |
GRAMPS_CONFIRMATIONOptional | Whether delete_object, merge_objects and undo_change ask the user to confirm through MCP elicitation: when-supported, required (refuse in clients that cannot ask), or off |
GRAMPS_LOG_LEVELOptional | Server log level: Trace, Debug, Information, Warning, Error, Critical, or None. Debug and Trace also log request and response bodies, which contain genealogy data |
GRAMPS_MEDIA_RESOURCES_ENABLEDOptional | Set to true to expose read_media and the media resources for thumbnails and full files, and to allow uploads from GRAMPS_MEDIA_UPLOAD_DIRS |
GRAMPS_MEDIA_MAX_BYTESOptional | Maximum bytes returned by read_media or a media resource |
GRAMPS_MEDIA_ALLOW_PRIVATEOptional | Set to true to return bytes for media records marked private |
GRAMPS_MEDIA_UPLOAD_DIRSOptional | Absolute folders, separated by : (; on Windows), that create_media and update_media may upload photos, scans and PDFs from while GRAMPS_MEDIA_RESOURCES_ENABLED is true. Unset turns uploading off and hides create_media |
GRAMPS_MEDIA_UPLOAD_MAX_BYTESOptional | Largest file create_media or update_media uploads |
Details
| Package | ghcr.io/scormave/gramps-web-mcp:2.10.0 (OCI, stdio) |
| First published | 10 Nov 2026 |
| Last updated | 10 Nov 2026 |
| Registry name | io.github.Scormave/gramps-web-mcp |
More other servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
