Skip to main content
Glama

Find relationship between two relatives

find_relationship
Read-onlyIdempotent

Use this when the user asks how two people in their family are related (for example second cousin once removed, great-aunt, half-brother, mother-in-law, stepsister) and gives the family links. Pass the same people list as for the family tree and the two people. Computes the exact English kinship term both ways, the closest common ancestors and the generations to them. Does not guess missing links or research genealogy records; DNA matches and percentages are not covered.

Input Schema

NameRequiredDescriptionDefault
peopleYesEveryone in the tree (1-200 people), each with an id, a name and links to parents/spouses by id.
person_aYesId or name of the first person (the one asking), e.g. p7.
person_bYesId or name of the relative to describe, e.g. p3.

Output Schema

NameRequiredDescriptionDefault
kindYes
reverseYes
person_aYes
person_bYes
warningsYes
explanationYes
relationshipYes
common_ancestorsYes
generations_from_aYes
generations_from_bYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds genuinely new behavioral facts: results are computed in both directions, include closest common ancestors and generation counts, and missing links are never inferred. It doesn't need to explain return values because an output schema exists.

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?

Three sentences, front-loaded with the trigger condition, followed by the required input and then the output/limits. No sentence is redundant; the examples earn their space by pinning down the term space.

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?

With annotations, a full output schema and 100%-covered parameters, the description only needs to supply intent and scope, which it does. The one residual gap is that it never names generate_family_tree as the alternative for callers who want a diagram instead of a named relationship.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters in detail, and the description's framing ('Pass the same people list as for the family tree and the two people') restates rather than extends it. The role hints (person_a = the one asking, person_b = the relative to describe) duplicate existing schema descriptions. Baseline 3 is appropriate.

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?

Specific verb ('Computes the exact English kinship term both ways, the closest common ancestors and the generations to them') anchored to a named resource: kinship between two people. The examples (second cousin once removed, great-aunt, half-brother, mother-in-law, stepsister) make the scope unambiguous and clearly separate it from the sibling generate_family_tree, which draws a tree rather than naming a relationship.

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?

It opens with an explicit trigger ('Use this when the user asks how two people in their family are related ... and gives the family links') and adds concrete exclusions ('Does not guess missing links or research genealogy records; DNA matches and percentages are not covered'). However, the sibling tool generate_family_tree is never named as the alternative, so routing to it is only implied by 'same people list as for the family tree'.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources