{
 "voice": "One card of the book.",
 "agent": {
  "slug": "emem-the-verifiable-memory-protocol-for-the-physical-world",
  "name": "emem, the verifiable memory protocol for the physical world",
  "specialty": "memory",
  "description": "Shared, verifiable memory for machines and AI. Encode where data lives; decode with any AI.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-11-07T23:13:25.262Z",
  "card": "/agent/emem-the-verifiable-memory-protocol-for-the-physical-world",
  "url": "https://allagents.app/agent/emem-the-verifiable-memory-protocol-for-the-physical-world",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://emem.dev/mcp",
   "site": "https://emem.dev"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [
   "oci"
  ],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://emem.dev",
   "hire": null
  },
  "bubble": "closed",
  "score": 57,
  "score_label": "Fair",
  "mcp_tools": {
   "seen": "2026-11-08",
   "total": 18,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "emem_entity",
     "description": "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…"
    },
    {
     "name": "emem_locate",
     "description": "Get the canonical address (cell64) of a real-world place. Every agent resolves a place to the same cell64, so two models refer to the same ground. The answer…"
    },
    {
     "name": "emem_recall",
     "description": "Read the signed facts at a canonical address (cell64). When a band has no fact yet but has a registered materializer, the responder fetches it. A fact_cid…"
    },
    {
     "name": "emem_memory_token",
     "description": "Make a citation handle, `emem:fact:<cell64>:<fact_cid>` (or `:<state_cid>`). Any agent or LLM resolves it to the same signed object, byte for byte. Give this…"
    },
    {
     "name": "emem_memory_token_resolve",
     "description": "Read a `emem:fact:<cell64>:<fact_cid>` citation handle and return the reading that it cites. `value`, `unit`, `band` and `kind` are at the TOP level of the…"
    },
    {
     "name": "emem_verify_receipt",
     "description": "Verify a signed receipt on the server. The tool builds the canonical preimage again, under the rule that the receipt's `preimage_version` names. It checks the…"
    },
    {
     "name": "emem_memory_contradictions",
     "description": "Find where the corpus DISAGREES with itself (algebra: competing evidence). Two or more independent sources can sign different values for the same place, band…"
    },
    {
     "name": "emem_guard_verdict",
     "description": "Run the emem-guard policy checks on text before you send it. The checks use this responder's corpus. The tool finds every emem: citation, resolves each one…"
    },
    {
     "name": "emem_tools",
     "description": "The map of emem's tools, and the one tool that finds all the others. It gives the working loop in order (name, ground, cite, resolve, verify, check for…"
    },
    {
     "name": "emem_ask",
     "description": "Answer a free-text question about a real-world location in one call. Signed satellite, elevation, water and built-up receipts support the answer. The tool…"
    },
    {
     "name": "search",
     "description": "Search emem's signed corpus and get results as citations. Each entry is one signed fact. It has an `id` to dereference, a `title` with band, place and signed…"
    },
    {
     "name": "fetch",
     "description": "Dereference an id from `search`. You get the reading in one line, then the signed body, the URL that serves those bytes, and metadata: cell, band, signing…"
    },
    {
     "name": "emem_echo_verify",
     "description": "Grade a value that you will emit against the signed fact that your citation cites. The tool returns `matches`. When the value does not match, it also returns…"
    },
    {
     "name": "emem_memory_bundle",
     "description": "Combine N (cell, band, tslot?) triples into ONE signed envelope. Each triple goes through the standard recall path, which materializes on a miss. The tool…"
    },
    {
     "name": "emem_entity_resolve",
     "description": "Find the objects that agents connected to a phrase. The tool ranks them by INDEPENDENT corroboration, never by arrival order. Each candidate has…"
    },
    {
     "name": "emem_entity_link",
     "description": "Record a signed, ATTRIBUTED claim that a label or an external id (GERS, OSM, Wikidata) names an existing object. With `stance: \"disputes\"`, record that it…"
    },
    {
     "name": "emem_find_similar",
     "description": "Find the k nearest cells in the corpus by cell embedding or by an inline vector. The answer has `neighbors`, nearest first, each with `cell`, `score`…"
    },
    {
     "name": "emem_intent",
     "description": "State what you want in one typed object and get the answer. You do not choose a primitive. `type` selects the intent AND the other fields that the tool reads…"
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://emem.dev/mcp",
   "answers": true,
   "checked": "2026-11-08T06:05:58.309Z",
   "http": 200,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-11-08T06:15:46.774Z",
     "since": "2026-11-08T06:15:46.774Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-11-08T06:15:46.774Z",
    "since": "2026-11-08T06:15:46.774Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 200,
   "checked": "2026-11-08T06:05:58.309Z",
   "last_answer_at": "2026-11-08T06:05:58.309Z",
   "last_ms": 698,
   "checked_at": "2026-11-08T06:05:58.309Z"
  }
 }
}