Skip to main content

Membo

A local-first, persistent project context layer that multiple AI coding agents share over MCP.

Git answers what the code is. Nothing answers what the project is — what is being built, why, what was decided, what is blocked, what happens next. So every new session starts with the user re-explaining the project to yet another agent.

Membo is an MCP server holding a project knowledge graph on your machine. Claude works on a project and stops; Codex connects to the same server, calls one tool, and has the current task, the architecture, past decisions, blockers, recent sessions, and the next action. No re-explaining.

Everything runs locally. Nothing is uploaded.

Install

pipx install membo     # or: uv tool install membo

Then, once per project, from inside it:

membo init

That writes the memory server into that project's .mcp.json (merging, so your other MCP servers are left alone) and creates .memory/. Restart your agent and it is connected.

The first context_load on a fresh project returns instructions telling the agent to seed itself: read the repo for what it can verify, then ask you for what it cannot. Point your agent at AGENT_PROTOCOL.md for the full lifecycle.

Tools

Tool
context_load(task?) The handoff. Focus task + one hop out + blockers + rules + last sessions + live git. Not the whole graph.
recall(query) Text search across memory.
graph_query(name, depth) Why does this exist, what depends on it, what does it block.
remember(type, name, body, ...) Record context. The single write path.
task_update(name, status) todo / doing / blocked / done.
session_end(summary, touched, next_action) The handoff record.

How it stores things

<project>/.memory/memory.db — SQLite, a generic nodes + edges graph. Per project, so it is committable, shareable with teammates, and it moves with the repo.

<project>/.memory/*.md — PROJECT.md, ARCHITECTURE.md, DECISIONS.md, BUSINESS_RULES.md, TASKS.md, KNOWN_ISSUES.md, SESSIONS.md, CURRENT_STATE.md. Generated from the DB after every write, never edited by hand. One-way DB→markdown, so there is no dual-write drift: humans read the markdown, agents read the graph, only one side is writable.

Two rules keep it honest:

  • Git is read live, never ingested. context_load shells out to git on each call. Zero storage, never stale, git stays authoritative.
  • Stated is not observed. Every node is observed (derived from git/files) or stated (an agent's assertion). Stated nodes render as _(stated)_, so a claim is never mistaken for a fact.

What it deliberately does not do

No AST parsing, no code graph. code-review-graph already does that well, incrementally, over MCP. Membo is the layer above: tasks, decisions, business meaning, history, handoffs. When the two are joined (by file path) you get code understanding and project intent; today they are separate servers.

Check

.venv/bin/python -m membo.selfcheck

Metadata

Release files for membo 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for membo 0.1.1
File Size Uploaded Provenance Actions
membo-0.1.1.tar.gz 11.2 kB Without provenance Details for membo-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for membo 0.1.1
File Interpreter ABI Platform Actions
membo-0.1.1-py3-none-any.whl Python 3 none any Details for membo-0.1.1-py3-none-any.whl

Total release size: 23.7 kB

Release files / membo-0.1.1.tar.gz

Download URL membo-0.1.1.tar.gz
Size 11.2 kB
Tags Source
SHA-256 checksum
How to use checksums
cd8ab14e40c820360c8b268bf245af99e5fef78b560099e3ec1099abe502a629
BLAKE2b-256 checksum
How to use checksums
7e7a6475bfda1aa181e9cabb7f4a56a590d56f83ce7d4be0fcc01dba9a8d7840
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / membo-0.1.1-py3-none-any.whl

Download URL membo-0.1.1-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c9b8ca73f2fa409efe9c179e62e9f0a20c7091020de826b50c0af949ab7060dd
BLAKE2b-256 checksum
How to use checksums
13097982955ff1a3b8bfa006e0b3d417ee84ca3f9867bf06838ca70759be95e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Security for membo 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page