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 /path/to/membo     # or: uv tool install /path/to/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/*.mdPROJECT.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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

membo-0.1.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

membo-0.1.0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file membo-0.1.0.tar.gz.

File metadata

  • Download URL: membo-0.1.0.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for membo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f8e82a6f14e6068fe046ef4e7451ff7c6edd3ae1948734a831b04d876dda9c26
MD5 6f87be9e2587713afe3e955940a8bd8b
BLAKE2b-256 e817e409969d08dbc66696e82a95d69d59864c501806e64afb4ded9603eebb22

See more details on using hashes here.

File details

Details for the file membo-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: membo-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for membo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8cf21eedba8f01d83a88c8f40b654ece9c2d2828e0e66e35b370cb110fa8fbb9
MD5 1fb1f82000b4ce98b04da596d44dbdfc
BLAKE2b-256 136ff06b35c3478e64b9aebf808c1bfb3016e0c735ed260aef638ef42f710b05

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page