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/*.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.1.tar.gz (11.2 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.1-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: membo-0.1.1.tar.gz
  • Upload date:
  • Size: 11.2 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.1.tar.gz
Algorithm Hash digest
SHA256 cd8ab14e40c820360c8b268bf245af99e5fef78b560099e3ec1099abe502a629
MD5 bd8679c96a9a8e4f8c2785d5d40a249e
BLAKE2b-256 7e7a6475bfda1aa181e9cabb7f4a56a590d56f83ce7d4be0fcc01dba9a8d7840

See more details on using hashes here.

File details

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

File metadata

  • Download URL: membo-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.5 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c9b8ca73f2fa409efe9c179e62e9f0a20c7091020de826b50c0af949ab7060dd
MD5 b68d0d77aa01c2829cdef3f4a948e6d3
BLAKE2b-256 13097982955ff1a3b8bfa006e0b3d417ee84ca3f9867bf06838ca70759be95e5

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