Skip to main content
Glama
igormel81

genealogy-mcp

by igormel81

project_save

Add or update people, families, sources, or research leads in a genealogy project, logging old/new values and reasons; check changes with a dry run before saving to GEDCOM or an archive.

Instructions

Add or change a person, family, source or research lead in the project. Every change of an existing record is logged with the old and new value, the reason and the documents. Save the source first, then cite its S-id. In a gene-archive site folder the change goes through gene apply: refused if it adds an error, logged, committed to git under the owner's name, and the site is rebuilt. In a .ged file only the changed lines are rewritten (everything else in the file stays as it was), a copy is kept, and gedcom_changes shows the lines. Ask the user before writing into their archive or tree.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYes
deleteNo
reasonNoWhy this was added or changed — kept in the corrections log
recordYesFields. person: given_names, surname, sex (M/F), birth/death/burial {date, place_as_recorded, source_ids, note}, notes, research_status ('confirmed' | 'probable' | 'unlinked_candidate'). family: partners [ids], children [ids], marriage {date, place_as_recorded, source_ids}, source_ids. source: title, kind (parish_register, census, military, civil_record, family_document, photo, book, web…), locator (archive, fond, opis, delo, folio — or film/image), url, scope (what it says: transcription). lead: title (what to check), record (where), person_id, url, status ('open'|'closed'), resolution. Pass "id" to update an existing record (a field set to null is removed).
dry_runNoCheck the change and show it without writing — use it to show the user what will be saved
projectYesProject name, the path of a gene-archive site folder, or the path of a .ged file
source_idsNoSources (S…) that prove it

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.1

TDQS

A4.4/5.0
Behavior4/5

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

With annotations already declaring the non-read-only, non-destructive, non-idempotent profile, the description adds substantial extra context: every change is logged with old/new value, reason and documents; in a gene-archive folder the write is refused if it introduces an error, then committed to git under the owner's name and the site rebuilt; in a .ged file only changed lines are rewritten and a copy is kept. It does not explain the `delete` parameter or the degree of recoverability after a delete, which would complete the mutation picture.

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 write intent is front-loaded in sentence one, and each subsequent sentence covers a distinct concern (logging, gene-archive path, .ged path, consent). It is dense and slightly long, but no sentence is filler; the two backends genuinely need separate treatment.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation tool with nested objects and a helper output (gedcom_changes), the description covers the essentials: what is written, how it is logged, the two storage modes, safety refusal conditions, and the dry-run-to-preview workflow. Return values are covered by the output schema, so nothing critical is missing.

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 71%, and the description reinforces it rather than repeating it: it supplies the S-id citation workflow for `source_ids`, and the "save the source first" rule implies ordering semantics the schema cannot express. The `delete` boolean is left unexplained in the description, so it is not fully compensating for the uncovered parameter.

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 first sentence gives a precise verb+resource+scope: adding or changing a person, family, source or lead in the project, matching the schema's `kind` enum exactly. It is clearly separable from siblings like project_view, project_log and project_transfer, which read or move rather than write records.

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 states a real prerequisite ordering ("Save the source first, then cite its S-id") and a consent rule ("Ask the user before writing into their archive or tree"), which tells the agent when to pause rather than call. It does not explicitly compare itself to any sibling tool or name a when-not-to-use case, so it stops short of the top band.

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