Skip to main content
Glama
ianderso
by ianderso

search_people

Read-only

Find people by name substring and optional birth-year range in a Gramps Web tree. Private and likely-living records return redacted IDs unless explicitly included.

Instructions

Search people by name substring and optional birth-year range.

Bulk output: probably-living people (born < 110 years ago with no recorded death) and records marked private are returned as redacted stubs (ids only) unless include_private is set. Fetch a specific person by id with get_person if you need their detail.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesName substring to match (case-insensitive).
birth_year_maxNoLatest birth year.
birth_year_minNoEarliest birth year.
include_privateNoShow living people and private records in full. Only when the user asks for them; they are withheld by default.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint=false; the description adds genuinely non-obvious behavior: probably-living (born <110y, no recorded death) and private records are returned as redacted id-only stubs unless include_private is set. This is exactly the kind of disclosure an agent cannot get from structured fields.

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?

Front-loaded with the core purpose, then the redaction caveat, then the alternative tool. The parenthetical defining 'probably-living' earns its place, and there is 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?

There is no output schema, so the description bears the burden of describing results, and it does explain the redacted-stub output shape well. It omits return-format details like pagination or result limits, leaving a minor gap for a bulk search tool.

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 semantic value by tying include_private to the redaction behavior ('unless include_private is set') and clarifying the birth-year range scope of the search. It slightly exceeds the schema-only baseline without introducing new parameter syntax.

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 and resource ('Search people by name substring and optional birth-year range') and explicitly distinguishes the tool from the sibling get_person, which it names for detail retrieval. An agent can tell what this does and what it is not for without opening the schema.

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 clear context on the default redaction behavior and routes the agent to get_person when full detail is needed, and notes include_private should be used only when the user asks. It stops short of positioning this against other query siblings like query_objects or query_records, so it is short of the explicit when/when-not bar.

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