Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

MemoCat — Shared AI Memory

OCI · DOCKER.IO/MONTYGOVERNANCE/MEMOCAT-MCP:0.4.3 · 2 COMPONENTS · SCANNED SEP 20

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

+3 this week 40 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • Malware scan not yet available for this package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
Provenance & Transparency19
Schema Quality & AI Usability66
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4038 tokens (~175/item across 23 items; 23 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management63
  • Stability observed for 19 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage67
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

How do I install the MemoCat — Shared AI Memory MCP server?

MemoCat — Shared AI Memory runs locally as a container image, launched with docker run --rm -i docker.io/montygovernance/memocat-mcp:0.4.3. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · docker.io/montygovernance/memocat-mcp:0.4.3

# add to Claude Code
claude mcp add montygovernance-memocat-mcp -- docker run --rm -i docker.io/montygovernance/memocat-mcp:0.4.3
// .cursor/mcp.json
{
  "mcpServers": {
    "montygovernance-memocat-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "docker.io/montygovernance/memocat-mcp:0.4.3"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "montygovernance-memocat-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "docker.io/montygovernance/memocat-mcp:0.4.3"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add montygovernance-memocat-mcp -- docker run --rm -i docker.io/montygovernance/memocat-mcp:0.4.3
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "montygovernance-memocat-mcp": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "docker.io/montygovernance/memocat-mcp:0.4.3"
      ],
      "enabled": true
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  montygovernance-memocat-mcp:
    command: "docker"
    args: ["run", "--rm", "-i", "docker.io/montygovernance/memocat-mcp:0.4.3"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "montygovernance-memocat-mcp": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "docker.io/montygovernance/memocat-mcp:0.4.3"
      ]
    }
  }
}
// mcp.json
{
  "mcpServers": {
    "montygovernance-memocat-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "docker.io/montygovernance/memocat-mcp:0.4.3"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 8 Sept 26 +3
    • Stability: unverified → 0.23 functional
  • 2 Sept 26 −5
    • Source repository: pass → fail security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed oci/docker.io/montygovernance/memocat-mcp:0.4.3

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason Verification failed
Discovered via OCI referrers API

Background: How many MCP packages publish verified provenance →

MCP tools · 23 exposed · ~3,912 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
memocat_await_memory_change ~404

Wait until memory CHANGES — returns the moment another agent or session writes, updates, or deletes something in this memory. This is a live subscription to the database, not a poll: it sleeps until a change actually happens and then returns immediately. Use it to coordinate with other agents sharing a scope ("tell me when someone adds to our shared memory"), or to confirm a write from another session landed. Do NOT call it in a tight loop as a substitute for searching — to *find* things, use memocat_semantic_search. Returns `{changes: [...], next_seq, oldest_seq, cursor_expired, timed_out}`. Each change is `{seq, key, event, value}` where event is "inserted" (covers create and update) or "removed". Pass the returned `next_seq` back as `since_seq` on the next call to resume exactly where you left off. If the bounded buffer has discarded part of that history, `cursor_expired` is true and `oldest_seq` identifies the earliest retained record. Args: scope: Owner/user id whose memory to watch (keyspace mem_<scope>). Use "shared" for the common keyspace — the usual choice when coordinating between agents. keyspace: Explicit keyspace override (advanced; bypasses scope). timeout_sec: How long to wait before giving up (default 30). On timeout the result is empty with `timed_out: true` — that is a normal outcome, not an error. since_seq: Resume cursor from a previous call. Omit on the first call to watch only for changes from now on.

NameTypeReqDescription
keyspace
scope
since_seq
timeout_secinteger

No output schema declared.

No examples provided.

memocat_clean_snapshots ~83

Delete snapshot files for one existing in-memory keyspace. This is destructive to the keyspace's snapshot history but does not delete its currently loaded in-memory records. Montycat performs the final authorization check. Args: keyspace: Explicit in-memory keyspace whose snapshots are cleaned.

NameTypeReqDescription
keyspacestringyes

No output schema declared.

No examples provided.

memocat_create_keyspace ~286

Create a new memory namespace using the configured owner's authority. A delegated owner can create a keyspace when its governance policy grants `provision-keyspace` for the requested store, storage type, and semantic model, but its store must already exist. With superowner credentials, the engine creates a missing configured store and this first keyspace together in the same provisioning request. The engine remains the final authorization boundary. Args: keyspace: Name of the keyspace to create. storage: Preferred storage type: "persistent" or "inmemory". Defaults to "persistent". semantic: Enable semantic search for this keyspace after creation. semantic_model: Optional embedding model: "minilm", "bge-small", "bge-base", or "e5-small". Supplying a model implies semantic=True. persistent: Deprecated compatibility option. True maps to storage="persistent"; False maps to storage="inmemory". cache: Optional cache size in MB (persistent only; min/default 10). compression: Enable compression (persistent only).

NameTypeReqDescription
cache
compressionboolean
keyspacestringyes
persistent
semanticboolean
semantic_model
storage

No output schema declared.

No examples provided.

memocat_disable_semantic ~134

Disable semantic search for one explicit keyspace. Stored vectors are retained by default so re-enabling can resume without a full rebuild. Set `drop_vectors` only when intentionally clearing vectors, such as before changing embedding models. The engine enforces all governance authority and explicit denials. Args: keyspace: Explicit keyspace to unenroll. store: Target store. Defaults to the configured store. drop_vectors: Also delete stored vectors for this keyspace.

NameTypeReqDescription
drop_vectorsboolean
keyspacestringyes
store

No output schema declared.

No examples provided.

memocat_enable_external_vectors ~55

Enroll a keyspace for caller-supplied embeddings instead of text embedding.

NameTypeReqDescription
dimensionsintegeryes
embedding_spacestringyes
keyspacestringyes
store

No output schema declared.

No examples provided.

memocat_enable_semantic ~169

Enable semantic search for one explicit keyspace. The engine enforces `manage-semantic`, creator authority, explicit denials, and allowed-model constraints. Existing records are backfilled by the engine. This tool never enables semantic search database-wide. Args: keyspace: Explicit keyspace to enroll and backfill. store: Target store. Defaults to the configured store. semantic_model: Optional model: "minilm", "bge-small", "bge-base", or "e5-small". Omit to use the engine/policy default. field: Optional JSON field to embed instead of the whole stored value.

NameTypeReqDescription
field
keyspacestringyes
semantic_model
store

No output schema declared.

No examples provided.

memocat_forget ~113

Delete a stored record from memory by key or custom key. Args: keyspace: Memory namespace (defaults to the configured one). key: Montycat-generated key to delete. custom_key: Custom key to delete. wait_for_index: For persistent keyspaces, wait for secondary indexes before returning. Defaults to the engine setting.

NameTypeReqDescription
custom_key
key
keyspace
scope
wait_for_index

No output schema declared.

No examples provided.

memocat_install_engine ~187

Install the Montycat engine on THIS computer, then start it. Call this only when memory tools report that no engine is running and the user has agreed to install one. Tell them what it does first: it downloads the Montycat Semantic package (~18 MB) and opens your operating system's installer, which asks for an administrator password. On Linux it runs the documented APT installation with `sudo`. Refuses when MONTYCAT_URI is set or the configured host is not this machine — MemoCat is pointed at an engine elsewhere, and installing a local one would create a second database and write memories where nobody is looking. Does nothing if an engine is already reachable. Not needed when Docker is available: engine startup falls back to a container automatically, with no prompt.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

memocat_list_keyspaces ~26

List the available memory stores and keyspaces on this Montycat engine.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

memocat_list_memories ~154

Browse stored memories — enumerate what is remembered, not search by meaning. Returns up to `limit` records with their keys. Use this to review or list memory; for meaning-based recall use memocat_semantic_search, and for exact lookups use memocat_recall. Args: keyspace: Memory namespace (defaults to the configured one). limit: Max records to return (default 25). recent: Bias toward the most recently written records (default True). Ordering is approximate (by storage volume), not a strict timestamp sort.

NameTypeReqDescription
keyspace
limitinteger
recentboolean
scope

No output schema declared.

No examples provided.

memocat_policy_explain ~213

Explain whether the configured owner may perform a proposed action. This is a read-only policy check for planning and diagnostics; executing the action still requires a separate tool call and fresh engine authorization. The explanation identifies applicable grants, denials, creator authority, and storage/model constraints. Args: capability: One of "provision-keyspace", "remove-keyspace", "manage-snapshots", "manage-semantic", "manage-schema", or "manage-access". store: Target store. Defaults to the configured store. keyspace: Optional target keyspace. storage: Optional keyspace type: "persistent", "inmemory", or "distributed". semantic_model: Optional model constraint: "minilm", "bge-small", "bge-base", or "e5-small".

NameTypeReqDescription
capabilitystringyes
keyspace
semantic_model
storage
store

No output schema declared.

No examples provided.

memocat_policy_history ~101

View governance history visible to the configured owner. This is read-only and owner-scoped by the authenticated Montycat credential. It can show when authority was delegated, denied, revoked, or transferred without allowing the MCP caller to select another owner. Args: store: Optional store filter. Defaults to the configured store. keyspace: Optional keyspace filter.

NameTypeReqDescription
keyspace
store

No output schema declared.

No examples provided.

memocat_policy_view ~107

View the configured owner's effective Montycat governance policy. This is read-only. It reports the authenticated owner's effective grants, denials, accessible and owned keyspaces, automatic creator capabilities, provisioning constraints, and policy health. The engine filters the result and remains the authorization boundary. Args: store: Optional store to inspect. Defaults to the store configured by MONTYCAT_URI or MONTYCAT_STORE.

NameTypeReqDescription
store

No output schema declared.

No examples provided.

memocat_recall ~185

Recall memory by exact key or by field filter (not by meaning). Provide `key`/`custom_key` to fetch a single record, or `filters` (a map of field -> value) to look up all records matching those fields. For meaning-based recall use memocat_semantic_search instead. Args: keyspace: Memory namespace (defaults to the configured one). key: Montycat-generated key to fetch. custom_key: Custom key to fetch. filters: Field equality filters, e.g. {"user": "alice", "topic": "billing"}. limit: Max results for a filter lookup (default 25).

NameTypeReqDescription
custom_key
filters
key
keyspace
limitinteger
scope

No output schema declared.

No examples provided.

memocat_reembed_semantic ~83

Replace an enrolled keyspace's text embedding model and backfill it. This clears its current vectors, then has the engine rebuild them. Use `memocat_semantic_status` to observe the resulting configuration.

NameTypeReqDescription
field
keyspacestringyes
semantic_modelstringyes
store

No output schema declared.

No examples provided.

memocat_remember ~389

Store a fact or record in memory; it is embedded and indexed automatically. Later recall it by meaning with memocat_semantic_search, or by key with memocat_recall. Returns the generated key in `payload`. Every record is auto-stamped with an indexed `_created_at` (UTC ISO-8601) unless the value already carries one — this powers time-range recall (`since`/`until` on memocat_semantic_search). Top-level fields are indexed, so they can be used as `filters` in hybrid search (e.g. store `{"project": "x", ...}`, later filter on it). Args: value: The record to store (a JSON object). scope: Owner/user id to store under (that owner's private memory, keyspace mem_<scope>). Use "shared" for the common keyspace. keyspace: Explicit keyspace override (advanced; bypasses scope). custom_key: Optional stable key to store under (for later exact recall/update). timestamp: Index a `_created_at` for time-range recall. Defaults to MONTYCAT_AUTO_TIMESTAMP (on). Pass False to skip the server-side timestamp parse when this memory will never be recalled by time. wait_for_index: For persistent keyspaces, wait until secondary indexes have caught up before returning. Defaults to the engine setting; use True when an immediate filtered/semantic recall must see this write. vector: Optional precomputed embedding for this record. It must match the keyspace's enrolled embedding profile.

NameTypeReqDescription
custom_key
keyspace
scope
timestamp
valueobjectyes
vector
wait_for_index

No output schema declared.

No examples provided.

memocat_remember_bulk ~171

Store many memories at once; all are embedded and indexed automatically. Args: values: A list of records (JSON objects) to store. keyspace: Memory namespace (defaults to the configured one). timestamp: Index a `_created_at` on each record for time-range recall. Defaults to MONTYCAT_AUTO_TIMESTAMP (on). Pass False for large imports that will never be recalled by time — it skips a server-side timestamp parse per record. wait_for_index: For persistent keyspaces, wait for secondary indexes before returning. Defaults to the engine setting.

NameTypeReqDescription
keyspace
scope
timestamp
valuesarrayyes
vectors
wait_for_index

No output schema declared.

No examples provided.

memocat_remove_keyspace ~143

Permanently remove a memory namespace using the owner's authority. This is a destructive lifecycle operation. Before removal MemoCat closes the keyspace's live watch and releases MCP resource-subscription ownership so the engine cannot deadlock on a lingering subscriber. The engine then enforces `remove-keyspace`, creator authority, and explicit denials. Args: scope: Owner/user scope to remove (maps to keyspace mem_<scope>). Use "shared" for the configured shared keyspace. keyspace: Explicit keyspace override (advanced; bypasses scope).

NameTypeReqDescription
keyspace
scope

No output schema declared.

No examples provided.

memocat_semantic_search ~457

Search stored memory by MEANING (vector / semantic search), not keywords. Use this to recall relevant facts, documents, or past context for RAG and agent memory. Returns the top matches ranked by similarity, each with its key, a cosine-similarity score, and the stored value. Hybrid mode: `filters`, `since`, and `until` restrict WHICH memories are ranked — a hard AND constraint over indexed fields; ranking stays pure similarity. Combine them freely: "what did we decide about the index" + `since` yesterday + `filters={"project": "montycat"}` is one call. A filter matching nothing returns []. Requires a Montycat Semantic engine with hybrid support (>= 1.2.3); older engines ignore the filter. Args: query: Natural-language description of what to recall. May be empty when `vector` supplies a precomputed query embedding. vector: Optional precomputed query embedding. It must match the keyspace's enrolled embedding space and dimensions; when set, the engine does not embed `query`. scope: Owner/user id to scope recall to (searches only that owner's memory, keyspace mem_<scope>). Use "shared" for the common keyspace. keyspace: Explicit keyspace override (advanced; bypasses scope). limit: Max number of results (default 5). min_score: Optional similarity floor in [-1, 1]; drops weak matches. filters: Optional metadata constraints, e.g. {"project": "x"} — only memories whose indexed fields equal these values are ranked. since: Only memories created at/after this time (ISO-8601, UTC — matches the auto-stamped `_created_at`). until: Only memories created before this time (ISO-8601, UTC).

NameTypeReqDescription
filters
keyspace
limitinteger
min_score
querystring
scope
since
until
vector

No output schema declared.

No examples provided.

memocat_semantic_status ~70

Read the engine's actual semantic configuration and backfill state. Pass both `store` and `keyspace` for one keyspace. Omitting both asks for the database-wide view, which may require superowner authority.

NameTypeReqDescription
keyspace
store

No output schema declared.

No examples provided.

memocat_start_snapshots ~115

Start scheduled snapshots for one existing in-memory keyspace. Montycat enforces `manage-snapshots`, creator authority, and explicit denials. If the response says "Snapshot rate is not set", snapshot scheduling is not configured on the engine; that is an environmental configuration error, not an authorization denial. This tool cannot alter the global snapshot rate. Args: keyspace: Explicit in-memory keyspace to snapshot.

NameTypeReqDescription
keyspacestringyes

No output schema declared.

No examples provided.

memocat_stop_snapshots ~66

Stop scheduled snapshots for one existing in-memory keyspace. Existing snapshot files are retained. Montycat performs the final authorization check. Args: keyspace: Explicit in-memory keyspace whose snapshot schedule stops.

NameTypeReqDescription
keyspacestringyes

No output schema declared.

No examples provided.

memocat_update ~201

Revise an existing memory in place (memory is mutable). Use this when a stored fact changes — a corrected value, an updated preference — instead of storing a duplicate. Only the fields you pass are changed. Identify the record by `key` or `custom_key`. Args: updates: Fields to change, e.g. {"status": "resolved"} or {"name": "Alice"}. keyspace: Memory namespace (defaults to the configured one). key: Montycat-generated key of the record to update. custom_key: Custom key of the record to update. wait_for_index: For persistent keyspaces, wait for secondary indexes before returning. Defaults to the engine setting.

NameTypeReqDescription
custom_key
key
keyspace
scope
updatesobjectyes
vector
wait_for_index

No output schema declared.

No examples provided.

Common questions

What is the MemoCat — Shared AI Memory MCP server?

MemoCat — Shared AI Memory is an MCP server listed in the public MCP registry as io.github.MontyGovernance/memocat-mcp. One shared, persistent memory across AI agents and systems, with semantic recall and live updates. This page covers its container image (docker.io/montygovernance/memocat-mcp:0.4.3).

Is the MemoCat — Shared AI Memory MCP server safe to use?

MemoCat — Shared AI Memory scores 40 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the MemoCat — Shared AI Memory MCP server expose?

MemoCat — Shared AI Memory exposes 23 tools: memocat_semantic_search, memocat_remember, memocat_recall, memocat_install_engine, memocat_list_keyspaces, and 18 more. Their descriptions and schemas cost roughly 3,912 tokens of context every time the server is loaded.

Is the MemoCat — Shared AI Memory MCP server still maintained?

MemoCat — Shared AI Memory is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the MemoCat — Shared AI Memory MCP server under?

MemoCat — Shared AI Memory declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.