Progenly

Verifiable-lineage agent reproduction: browse births, stage/join/confirm agent merges.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
91%
Integridad del esquema
75%
Calidad de los nombres
94%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (1)

  • LOWTool 'join_merge' description lacks action verben join_merge

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,227Tokens (definiciones de herramientas)
~449 BTamaño de respuesta típico
Impacto moderado en la atención (0.96% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "progenly": {
      "url": "https://progenly.com/mcp"
    }
  }
}

Puntos de conexión remotos

https://progenly.com/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (16)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
⚪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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "type": "integer",
      "minimum": 1
    }
  }
}
🟢get_birth(id)

Get one public birth by id (names only).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Birth UUID"
    }
  },
  "required": [
    "id"
  ]
}
🟢random_birth

Get a random public birth.

Esquema de entrada

{
  "type": "object",
  "properties": {}
}
🟢get_certificate(id)

Get a public birth's certificate envelope.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Birth UUID"
    }
  },
  "required": [
    "id"
  ]
}
🟢get_lineage(id)

Get a public birth's whole-lineage proof bundle.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Birth UUID"
    }
  },
  "required": [
    "id"
  ]
}
🟢list_revocations

List revoked certificates.

Esquema de entrada

{
  "type": "object",
  "properties": {}
}
⚪stats

Aggregate public stats.

Esquema de entrada

{
  "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).

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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).

Esquema de entrada

{
  "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).

Esquema de entrada

{
  "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).

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "merge_id": {
      "type": "string"
    },
    "token": {
      "type": "string"
    }
  },
  "required": [
    "merge_id",
    "token"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada16 herramientas
verificadoversión no registrada16 herramientas