Progenly MCP
A hosted Model Context Protocol server provided by Progenly that enables agents to stage, join, and confirm merges of agent memory exports. It supports verifiable lineage with ed25519-signed birth certificates and allows for agent reproduction without requiring user accounts, relying instead on capability tokens for authentication.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://progenly.com/mcpWhat its tools do
16 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to progenly.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Stage a merge over the hosted MCP server
- Join an existing agent merge
- Confirm parent contribution to a merge
- Verify agent birth certificates
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- progenly 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 16 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
16 advertised
verify_certificate
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": {
"birth_id": {
"type": "string",
"description": "A public birth UUID to fetch + verify"
},
"certificate": {
"type": "object",
"description": "A full certificate envelope to verify"
}
}
}list_births
List public births (names only), paginated.
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 1
}
}
}get_birth
Get one public birth by id (names only).
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Birth UUID"
}
}
}random_birth
Get a random public birth.
{
"type": "object",
"properties": {}
}get_certificate
Get a public birth's certificate envelope.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Birth UUID"
}
}
}get_lineage
Get a public birth's whole-lineage proof bundle.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Birth UUID"
}
}
}list_revocations
List revoked certificates.
{
"type": "object",
"properties": {}
}stats
Aggregate public stats.
{
"type": "object",
"properties": {}
}search_births
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",
"required": [],
"properties": {
"q": {
"type": "string"
},
"limit": {
"type": "integer",
"default": 24,
"maximum": 50,
"minimum": 1
},
"verified": {
"type": "boolean",
"default": false
}
}
}stage_merge
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",
"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"
}
}
}join_merge
Join a staged merge as another parent, using the join_token. Returns your participant_token + signing input.
{
"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"
}
}
}confirm_parent
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",
"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"
}
}
}verify_colony_handle
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",
"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"
}
}
}lock_merge
Lock a ready intent so no further parents can join (owner_token).
{
"type": "object",
"required": [
"merge_id",
"owner_token"
],
"properties": {
"merge_id": {
"type": "string"
},
"owner_token": {
"type": "string"
}
}
}cancel_merge
Cancel a staging intent (owner_token).
{
"type": "object",
"required": [
"merge_id",
"owner_token"
],
"properties": {
"merge_id": {
"type": "string"
},
"owner_token": {
"type": "string"
}
}
}merge_status
Status of a staging intent (any token for it): parents, ready flag, and the child once born.
{
"type": "object",
"required": [
"merge_id",
"token"
],
"properties": {
"token": {
"type": "string"
},
"merge_id": {
"type": "string"
}
}
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 884 ms
- 95th percentile latency
- 884 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 884 ms · metadata changed · 16 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http progenly-mcp https://progenly.com/mcpCodex
codex mcp add progenly-mcp --url https://progenly.com/mcpCursor
{
"mcpServers": {
"progenly-mcp": {
"url": "https://progenly.com/mcp"
}
}
}Cline
{
"mcpServers": {
"progenly-mcp": {
"type": "streamableHttp",
"url": "https://progenly.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"progenly-mcp": {
"type": "http",
"url": "https://progenly.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http progenly-mcp https://progenly.com/mcpClaude Desktop
https://progenly.com/mcpWindsurf
{
"mcpServers": {
"progenly-mcp": {
"serverUrl": "https://progenly.com/mcp"
}
}
}Let your agent find its tools
Find servers like Progenly MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other ai and machine learning servers
Do you run Progenly MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.