Skip to main content
Glama
family-tree-mcp
by jaiamin

Merge People

merge_people
Destructive

Merge duplicate person records into a primary profile, transferring missing details and moving parents, partners, and children across all trees. Replace placeholder parents with real individuals.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
treeYesStable tree UUID (preferred) or exact name, as shown by list_trees.
keep_idYesPerson UUID, as returned by add_people or find_people.
duplicate_idYesPerson UUID, as returned by add_people or find_people.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only declare destructiveHint=true; the description goes further by specifying what survives (keep_id's missing details are filled, parents/partners/children are moved) and what is destroyed (the duplicate record). The 'applies across EVERY tree' note is important operational context. Minor gap: it does not say whether the merge is reversible via undo.

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 tight sentences with the primary operation front-loaded and secondary use case after. No filler.

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?

Output schema and annotations cover the return shape and safety profile, so the description only needed direction, consequences, and scope — all present. The one loose end is whether `tree` must contain both people when the merge spans trees.

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 coverage is 100%, so the baseline is 3, but the description adds real semantic value by defining the asymmetric roles of keep_id (survivor) and duplicate_id (consumed) — the schema only calls both 'Person UUID'. The meaning of the required `tree` parameter in a cross-tree merge remains slightly unclear.

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?

States a specific verb+resource (merge a duplicate) with explicit directionality (into keep_id) and the resulting effect (then remove the duplicate). This makes it trivially distinguishable from remove_person or update_people in the sibling list.

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?

Gives two concrete usage contexts: deduplicating records and replacing a placeholder parent with the real person. It also flags the cross-tree scope. It lacks an explicit 'do not use when...' clause, but there is no competing merge tool among the siblings, so the guidance is effectively complete.

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