
edihasaj/universal-memory-protocol
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Universal Memory Protocol (UMP) - an open standard for agent memory. The third interop layer beside MCP (tools) and A2A (coordination).
Обзор
Portable memory for AI agents. Teach one tool, recall it in the next. Stable v1.0 · https://universalmemoryprotocol.io · @universalmemoryprotocol/core · MCP, HTTP, file export Your AI tools learn things - that this repo uses pnpm, that you like terse release notes, the gotcha that bit you last week - then lose all of it the moment you switch from Claude Code to Cursor to Codex. The knowledge is trapped inside whichever tool happened to learn it. UMP fixes that. It defines for a memory and for working with it (recall, remember, get, revise, forget, feedback), with bindings for MCP, HTTP, and plain files. Any agent or store that speaks UMP can read and extend the same memory, so a fact you teach one tool is there for the next one. It is a protocol, not a product: no database to run, no service to sign up for. The reference implementation keeps memory in a portable, signed file you own (~/.ump/memory.ump.json).
README
Показан фрагмент оригинального README. Открыть оригинал.
Universal Memory Protocol (UMP)
Portable memory for AI agents. Teach one tool, recall it in the next.
Status: Stable v1.0 · Site: · Package: @universalmemoryprotocol/core · Bindings: MCP, HTTP, file export
Your AI tools learn things - that this repo uses pnpm, that you like terse release notes, the gotcha that bit you last week - then lose all of it the moment you switch from Claude Code to Cursor to Codex. The knowledge is trapped inside whichever tool happened to learn it.
UMP fixes that. It defines one record format for a memory and six operations for working with it (recall, remember, get, revise, forget, feedback), with bindings for MCP, HTTP, and plain files. Any agent or store that speaks UMP can read and extend the same memory, so a fact you teach one tool is there for the next one.
It is a protocol, not a product: no database to run, no service to sign up for.
The reference implementation keeps memory in a portable, signed file you own
(~/.ump/memory.ump.json). Copy that file and you have moved your agent’s memory
to any other tool that speaks UMP.
Already have memory in CLAUDE.md/AGENTS.md, Recall exports, Obsidian, Postgres, Redis, SQLite, or a vector DB? UMP wraps those rather than replacing them - see Existing Memory Imports and Store Implementations.
Use It Now
Add persistent UMP memory to any MCP host:
{
"mcpServers": {
"ump": { "command": "npx", "args": ["-y", "@universalmemoryprotocol/core", "ump-memory"] }
}
}
The server exposes:
ump.capabilitiesump.recallump.rememberump.getump.reviseump.forgetump.feedback
By default, ump-memory stores portable records in ~/.ump/memory.ump.json.
Set UMP_STORE=markdown to store human-editable *.ump.md records instead.
Implement It
Use the MCP server for immediate agent integration, the TypeScript SDK for a native UMP implementation, or the HTTP binding from any language.
// MCP host config: Claude Code, Codex, Cursor, or any MCP client.
{
"mcpServers": {
"ump": {
"command": "npx",
"args": ["-y", "@universalmemoryprotocol/core", "ump-memory"]
}
}
}
import {
JsonFileStore,
UmpServer,
generateKeyPair,
} from "@universalmemoryprotocol/core";
const key = generateKeyPair();
const store = await JsonFileStore.open(".ump/memory.ump.json");
const ump = new UmpServer({
name: "my-agent",
version: "1.0.0",
conformance: "L2",
store,
key,
});
await ump.remember({
kind: "procedural",
body: { text: "Use pnpm for this repository." },
scope: { owner: key.did, project: "github.com/acme/app", visibility: "private" },
provenance: { actor: key.did, actor_kind: "user", method: "user_correction" },
});
const memories = await ump.recall({
query: "package manager",
Установка
npx -y @universalmemoryprotocol/core ump-memoryКонфигурация
{
"mcpServers": {
"ump": { "command": "npx", "args": ["-y", "@universalmemoryprotocol/core", "ump-memory"] }
}
}