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"
]
}社区
证据