Skip to main content

Overview

z3rno-mcp is a Model Context Protocol server that wraps the Python SDK and surfaces it over stdio. Drop it into Claude Desktop, Cursor, Claude Code, or any MCP-compatible runtime and the agent inherits persistent memory, an immutable audit log, knowledge-graph extraction, and turn-aware conversation memory — without any code on your side.
For a step-by-step install + walkthrough optimized for Claude Desktop, see Integrations → Anthropic MCP. This page is the reference: every tool, every parameter, every env var.
Current version: z3rno-mcp 0.6.1 (pins z3rno SDK >=0.7.0).

Tools

Twelve tools, grouped by what they touch.

Memory primitives

z3rno.store

Persist a memory. Returns the stored memory and its id.

z3rno.recall

Semantic search. Defaults to the AUTO strategy router which picks VECTOR, GRAPH, LEXICAL, TEMPORAL, TRACE, TRIPLET, CYPHER, or CODE per query.

z3rno.forget

Soft-delete (default) or hard-delete one or more memories. Hard delete emits a Merkle-rooted, ed25519-signed certificate to forget_certificates for GDPR right-to-erasure compliance.

z3rno.audit

Paginated read over the hash-chained audit log.

Forge (knowledge graph)

z3rno.ingest

Push raw text or a URL into the Forge. Returns a job_id; when INGEST_AUTO_DISTILL=true (the default), the server chains directly into z3rno.distill.

z3rno.distill

Build or extend the knowledge graph from stored memories. Runs the Forge pipeline (chunk → LLM entity + relationship extraction → write Memo nodes + edges) and returns a job_id. Poll status with poll_job_id. Idempotent.

z3rno.refine

Improve the graph in place: dedupe Memos sharing an ontology URI or normalized name (SCD-2 supersede), EMA-blend edge weights from accumulated feedback, prune sub-threshold edges. Optional LLM stages (infer / summarize) are server-side flags. Admin-scoped.

z3rno.visualize_url

Return a URL to the Z3rno graph viewer for a dataset or agent. Use when the user asks “show me the graph”.
Returns a string URL of the form ${Z3RNO_WEB_URL}/graph?dataset_id=....

Conversation memory (Phase G)

z3rno.start_conversation

Open a new conversation. Returns the conversation_id so subsequent stores can be tagged. Call at the start of a chat to enable turn-aware recall and automatic summarization triggers.

z3rno.end_conversation

Mark a conversation finished. The metadata row is soft-deleted and no further turns can be added; existing turn Memos stay queryable via standard recall.

z3rno.summarize_conversation

Fetch turn history in order so the agent can produce a summary. The agent runs its own summarization; once done, it persists the result via z3rno.store with memory_type='semantic' and metadata={"kind": "summary", "covers_turns": [start, end]}.

z3rno.time_travel

Recall memories as they existed at a past timestamp. Uses Z3rno’s SCD-2 temporal index. Supply an ISO-8601 timestamp.

Environment variables

Install

Host configuration

Self-hosted

Point the MCP server at your own Z3rno instance — works identically whether the server runs from docker compose locally or from the Helm chart on a cluster:

Troubleshooting

  • Tools don’t appearuvx not on PATH. Run which uvx; if empty, install uv from astral.sh/uv.
  • agent_id is required — Set Z3RNO_AGENT_ID in the env block, or pass agent_id on every tool call. No implicit fallback by design.
  • Connection refused — Verify Z3RNO_BASE_URL is reachable and the server is running (curl $Z3RNO_BASE_URL/v1/health).
  • 401 Unauthorized — Verify Z3RNO_API_KEY matches the server. Default dev key is z3rno_sk_test_localdev; rotate for production via POST /v1/api-keys.
  • z3rno.visualize_url returns a 404 — The graph viewer at the returned URL isn’t deployed. Run z3rno-web locally and set Z3RNO_WEB_URL=http://localhost:3000, or wait for the hosted viewer to land at app.z3rno.dev/graph.