MemoCat — Shared AI Memory

io.github.MontyGovernancePublished by GitHub account MontyGovernancev0.4.3Updated Oct 24, 2026

One shared, persistent memory across AI agents and systems, with semantic recall and live updates.

The publisher's own server: Memory.fit

VerifiedSTDIODesktop onlyDatabasesKnowledge & Memory

Overview

AI-generated overview

Self-hosted MCP server giving AI agents one shared, persistent memory with semantic, keyword and hybrid recall across sessions and clients.

What you can do
Store, update and forget memories, singly or in bulk, in named scopes and keyspaces, with schema inspection before structured writes and filtered retrieval. Recall memories by meaning, exact keyword, hybrid search, exact key or metadata, and list stored memories. Wait for another agent's write to arrive instead of polling. Create, list and remove keyspaces and adjust cache capacity. Run semantic index, snapshot and policy administration tools.
When to use it
Use it when several MCP clients or agents should share decisions, preferences and project context that persist between sessions, and you want that memory to stay on your own machine rather than a hosted service.
Requirements
Runs locally over stdio; install via the Claude Desktop bundle, the Claude Code plugin, or uvx with Python 3.10+. A local Montycat engine is started automatically, or you can point MONTYCAT_URI at an engine you run yourself, for example with Docker. Optional variables cover TLS and default keyspace and scope.
Before you install
MONTYCAT_URI can embed engine credentials in a connection string, so keep it out of shared configs. Scopes are namespaces, not security boundaries; use separate least-privilege credentials for real isolation. Destructive tools such as forget and keyspace removal are declared, so client confirmation prompts apply. With only MONTYCAT_TLS=true the connection is encrypted but unverified unless verification is configured.

Installation

In SourceWeft

  1. Open MemoCat — Shared AI Memory in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[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 montycat-mcp.mcpb and drag it into Claude Desktop. No Python needed. That link always serves the current release; every release also carries a version-named copy and a .sha256 to check it against.

Claude Code — install uv, then:

text
/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:

bash
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:

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

Or start one yourself with Docker:

bash
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

NeedTools
Storemontycat_remember, montycat_remember_bulk, montycat_update, montycat_forget
Recallmontycat_semantic_search, montycat_recall, montycat_list_memories
Inspect schemasmontycat_list_enforced_schemas — check field names and data types before structured writes or filtered retrieval
Collaboratemontycat_await_memory_change — wait for another agent's write, no polling
Namespacesmontycat_list_keyspaces, montycat_create_keyspace, montycat_update_cache, montycat_remove_keyspace
Adminsemantic index, snapshot, and policy tools — see the plugin guide

For persistent namespaces, cache is a capacity in MB and compression is chosen by montycat_create_keyspace. Compression cannot be changed after the keyspace is created; migrate into a new keyspace to use a different setting. Cache capacity can be changed later with montycat_update_cache.

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

Configuration

VariablePurpose
MONTYCAT_URIConnection string: montycat://user:password@host:port/store
MONTYCAT_TLStrue for a remote TLS engine
MONTYCAT_TLS_VERIFYOptional: true to verify with the platform trust store
MONTYCAT_TLS_CERTIFICATE_PATHOptional PEM certificate path for exact certificate pinning
MONTYCAT_TLS_CERTIFICATE_FINGERPRINTOptional SHA-256 certificate fingerprint as an alternative pin

All three verification settings are optional. With only MONTYCAT_TLS=true, MCP retains the historical encrypted-but-unverified behavior; with TLS unset or false, existing plaintext configurations are unchanged. | 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

Source: README.md at commit c904d61

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.4.3LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Memory integrations