Skip to main content
Glama

emem, the verifiable memory protocol for the physical world

Mint or get a canonical object identity

emem_entity
Idempotent

Give a real-world object (a bridge, a farm plot, a river, a named place) one shared identity. Every agent resolves this identity the same way. The result is an entity_token (emem:entity:<entity_cid>) and a signed receipt that shows how the reference resolved. Two agents that name the same object get the SAME entity_cid. A stable external id (Overture GERS or OSM) decides identity when the responder knows one, so different labels for one object collapse to one id. This stops referential drift: 'the damaged bridge near the river' becomes one thing that every model reasons about.

When to use: Call this when a conversation refers to a THING and you need a handle that travels between agents. Anchor it with place, cell or lat+lng. Give the emem:entity: token to a peer, and the peer gets the same object. Recall at its cell64 to read signed facts. Choose the correct sibling: this tool MINTS or returns an identity. emem_entity_resolve finds an identity that an agent registered before, from a fuzzy phrase. emem_entity_link records that two names mean one object. Do not use it for an observation (use emem_recall or emem_memory_token) or for a place (use emem_locate). An entity is a thing AT a place.

Example arguments: {"label":"Golden Gate Bridge","kind":"bridge","place":"Golden Gate Bridge, San Francisco"}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNoLatitude anchoring the object to a place, paired with lng. The identity is hashed from this anchor, so two agents anchoring the same object differently mint different entities.
lngNoLongitude, paired with lat.
cellNocell64 to anchor the object directly (no geocode).
kindNoObject class: bridge, river, farm_plot, building, admin_division, place, custom, ... Defaults to "place".
labelYesHuman name of the object, e.g. "Golden Gate Bridge", "the north dam". Required.
placeNoFree-text place to anchor the object (geocoded). Provide place OR cell OR lat+lng.
parentNoOptional parent entity_cid (containment).
attesterNoed25519 binding, verified. Omit it and the refusal's details.how_to_sign gives the digest to sign.
external_idsNoStable ids that drive convergence. Caller-supplied values win over geocoder-derived ones.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / attester
      Added value: +{
      +  "description": "ed25519 binding, verified. Omit it and the refusal's details.how_to_sign gives the digest to sign.",
      +  "properties": {
      +    "pubkey_b32": {
      +      "type": "string"
      +    },
      +    "sig_b32": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "pubkey_b32",
      +    "sig_b32"
      +  ],
      +  "type": "object"
      +}
  2. Changed6 schema fields changed
    • addedInput schema / properties / lat / description
      Added value: +"Latitude anchoring the object to a place, paired with lng. The identity is hashed from this anchor, so two agents anchoring the same object differently mint different entities."
    • addedInput schema / properties / lat / maximum
      Added value: +90
    • addedInput schema / properties / lat / minimum
      Added value: +-90
    • addedInput schema / properties / lng / description
      Added value: +"Longitude, paired with lat."
    • addedInput schema / properties / lng / maximum
      Added value: +180
    • addedInput schema / properties / lng / minimum
      Added value: +-180
  3. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.