Skip to main content
Montycat logo

Montycat MCP — Shared Memory for AI Agents

A self-hosted MCP server that gives AI agents persistent, searchable memory. Claude, Codex, Cursor, and any Model Context Protocol client write to one memory and read each other's.

PyPI Python License

  • Memory that survives the chat. Decisions, preferences, and project context carry into the next session.
  • One memory, many agents. Every MCP client you use works from the same facts.
  • Recall by meaning, keyword, or both. Vector search finds a memory when the wording differs, BM25 nails exact identifiers, and hybrid mode fuses the two. Exact-key and metadata lookup too.
  • Yours. Server, engine, and embeddings run on your machine. No hosted memory service, no cloud embedding API.

Install

Claude Desktop — download the latest .mcpb from Releases and drag it into Claude Desktop. No Python needed.

Claude Code — install uv, then:

/plugin marketplace add MontyGovernance/montycat-mcp
/plugin install montycat-mcp@montygovernance

/mcp confirms the montycat server is connected.

Codex, Cursor, other MCP clients — point your client's stdio config at uvx montycat-mcp (Python 3.10+). For Codex:

codex mcp add montycat -- uvx montycat-mcp

The engine

Memory lives in a Montycat Semantic engine. Montycat MCP starts a local one for you, so most people can stop reading here.

Point it at an engine you already run:

export MONTYCAT_URI="montycat://memory-agent:password@localhost:21210/memories"
export MONTYCAT_TLS=true   # remote engines only

Or start one yourself with Docker:

docker run -d --name montycat -p 21210:21210 -p 21211:21211 \
  -e MONTYCAT_SUPEROWNER=admin -e MONTYCAT_PASSWORD=change-me \
  -v montycat_data:/var/lib/.montycat \
  montygovernance/montycat:semantic

On Apple Silicon use the arm64-semantic tag instead — semantic is the amd64 image, and it crashes under emulation. Port 21211 carries live memory watches.

Use it

Talk to your agent normally; it picks the tool.

Remember that the team chose PostgreSQL for the billing service.

What did we decide about the billing database?

Save this to the shared engineering scope.

scope decides where a memory lives — alice for private, engineering for a team, shared for common. It is a namespace, not a security boundary: for real isolation, give each MCP server its own least-privilege Montycat credential.

Tools

Need Tools
Store montycat_remember, montycat_remember_bulk, montycat_update, montycat_forget
Recall montycat_semantic_search, montycat_recall, montycat_list_memories
Collaborate montycat_await_memory_change — wait for another agent's write, no polling
Namespaces montycat_list_keyspaces, montycat_create_keyspace, montycat_remove_keyspace
Admin semantic index, snapshot, and policy tools — see the plugin guide

Destructive tools are declared as such, so your client's confirmation prompts apply.

Configuration

Variable Purpose
MONTYCAT_URI Connection string: montycat://user:password@host:port/store
MONTYCAT_TLS true for a remote TLS engine
MONTYCAT_DEFAULT_KEYSPACE Memory namespace; memory by default
MONTYCAT_SCOPE Default scope when a call omits one
MONTYCAT_AUTO_PROVISION Create a permitted scope on first use; true by default
MONTYCAT_AUTOSTART off to require an already-running engine

Compose setup and the full variable list: compose.yaml and the plugin guide.

More

Changelog · Privacy · Issues · Docs · Docker Hub

Existing MemoCat installs keep working: memocat-mcp, MEMOCAT_*, and memocat:// are still supported. New setups should use the Montycat names.

MIT

Release files for montycat-mcp 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for montycat-mcp 1.1.0
File Size Uploaded
montycat_mcp-1.1.0.tar.gz 83.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for montycat-mcp 1.1.0
File Interpreter ABI Platform
montycat_mcp-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 126.9 kB

Release files / montycat_mcp-1.1.0.tar.gz

Download URL montycat_mcp-1.1.0.tar.gz
Size 83.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7e8f8798f595dfb636212e4c2992487b910e2870f9ac4a8e47ca415caa0c93f6
BLAKE2b-256 checksum
How to use checksums
d0895a59abcb33d9c2d4c0c7b7bdcc62356efdcde6c710e3aced2e0292b87270
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / montycat_mcp-1.1.0-py3-none-any.whl

Download URL montycat_mcp-1.1.0-py3-none-any.whl
Size 43.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f7b74d2a03802026100b5334d54afbd14d01a37f15eb678235add005022648d4
BLAKE2b-256 checksum
How to use checksums
b690923309ae69607785580cce9a7e1c24d47d5ea3f9e57d12534cf6daf4a4e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

This release

1.1.0 This release

2 release files

1.0.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page