Sibyl Memory MCP
Long-term agent memory in one SQLite file with FTS5 search: an MCP server, a CLI and Hermes and LangGraph adapters
- 177 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The agent writes and deletes memory entries, and `sibyl skills` adds hooks to `~/.claude/settings.json`
- The plugin contacts `api.sibyllabs.org` daily and sends the account id, a device token and an operation counter
Install
- Works in
Manual install
pip install sibyl-memory-mcp sibyl-memory-cliRequires Python 3.10 or newer and Linux, macOS or WSL2. Then `sibyl init` activates the account in the browser.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The agent writes and deletes memory entries, and `sibyl skills` adds hooks to `~/.claude/settings.json`
- The plugin contacts `api.sibyllabs.org` daily and sends the account id, a device token and an operation counter
This is third-party code. Review the repository files before installing.
What it does
Sibyl Memory keeps agent memory locally in a SQLite database with a five-tier hierarchical schema and FTS5 full-text search. There is no vector database and no embedding model: search works on text, and all memory lives in one file, `~/.sibyl-memory/memory.db`. The repository ships five PyPI packages. `sibyl-memory-client` is the SDK, `sibyl-memory-cli` provides the `sibyl` command for activation and diagnostics, `sibyl-memory-mcp` exposes memory to MCP clients, `sibyl-memory-hermes` connects it to Hermes Agent and `sibyl-memory-langgraph` implements a LangGraph `BaseStore`. The MCP server gives the agent 15 tools prefixed `memory_*` for writing, searching and deleting. `sibyl setup claude-code` registers the server in Claude Code, and the `codex` and `cursor` variants do the same for those agents. `sibyl doctor` checks the whole chain: it starts the server, saves a test memory, recalls it and deletes it.
Who it is for. Developers on Claude Code, Codex, Cursor and Hermes Agent who want memory across sessions without a separate vector database or cloud storage for the memory text itself.
Good fit when
- The agent asks about the stack and project agreements every session and they should be saved and recalled
- You do not want a vector database or paid embeddings and need memory in one local file
- One memory has to serve several clients at once: Claude Code, Codex and Cursor
- A Hermes agent or a LangGraph graph needs long-term storage between runs
- Saved memory should be read and searched from the terminal: `sibyl memory list|search|recall` works even without an account
Not a fit when
- You need fully offline work without an account: since client version 0.9.0 the memory tools require an activated account
- The work runs on Windows without WSL2: native Windows is not supported
- The company forbids any calls to external services: the plugin checks in with `api.sibyllabs.org` once a day
- Search must be semantic, based on embeddings: only full-text search is used here
Example request
Remember that tests in this project run with pytest -x and migrations are written by hand only, and recall it in the next sessionMCP
- Transport
- stdio
- Authentication
- API key
Environment variables
SIBYL_MEMORY_TELEMETRY- A value of 0 turns off sending the memory operation counter.
SIBYL_MEMORY_DB- Path to the memory database file instead of ~/.sibyl-memory/memory.db.
SIBYL_CREDENTIALS- Path to the credentials file if it is not in the default location.
Limitations
- An account is required. Without `sibyl init` every tool call returns an `ACCOUNT_REQUIRED` error, while local data stays readable with the `sibyl memory` command.
- The plugin contacts `api.sibyllabs.org` for activation, a daily access check and a database size check. Memory content is not sent, but an operation counter is, unless you set `SIBYL_MEMORY_TELEMETRY=0`.
- The free tier has a size cap. Self-learning and the memory linter belong to the paid Pro and Elite tiers.
- It runs on Linux, macOS and Windows through WSL2.
- The code is MIT, but the account check is tied to the project's servers, so a fork without it gets no updates or support.
How to disable. Run `sibyl skills uninstall`: it removes the Claude Code hooks from `~/.claude/settings.json`, the skill shims and the Codex block. Then remove the packages with `pip uninstall`. `claude mcp remove sibyl-memory` drops the server registration in Claude Code. The `~/.sibyl-memory/memory.db` file stays on disk until you delete it yourself.
FAQ
Do I need an account to use Sibyl Memory?
Yes, since client version 0.9.0 the memory tools require an activated account, and the free tier is the default. Without one the server starts and lists its 15 tools, but every call returns a clear error. Local data is readable with `sibyl memory` even without an account.
What data goes to the Sibyl server?
Memory content stays on the computer. `api.sibyllabs.org` receives activation, a daily access check with the account id, the database size near the cap and an operation counter. The counter is turned off with `SIBYL_MEMORY_TELEMETRY=0`.
How do I connect Sibyl Memory to Claude Code?
Install the packages with `pip install sibyl-memory-mcp sibyl-memory-cli`, run `sibyl init`, then `sibyl setup claude-code` and restart Claude Code. By hand the same is done with `claude mcp add --scope user sibyl-memory -- sibyl-memory-mcp`.
Why does the memory have no vectors or embeddings?
The author chose FTS5 full-text search on SQLite to avoid a vector database and an embedding model. According to the author, this architecture scored 95.6 percent on the public LongMemEval Oracle benchmark.
What is in the memory database and how can I read it by hand?
All entries live in one file, `~/.sibyl-memory/memory.db`. The `sibyl memory list`, `sibyl memory search` and `sibyl memory recall` commands read it in the terminal, even without an activated account.
Discussion
No questions or reviews yet.
Related
MCP serversSibyl is a self-hostable knowledge graph shared by Claude Code, Codex and Cursor for decisions, gotchas and conventions
A local-first MCP memory server for agents: session history, codebase index and a concept graph in one SQLite database
Local memory with evidence: what an agent learned and where from, and when a source is corrected the dependent records are retired
Shared local memory for AI agents: Claude Code, Codex, Cursor and others find the agreements of past sessions in it and record new ones
A long-term memory MCP server for AI agents: facts fade along a forgetting curve and related records are compressed into a summary
External memory for Hermes, Claude Code, Codex and Cursor: session archive, recall layers and relevant context injected back
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Sibyl Memory (this card) | no | API key | 177 | |
| Basic Memory | no | not required | 4,566 | keeps memory in local Markdown files with a link graph, while here it is a single SQLite file with FTS5 search |
| Claude-Mem | no | 116,790 | a memory plugin for Claude Code sessions, while here there are five packages including an MCP server and adapters for Hermes and LangGraph |
README in short
The README explains the five packages, spells out the privacy policy and a table of what a MIT fork keeps and what the server holds. It then gives installation for the SDK, Hermes and MCP, an architecture diagram, LongMemEval benchmark results and the uninstall order including the instruction-file lifecycle hooks.