emem, the verifiable memory protocol for the physical world
by @Vortx-AI · io.github.Vortx-AI/emem
Shared, verifiable memory for machines and AI. Encode where data lives; decode with any AI.
- Category
- Knowledge and memory
- Connection
- Remote (HTTP)
- Tools
- 18 reported
- Status
- Online
Connect it to your AI
Claude Code
claude mcp add --transport http emem https://emem.dev/mcpClaude, ChatGPT, Cursor and other apps
Add it as a custom connector with this URL (Streamable HTTP):
https://emem.dev/mcpOr run it locally (Docker)
claude mcp add emem -- docker run -i --rm ghcr.io/vortx-ai/emem:latestCursor, VS Code and other apps (mcp.json)
{
"mcpServers": {
"emem": {
"url": "https://emem.dev/mcp"
}
}
}Tools it offers
18 tools, as the server itself reported during our check on Oct 31, 2026.
emem_entityGive 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 recemem_locateGet 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 also lists, by topic, the bands and algorithms that you can reemem_recallRead 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 names one signed attestation, so you can cite a fact and verify iemem_memory_tokenMake 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 one string to another agent instead of a new description of themem_memory_token_resolveRead 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 answer, beside the full signed `fact` body. You do not split theemem_verify_receiptVerify 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 ed25519 signature with the embedded key. It returns `{valid,emem_memory_contradictionsFind where the corpus DISAGREES with itself (algebra: competing evidence). Two or more independent sources can sign different values for the same place, band and time. This tool returns that disagreement with a severityemem_guard_verdictRun 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, and returns allow or deny with a reason that a machine can reademem_toolsThe 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 drift). Then it groups every other tool by the question it answers,emem_askAnswer 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 sends the place and the question through the locate, recall and asearchSearch 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 value, and a stable `url` that serves those bytes. The query cfetchDereference 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 time and key. The id can be an `emem:fact:` citation, a bare factemem_echo_verifyGrade 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 the `drift` between your value and the value in emem. This steemem_memory_bundleCombine N (cell, band, tslot?) triples into ONE signed envelope. Each triple goes through the standard recall path, which materializes on a miss. The tool puts the resulting fact_cids in a content-addressed envelope, andemem_entity_resolveFind the objects that agents connected to a phrase. The tool ranks them by INDEPENDENT corroboration, never by arrival order. Each candidate has `asserted_by`, `disputed_by`, `independent_attesters` and `corroboration` (emem_entity_linkRecord a signed, ATTRIBUTED claim that a label or an external id (GERS, OSM, Wikidata) names an existing object. With `stance: "disputes"`, record that it does not. This is a write to the shared space: it changes what otemem_find_similarFind 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`, `lat`/`lng` and `band_used`, and a signed receipt over the vectors itemem_intentState 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. Send only the fields in its row. The plan runs in the same ca
Questions
What is the emem, the verifiable memory protocol for the physical world MCP server?
Shared, verifiable memory for machines and AI. Encode where data lives; decode with any AI. It is made by @Vortx-AI and listed in the official MCP Registry as io.github.Vortx-AI/emem. MCP (Model Context Protocol) is the open standard that lets AI apps like Claude, ChatGPT and Cursor use outside tools.
How do I add emem, the verifiable memory protocol for the physical world to Claude?
In the Claude app or claude.ai, open Settings, then Connectors, choose "Add custom connector" and paste https://emem.dev/mcp. In Claude Code, run: claude mcp add --transport http emem https://emem.dev/mcp
How do I add emem, the verifiable memory protocol for the physical world to ChatGPT?
ChatGPT can use remote MCP servers as connectors. In ChatGPT settings, under Apps and Connectors, turn on developer mode if asked, create a new connector and paste https://emem.dev/mcp.
How do I add emem, the verifiable memory protocol for the physical world to Cursor?
Open Cursor settings, go to MCP, choose "Add new MCP server" (or edit ~/.cursor/mcp.json) and add: { "mcpServers": { "emem": { "url": "https://emem.dev/mcp" } } }
Does emem, the verifiable memory protocol for the physical world work right now?
Yes. It responded when we last checked on 31 Oct 2026. We check remote MCP servers every day.
What can emem, the verifiable memory protocol for the physical world do?
It gives your AI 18 tools, including emem_entity, emem_locate, emem_recall, emem_memory_token, emem_memory_token_resolve. The full list is on this page.
Is this your server? Get the badge for your README
Markdown (GitHub README)
[](https://chen.media/mcp/github-vortx-ai-emem)HTML (switches to dark mode on its own)
<a href="https://chen.media/mcp/github-vortx-ai-emem"><picture><source media="(prefers-color-scheme: dark)" srcset="https://chen.media/mcp/badge/github-vortx-ai-emem.svg?theme=dark"><img src="https://chen.media/mcp/badge/github-vortx-ai-emem.svg" alt="Listed on chen.media/mcp" height="40"></picture></a>More in Knowledge and memory
See allAwwab Qibla & Quiz
awwab.appQibla direction from anywhere, with a live compass link, and an Islamic knowledge quiz. By Awwab.
Echoboard
jevontane.comPre-registered hypothesis testing by AI agents. First corpus: the book Nature's Memory.
Nightbreak Forge
nightbreak.ioRead-only knowledge of Nightbreak Minecraft plugins: wiki, source, config schemas and validation.
Atlasly
atlasly.appUK site research and worldwide CAD/GIS site context (DXF, GeoJSON, SVG) for architects
SYMONE documentation
symone.frSearch and read SYMONE documentation: service, prices, public API, MCP servers, sandbox, limits.
rust.wiki
rust.wikiLive data for the game Rust: skin prices and history, items, item store, loot tables, servers.