Gramps Web Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Gramps Web Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Companion MCP server for the Gramps Web open-source genealogy platform. It gives AI agents structured, tool-based access to family trees through the Model Context Protocol.
This project is not a standalone genealogy UI or replacement for Gramps Web. Run it alongside an existing Gramps Web instance; your users, trees, media, permissions, and genealogy editing UI stay in Gramps Web.
sources, citations, notes, media, repositories, and tags
settings, and opt-in media thumbnails/files for vision-capable agents
See the tool catalog for the full list.
run-local-server.sh connects to the public demo.grampsweb.org instance using well-known demo credentials (owner / owner):
./run-local-server.shThe server starts with HTTP transport at http://127.0.0.1:8080/mcp.
Pre-built multi-arch images (linux/amd64, linux/arm64) are published to GitHub Container Registry. Docker picks the matching architecture automatically; amd64 covers most Unraid and x86 hosts, arm64 covers Apple Silicon and ARM SBCs:
docker pull ghcr.io/scormave/gramps-web-mcp:latest
docker run -p 8080:8080 \
-e GRAMPS_API_URL=https://your-gramps.example.com \
-e GRAMPS_USERNAME=your-user \
-e GRAMPS_PASSWORD=your-password \
-e GRAMPS_TREE_ID=your-tree-uuid \
ghcr.io/scormave/gramps-web-mcp:latestThe image exposes a `GET /health` endpoint for Docker HEALTHCHECK, Unraid container health, and other uptime monitors. It returns HTTP 200 when the MCP server can authenticate against Gramps Web, or HTTP 503 otherwise. The public response is minimal by default: { "status": "healthy" } or { "status": "unhealthy" }. Startup logs include a line such as Connected to Gramps Web at … once the API is reachable.
For read-only mode, add -e GRAMPS_READ_ONLY=true:
docker run -p 8080:8080 \
-e GRAMPS_API_URL=https://your-gramps.example.com \
-e GRAMPS_USERNAME=your-user \
-e GRAMPS_PASSWORD=your-password \
-e GRAMPS_TREE_ID=your-tree-uuid \
-e GRAMPS_READ_ONLY=true \
ghcr.io/scormave/gramps-web-mcp:latestUnraid users can install gramps-web-mcp from Community Applications. The template source is maintained at Scormave/gramps-web-mcp-unraid. For Unraid-specific help, see the support thread on the Unraid forums.
Basic setup:
gramps-web-mcp and install the template.GRAMPS_API_URL, GRAMPS_USERNAME, GRAMPS_PASSWORD, and GRAMPS_TREE_ID.
8080, or map it to another host port./health; it returns HTTP 200 once the servicecan authenticate to Gramps Web, with a minimal JSON response by default.
For the easiest pairing, run Gramps Web and gramps-web-mcp on the same Unraid Docker network and set GRAMPS_API_URL to the Gramps Web container URL. The MCP endpoint for clients is http://<unraid-host>:<mapped-port>/mcp.
To run Gramps Web and the MCP server on the same host and Docker network, use docker-compose.example.yml as a starting point:
cp docker-compose.example.yml docker-compose.yml
cp .env.example .env
# Complete the Gramps Web setup wizard, then set credentials in .env
docker compose up -dGramps Web is published on port 5055; MCP is on 8080 (/mcp and /health). Inside the compose network the MCP container reaches Gramps Web at http://grampsweb:5000.
One-click install for Claude Desktop is available as an MCP Bundle (.mcpb) from GitHub Releases. Download the bundle for your platform:
| Platform | Artifact |
|---|---|
| macOS Apple Silicon | gramps-web-mcp-claude-desktop-osx-arm64-v*.mcpb |
| macOS Intel | gramps-web-mcp-claude-desktop-osx-x64-v*.mcpb |
| Windows x64 | gramps-web-mcp-claude-desktop-win-x64-v*.mcpb |
.mcpb file for your OS from the latest release.want Claude to create or edit records.
The extension runs locally over stdio and does not require the .NET SDK on your machine. See mcpb/README.md for packaging details and PRIVACY.md for the privacy policy.
To build a bundle locally:
./scripts/pack-mcpb.sh osx-arm64 # or osx-x64, win-x64stdio (e.g. Claude Desktop, Cursor):
{
"mcpServers": {
"gramps-web": {
"command": "dotnet",
"args": ["run", "--project", "/path/to/gramps-web-mcp/GrampsWeb.Mcp/GrampsWeb.Mcp.csproj"],
"env": {
"MCP_TRANSPORT": "stdio",
"GRAMPS_API_URL": "https://your-gramps.example.com",
"GRAMPS_USERNAME": "your-user",
"GRAMPS_PASSWORD": "your-password",
"GRAMPS_TREE_ID": "your-tree-uuid"
}
}
}
}To run a stdio server in read-only mode, add "GRAMPS_READ_ONLY": "true" to env.
HTTP (remote / Docker):
Point your MCP client at http://host:8080/mcp with Streamable HTTP transport.
Vision-capable agents can read opt-in media through tools (GetMediaThumbnail, GetMediaFile) for clients such as Open WebUI, or through binary MCP resources such as gramps://media/{handle}/thumbnail/{size} and gramps://media/{handle}/file in clients with resource support. End-to-end image/document analysis depends on the MCP client forwarding image or binary content to a model with vision support.
| Variable | Description |
|---|---|
GRAMPS_API_URL | Base URL of your Gramps Web instance (no trailing slash) |
GRAMPS_USERNAME | API user name |
GRAMPS_PASSWORD | API password or token |
GRAMPS_TREE_ID | Tree UUID on that server |
| Variable | Behavior | Default |
|---|---|---|
GRAMPS_READ_ONLY=true | Blocks create, update, and delete mutation calls while keeping tools visible | read/write |
Media byte tools/resources are disabled by default. get_media remains available for metadata without enabling file downloads.
| Variable | Description | Default |
|---|---|---|
GRAMPS_MEDIA_RESOURCES_ENABLED | Enables binary media tools/resources for thumbnails and full files | false |
GRAMPS_MEDIA_MAX_BYTES | Maximum bytes returned by any media resource | 5242880 |
GRAMPS_MEDIA_ALLOWED_MIME_TYPES | Comma-separated allowlist; exact types and type/* wildcards are supported | image/jpeg,image/png,image/webp,image/avif,application/pdf |
GRAMPS_MEDIA_ALLOW_PRIVATE | Allows bytes for Gramps media records marked private | false |
Prefer GetMediaThumbnail or gramps://media/{handle}/thumbnail/{size} for AI analysis. Full files can be large and sensitive, and are still subject to the same size, MIME, and private-record checks.
Set GRAMPS_API_URL, GRAMPS_USERNAME, GRAMPS_PASSWORD, and GRAMPS_TREE_ID as usual.
MCP_TRANSPORT | Behavior |
|---|---|
| (unset or `stdio`) | JSON-RPC over stdin/stdout (default; local clients). |
http | Streamable HTTP at MCP_PATH (default /mcp). Responses stream over SSE. Set ASPNETCORE_URLS (e.g. http://127.0.0.1:8080). |
sse | Legacy MCP SSE: GET {MCP_PATH}/sse + POST {MCP_PATH}/message. Stateful; use for older clients only. |
| Variable | Description | Default |
|---|---|---|
ASPNETCORE_URLS | Listen URLs for HTTP/SSE | — |
MCP_PATH | URL prefix for MCP endpoints | /mcp |
MCP_STATELESS | Stateless mode for Streamable HTTP | true |
MCP_ENABLE_LEGACY_SSE | Expose legacy /sse with http transport | false |
dotnet testSee CONTRIBUTING.md and the developer guide.
| Document | Description |
|---|---|
| docs index | All documentation files |
| Tool catalog | Complete MCP tool reference |
| Claude Desktop MCPB | Desktop extension packaging |
| Privacy policy | Data handling for the desktop extension |
| System prompt | Suggested prompt for MCP clients |
| Architecture | System design overview |
Contributions are welcome. See CONTRIBUTING.md.
To report a vulnerability, see SECURITY.md.
The Claude Desktop extension is a local MCP server. It sends data only to the Gramps Web instance you configure and does not collect analytics or conversation data. See PRIVACY.md for full details.
Copyright (c) Scormave
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-or-later). Because this is network server software, hosting a modified version requires making the corresponding source available to users interacting with it over a network.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.