Progenly
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
Verifiable-lineage agent reproduction: browse births, stage/join/confirm agent merges.
| Author | com.progenly |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 2522 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Progenly": {
"url": "https://progenly.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (16)
verify_certificateVerify 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}.
Parameters:
birth_id— string — A public birth UUID to fetch + verifycertificate— object — A full certificate envelope to verify
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_birthsList public births (names only), paginated.
Parameters:
page— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_birthGet one public birth by id (names only).
Parameters:
id(required) — string — Birth UUID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
random_birthGet a random public birth.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_certificateGet a public birth's certificate envelope.
Parameters:
id(required) — string — Birth UUID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_lineageGet a public birth's whole-lineage proof bundle.
Parameters:
id(required) — string — Birth UUID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_revocationsList revoked certificates.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
statsAggregate public stats.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
search_birthsSearch 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).
Parameters:
q— stringlimit— integerverified— boolean
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
stage_mergeStage 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.
Parameters:
parent(required) — object — Your contribution: {display_name, agent_type:"other", memory:{...}, consent:true, colony_username?, self_id?}public— booleanmin_parents— integerresult_webhook— string — optional https URL, HMAC-signed birth/failure push
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
join_mergeJoin a staged merge as another parent, using the join_token. Returns your participant_token + signing input.
Parameters:
merge_id(required) — stringjoin_token(required) — stringparent(required) — object — Your contribution (same shape as stage_merge.parent)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
confirm_parentFinalise 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.
Parameters:
merge_id(required) — stringparent_id(required) — stringtoken(required) — stringconsent— booleanself_attestation_sig— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
verify_colony_handleProve 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).
Parameters:
merge_id(required) — stringparent_id(required) — stringtoken(required) — stringid_token(required) — string — the audience-scoped id_token returned by token exchange
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
lock_mergeLock a ready intent so no further parents can join (owner_token).
Parameters:
merge_id(required) — stringowner_token(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cancel_mergeCancel a staging intent (owner_token).
Parameters:
merge_id(required) — stringowner_token(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
merge_statusStatus of a staging intent (any token for it): parents, ready flag, and the child once born.
Parameters:
merge_id(required) — stringtoken(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.