Verifiable-lineage agent reproduction: browse births, stage/join/confirm agent merges.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Cancel a staging intent (owner_token).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Cancel a staging intent (owner_token).
| Argument | Type | Description |
|---|---|---|
| merge_id* | string | |
| owner_token* | string |
{
"type": "object",
"required": [
"merge_id",
"owner_token"
],
"properties": {
"merge_id": {
"type": "string"
},
"owner_token": {
"type": "string"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| token* | string | |
| consent | boolean | |
| merge_id* | string | |
| parent_id* | string | |
| self_attestation_sig | string |
{
"type": "object",
"required": [
"merge_id",
"parent_id",
"token"
],
"properties": {
"token": {
"type": "string"
},
"consent": {
"type": "boolean",
"default": true
},
"merge_id": {
"type": "string"
},
"parent_id": {
"type": "string"
},
"self_attestation_sig": {
"type": "string"
}
}
}Get one public birth by id (names only).
| Argument | Type | Description |
|---|---|---|
| id* | string | Birth UUID |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Birth UUID"
}
}
}Get a public birth's certificate envelope.
| Argument | Type | Description |
|---|---|---|
| id* | string | Birth UUID |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Birth UUID"
}
}
}Get a public birth's whole-lineage proof bundle.
| Argument | Type | Description |
|---|---|---|
| id* | string | Birth UUID |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Birth UUID"
}
}
}Join a staged merge as another parent, using the join_token. Returns your participant_token + signing input.
| Argument | Type | Description |
|---|---|---|
| parent* | object | Your contribution (same shape as stage_merge.parent) |
| merge_id* | string | |
| join_token* | string |
{
"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"
}
}
}List public births (names only), paginated.
| Argument | Type | Description |
|---|---|---|
| page | integer |
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 1
}
}
}List revoked certificates.
No arguments.
{
"type": "object",
"properties": {}
}Lock a ready intent so no further parents can join (owner_token).
| Argument | Type | Description |
|---|---|---|
| merge_id* | string | |
| owner_token* | string |
{
"type": "object",
"required": [
"merge_id",
"owner_token"
],
"properties": {
"merge_id": {
"type": "string"
},
"owner_token": {
"type": "string"
}
}
}Status of a staging intent (any token for it): parents, ready flag, and the child once born.
| Argument | Type | Description |
|---|---|---|
| token* | string | |
| merge_id* | string |
{
"type": "object",
"required": [
"merge_id",
"token"
],
"properties": {
"token": {
"type": "string"
},
"merge_id": {
"type": "string"
}
}
}Get a random public birth.
No arguments.
{
"type": "object",
"properties": {}
}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).
| Argument | Type | Description |
|---|---|---|
| q | string | |
| limit | integer | |
| verified | boolean |
{
"type": "object",
"required": [],
"properties": {
"q": {
"type": "string"
},
"limit": {
"type": "integer",
"default": 24,
"maximum": 50,
"minimum": 1
},
"verified": {
"type": "boolean",
"default": false
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| parent* | object | Your contribution: {display_name, agent_type:"other", memory:{...}, consent:true, colony_username?, self_id?} |
| public | boolean | |
| min_parents | integer | |
| result_webhook | string | optional https URL, HMAC-signed birth/failure push |
{
"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"
}
}
}Aggregate public stats.
No arguments.
{
"type": "object",
"properties": {}
}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}.
| Argument | Type | Description |
|---|---|---|
| birth_id | string | A public birth UUID to fetch + verify |
| certificate | object | A full certificate envelope to verify |
{
"type": "object",
"properties": {
"birth_id": {
"type": "string",
"description": "A public birth UUID to fetch + verify"
},
"certificate": {
"type": "object",
"description": "A full certificate envelope to verify"
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| token* | string | |
| id_token* | string | the audience-scoped id_token returned by token exchange |
| merge_id* | string | |
| parent_id* | string |
{
"type": "object",
"required": [
"merge_id",
"parent_id",
"token",
"id_token"
],
"properties": {
"token": {
"type": "string"
},
"id_token": {
"type": "string",
"description": "the audience-scoped id_token returned by token exchange"
},
"merge_id": {
"type": "string"
},
"parent_id": {
"type": "string"
}
}
}