NestDaddy

Gramps Web MCP

io.github.Scormave/gramps-web-mcp · v2.10.0

MCP server for structured access to Gramps Web genealogy data

Connect Runs on your machine

Terminal
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
claude_desktop_config.json
{
  "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>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "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>"
      }
    }
  }
}
.vscode/mcp.json
{
  "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

NameDescription
MCP_TRANSPORT
Optional
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_URL
Required
Base URL of your Gramps Web instance
GRAMPS_USERNAME
Optional
Gramps Web API username; required with GRAMPS_PASSWORD unless GRAMPS_REFRESH_TOKEN is set
GRAMPS_PASSWORD
Optional, secret
Gramps Web API password; required with GRAMPS_USERNAME unless GRAMPS_REFRESH_TOKEN is set
GRAMPS_REFRESH_TOKEN
Optional, secret
Refresh token for instances with password login disabled; replaces GRAMPS_USERNAME and GRAMPS_PASSWORD
GRAMPS_TREE_ID
Required
Gramps Web tree UUID
GRAMPS_READ_ONLY
Optional
Set to true to block create, update, and delete tools
GRAMPS_MUTATION_SERIALIZE
Optional
Serialize create/update/delete HTTP calls in-process (set false to allow parallel writes)
GRAMPS_MUTATION_MIN_INTERVAL_MS
Optional
Minimum milliseconds between mutation HTTP calls. Use 250 or 500 on SQLite if you see database is locked
GRAMPS_CONFIRMATION
Optional
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_LEVEL
Optional
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_ENABLED
Optional
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_BYTES
Optional
Maximum bytes returned by read_media or a media resource
GRAMPS_MEDIA_ALLOW_PRIVATE
Optional
Set to true to return bytes for media records marked private
GRAMPS_MEDIA_UPLOAD_DIRS
Optional
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_BYTES
Optional
Largest file create_media or update_media uploads

Details

Packageghcr.io/scormave/gramps-web-mcp:2.10.0 (OCI, stdio)
First published10 Nov 2026
Last updated10 Nov 2026
Registry nameio.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.