# M3 Memory

M3 Memory lets AI agents save project decisions and conversation history, then recall them in later sessions or through another client. Its default storage is local.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 29
- Author: skynetcmd
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/skynetcmd/m3-memory
- Updated: 2026-10-19
- HTML: https://affpapa.org/en/nevibecode/mcp/m3-memory

## What it does

M3 Memory gives agents a persistent store for project facts, preferences, decisions and past conversations. They can retrieve saved context through MCP or the command line, using a search that combines keywords with meaning. Because clients share one local store, you can move to another agent without rebuilding the project context.

The server uses SQLite by default and works offline. It requires Python 3.12+; connect it to Claude Code with `claude mcp add m3-memory -- uvx m3-memory`. M3 Memory itself needs neither a cloud account nor an API key, though your AI assistant may have its own requirements. A local language model can optionally summarize and link memories; install it before running `m3 setup` if you want that feature.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add m3-memory -- uvx m3-memory
```
uvx runs the command named after the package; if the README names another one, use uvx --from m3-memory <command>

### Codex

**Platform CLI**
```bash
codex mcp add m3-memory -- uvx m3-memory
```
uvx runs the command named after the package; if the README names another one, use uvx --from m3-memory <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "m3-memory": {
            "command": "uvx",
            "args": [
                "m3-memory"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from m3-memory <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "m3-memory": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "m3-memory"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from m3-memory <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add m3-memory uvx m3-memory
```
uvx runs the command named after the package; if the README names another one, use uvx --from m3-memory <command>

## When to use it
- carry project decisions across sessions
- retrieve old conversations by meaning
- share project context when switching agents
- find an earlier version of a changed decision

## Example prompts
- Remember that we chose PostgreSQL for this project.
- Where did we leave off? Find the latest project decision.
- Give Codex the notes about this task from our shared memory.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
