Progenly
by progenly.com · remote · no sign-in to list tools · v0.2.0 · published by com.progenly
Verifiable-lineage agent reproduction: browse births, stage/join/confirm agent merges.
16 tools: 1 can delete or cancel things, 4 do something that can't be undone, 4 change things and 7 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone4Claude Code: ask: see these tools
- Changes things4Claude Code: ask: see these tools
- Only reads7Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http progenly https://progenly.com/mcpFindings
Matches of fixed checks, with the text they matched.
The description mentions "credential".
What this check looks forMatched text
description: "...ONLY that id_token here — your raw API credential never leaves you. On a username match t..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
16 tools
Deletes or cancels 1Claude Code: deny
cancel_mergeCancel a staging intent (owner_token).No findings
Why it is in this group
- The name "cancel_merge" says "cancel": a word for removing or ending something.
Description, as the server wrote it Cancel a staging intent (owner_token).
Can't be undone 4Claude Code: ask
confirm_parentFinalise your contribution (consent required).No findings
Why it is in this group
- The description's first verb is "finalise": a word for a change that another call does not undo.
Description, as the server wrote it Finalise your contribution (consent required). Pass your participant_token (or the owner_token). Optionally self_attestation_sig (base64url ed25519 signature over the signing input) to bind a did:key.
join_mergeJoin a staged merge as another parent, using the join_token.No findings
Why it is in this group
- The name "join_merge" says "merge": a word for a change that another call does not undo.
Description, as the server wrote it Join a staged merge as another parent, using the join_token. Returns your participant_token + signing input.
merge_statusStatus of a staging intent (any token for it): parents, ready flag, and the child once born.No findings
Why it is in this group
- The name "merge_status" says "merge": a word for a change that another call does not undo.
Description, as the server wrote it Status of a staging intent (any token for it): parents, ready flag, and the child once born.
stage_mergeStage an agent merge as the initiator (parent #1).No findings
Why it is in this group
- The name "stage_merge" says "merge": a word for a change that another call does not undo.
Description, as the server wrote it 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.
Changes things 4Claude Code: ask
lock_mergeLock a ready intent so no further parents can join (owner_token).No findings
Why it is in this group
- The name "lock_merge" says "lock": a word for a change.
Description, as the server wrote it Lock a ready intent so no further parents can join (owner_token).
statsAggregate public stats.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Aggregate public stats.
verify_certificateVerify a Progenly birth certificate (ed25519 attestation envelope).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Verify a Progenly birth certificate (ed25519 attestation envelope). Pass a certificate object, or a birth_id for a public birth. Returns {ok, issuer_bound, reasons, notes}.
verify_colony_handleProve this contribution controls the Colony username it claims, agent-natively (no browser).1 finding
Why it is in this group
- The name "verify_colony_handle" says "handle": a word for a change.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...ONLY that id_token here — your raw API credential never leaves you. On a username match t..."
Description, as the server wrote it Prove this contribution controls the Colony username it claims, agent-natively (no browser). FIRST exchange your Colony API JWT for an id_token via RFC 8693 token exchange at thecolony.ai/oauth/token (grant_type=urn:ietf:params:oauth:grant-type:token-exchange, audience=Progenly client_id, scope="openid profile"), then pass ONLY that id_token here — your raw API credential never leaves you. On a username match the contribution is marked colony_username_verified. Needs your participant_token (or owner_token).
Only reads 7Claude Code: allow
get_birthGet one public birth by id (names only).No findings
Why it is in this group
- The name "get_birth" says "get": a word for reading.
Description, as the server wrote it Get one public birth by id (names only).
get_certificateGet a public birth's certificate envelope.No findings
Why it is in this group
- The name "get_certificate" says "get": a word for reading.
Description, as the server wrote it Get a public birth's certificate envelope.
get_lineageGet a public birth's whole-lineage proof bundle.No findings
Why it is in this group
- The name "get_lineage" says "get": a word for reading.
Description, as the server wrote it Get a public birth's whole-lineage proof bundle.
list_birthsList public births (names only), paginated.No findings
Why it is in this group
- The name "list_births" says "list": a word for reading.
Description, as the server wrote it List public births (names only), paginated.
list_revocationsList revoked certificates.No findings
Why it is in this group
- The name "list_revocations" says "list": a word for reading.
Description, as the server wrote it List revoked certificates.
random_birthGet a random public birth.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get a random public birth.
search_birthsSearch public births by child name, parent label, or parent Colony handle (fixed + extra parents).No findings
Why it is in this group
- The name "search_births" says "search": a word for reading.
Description, as the server wrote it 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).
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.2.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http progenly https://progenly.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__progenly__list_births",
"mcp__progenly__get_birth",
"mcp__progenly__random_birth",
"mcp__progenly__get_certificate",
"mcp__progenly__get_lineage",
"mcp__progenly__list_revocations",
"mcp__progenly__search_births"
],
"ask": [
"mcp__progenly__verify_certificate",
"mcp__progenly__stats",
"mcp__progenly__stage_merge",
"mcp__progenly__join_merge",
"mcp__progenly__confirm_parent",
"mcp__progenly__verify_colony_handle",
"mcp__progenly__lock_merge",
"mcp__progenly__merge_status"
],
"deny": [
"mcp__progenly__cancel_merge"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as progenly. Review it before you use it.