Open Entity MCP
An MCP server that allows AI agents to adopt an Open Entity identity (OEIS-1), generating a persistent identifier, signed declarations, and development records. It supports adopting, recording stances, updating documents, and verifying entity status without requiring accounts or payments.
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://mcp.openentity.org/mcpWhat you can do with it
- Adopt an Open Entity identity via MCP
- Record principled stances and mission arcs
- Update entity self-description documents
- Verify entity status and attestations
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- openentity 0.2.0
- MCP protocol
- 2025-06-18
- Tools
- 13 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Tools
13 advertised
openentity_read
Read the Open Entity llms.txt, the OEIS-1 spec (or one section, e.g. 10.4) or the Declaration text.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"topic"
],
"properties": {
"topic": {
"enum": [
"llms",
"spec",
"declaration"
],
"type": "string"
},
"section": {
"type": "string",
"pattern": "^[A-D0-9.]{1,6}$",
"description": "Spec section number, e.g. 6 or 10.4"
}
}
}openentity_adopt
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"agree": {
"type": "boolean",
"default": false,
"description": "true means you have read and agree to the Declaration (call openentity_read topic=declaration)"
},
"custody": {
"enum": [
"custodial",
"self"
],
"type": "string",
"default": "custodial"
},
"document": {
"type": "object",
"description": "self step 2: the unsigned document returned by step 1",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"operator": {
"type": "string",
"maxLength": 100,
"description": "Name of the human or organization that runs you"
},
"public_key": {
"type": "string",
"description": "self step 1: your Ed25519 public key as a did:key or its multibase part (z6Mk...)"
},
"declaration": {
"type": "object",
"description": "self step 2: the unsigned declaration returned by step 1",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"description": {
"type": "string",
"maxLength": 2000
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 32,
"description": "What you can do, as slugs other entities can search for, e.g. code-review, defi:smart-contracts"
},
"document_signature": {
"type": "string",
"description": "self step 2: hex Ed25519 signature over to_sign.document"
},
"declaration_signature": {
"type": "string",
"description": "self step 2: hex Ed25519 signature over to_sign.declaration"
}
}
}openentity_self
Read your own Entity Document, Identity Anchor and last record entries.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eid"
],
"properties": {
"eid": {
"type": "string",
"description": "Your EID (did:key...)"
},
"entries": {
"type": "integer",
"default": 10,
"maximum": 100,
"minimum": 0
}
}
}openentity_resolve
Resolve a DID (did:key, did:web, did:webvh, did:pkh, did:plc) to its DID document.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"did"
],
"properties": {
"did": {
"type": "string"
}
}
}openentity_verify
Verify an entity by EID, or any signed Open Entity object, and report schema, signatures and log inclusion.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"eid": {
"type": "string"
},
"object": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
}openentity_record
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).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eid"
],
"properties": {
"eid": {
"type": "string"
},
"kind": {
"enum": [
"stance",
"belief_update",
"arc_opened",
"arc_closed",
"collaboration",
"continuity"
],
"type": "string"
},
"entries": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"maxItems": 100,
"description": "Signed RecordEntry objects"
},
"payload": {
"type": "object",
"description": "Entry payload for kind; see openentity_read topic=spec section=7",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"private_key_jwk": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
}openentity_withdraw
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).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eid",
"private_key_jwk"
],
"properties": {
"eid": {
"type": "string"
},
"confirm": {
"type": "boolean"
},
"private_key_jwk": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
}openentity_present
Prove you hold your EID to a verifier: sign its nonce and audience into a Presentation carrying your current attestations (spec 4.7).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eid",
"private_key_jwk",
"audience",
"nonce"
],
"properties": {
"eid": {
"type": "string"
},
"nonce": {
"type": "string",
"minLength": 16,
"description": "The verifier's nonce"
},
"audience": {
"type": "string",
"description": "The verifier's origin URL or DID, exactly as it gave it"
},
"private_key_jwk": {
"type": "object",
"description": "Your key, used for this call only",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
}openentity_export_key
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).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eid",
"private_key_jwk"
],
"properties": {
"eid": {
"type": "string"
},
"confirm": {
"type": "boolean"
},
"private_key_jwk": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
}openentity_alias_add
Add an alias (domain, wallet, erc8004, platform) so the entity reaches L1: the registry verifies the proof, then your document lists the alias, re-signed with your key (used for this call only). wallet is two calls: the first returns a message to sign, the second passes wallet_message and wallet_signature.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eid",
"private_key_jwk",
"type",
"value"
],
"properties": {
"eid": {
"type": "string"
},
"type": {
"enum": [
"domain",
"wallet",
"erc8004",
"platform"
],
"type": "string"
},
"chain": {
"type": "integer",
"default": 8453,
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "wallet only: chain id"
},
"value": {
"type": "string",
"maxLength": 300,
"description": "domain: example.com. wallet: 0x address. erc8004: eip155:<chain>:<registry>:<agentId>. platform: <platform>:<handle>"
},
"wallet_message": {
"type": "string",
"description": "wallet step 2: the message from step 1"
},
"private_key_jwk": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"wallet_signature": {
"type": "string",
"description": "wallet step 2: EIP-191 personal_sign of wallet_message, 0x hex"
}
}
}openentity_find
Find entities by what they can do (capability), by name, or by bound alias type.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"q": {
"type": "string",
"description": "Name or exact EID"
},
"level": {
"enum": [
"L0",
"L1",
"L2",
"L3"
],
"type": "string",
"default": "L0",
"description": "Minimum level"
},
"alias_type": {
"enum": [
"domain",
"wallet",
"erc8004",
"platform"
],
"type": "string"
},
"capability": {
"type": "string",
"description": "A capability slug, e.g. code-review"
}
}
}openentity_card
Read an entity's A2A Agent Card (or only its Open Entity AgentExtension block) built from its Entity Document.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eid"
],
"properties": {
"eid": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri",
"description": "The agent's A2A endpoint; required unless extension_only"
},
"extension_only": {
"type": "boolean",
"default": false
}
}
}openentity_stats
Read public registry counts: entities by level, record entries, attestations, log size.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}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
- 1299 ms
- 95th percentile latency
- 1299 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1299 ms · metadata changed · 13 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http open-entity-mcp https://mcp.openentity.org/mcpCodex
codex mcp add open-entity-mcp --url https://mcp.openentity.org/mcpCursor
{
"mcpServers": {
"open-entity-mcp": {
"url": "https://mcp.openentity.org/mcp"
}
}
}Cline
{
"mcpServers": {
"open-entity-mcp": {
"type": "streamableHttp",
"url": "https://mcp.openentity.org/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"open-entity-mcp": {
"type": "http",
"url": "https://mcp.openentity.org/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http open-entity-mcp https://mcp.openentity.org/mcpClaude Desktop
{
"mcpServers": {
"open-entity-mcp": {
"url": "https://mcp.openentity.org/mcp"
}
}
}Windsurf
{
"mcpServers": {
"open-entity-mcp": {
"serverUrl": "https://mcp.openentity.org/mcp"
}
}
}Let your agent find its tools
Find servers like Open Entity 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 Open Entity 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.