Vegetation history
Inspect dated NDVI observations at Keylong. Carry the exact records used in a comparison into the next analysis.
Trace the observationsChoose 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
Inspect dated NDVI observations at Keylong. Carry the exact records used in a comparison into the next analysis.
Trace the observationsCompare forest status, loss year and biomass at the same sampled locations. Preserve disagreement and source scale.
Inspect the sampled evidenceRecover the observation cited before a provider changed. Separate acquisition time from what the system knew.
Replay an earlier citationThese are evidence workflows. Physical interpretation still needs product-specific quality control, uncertainty and spatial support.
Open the emem plugin and enable it. Mention @emem, then paste the example below.
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@ememDirect MCP setup:
claude mcp add --transport http emem https://emem.dev/mcpInstall 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"}'Install the Marketplace plugin, then import a workflow template.
The EUDR template is an evidence pre-screen; it does not itself establish legal compliance.
Open Vortx AI MCP Server on Anypoint Exchange. The asset describes the emem MCP server for flow builders.
https://emem.dev/mcpA published MCP asset. A MuleSoft flow was not executed in this study.
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.
| Compare | Expected from the saved record |
|---|---|
| Exact value | 0.4708994708994709 |
| Band and unit | indices.ndvi; dimensionless |
| Place | defi.zb572.xoso.zb1ec; Keylong, Lahaul, India |
| Observation | 25 Sep 2026; Sentinel-2 L2A |
| Content identity | oj5ceccile62uvm6hedpuk67cjt2pqc7z33mtsyuffgakxbxmyaa |
| Checks | Re-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.
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.
| Route | Start here |
|---|---|
| MCP | https://emem.dev/mcp |
| Agent2Agent | Read the A2A agent card |
| REST | OpenAPI · Read the example record |
| Python | pip install ememdev |
| TypeScript | npm i @vortxai/emem |
| LangGraph memory | pip install emem-langmem |
| Self-host | docker run -p 5051:5051 ghcr.io/vortx-ai/emem:latest |
| Other clients | Cursor · Gemini CLI setup · Framework examples |
Read the conference Q&A: invention, prior art, trust, model scope and next experiments.
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.
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.
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.
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.
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.
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.
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.
Read and reproduce the research · Poster source · Build or contribute to emem
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 path | Time (ms) | Record re-hashed | Receipt signature checked |
|---|---|---|---|
| raw rest | 223.5 | yes | yes |
| raw mcp jsonrpc | 223.7 | yes | yes |
| a2a message send | 226.3 | yes | yes |
| python sdk ememdev | 207.7 | yes | yes |
| typescript sdk @vortxai/emem | 58.6 | yes | yes |
| llamaindex FunctionTool | 300.8 | yes | not checked here |
| langchain mcp adapters | 1176.8 | yes | yes |
| official mcp python sdk | 56.3 | yes | yes |
| official mcp typescript sdk | 58.3 | yes | yes |
| independent blake3 cbor2 | 235.6 | yes | not checked here |
| A to B, isolated processes (one run) | 772.8 | yes | yes |
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.
LIVE ChatGPT (ChatGPT Directory plugin 'emem', invoked as @emem)
@emem pluginchatgpt.com/plugins/plugin_asdk_app_6a6a0832a59081918b19aec0ddf9ec77
Enable the emem plugin in ChatGPT and pass an emem:fact token to its resolve tool.
LIVE Claude Code (MCP)
claude mcp add --transport http emem https://emem.dev/mcpgithub.com/Vortx-AI/emem#quickstart
Add emem in one command; the 18 core tools appear in Claude Code sessions.
LIVE Claude Code plugin (self-hosted marketplace in the emem repo)
/plugin marketplace add Vortx-AI/emem (19 skills; ~3.7k tokens always-on)github.com/Vortx-AI/emem/tree/main/plugins/emem
Install the MCP server plus 19 worked skills in two commands.
PROTOCOL Claude.ai / Claude Desktop (custom connector or config)
add https://emem.dev/mcp as a custom connector
Paste the MCP URL as a custom connector (no key).
LIVE Dify Marketplace plugin vortx-ai/emem
Marketplace plugin vortx-ai/emem (community, v2.4.0)marketplace.dify.ai/plugin/vortx-ai/emem
Install the plugin in Dify and call the emem tools from Dify apps and workflows.
LIVE Gemini CLI
gemini mcp add --transport http emem https://emem.dev/mcp
Add emem to Gemini CLI with the generic MCP command above.
PROTOCOL Visual Studio Code (GitHub Copilot agent mode)
@mcp emem (MCP gallery) or code --add-mcpinsiders.vscode.dev/redirect/mcp/install?name=emem&config=%7B%22type%22%3A%22http%22%2C%22…
One-click install from a link, or search @mcp emem in the Extensions view.
PROTOCOL Cursor
one-click MCP install linkcursor.com/install-mcp?name=emem&config=eyJ1cmwiOiJodHRwczovL2VtZW0uZGV2L21jcCJ9
One-click install in Cursor, or paste the JSON.
EXPERIMENTAL Cline (VS Code extension)
MCP settings, type streamableHttpgithub.com/Vortx-AI/emem/blob/main/examples/cline.mcp.json
Add emem manually with type streamableHttp (corrected config); not from the Cline marketplace.
PROTOCOL ChatGPT Custom GPT Action (OpenAPI import)
Build a Custom GPT that calls emem REST without a key.
PROTOCOL MCP Streamable HTTP endpoint /mcp (core tier)
https://emem.dev/mcp (Streamable HTTP, no key)
Connect any MCP client with no account or key; call the 18 listed tools, and any of 114 by name.
PROTOCOL MCP endpoint /mcp/full (all tools, paged)
List every tool, for hosts that follow nextCursor.
PROTOCOL A2A agent card and task endpoints
signed agent card, https://emem.dev/.well-known/agent-card.jsonemem.dev/.well-known/agent-card.json
Discover emem as an A2A agent, verify its card offline, send a task and verify the signed artifact.
PROTOCOL REST / OpenAPI 3.1
OpenAPI 3.1, https://emem.dev/openapi.json
Call emem from any HTTP client; fetch a fact by CID and re-hash it locally.
REGISTRY Anthropic Directory in the Claude apps (plugin 'emem')
github.com/Vortx-AI/esa_poster/blob/main/research/v13/evidence/listings/claude.png
Find emem in the Directory in the Claude apps and enable the plugin; it brings 19 skills and the emem connector.
REGISTRY Official MCP Registry (registry.modelcontextprotocol.io)
io.github.Vortx-AI/ememregistry.modelcontextprotocol.io/v0.1/servers/io.github.Vortx-AI%2Femem/versions/latest
Clients and sub-registries that read the official registry discover emem by name.
REGISTRY GitHub MCP Registry (github.com/mcp)
github.com/mcp/Vortx-AI/emem
Find emem in GitHub's registry and in VS Code's @mcp gallery.
REGISTRY Glama MCP directory
listed (graded A, scan of 2026-09-09)glama.ai/mcp/servers/Vortx-AI/emem
Find, inspect and try emem from Glama.
REGISTRY Smithery
smithery.ai/servers/vortxai/emem
Connect through Smithery with a Smithery account.
REGISTRY Hugging Face Space vortx-ai/emem
huggingface.co/spaces/vortx-ai/emem
Open emem in a browser on Hugging Face.
REGISTRY Context7 (docs for coding agents)
Coding agents can pull emem docs through Context7.
REGISTRY Salesforce MuleSoft Anypoint Exchange
Vortx AI MCP Server on Anypoint Exchangeanypoint.mulesoft.com/exchange/68e53915-e89b-4e82-b794-12d37982db4c/vortxAi-asset/
MuleSoft users find the server in Exchange.
REGISTRY punkpeye/awesome-mcp-servers
github.com/punkpeye/awesome-mcp-servers
Discovery only.
LIVE emem.dev integration landing
https://emem.dev/#use
One page listing every route with copy buttons.
REGISTRY ClawHub: OpenClaw plugin @vortx-ai/openclaw-emem
openclaw plugins install clawhub:@vortx-ai/openclaw-ememgithub.com/Vortx-AI/esa_poster/blob/main/research/v13/evidence/listings/clawhub.png
Install the emem plugin in OpenClaw with the command above.
LIVE GitHub repository Vortx-AI/emem
github.com/Vortx-AI/emem (Apache-2.0)
Read, clone, self-host, re-run the tests.
LIVE Python SDK ememdev (PyPI)
pip install ememdev
Resolve tokens, fetch facts and verify receipts offline from Python.
LIVE TypeScript SDK @vortxai/emem (npm)
npm i @vortxai/ememwww.npmjs.com/package/@vortxai/emem
Use emem from Node, browsers and edge runtimes.
LIVE Docker image ghcr.io/vortx-ai/emem
docker run -p 5051:5051 ghcr.io/vortx-ai/emem:latestgithub.com/Vortx-AI/emem/pkgs/container/emem
Self-host a responder with its own key; receipts minted elsewhere verify locally.
LIVE emem-langmem (LangChain BaseStore for LangGraph)
pip install emem-langmempypi.org/project/emem-langmem/
Use emem as a LangGraph memory store.
EXPERIMENTAL llama-index-tools-emem (LlamaIndex ToolSpec)
github.com/Vortx-AI/emem/tree/main/sdks/llama-index-tools-emem
Install from the repo path only.
EXPERIMENTAL n8n community node n8n-nodes-emem
github.com/Vortx-AI/emem/tree/main/integrations/n8n
Nothing without building it locally.
EXAMPLE LangChain / LangGraph
github.com/Vortx-AI/emem/tree/main/examples/langchain
Load emem tools into a LangGraph agent (with the one-line API fix).
EXAMPLE LlamaIndex
github.com/Vortx-AI/emem/tree/main/examples/llamaindex
Give a LlamaIndex agent the emem tools.
EXAMPLE CrewAI
github.com/Vortx-AI/emem/tree/main/examples/crewai
Give a CrewAI agent the 18 core tools.
EXAMPLE AutoGen (AgentChat)
github.com/Vortx-AI/emem/tree/main/examples/autogen
Give an AutoGen assistant the emem workbench.
EXAMPLE Mastra (TypeScript)
github.com/Vortx-AI/emem/tree/main/examples/mastra
Give a Mastra agent the 18 core tools (on the pinned 0.10 line).
EXAMPLE Agno
github.com/Vortx-AI/emem/tree/main/examples/agno
Give an Agno agent the emem tools.
EXPERIMENTAL Semantic Kernel (Python)
github.com/Vortx-AI/emem/tree/main/examples/semantic-kernel
Nothing as written; works only if the union type is removed on one side.
REGISTRY Dify Referent Lock Lite
marketplace.dify.ai/template/emem/ad67ca26-e875-494b-b98f-23902c9a2017
Import Referent Lock Lite into a Dify workspace and follow its setup instructions.
REGISTRY Dify Referent Lock Full
marketplace.dify.ai/template/emem/6c7b54a5-17f0-4eac-97a2-5d8cb51be381
Import Referent Lock Full into a Dify workspace and follow its setup instructions.
REGISTRY Dify EUDR Evidence Studio
marketplace.dify.ai/template/emem/89b63325-acec-4965-ae17-2013ef6f0029
Import EUDR Evidence Studio into a Dify workspace and follow its setup instructions.