Skip to main content
Glama

Mint or get a canonical object identity

emem_entity
Idempotent

Create a stable, content-addressed identity for any real-world object using its label and location, ensuring consistent resolution across agents.

Instructions

Give a real-world object (a bridge, a farm plot, a river, a named place) a single, shared, content-addressed identity that any agent resolves the same way. Returns an entity_token (emem:entity:<entity_cid>) plus a signed receipt that attests how the reference resolved. Two agents that name the same object mint the SAME entity_cid; when a stable external id (Overture GERS / OSM) is known it dominates identity, so divergent labels for one real object still collapse to one id. This is the object-level antidote to referential drift: 'the damaged bridge near the river' becomes one canonical thing every model reasons about, not a phrase each model re-interprets.

When to use: Call when a conversation refers to a THING and you want a stable handle to it that survives summarization and travels between agents/turns/LLMs, before it drifts into 'that infrastructure issue'. Anchor it with place, a cell, or lat+lng. Hand the returned emem:entity: token to any other agent; they dereference the identical object. Recall/ask at the entity's cell64 for signed facts about it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNo
lngNo
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).
external_idsNoStable ids that drive convergence. Caller-supplied values win over geocoder-derived ones.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotent and non-destructive behavior. The description adds transparency about content-addressing, convergence via external IDs, and the return format (entity_token plus receipt). It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long but well-structured, with the first paragraph explaining the concept and the second giving usage guidance. Every sentence adds value, though some redundancy could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (8 params, nested objects, no output schema), the description is comprehensive. It explains the return value, convergence, and anchoring. It lacks explicit guidance on mutual exclusivity of location parameters and potential error cases, but is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75%, and the description adds context like 'Anchor it with place, a cell, or lat+lng' and explains the role of external_ids. However, it does not elaborate on constraints like mutual exclusivity of place/cell/lat+lng or provide per-parameter details beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Give a real-world object a single, shared, content-addressed identity' and explains the return value. It distinguishes itself from sibling tools by focusing on minting/getting an identity rather than querying or linking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a 'When to use' paragraph that clearly states when to call this tool (when a conversation refers to a THING and you want a stable handle) and provides anchoring guidance. However, it does not explicitly mention when not to use it or how it relates to siblings like emem_entity_resolve.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vortx-AI/emem'

If you have feedback or need assistance with the MCP directory API, please join our Discord server