Skip to main content
Glama
ball2jh

ancestry-com-mcp

by ball2jh

person

Destructive

Find, add, update, and link people in Ancestry family trees. View profiles, relationships, and family graphs, with actions for adding or removing relationships.

Instructions

People in a tree (also works read-only on other members' public trees). Actions: list (100/page, optional name filter; brief rows — use get for details) · find (name autocomplete → PID, years) · get (full profile: facts with assertionIds, citations, sources, relationships with modifiers, notes, web links; set includeSourceDetails for full source bibliographies) · family_view (ancestors/descendants graph) · relationship_to_home · add (NEW person related to anchorPersonId as Father/Mother/Spouse/Child/Sibling) · link_existing (link two existing people) · update (quick edit name/gender/living/birth/death; omitted fields kept) · change_relationship (modifier codes: parent-child pcb biological, pca adopted, pcs step, pcf foster; spouse spu spouse, spx ex, spp partner) · remove_relationship (unlink, keeps both people) · delete (permanent; displayName must equal "First Last"). Living people: add/update default to deceased; a person marked living is hidden from everyone the tree is shared with and from public view, and Ancestry auto-marks people born within ~100 years with no death as living in some views — set living explicitly. type codes for relationship actions are the related person's role seen from personId: F father, M mother, C child, H husband, W wife.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNolist: name filter; find: search term
pageNo
typeNo
viewNo
actionYes
genderNo
livingNo
suffixNo
treeIdNoTree id from tree.list
lastNameNo
modifierNo
personIdNoPlain numeric person id (from person.list/find/get)
birthDateNofree text Ancestry parses: "1 Jan 1850", "abt 1850", "bef 1850", "bet 1850 and 1860"
deathDateNosame formats as birthDate
firstNameNo
birthPlaceNo
deathPlaceNo
displayNameNo
relationshipNo
generationsUpNo
anchorPersonIdNoadd/link_existing: the existing person the relationship is anchored on
generationsDownNo
relatedPersonIdNo
attachedChildrenNoadd Spouse: existing child ids to attach to the couple
existingPersonIdNo
originalModifierNo
includeSourceDetailsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already signal destructiveHint=true and readOnlyHint=false, and the description adds rich behavioral detail: delete is permanent and requires displayName to match exactly, update keeps omitted fields, add/update default to deceased, living people are hidden from shared/public views, and remove_relationship unlinks without deleting either person. These details go well beyond the annotations.

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?

Though long, the description is densely packed and action-keyed, with each clause providing distinct operational facts and no filler. The semicolon and middle-dot structure makes the eleven actions scannable despite the length.

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?

For a high-complexity tool with 27 parameters and no output schema, the description covers a remarkable amount: list/get/find return behavior, deletion permanence and safety, living-person privacy, and modifier semantics. However, a few actions (relationship_to_home, add, link_existing, delete) lack explicit return-value or post-condition details, so it is nearly complete but not fully exhaustive.

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 description coverage is only 26%, so the description carries significant weight. It explains type codes (F/M/C/H/W), relationship values, modifier codes (pcb/pca/pcs/pcf/spu/spx/spp), the delete displayName requirement, list pagination and name filtering, includeSourceDetails, and anchorPersonId semantics. A few parameters such as view, generationsUp/generationsDown, and originalModifier remain undocumented, so it is strong but not exhaustive.

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?

The description identifies the resource as people in a tree and enumerates eleven concrete actions (list, find, get, add, update, delete, etc.), so an agent knows exactly what operations are available. While it lacks a single verb+resource phrase, the action inventory is specific and clearly separates this tool from siblings like fact, media, or notes.

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?

The description gives clear within-tool selection guidance: 'brief rows — use get for details,' add vs. link_existing vs. update vs. change_relationship distinctions, and the note about read-only access on public trees. It does not explicitly contrast with sibling tools, but it provides enough context for choosing the correct action.

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