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
MCP server

Extended access

Why this level

  • The server reads and writes memories in your database and sends their text to an embeddings provider.
All reasons and checks

ogham-mcp/ogham-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/ogham-mcp

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended 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_KEY secret
Supabase service role key.
DATABASE_URL secret
Postgres connection string for Neon or a self-hosted server.
EMBEDDING_PROVIDER required
Embeddings provider: openai, ollama, mistral or voyage.
OPENAI_API_KEY secret
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.

Persistent agent memory in a folder of linked markdown notes, so Claude Code remembers a project across sessions

MCP serverExtended access336Repository stars

Knowledge-graph memory for agents: Claude Code and Codex plugins, an MCP server and a Python library

PluginExtended access33.3KRepository stars

An MCP server and API of shared memory for several agents: facts, decisions and events live in one database with semantic search.

MCP serverExtended access64Repository stars

Local long-term memory for agents: decisions, mistakes and preferences are stored on your machine and pulled into new sessions

MCP serverExtended access225Repository stars

A local MCP memory server for coding agents: decisions, errors and facts stay on your machine, with semantic and graph recall

MCP serverExtended access76Repository stars

Cortex keeps decisions and project context between Claude Code and Codex sessions in a local database and shows what it recalled

MCP serverExtended access76Repository stars

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.

README badge

Report a problem