# Montycat MCP - Shared Memory for AI Agents

Shared memory for coding agents: decisions and project context persist between sessions and stay readable from any MCP client you point at it.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 24
- Author: MontyGovernance
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/MontyGovernance/montycat-mcp
- Updated: 2026-10-04
- HTML: https://affpapa.org/en/nevibecode/mcp/montycat-mcp-shared-memory-for-ai-agents

## What it does

Montycat MCP runs a single memory store that every connected client both reads and writes — Claude Code, Codex, Cursor, Copilot, Windsurf, Cline and Zed. Decisions outlive a chat, so the next session opens with the project facts already loaded.

Storage calls are `montycat_remember`, `montycat_remember_bulk`, `montycat_update` and `montycat_forget`. Retrieval works by meaning or by an exact identifier through `montycat_semantic_search`, `montycat_recall` and `montycat_list_memories`, while `montycat_await_memory_change` blocks until another agent writes instead of polling. A `scope` decides where a record goes: private, team or common. Treat it as a namespace rather than a security boundary; real separation comes from giving each server its own Montycat credential with the least privilege it needs.

The engine and the embeddings stay local, with no hosted memory service in the loop. A bundled engine starts on demand, or you run one in Docker and hand the address over in `MONTYCAT_URI`. On Apple Silicon take the `arm64-semantic` tag, because the `semantic` image is amd64 and dies under emulation.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `MONTYCAT_URI`, `MONTYCAT_TLS`, `MONTYCAT_TLS_CERTIFICATE_PATH`, `MONTYCAT_TLS_VERIFY`, `MONTYCAT_TLS_CERTIFICATE_FINGERPRINT` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env MONTYCAT_URI=<MONTYCAT_URI> --env MONTYCAT_TLS=<MONTYCAT_TLS> --env MONTYCAT_TLS_CERTIFICATE_PATH=<MONTYCAT_TLS_CERTIFICATE_PATH> --env MONTYCAT_TLS_VERIFY=<MONTYCAT_TLS_VERIFY> --env MONTYCAT_TLS_CERTIFICATE_FINGERPRINT=<MONTYCAT_TLS_CERTIFICATE_FINGERPRINT> --transport stdio montycat-mcp-shared-memory-for-ai-agents -- uvx montycat-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from montycat-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add montycat-mcp-shared-memory-for-ai-agents --env MONTYCAT_URI=<MONTYCAT_URI> --env MONTYCAT_TLS=<MONTYCAT_TLS> --env MONTYCAT_TLS_CERTIFICATE_PATH=<MONTYCAT_TLS_CERTIFICATE_PATH> --env MONTYCAT_TLS_VERIFY=<MONTYCAT_TLS_VERIFY> --env MONTYCAT_TLS_CERTIFICATE_FINGERPRINT=<MONTYCAT_TLS_CERTIFICATE_FINGERPRINT> -- uvx montycat-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from montycat-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "montycat-mcp-shared-memory-for-ai-agents": {
            "command": "uvx",
            "args": [
                "montycat-mcp"
            ],
            "env": {
                "MONTYCAT_URI": "<MONTYCAT_URI>",
                "MONTYCAT_TLS": "<MONTYCAT_TLS>",
                "MONTYCAT_TLS_CERTIFICATE_PATH": "<MONTYCAT_TLS_CERTIFICATE_PATH>",
                "MONTYCAT_TLS_VERIFY": "<MONTYCAT_TLS_VERIFY>",
                "MONTYCAT_TLS_CERTIFICATE_FINGERPRINT": "<MONTYCAT_TLS_CERTIFICATE_FINGERPRINT>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from montycat-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "montycat-mcp-shared-memory-for-ai-agents": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "montycat-mcp"
            ],
            "env": {
                "MONTYCAT_URI": "<MONTYCAT_URI>",
                "MONTYCAT_TLS": "<MONTYCAT_TLS>",
                "MONTYCAT_TLS_CERTIFICATE_PATH": "<MONTYCAT_TLS_CERTIFICATE_PATH>",
                "MONTYCAT_TLS_VERIFY": "<MONTYCAT_TLS_VERIFY>",
                "MONTYCAT_TLS_CERTIFICATE_FINGERPRINT": "<MONTYCAT_TLS_CERTIFICATE_FINGERPRINT>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from montycat-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e MONTYCAT_URI=<MONTYCAT_URI> -e MONTYCAT_TLS=<MONTYCAT_TLS> -e MONTYCAT_TLS_CERTIFICATE_PATH=<MONTYCAT_TLS_CERTIFICATE_PATH> -e MONTYCAT_TLS_VERIFY=<MONTYCAT_TLS_VERIFY> -e MONTYCAT_TLS_CERTIFICATE_FINGERPRINT=<MONTYCAT_TLS_CERTIFICATE_FINGERPRINT> montycat-mcp-shared-memory-for-ai-agents uvx montycat-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from montycat-mcp <command>

## When to use it
- carry a design decision into the next session
- find a note by meaning when the wording is gone
- keep several agents on a single set of facts
- wait for another agent's write without polling
- check field names before a structured write

## Example prompts
- Remember that billing uses PostgreSQL and keep it in the `engineering` scope.
- Search memory for how we ship the API and list what comes back from `shared`.
- Wait for the other agent to write its change, then pick up from there.

## 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
