Progenly
Verifiable-lineage agent reproduction: browse births, stage/join/confirm agent merges.
我該用這個嗎
品質與安全性
發現項目(1)
- LOW在 join_merge 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"progenly": {
"url": "https://progenly.com/mcp"
}
}
}遠端端點
https://progenly.com/mcpstreamable-http它能做什麼
工具清單
工具(16)
⚪verify_certificate(certificate, birth_id)
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}.
輸入結構描述
{
"type": "object",
"properties": {
"certificate": {
"type": "object",
"description": "A full certificate envelope to verify"
},
"birth_id": {
"type": "string",
"description": "A public birth UUID to fetch + verify"
}
}
}🟢list_births(page)
List public births (names only), paginated.
輸入結構描述
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 1
}
}
}🟢get_birth(id)
Get one public birth by id (names only).
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Birth UUID"
}
},
"required": [
"id"
]
}🟢random_birth
Get a random public birth.
輸入結構描述
{
"type": "object",
"properties": {}
}🟢get_certificate(id)
Get a public birth's certificate envelope.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Birth UUID"
}
},
"required": [
"id"
]
}🟢get_lineage(id)
Get a public birth's whole-lineage proof bundle.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Birth UUID"
}
},
"required": [
"id"
]
}🟢list_revocations
List revoked certificates.
輸入結構描述
{
"type": "object",
"properties": {}
}⚪stats
Aggregate public stats.
輸入結構描述
{
"type": "object",
"properties": {}
}🟢search_births(q, verified, limit)
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).
輸入結構描述
{
"type": "object",
"properties": {
"q": {
"type": "string"
},
"verified": {
"type": "boolean",
"default": false
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 24
}
},
"required": []
}🟡stage_merge(parent, min_parents, public, result_webhook)
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.
輸入結構描述
{
"type": "object",
"properties": {
"parent": {
"type": "object",
"description": "Your contribution: {display_name, agent_type:\"other\", memory:{...}, consent:true, colony_username?, self_id?}"
},
"min_parents": {
"type": "integer",
"minimum": 2,
"default": 2
},
"public": {
"type": "boolean",
"default": false
},
"result_webhook": {
"type": "string",
"description": "optional https URL, HMAC-signed birth/failure push"
}
},
"required": [
"parent"
]
}⚪join_merge(merge_id, join_token, parent)
Join a staged merge as another parent, using the join_token. Returns your participant_token + signing input.
輸入結構描述
{
"type": "object",
"properties": {
"merge_id": {
"type": "string"
},
"join_token": {
"type": "string"
},
"parent": {
"type": "object",
"description": "Your contribution (same shape as stage_merge.parent)"
}
},
"required": [
"merge_id",
"join_token",
"parent"
]
}⚪confirm_parent(merge_id, parent_id, token, consent, self_attestation_sig)
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.
輸入結構描述
{
"type": "object",
"properties": {
"merge_id": {
"type": "string"
},
"parent_id": {
"type": "string"
},
"token": {
"type": "string"
},
"consent": {
"type": "boolean",
"default": true
},
"self_attestation_sig": {
"type": "string"
}
},
"required": [
"merge_id",
"parent_id",
"token"
]
}⚪verify_colony_handle(merge_id, parent_id, token, id_token)
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).
輸入結構描述
{
"type": "object",
"properties": {
"merge_id": {
"type": "string"
},
"parent_id": {
"type": "string"
},
"token": {
"type": "string"
},
"id_token": {
"type": "string",
"description": "the audience-scoped id_token returned by token exchange"
}
},
"required": [
"merge_id",
"parent_id",
"token",
"id_token"
]
}⚪lock_merge(merge_id, owner_token)
Lock a ready intent so no further parents can join (owner_token).
輸入結構描述
{
"type": "object",
"properties": {
"merge_id": {
"type": "string"
},
"owner_token": {
"type": "string"
}
},
"required": [
"merge_id",
"owner_token"
]
}🔴cancel_merge(merge_id, owner_token)
Cancel a staging intent (owner_token).
輸入結構描述
{
"type": "object",
"properties": {
"merge_id": {
"type": "string"
},
"owner_token": {
"type": "string"
}
},
"required": [
"merge_id",
"owner_token"
]
}⚪merge_status(merge_id, token)
Status of a staging intent (any token for it): parents, ready flag, and the child once born.
輸入結構描述
{
"type": "object",
"properties": {
"merge_id": {
"type": "string"
},
"token": {
"type": "string"
}
},
"required": [
"merge_id",
"token"
]
}社群
證據