65trust / 100

emem, the verifiable memory protocol for the physical world

by emem.dev in Other

MCP serverPassing, checked 6 h ago

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

Scan it nowHow to connect

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

All checks passedSome failedAll failedNot checked

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

WhenResultHTTPTime
6 h agoPassed200594 ms
18 h agoPassed200531 ms
30 h agoPassed200790 ms
41 h agoPassed200549 ms
2 days agoPassed200513 ms
Show 10 older checks
3 days agoPassed200795 ms
3 days agoPassed200711 ms
4 days agoPassed200505 ms
4 days agoPassed200545 ms
5 days agoPassed200606 ms
5 days agoPassed200610 ms
5 days agoPassed200510 ms
6 days agoPassed200555 ms
6 days agoPassed200530 ms
7 days agoPassed200591 ms