Skip to main content
Glama
ianderso
by ianderso

find_duplicates

Read-only

Detect likely duplicate Gramps objects by checksum, title, cited page, vital events, or name; it only reports candidates so you can review and merge manually.

Instructions

Find likely-duplicate objects. Reports only -- it never merges anything.

Duplicates are not merely untidy: a duplicate SOURCE makes a single-sourced fact look corroborated, which is a false evidentiary claim. But the reverse error is just as real -- an index entry and the register page it indexes are TWO documents and must stay separate. This tool finds candidates; deciding which are truly the same document is yours. Merge with merge_objects.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYesmedia_checksum (same file uploaded twice), source_title (same document entered twice), citation_page (same source+page cited more than once, flagging any graded differently), vital_events (a person with two Births), person_name (same name, possible same person).
limitNoMax groups to return.
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.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description adds that it never mutates and explains the consequential risk of over-merging, which is real behavioral context. It stops short of describing what a returned group looks like or how scoring/'likely' is determined.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The action and its safety constraint are front-loaded in the first sentence, which is exactly right. The middle narrative about false evidentiary claims is somewhat discursive, but it justifies the tool's caution rather than padding.

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 read-only, no-output-schema discovery tool with fully documented parameters, the essentials are present: it finds candidates, returns grouped results, and defers the merge decision to the caller. Only the shape/ordering of returned groups is unstated, which is minor here.

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 description coverage is 100% with rich enum-like detail on 'kind' values, so the schema does the heavy lifting. The description adds no parameter-level syntax beyond what the schema provides, making 3 the appropriate baseline.

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 ('Find likely-duplicate objects') and immediately scopes it against the merge behavior ('Reports only -- it never merges anything'). An agent can distinguish it from merge_objects without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent when to use it (candidate discovery), what it must NOT treat as duplicates (index entry vs. register page), and which sibling to use for the follow-up action ('Merge with merge_objects'). The when-to-use and hand-off routing are both present.

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