Skip to main content
Glama
jaiamin
by jaiamin

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FAMILY_TREE_DIRNoDirectory used to store family tree JSON files. Defaults to ~/.family-tree-mcp/.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": false,
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_treesA

List all trees with stable UUIDs, descriptions and membership counts.

get_websiteB

Read site identity and publication status; never exposes the photo editing code.

configure_websiteA

Set website title and Cloudflare project independently of tree names.

Choose project before the first publication. Changing a published project requires a separate installation so its photo storage and URL cannot be reassigned by accident.

set_tree_membersA

Add existing collection people to a tree, or remove membership only.

Reuse UUIDs found with find_people (omit tree to search all people). Relationships are visible whenever both endpoints belong to the tree; no person is copied. Removing membership preserves the person's record and all global relationships.

create_treeB

Create a new, empty family tree.

rename_treeA

Rename a tree. People, backups and relationships are kept.

delete_treeA

Delete only a tree definition. Shared people remain; undo restores the tree.

undoA

Revert the last collection-wide transaction, including all affected trees.

This is global history, not per-tree history. Undone changes cannot be redone.

get_treeA

Return the whole tree: every person with their parent and partner ids.

add_peopleA

Add one or many people and their parent, partner and sibling links in one call.

Use a one-entry list to add a single person. Each entry can link to others in the batch by their ref (or name) and to existing people by id. All entries are added, or none are if any link is invalid.

update_peopleA

Change many existing people at once: details and renames, then links to add or remove.

Use for one or many person updates or relationship changes. Each link reads "relative_id is person_id's relation"; set remove=true to remove it. Everything applies, or nothing does if any entry fails, and undo reverts it all in one step. To add new people, use add_people.

merge_peopleA

Merge a duplicate into keep_id, then remove the duplicate.

Applies across EVERY tree. Fills keep_id's missing details from the duplicate and moves its parents, partners and children. Also use it to replace a placeholder parent with the real person.

remove_personA

Delete a person and all relationships from EVERY tree.

To remove only their appearance in one tree, use set_tree_members(remove=True).

find_peopleA

Find names matching every query word. Omit tree to search the shared collection.

Search globally before creating people; reuse existing UUIDs with set_tree_members.

get_personA

Get a person's details with their parents, partners, children and siblings.

check_treeA

List things to review: children linked to only one of a couple, people with the same name, and placeholder parents. Report them to the user rather than fixing them unasked.

get_relationshipA

Name how relative_id is related to person_id (e.g. "first cousin once removed").

get_ancestorsA

List a person's ancestors by generation (1 = parents, 2 = grandparents, ...).

get_descendantsA

List a person's descendants by generation (1 = children, 2 = grandchildren, ...).

export_websiteB

Build the complete site locally, including chooser and every tree, without deploying.

publish_siteA

Publish the ENTIRE configured website: chooser and all trees.

First call configure_website. All collection trees are public; living dates, places and notes are hidden by default. Automatic updates rebuild the entire site after edits pause. Publishing requires Cloudflare authentication; photos use a site-wide code.

change_photo_codeB

Replace the site-wide photo editing code and republish the complete website.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 22 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions, with explicit guidance separating overlapping areas such as remove_person vs. set_tree_members(remove=True), add_people vs. update_people, and publish_site vs. export_website. There are still several adjacent people/tree/website operations that an agent must parse carefully, but the descriptions generally resolve the boundaries.

Naming Consistency5/5

Tool names follow a consistent verb_noun convention throughout: configure_website, create_tree, rename_tree, add_people, update_people, merge_people, find_people, get_relationship, export_website, and so on. The only minor deviation is the bare 'undo', but it is still a clear action name within an otherwise predictable pattern.

Tool Count3/5

At 22 tools, the surface is heavy for a family-tree server, even though the tools cover several coherent subdomains: trees, people, relationships, website publishing, and review checks. Most tools earn their place, but the overall count sits in the borderline-heavy range and could likely be consolidated.

Completeness4/5

The core lifecycle is well covered: tree CRUD, people add/update/remove/merge/find/get, relationship queries, global undo, website configure/publish/export, and review checks. Minor gaps remain around backup/restore management, editing tree descriptions, and unpublishing an already published website, but these are not fatal to the main workflows.

Maintenance

ActivityMaintained
ResponsivenessResponsive