Membase MCP Server
by unibaseio
README.md
<p align="center">
<img src="https://raw.githubusercontent.com/unibaseio/membase-ai/main/assets/membase-logo.png" width="72" alt="Membase">
</p>
<h1 align="center">Membase</h1>
<p align="center">
<b>One memory. Every AI. Only yours.</b><br>
Teach it once. Every AI remembers.
</p>
<p align="center">
<a href="https://pypi.org/project/unibaseio-membase/"><img src="https://img.shields.io/pypi/v/unibaseio-membase?label=pypi" alt="PyPI"></a>
<a href="https://www.npmjs.com/package/@unibaseio/membase"><img src="https://img.shields.io/npm/v/@unibaseio/membase?label=npm" alt="npm"></a>
<a href="https://github.com/unibaseio/membase-ai/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-proprietary-blue" alt="Proprietary"></a>
</p>
<p align="center">
<a href="https://membase.ai">Website</a> ·
<a href="https://docs.membase.ai">Docs</a> ·
<a href="https://www.app.membase.ai">Web app</a> ·
<a href="https://discord.gg/nB9EfPGsSf">Discord</a> ·
<a href="https://x.com/Unibase_AI">X</a>
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/unibaseio/membase-ai/main/assets/hero.svg" width="840" alt="Add sources, manage one memory, use it from every AI and app">
</p>
Membase is the memory layer for AI agents. It keeps one memory for everything you and your agents
know, and every AI you use reads it.
You stop re-explaining yourself each time you switch models or tools.
- **Add.** Facts, documents, web pages and chat exports from Claude or ChatGPT go into one memory.
- **Manage.** Containers keep projects apart; search it, ask it questions, forget what should go.
- **Use.** Your code, Claude Code, Cursor, Codex and ChatGPT read the same memory through the SDK or MCP.
This repository is the developer side: Python and TypeScript clients, the `membase` command line
and an MCP server. The memory lives in your Membase account, which the
[web app](https://www.app.membase.ai) and browser extension also fill, or on your machine with
`unibaseio-membase[local]`.
## Write once, read from any AI
<p align="center">
<img src="https://raw.githubusercontent.com/unibaseio/membase-ai/main/assets/in-action.svg" width="840" alt="Your app writes a memory; any AI reads it, here Claude Code">
</p>
Recordings: [Python SDK](https://github.com/unibaseio/membase-ai/blob/main/assets/videos/sdk.mp4) (57 s) ·
[Claude Code](https://github.com/unibaseio/membase-ai/blob/main/assets/videos/switch-ai.mp4) (1 min 33 s). The answer above is illustrative.
## Accuracy
<p align="center">
<img src="https://raw.githubusercontent.com/unibaseio/membase-ai/main/assets/results.svg" width="840" alt="LoCoMo 93.1%, LongMemEval_S 92.6%, DMR 92.2%">
</p>
93.1% on LoCoMo, 92.6% on LongMemEval_S and 92.2% on DMR, using about 3× fewer tokens than the full
history on LoCoMo and 11× fewer on LongMemEval_S. Method and results: [membase.ai/research](https://membase.ai/research)
## Quickstart
<p align="center">
<img src="https://raw.githubusercontent.com/unibaseio/membase-ai/main/assets/architecture.svg" width="840" alt="Hosted, local in process, or local over HTTP">
</p>
```bash
pip install unibaseio-membase # hosted · Python 3.10+ · needs MEMBASE_API_KEY
pip install 'unibaseio-membase[local]' # local · Python 3.12 or 3.13 · needs OPENAI_API_KEY
npm install @unibaseio/membase # TypeScript · Node 18+
npm install -g @unibaseio/membase-cli # the `membase` command (hosted) without Python
```
```python
from membase import Membase
m = Membase() # hosted
# m = Membase(local=True) # local, in ~/.membase
m.memories.add("We picked Postgres for the ledger service.", container="Engineering")
m.search("what database is the ledger on?")
m.add("Design notes …", container="Engineering", custom_id="design-1") # a document
m.ask("Which database did we choose for the ledger?")
```
Every method, its REST route and MCP tool, and the access it needs: [SDK reference](https://docs.membase.ai/build/reference/sdk-quickstart/).
The Python package is `unibaseio-membase` (import `membase`); `membase` on PyPI is unrelated.
## Command line
```bash
membase --local add "We picked Postgres for the ledger" --container Engineering
membase --local search "what did we pick for the ledger?"
membase --local ask "Which database is the ledger on?"
membase --local import ~/Downloads/claude-export.json # Claude, ChatGPT, markdown or JSON chats
membase --local agent ingest trace.json --agent coder
membase --local agent search "fix flaky deploy" --agent coder
```
Without `--local` (or `--store DIR`, both before the command) commands use the hosted API; `agent`,
`import` and `serve` need `unibaseio-membase[local]`.
## MCP
<p align="center">
<img src="https://raw.githubusercontent.com/unibaseio/membase-ai/main/assets/mcp.svg" width="840" alt="MCP clients, hosted or local server, same tools">
</p>
```bash
claude mcp add membase -- membase --local mcp # local
claude mcp add --transport http membase https://api.app.membase.ai/mcp-http \
--header "Authorization: Bearer $MEMBASE_API_KEY" # hosted
```
Hosted without the header, the connection signs you in and is read-only. Setup for Claude, ChatGPT,
Cursor, Codex and other clients: [Connect your AI](https://docs.membase.ai/connect/).
## Docs
- [SDK reference](https://docs.membase.ai/build/reference/sdk-quickstart/): methods, REST routes, MCP tools, access levels
- [Memory operations](https://docs.membase.ai/build/guides/memory-operations/): containers, documents, memories, profile, ask
- [Authentication](https://docs.membase.ai/build/reference/authentication/): keys and what each one can reach
- [Connect your AI](https://docs.membase.ai/connect/): per-client MCP setup
- [Local engine](https://github.com/unibaseio/membase-ai/blob/main/docs/reference.md): what it stores, `membase serve`, settings
## License
Copyright © 2026 Unibase. All rights reserved. Proprietary; see
[LICENSE](https://github.com/unibaseio/membase-ai/blob/main/LICENSE). `unibaseio-membase[local]` also
installs unibaseio-membase-core, the compiled engine, under its own Unibase license.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues