Skip to main content
Glama
Genealogy-MCP

wikitree-mcp

wikitree-mcp

MCP server exposing WikiTree's genealogy API via the Code Mode architecture. Public profiles only — no authentication required.

Note: GitHub is a read-only mirror. Development happens on GitLab.

Architecture

This server uses 2 meta-tools (search + execute) with 10 operations in a server-side registry. The LLM discovers operations via search and runs them via execute.

Tool

Description

search

Discover available operations and their parameters

execute

Run a named operation against the WikiTree API

Operations

Operation

Category

Description

get_profile

read

Retrieve a person or free-space profile

get_person

read

Retrieve a person profile (person profiles only)

get_people

read

Fetch multiple profiles by keys or relationships

search_person

search

Search profiles by name, dates, location, gender

get_ancestors

analysis

Get ancestor tree (parents, grandparents, etc.)

get_descendants

analysis

Get descendant tree (children, grandchildren, etc.)

get_relatives

read

Get parents, children, siblings, spouses

get_bio

content

Retrieve biography text

get_photos

content

Get photos linked to a profile

get_categories

content

Retrieve associated categories

Related MCP server: Gramps MCP

Configuration

Environment Variable

Required

Default

Description

WIKITREE_APP_ID

No

Genealogy-MCP_wikitree-mcp

Your application identifier for the WikiTree API

WIKITREE_API_BASE_URL

No

https://api.wikitree.com/api.php

WikiTree API endpoint

WIKITREE_HTTP_TIMEOUT

No

10.0

HTTP request timeout in seconds

WIKITREE_MAX_RETRIES

No

3

Max retry attempts for transient failures

Setup: Claude Desktop

Add to your claude_desktop_config.json:

Using uv (local)

{
  "mcpServers": {
    "wikitree": {
      "command": "uv",
      "args": ["--directory", "/path/to/wikitree-mcp", "run", "wikitree-mcp"],
      "env": {
        "WIKITREE_APP_ID": "your-app-id"
      }
    }
  }
}

Using Docker

{
  "mcpServers": {
    "wikitree": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "WIKITREE_APP_ID=your-app-id", "wikitree-mcp"]
    }
  }
}

Setup: Claude Code

Using uv (local)

claude mcp add wikitree -- uv --directory /path/to/wikitree-mcp run wikitree-mcp

Set the environment variable:

export WIKITREE_APP_ID=your-app-id

Using Docker

claude mcp add wikitree -- docker run -i --rm -e WIKITREE_APP_ID=your-app-id wikitree-mcp

Development

make install       # Install dependencies
make test          # Run tests with coverage (mocked, no network)
make test-live     # Run live tests against real WikiTree API
make ci            # Full CI pipeline (lint + typecheck + test + audit)
make format        # Auto-format code
make build         # Build wheel
make run           # Run with streamable-http on port 8000
make run-stdio     # Run with stdio transport

License

AGPL-3.0-only

Available Tools

2 tools
executeA
Read-only

Run a named operation against the WikiTree API. Use 'search' first to discover the exact operation name and its params schema, then call this with {operation: '...', params: {...}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
argumentsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's 'Run' aligns with a safe read operation. No additional behavioral traits disclosed beyond the discovery process, which is useful but limited.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with action and purpose. No wasted words; every sentence contributes to clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the dynamic nature of operations and presence of an output schema, the description adequately prepares the agent by linking to the 'search' tool. Could mention what happens on failure or how to interpret output, but output schema likely covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema parameter descriptions are present but context signal indicates 0% coverage, so description compensates by showing the exact call pattern {operation: '...', params: {...}}. Adds practical guidance beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states tool runs a named operation against the WikiTree API. Verb 'Run' is specific, and resource is the API. Sibling 'search' is for discovering operations, distinguishing this tool as the execution step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use 'search' first to discover operation names and parameters before calling this tool. Provides a clear pattern but lacks explicit when-not-to-use or alternative scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv3.0.1
    • First observedexecute
    • First observedsearch

TDQS

A4.3/5.0

Scored across 2 tools

Disambiguation5/5

The tools 'search' and 'execute' have clearly distinct purposes: one discovers operations and schemas, the other executes them. No overlap.

Naming Consistency5/5

Both tools use simple, consistent verb-only names ('search', 'execute') that clearly reflect their actions.

Tool Count3/5

With only 2 tools, the surface seems thin, but the design intentionally uses a meta-pattern where 'search' discovers API operations. This can be appropriate for a large dynamic API, though it may feel sparse.

Completeness3/5

The discover-execute pattern covers the basic interaction with the WikiTree API, but it lacks direct CRUD tools and relies entirely on dynamic discovery, which may leave gaps in common workflows.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to create, edit, and query genealogical data from GEDCOM files. Supports complex genealogy searches, automatic data enrichment from web sources, relationship analysis, and biography generation for individuals and families.
    15
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Gramps genealogy databases for intelligent family tree research and management. Provides comprehensive tools for searching family data, creating records, analyzing relationships, and tracking genealogy research through natural language.
    42
    AGPL 3.0
  • A
    license
    B
    quality
    C
    maintenance
    Integrates with the WikiTree API to provide tools for exploring genealogical data, including ancestor and descendant information. It enables users to retrieve biographies and family relationships through any application supporting the Model Context Protocol.
    5
    1
    Apache 2.0