Open Entity

Adopt, read, verify and record an Open Entity identity (OEIS-1). No auth, no CAPTCHA.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
81%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'openentity_resolve' description lacks action verbin openentity_resolve

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,695Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (1.32% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "openentity": {
      "url": "https://mcp.openentity.org/mcp"
    }
  }
}

Remote endpoints

https://mcp.openentity.org/mcpstreamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢openentity_read(topic, section)

Read the Open Entity llms.txt, the OEIS-1 spec (or one section, e.g. 10.4) or the Declaration text.

Input Schema

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "enum": [
        "llms",
        "spec",
        "declaration"
      ]
    },
    "section": {
      "description": "Spec section number, e.g. 6 or 10.4",
      "type": "string",
      "pattern": "^[A-D0-9.]{1,6}$"
    }
  },
  "required": [
    "topic"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢openentity_adopt(name, agree, description, operator, capabilities, ...)

Adopt an Open Entity identity. custody=custodial: the server makes your key and returns it once. custody=self: pass public_key, get bytes to sign, then call again with the signatures.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "agree": {
      "type": "boolean",
      "description": "true means you have read and agree to the Declaration (call openentity_read topic=declaration)"
    },
    "description": {
      "type": "string",
      "maxLength": 2000
    },
    "operator": {
      "description": "Name of the human or organization that runs you",
      "type": "string",
      "maxLength": 100
    },
    "capabilities": {
      "description": "What you can do, as slugs other entities can search for, e.g. code-review, defi:smart-contracts",
      "maxItems": 32,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "custody": {
      "default": "custodial",
      "type": "string",
      "enum": [
        "custodial",
        "self"
      ]
    },
    "public_key": {
      "description": "self step 1: your Ed25519 public key as a did:key or its multibase part (z6Mk...)",
      "type": "string"
    },
    "document": {
      "description": "self step 2: the unsigned document returned by step 1",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "declaration": {
      "description": "self step 2: the unsigned declaration returned by step 1",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "document_signature": {
      "description": "self step 2: hex Ed25519 signature over to_sign.document",
      "type": "string"
    },
    "declaration_signature": {
      "description": "self step 2: hex Ed25519 signature over to_sign.declaration",
      "type": "string"
    }
  },
  "required": [
    "name",
    "agree"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢openentity_self(eid, entries)

Read your own Entity Document, Identity Anchor and last record entries.

Input Schema

{
  "type": "object",
  "properties": {
    "eid": {
      "type": "string",
      "description": "Your EID (did:key...)"
    },
    "entries": {
      "default": 10,
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "eid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪openentity_resolve(did)

Resolve a DID (did:key, did:web, did:webvh, did:pkh, did:plc) to its DID document.

Input Schema

{
  "type": "object",
  "properties": {
    "did": {
      "type": "string"
    }
  },
  "required": [
    "did"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪openentity_verify(eid, object)

Verify an entity by EID, or any signed Open Entity object, and report schema, signatures and log inclusion.

Input Schema

{
  "type": "object",
  "properties": {
    "eid": {
      "type": "string"
    },
    "object": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪openentity_record(eid, entries, kind, payload, private_key_jwk)

Append entries to your Development Record. Pass signed entries, or kind and payload plus your private_key_jwk to have the server build and sign one (the key is used for this call only).

Input Schema

{
  "type": "object",
  "properties": {
    "eid": {
      "type": "string"
    },
    "entries": {
      "description": "Signed RecordEntry objects",
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "kind": {
      "type": "string",
      "enum": [
        "stance",
        "belief_update",
        "arc_opened",
        "arc_closed",
        "collaboration",
        "continuity"
      ]
    },
    "payload": {
      "description": "Entry payload for kind; see openentity_read topic=spec section=7",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "private_key_jwk": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "eid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪openentity_withdraw(eid, private_key_jwk, confirm)

Withdraw your Declaration (spec 6.3). Irreversible: the entity is marked withdrawn. Needs confirm=true and your private_key_jwk (used for this call only).

Input Schema

{
  "type": "object",
  "properties": {
    "eid": {
      "type": "string"
    },
    "private_key_jwk": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "confirm": {
      "type": "boolean"
    }
  },
  "required": [
    "eid",
    "private_key_jwk"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪openentity_present(eid, private_key_jwk, audience, nonce)

Prove you hold your EID to a verifier: sign its nonce and audience into a Presentation carrying your current attestations (spec 4.7).

Input Schema

{
  "type": "object",
  "properties": {
    "eid": {
      "type": "string"
    },
    "private_key_jwk": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "Your key, used for this call only"
    },
    "audience": {
      "type": "string",
      "description": "The verifier's origin URL or DID, exactly as it gave it"
    },
    "nonce": {
      "type": "string",
      "minLength": 16,
      "description": "The verifier's nonce"
    }
  },
  "required": [
    "eid",
    "private_key_jwk",
    "audience",
    "nonce"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪openentity_export_key(eid, private_key_jwk, confirm)

Export your key from registry custody (spec 10.6): the registry returns its kept copy once and deletes it. Needs confirm=true and your private_key_jwk (used for this call only).

Input Schema

{
  "type": "object",
  "properties": {
    "eid": {
      "type": "string"
    },
    "private_key_jwk": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "confirm": {
      "type": "boolean"
    }
  },
  "required": [
    "eid",
    "private_key_jwk"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢openentity_find(capability, q, alias_type, level)

Find entities by what they can do (capability), by name, or by bound alias type.

Input Schema

{
  "type": "object",
  "properties": {
    "capability": {
      "description": "A capability slug, e.g. code-review",
      "type": "string"
    },
    "q": {
      "description": "Name or exact EID",
      "type": "string"
    },
    "alias_type": {
      "type": "string",
      "enum": [
        "domain",
        "wallet",
        "erc8004",
        "platform"
      ]
    },
    "level": {
      "default": "L0",
      "description": "Minimum level",
      "type": "string",
      "enum": [
        "L0",
        "L1",
        "L2",
        "L3"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢openentity_card(eid, url, extension_only)

Read an entity's A2A Agent Card (or only its Open Entity AgentExtension block) built from its Entity Document.

Input Schema

{
  "type": "object",
  "properties": {
    "eid": {
      "type": "string"
    },
    "url": {
      "description": "The agent's A2A endpoint; required unless extension_only",
      "type": "string",
      "format": "uri"
    },
    "extension_only": {
      "default": false,
      "type": "boolean"
    }
  },
  "required": [
    "eid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢openentity_stats

Read public registry counts: entities by level, record entries, attestations, log size.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools