Bring the evidence into your workflow.

Choose a plugin, a workflow or your own code. Start with the saved observation below, then hand its reference to another agent. Public emem reads need no API key. The implementation is Apache-2.0.

Try the browser demo · Methods and reproduction · Further demonstrations

Choose an Earth-observation question

Vegetation history

Inspect dated NDVI observations at Keylong. Carry the exact records used in a comparison into the next analysis.

Trace the observations

Forest-product comparison

Compare forest status, loss year and biomass at the same sampled locations. Preserve disagreement and source scale.

Inspect the sampled evidence

Historical replay

Recover the observation cited before a provider changed. Separate acquisition time from what the system knew.

Replay an earlier citation

These are evidence workflows. Physical interpretation still needs product-specific quality control, uncertainty and spatial support.

1 · Connect your tool

ChatGPT

Open the emem plugin and enable it. Mention @emem, then paste the example below.

The connected plugin exposes emem_memory_token_resolve.

Claude

In the Claude apps, enable the emem plugin from the Directory, or add https://emem.dev/mcp as a custom connector. In Claude Code, install the plugin from emem's marketplace. Plugin instructions.

/plugin marketplace add Vortx-AI/emem
/plugin install emem@emem

Direct MCP setup:

claude mcp add --transport http emem https://emem.dev/mcp

Visual Studio Code

Install the MCP integration for Copilot agent mode, or search @mcp emem in the MCP gallery.

code --add-mcp '{"name":"emem","type":"http","url":"https://emem.dev/mcp"}'

Dify

Install the Marketplace plugin, then import a workflow template.

The EUDR template is an evidence pre-screen; it does not itself establish legal compliance.

Salesforce MuleSoft

Open Vortx AI MCP Server on Anypoint Exchange. The asset describes the emem MCP server for flow builders.

https://emem.dev/mcp

A published MCP asset. A MuleSoft flow was not executed in this study.

2 · Copy a real handoff

Paste this into a connected agent. Give the same token to a second agent or a new session. Compare the record identity and the checks performed.

CompareExpected from the saved record
Exact value0.4708994708994709
Band and unitindices.ndvi; dimensionless
Placedefi.zb572.xoso.zb1ec; Keylong, Lahaul, India
Observation25 Sep 2026; Sentinel-2 L2A
Content identityoj5ceccile62uvm6hedpuk67cjt2pqc7z33mtsyuffgakxbxmyaa
ChecksRe-hash the canonical record; bind its place, band and time; verify the receipt or batch under the expected key. A source re-read is a further check.

Success means: the next agent recovers the same record and exact value, preserves the citation and reports the checks it performed. Asking for a new “latest” observation is a different task. If a tool call fails, report that failure; the saved offline demo still lets you inspect and verify the example.

What was checked?

The public ChatGPT emem listing (Developer Vortx.ai), Dify plugin and three templates, GitHub MCP, MuleSoft Exchange and ClawHub pages returned HTTP 200 on 2 October 2026. The Anthropic Directory listing in the Claude apps is documented by the authors' screenshot of 4 October 2026. ChatGPT's plugin and resolve tool are also connected in the authors' workspace; two resolve attempts returned a connector-level “Unexpected response type” error. They are not counted as successful agent runs. In Claude Code, the plugin installed and the MCP server connected on 30 September 2026; VS Code configuration was checked against the source. No agent run through the Claude apps, VS Code, Dify or MuleSoft is claimed here; the R5 agent trials ran as headless Claude Code sessions (methods, section 5). Link checks · Connected plugin check.

3 · Build with the same reference

RouteStart here
MCPhttps://emem.dev/mcp
Agent2AgentRead the A2A agent card
RESTOpenAPI · Read the example record
Pythonpip install ememdev
TypeScriptnpm i @vortxai/emem
LangGraph memorypip install emem-langmem
Self-hostdocker run -p 5051:5051 ghcr.io/vortx-ai/emem:latest
Other clientsCursor · Gemini CLI setup · Framework examples

Questions the poster opens

Read the conference Q&A: invention, prior art, trust, model scope and next experiments.

What is in the token, and what stays upstream?

The fact token carries a lookup cell and a full content identifier. The record behind it contains the value, time, derivation and source references. Large source scenes remain upstream. Cell, product and time find candidate observations; the fact CID identifies the exact record used.

What do a hash, signature and source check establish?

The hash checks record identity. Binding checks that the record answers the requested place, product and time. A receipt or batch attestation checks a statement under a particular key. A declared derivation can be recomputed, and the named upstream source can be re-read. These checks do not establish a sensor's accuracy, an entity's meaning or the correctness of a downstream decision.

What happens when data is missing or later changes?

A typed absence can name a coverage or quality reason instead of inventing a value. New records can coexist with earlier content addresses. Recall can bound both observation time and signing time. The archived Bengaluru example answers 918.0 m as of 15 June, before a later provider returned 915.07 m; that difference alone is not ground movement.

Can I carry more than one reading or resume an investigation?

The archived bundle groups eight fact references in one 38-character handle. The member records have their own identities and checks. Reasoning stages can also carry state addresses: the saved located, routed, recalled and scored states reproduce from their published fields. Signed agent notes can preserve working context separately from source observations. Offline reproduction.

Can I use the foundation-model embeddings?

The poster includes stored Prithvi and TESSERA vectors. Those deployed encoders are retired: the old records remain addressable, while new embedding generation is not demonstrated. Prithvi records a checkpoint digest; the archived TESSERA example records a product year. Preserve that distinction when comparing models.

Can verification work offline? What if the server disappears?

Keep the record bytes, expected signer key, receipt or attestation and required log proofs. The saved browser demo checks its retained evidence locally; it does not need the live responder. A content address establishes identity, not future availability. Retain the evidence you need and choose your own storage and trust policy.

Who can write, and how does this relate to other EO tools?

Public reads do not grant authority to publish canonical observations. Writes follow signer and admission rules; agent-authored notes remain distinct from observations. STAC discovers assets, openEO describes processing, and PROV/C2PA carry provenance. emem adds the observation reference that can pass between agents. The methods explain the verification boundary.

What the community can test next

Read and reproduce the research · Poster source · Build or contribute to emem

One token, 11 client paths

The Keylong token resolved through 11 client paths (REST, raw MCP, A2A, two SDKs, framework adapters, the official MCP SDKs and an independent blake3 and cbor2 reader): 11 of 11 succeeded, with 1 distinct record name and 1 distinct value, run 2026-09-30 08:40 UTC. Model-in-the-loop handoffs between two agent hosts are not shown here. Source: research/repro/data/v8/crossruntime_table.json.

Client pathTime (ms)Record re-hashedReceipt signature checked
raw rest223.5yesyes
raw mcp jsonrpc223.7yesyes
a2a message send226.3yesyes
python sdk ememdev207.7yesyes
typescript sdk @vortxai/emem58.6yesyes
llamaindex FunctionTool300.8yesnot checked here
langchain mcp adapters1176.8yesyes
official mcp python sdk56.3yesyes
official mcp typescript sdk58.3yesyes
independent blake3 cbor2235.6yesnot checked here
A to B, isolated processes (one run)772.8yesyes

Complete integration directory

Plugins, connectors, packages, listings and repository examples have different setup paths. Statuses as checked from 30 Sep 2026 to 4 Oct 2026: LIVE works today; PROTOCOL is an open surface emem serves; REGISTRY is a listing; EXAMPLE is example code; EXPERIMENTAL is unpublished or not yet working as documented. Framework adapters may need the versions or fixes noted under them. Evidence for every row: research/v13/ecosystem_manifest.json.

Agent hosts (9)
Interoperability (5)
Discovery (11)
Developer (7)
Frameworks (7)
Workflow templates (3)