The MCP server for agentage Memory exposes your local vaults
(~/.agentage/vaults.json, read through @agentage/memory-core)
as the frozen 6 memory__* tools over stdio. The open, cross-vendor counterpart to
@modelcontextprotocol/server-memory.
This package is intentionally small - it is just the MCP definition (the 6-tool Zod
schema + .mcpc.json, the text renderer, createMemoryServer, and a ~15-line stdio bin).
All memory logic (backends, git, search, routing) lives in @agentage/memory-core.
# one-time, offline: scaffold ~/.agentage + a starter vault
# (memory-core's `init`, also surfaced by the agentage CLI)
npx @agentage/server-memory # serves ~/.agentage/vaults.json over stdioPoint any stdio MCP client (Windsurf, Zed, Claude Desktop) at npx @agentage/server-memory.
The server builder is transport-agnostic, so the agentage CLI reuses the exact same pieces and only swaps the transport:
import { createMemoryServer, loadLocalServer } from '@agentage/server-memory';
// stdio bin: await (await loadLocalServer()).connect(new StdioServerTransport());
// CLI daemon: const server = createMemoryServer(registry, { scope: 'local' });
// await server.connect(new StreamableHTTPServerTransport(...));Nothing is collected and nothing extra is installed: @agentage/observability is not a
dependency, because npx @agentage/server-memory should stay a small cold start. Install the kit
alongside and the bin picks it up on its own - traces and one wide event per tool call:
npm i -g @agentage/observability # or just use the agentage CLI, which ships with itAbsent, the server behaves exactly as before (AGENTAGE_DEBUG=1 prints one stderr line saying the
kit was not found). Present, it is still inert until OTEL_EXPORTER_OTLP_ENDPOINT names a
collector; OTEL_SERVICE_NAME defaults to agentage-server-memory. Either way stdout carries
only JSON-RPC - every kit line goes to stderr, which test/observability.test.ts asserts in both
directions.
npm install # links @agentage/memory-core via file:../memory-core
npm test # vitest: contract (tools/list = 6) + tools (in-memory) + e2e (init -> spawned bin -> round-trip)
npm run verify # type-check + lint + format:check + test + build@agentage/memory-core is a local file: link until both packages publish to npm; build
core before running here (the e2e does this automatically). The 6-tool schema and
.mcpc.json snapshot are the frozen MCP contract - keep them in sync if the contract changes.