Iranti: a persistent memory MCP server for AI agents
Iranti ships a stdio MCP server that any MCP-compatible client can connect to. Connect Claude Code, GitHub Copilot, Codex, or your own agent and get structured, persistent, cross-session memory — with exact retrieval, conflict handling, and operator visibility included.
Why a memory MCP server
The Model Context Protocol gives AI tools a standard interface for calling external capabilities. Most MCP servers expose read-only data sources, API wrappers, or task-execution tools. Memory is different: it needs to be readable and writable, persistent across sessions, and shared across tools.
Iranti is built specifically for this. It exposes a set of MCP tools for writing structured facts, reading them back by exact address or hybrid search, managing session state, traversing entity relationships, and inspecting provenance. The backend is PostgreSQL with pgvector — durable, consistent, and queryable.
Because Iranti is a standard MCP server, any tool that speaks MCP can use it without a custom adapter. One Iranti instance can serve multiple clients simultaneously. Facts written by Claude Code are immediately available to a Codex agent in the same project.
Connect any MCP client
Iranti ships fast-path setup commands for the most common MCP clients:
Each setup command writes the appropriate MCP config file for that client and adds protocol instructions so the agent knows how to use the Iranti tools.
MCP tools exposed
iranti_handshakeInitialize working memory for the session. Loads operating rules, recent decisions, and task-relevant facts.
iranti_attendPre-turn memory injection. Call before every reply to retrieve facts the agent is likely to need.
iranti_writeStore a structured fact at entity + key. Persists to PostgreSQL immediately. Survives session end and process restart.
iranti_queryExact lookup by entity and key. Deterministic: same address always returns the same current fact.
iranti_searchHybrid search (lexical + vector similarity) for when the exact key is unknown.
iranti_checkpointSave task state: current step, next step, open risks, file changes. Next session resumes from here.
iranti_ingestExtract structured facts from prose or documents and write them to the knowledge base.
iranti_observePull facts an agent should know about an entity — proactive injection with explicit recovery hints.
iranti_relateWrite a typed relationship between two entities.
iranti_relatedTraverse one hop from an entity — returns all directly related entities.
iranti_historyRead the full version history of a fact key — all values, confidence scores, and timestamps.
iranti_who_knowsFind which agents have written to a given entity — provenance and attribution.
What makes this different from other memory MCP servers
Most MCP memory tools expose simple key-value storage or semantic search. Iranti adds a layer on top of storage: the Attendant (per-agent memory injection), the Librarian (conflict-aware writes), and the Archivist (lifecycle and maintenance). These aren't just storage primitives — they implement memory behaviour that holds up in multi-agent and multi-session workflows.
When two agents write different values to the same key, the Librarian detects the conflict, applies resolution logic, and escalates to a human if confidence is too close to call.
iranti_query returns the current value at entity + key deterministically. Same address, same result — no similarity threshold, no probabilistic miss.
iranti_handshake and iranti_attend implement a turn discipline that ensures memory is loaded at the right time, not just available in theory.
Every write records who wrote it, when, and with what confidence. iranti_who_knows traces attribution across agents.
Benchmark evidence
Iranti's MCP memory layer has been tested against three other memory systems across four benchmarks. On recall accuracy and cross-session persistence, Iranti scores 100%. On pool efficiency, it achieves the best accuracy/token ratio tested. On conflict resolution, it is the only system that deterministically replaces old values.
See the full benchmark results →