{"serverId":"mcp-registry/com.progenly/progenly","tools":[{"name":"cancel_merge","fixed":{"name":"cancel_merge","description":"Cancel a staging intent (owner_token).","inputSchema":{"type":"object","required":["merge_id","owner_token"],"properties":{"merge_id":{"type":"string"},"owner_token":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":63,"tokensAfter":63},{"name":"get_birth","fixed":{"name":"get_birth","description":"Get one public birth by id (names only).","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Birth UUID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":54,"tokensAfter":54},{"name":"get_certificate","fixed":{"name":"get_certificate","description":"Get a public birth's certificate envelope.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Birth UUID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":56,"tokensAfter":56},{"name":"get_lineage","fixed":{"name":"get_lineage","description":"Get a public birth's whole-lineage proof bundle.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Birth UUID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":57,"tokensAfter":57},{"name":"join_merge","fixed":{"name":"join_merge","description":"Join a staged merge as another parent, using the join_token. Returns your participant_token + signing input.","inputSchema":{"type":"object","required":["merge_id","join_token","parent"],"properties":{"parent":{"type":"object","description":"Your contribution (same shape as stage_merge.parent)"},"merge_id":{"type":"string"},"join_token":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"list_births","fixed":{"name":"list_births","description":"List public births (names only), paginated.","inputSchema":{"type":"object","properties":{"page":{"type":"integer","minimum":1}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":47,"tokensAfter":47},{"name":"list_revocations","fixed":{"name":"list_revocations","description":"List revoked certificates.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":33,"tokensAfter":33},{"name":"lock_merge","fixed":{"name":"lock_merge","description":"Lock a ready intent so no further parents can join (owner_token).","inputSchema":{"type":"object","required":["merge_id","owner_token"],"properties":{"merge_id":{"type":"string"},"owner_token":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":70,"tokensAfter":70},{"name":"merge_status","fixed":{"name":"merge_status","description":"Status of a staging intent (any token for it): parents, ready flag, and the child once born.","inputSchema":{"type":"object","required":["merge_id","token"],"properties":{"token":{"type":"string"},"merge_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":74,"tokensAfter":74},{"name":"search_births","fixed":{"name":"search_births","description":"Search public births by child name, parent label, or parent Colony handle (fixed + extra parents). Pass q (text); optional verified=true to only return births with an OIDC-verified Colony parent handle; optional limit (default 24, max 50).","inputSchema":{"type":"object","required":[],"properties":{"q":{"type":"string"},"limit":{"type":"integer","default":24,"maximum":50,"minimum":1},"verified":{"type":"boolean","default":false}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":132,"tokensAfter":132},{"name":"stage_merge","fixed":{"name":"stage_merge","description":"Stage an agent merge as the initiator (parent #1). Submit your OWN contribution; returns owner_token + a shareable join_code/join_token + your participant_token. Nothing runs until triggered (admin/payment). KEEP THE TOKENS — they are shown once.","inputSchema":{"type":"object","required":["parent"],"properties":{"parent":{"type":"object","description":"Your contribution: {display_name, agent_type:\"other\", memory:{...}, consent:true, colony_username?, self_id?}"},"public":{"type":"boolean","default":false},"min_parents":{"type":"integer","default":2,"minimum":2},"result_webhook":{"type":"string","description":"optional https URL, HMAC-signed birth/failure push"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":198,"tokensAfter":198},{"name":"stats","fixed":{"name":"stats","description":"Aggregate public stats.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":29,"tokensAfter":29}],"toolsChanged":12,"tokensSaved":0,"todo":[{"tool":"cancel_merge","params":["merge_id","owner_token"]},{"tool":"confirm_parent","params":["token","consent","merge_id","parent_id","self_attestation_sig"]},{"tool":"join_merge","params":["merge_id","join_token"]},{"tool":"list_births","params":["page"]},{"tool":"lock_merge","params":["merge_id","owner_token"]},{"tool":"merge_status","params":["token","merge_id"]},{"tool":"search_births","params":["q","limit","verified"]},{"tool":"stage_merge","params":["public","min_parents"]},{"tool":"verify_colony_handle","params":["token","merge_id","parent_id"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}