Ogham MCP
Shared agent memory: Ogham keeps decisions and facts in Postgres and serves them to Claude Code, Cursor and OpenCode.
- 116 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The server reads and writes memories in your database and sends their text to an embeddings provider.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/ogham-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The server reads and writes memories in your database and sends their text to an embeddings provider.
This is third-party code. Review the repository files before installing.
What it does
Ogham stores what an agent learns in a project: decisions, gotchas, the shape of the code. Data lives in your PostgreSQL database with pgvector, on Supabase, Neon or a server you run. One server serves Claude Code, Cursor, VS Code, OpenCode and other clients, so context survives a switch of tools. Search is hybrid: vector embeddings and full-text search merge in one query, and a typed edge graph answers questions whose answer lies between two facts. It includes a memory lifecycle with decay, imports from Claude Code, Claude.ai and Linear, ingestion from Obsidian, Telegram and Slack, and session start and end hooks. The skills ogham-research, ogham-recall and ogham-maintain are in the skills folder.
Who it is for. Developers who switch between several agents and are tired of re-explaining the same project.
Good fit when
- A decision made yesterday in Claude Code must be recalled in Cursor.
- A team wants shared memory for several agents on one server.
- Obsidian notes and Slack threads should reach the agent context.
- Old memories need condensing into one wiki page per tag.
Not a fit when
- There is no PostgreSQL database or Supabase account: the server needs storage.
- Context may not go to an embeddings provider outside the company and you do not want to set up a local model.
- A CLAUDE.md rules file is enough: memory is overkill for the task.
Example request
Remember that we chose Postgres over SQLite for concurrent writes, and remind me of this decision in Cursor tomorrow.MCP
- Transport
- stdio, http, sse
- Authentication
- key is optional
Environment variables
SUPABASE_URL- Supabase project URL when this database is used.
SUPABASE_KEYsecret- Supabase service role key.
DATABASE_URLsecret- Postgres connection string for Neon or a self-hosted server.
EMBEDDING_PROVIDERrequired- Embeddings provider: openai, ollama, mistral or voyage.
OPENAI_API_KEYsecret- Key of the chosen embeddings provider.
Limitations
The server needs a database: a free Supabase project, Neon or your own Postgres, and Neon or self-hosted setups install the postgres extra. Python 3.13 and an embeddings provider are required: OpenAI, Ollama, Mistral or Voyage, or the local ONNX model BGE-M3. Memory text goes to the chosen provider and to the database, so secrets are masked before storage, but you still need to review what you keep. The ogham init wizard writes the client config itself.
How to disable. Run claude mcp remove ogham or delete the entry from the client config, stop the ogham serve server and, if you like, clear the memory tables in your database.
FAQ
How do I install Ogham in Claude Code?
Run `uvx --from ogham-mcp ogham init`: the wizard connects the database and calls `claude mcp add` itself. Manually it is `claude mcp add ogham -- uvx ogham-mcp`.
How do I connect several agents to one memory?
Run `ogham serve --transport streamable-http --port 8742` and point clients at `http://127.0.0.1:8742/mcp`.
What is required?
Python 3.13, a Supabase, Neon or self-hosted Postgres database with pgvector, and an embeddings provider key or a local model.
Which skills ship with it?
The `skills/` folder holds `ogham-research`, `ogham-recall` and `ogham-maintain`.
Where can data be imported from?
From Claude Code auto-memory, a Claude.ai export, Linear issues and JSON, and through the `ingest-obsidian`, `ingest-telegram` and `ingest-slack` adapters from Obsidian, Telegram and Slack.
Discussion
No questions or reviews yet.
Related
MCP serversPersistent agent memory in a folder of linked markdown notes, so Claude Code remembers a project across sessions
Knowledge-graph memory for agents: Claude Code and Codex plugins, an MCP server and a Python library
An MCP server and API of shared memory for several agents: facts, decisions and events live in one database with semantic search.
Local long-term memory for agents: decisions, mistakes and preferences are stored on your machine and pulled into new sessions
A local MCP memory server for coding agents: decisions, errors and facts stay on your machine, with semantic and graph recall
Cortex keeps decisions and project context between Claude Code and Codex sessions in a local database and shows what it recalled
README in short
Ogham is positioned as a memory retrieval engine: it stores and finds memories while the client model reads them. The author reports LongMemEval and BEAM results with methodology notes. Every store and search is logged to an audit_log table, and stdio, Streamable HTTP and SSE modes are supported.