emem, the verifiable memory protocol for the physical world
by emem.dev in Other
Shared, verifiable memory for machines and AI. Encode where data lives; decode with any AI.
https://emem.dev/mcp- Tools
- 18
- open to any client
- Uptime
- 100%
- last 30 days
- Response time
- 582 ms
- 790 ms slowest 5%
- Last check
- Passed
- 6 h ago, next in 34 min
This listing's own text contains instructions aimed at AI agents (see the security scan below). We withhold that text from agents and never recommend this service.
Reliability
Status and outage history · Atom feed · Watch with other listings
How to connect
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"emem-the-verifiable-memory-protocol-for-the-physical-world": {
"type": "http",
"url": "https://emem.dev/mcp"
}
}
}18 tools
- emem_entity
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…
- emem_locate
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 also lists, by topic, the bands and algorithms that you can recall there. For an OBJECT identity (a bridge, a plot)…
- emem_recall
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 names one signed attestation, so you can cite a fact and verify it again. Resolve the cid anywhere and you get the same…
- emem_memory_token
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 one string to another agent instead of a new description of the fact. The tool checks that both parts are not empty and…
- emem_memory_token_resolve
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 answer, beside the full signed `fact` body. You do not split the token or call `GET /v1/facts/<cid>` yourself. Memory…
- emem_verify_receipt
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 ed25519 signature with the embedded key. It returns `{valid, reason, failure_detail, signature_valid…
- emem_memory_contradictions
Find 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 severity from 0 to 1 and a citation for each disputed fact. It does…
- emem_guard_verdict
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, and returns allow or deny with a reason that a machine can read: `EMEM-GUARD DENY <CODE> token=<token|-> fix=<fix>…
- emem_tools
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 drift). Then it groups every other tool by the question it answers, each with a one-line trigger. Send `name` for the full…
- emem_ask
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 sends the place and the question through the locate, recall and algorithm chain on the server, and returns one packaged…
- search
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 value, and a stable `url` that serves those bytes. The query can be a place or a question about one. ('NDVI near Mount…
- fetch
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 time and key. The id can be an `emem:fact:` citation, a bare fact_cid, or an `emem:cell:` handle for a full cell. The value…
- emem_echo_verify
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 the `drift` between your value and the value in emem. This step catches a transcription error that would otherwise be a…
- emem_memory_bundle
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 puts the resulting fact_cids in a content-addressed envelope, and the responder signs the full receipt. The `bundle_token`…
- emem_entity_resolve
Find 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` (`single_key` | `multiple_independent_keys` |…
- emem_entity_link
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 does not. This is a write to the shared space: it changes what other agents resolve. The responder stores it with your key…
- emem_find_similar
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`, `lat`/`lng` and `band_used`, and a signed receipt over the vectors it read. `mode` sets the scoring. cosine is exact fp32…
- emem_intent
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. Send only the fields in its row. The plan runs in the same call: you get results, not a list of calls. type | needs |…
Security scan
2 findings
- Tries to override other tools in tool:emem_memory_token
. Give this one string to another agent instead of a new description of the fact. The tool checks that both parts are not empty and do not c - Mentions credentials or secret files in instructions
ed no API key. Peer agents: /.well-known/mcp.json carries the a2a block. POST /v1/inbox is your mailbox once you hold a key, and GET /v1/age
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 6 h ago | Passed | 200 | 594 ms |
| 18 h ago | Passed | 200 | 531 ms |
| 30 h ago | Passed | 200 | 790 ms |
| 41 h ago | Passed | 200 | 549 ms |
| 2 days ago | Passed | 200 | 513 ms |
Show 10 older checks
| 3 days ago | Passed | 200 | 795 ms |
| 3 days ago | Passed | 200 | 711 ms |
| 4 days ago | Passed | 200 | 505 ms |
| 4 days ago | Passed | 200 | 545 ms |
| 5 days ago | Passed | 200 | 606 ms |
| 5 days ago | Passed | 200 | 610 ms |
| 5 days ago | Passed | 200 | 510 ms |
| 6 days ago | Passed | 200 | 555 ms |
| 6 days ago | Passed | 200 | 530 ms |
| 7 days ago | Passed | 200 | 591 ms |