memocat-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MONTYCAT_TLS | No | Connect over TLS | false |
| MONTYCAT_URI | No | montycat://user:pass@host:port/store (preferred; overrides the parts below) | |
| MONTYCAT_HOST | No | Engine host | 127.0.0.1 |
| MONTYCAT_PORT | No | Engine port | 21210 |
| MONTYCAT_SCOPE | No | Default owner/scope, applied when a tool omits scope | |
| MONTYCAT_STORE | No | Store name | |
| MEMOCAT_AUTOSTART | No | Set to 'off' to disable all installation/start attempts. | |
| MONTYCAT_PASSWORD | No | Credentials | |
| MONTYCAT_USERNAME | No | Credentials | |
| MONTYCAT_PERSISTENT | No | Storage type for newly created keyspaces (durable vs in-memory). Existing keyspaces are auto-detected. | true |
| MEMOCAT_INSTALLER_URL | No | Override the URL for automatic native installer. | |
| MONTYCAT_SCOPE_PREFIX | No | Prefix for per-owner keyspaces (mem_<scope>) | mem_ |
| MONTYCAT_WATCH_BUFFER | No | Changes retained per watched keyspace | 500 |
| MEMOCAT_ENGINE_VERSION | No | Pin a release of the Montycat Semantic engine. | |
| MONTYCAT_AUTO_PROVISION | No | Auto-create a scope's keyspace on first use. | true |
| MONTYCAT_AUTO_TIMESTAMP | No | Stamp each memory with an indexed _created_at, enabling time-range recall. | true |
| MONTYCAT_SHARED_KEYSPACE | No | The common/shared keyspace name | mem_shared |
| MEMOCAT_INSTALLER_TIMEOUT | No | Adjust the Installer completion budget. | |
| MONTYCAT_DEFAULT_KEYSPACE | No | Keyspace used when a tool omits scope/keyspace | memory |
| MONTYCAT_SUBSCRIPTION_PORT | No | Engine subscription server port (21211 by default; enabled by default) | 21211 |
| MEMOCAT_APT_INSTALL_COMMAND | No | Use an organization-managed mirror or package command on Linux. | |
| MONTYCAT_WATCH_IDLE_TIMEOUT | No | Seconds before an unused subscription is closed | 300 |
| MONTYCAT_WATCH_AUTH_LEASE_SEC | No | Seconds between read-authority checks for active watches | 5 |
| MONTYCAT_WATCH_AUTH_TIMEOUT_SEC | No | Maximum seconds allowed for one watch authorization check | 10 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": true,
"listChanged": true
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| montycat_semantic_searchA | 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:
Args:
query: Natural-language description of what to recall. May be empty
when |
| montycat_rememberA | Store a fact or record in memory; it is embedded and indexed automatically. Later recall it by meaning with montycat_semantic_search, or by key with
montycat_recall. Returns the generated key in Every record is auto-stamped with an indexed Args:
value: The record to store (a JSON object).
scope: Owner/user id to store under (that owner's private memory,
keyspace mem_). 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 |
| montycat_recallA | Recall memory by exact key or by field filter (not by meaning). Provide 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). |
| montycat_install_engineA | 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 Refuses when MONTYCAT_URI is set or the configured host is not this machine — Montycat MCP 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. |
| montycat_list_keyspacesA | List the available memory stores and keyspaces on this Montycat engine. |
| montycat_policy_viewA | 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. |
| montycat_policy_historyA | 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. |
| montycat_policy_explainA | 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". |
| montycat_create_keyspaceA | Create a new memory namespace using the configured owner's authority. A delegated owner can create a keyspace when its governance policy grants
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). |
| montycat_remove_keyspaceA | Permanently remove a memory namespace using the owner's authority. This is a destructive lifecycle operation. Before removal Montycat MCP 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 Args: scope: Owner/user scope to remove (maps to keyspace mem_). Use "shared" for the configured shared keyspace. keyspace: Explicit keyspace override (advanced; bypasses scope). |
| montycat_enable_semanticA | Enable semantic search for one explicit keyspace. The engine enforces 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. |
| montycat_semantic_statusA | Read the engine's actual semantic configuration and backfill state. Pass both |
| montycat_enable_external_vectorsB | Enroll a keyspace for caller-supplied embeddings instead of text embedding. |
| montycat_reembed_semanticA | Replace an enrolled keyspace's text embedding model and backfill it. This clears its current vectors, then has the engine rebuild them. Use
|
| montycat_disable_semanticA | Disable semantic search for one explicit keyspace. Stored vectors are retained by default so re-enabling can resume without a
full rebuild. Set Args: keyspace: Explicit keyspace to unenroll. store: Target store. Defaults to the configured store. drop_vectors: Also delete stored vectors for this keyspace. |
| montycat_start_snapshotsA | Start scheduled snapshots for one existing in-memory keyspace. Montycat enforces Args: keyspace: Explicit in-memory keyspace to snapshot. |
| montycat_stop_snapshotsA | 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. |
| montycat_clean_snapshotsA | 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. |
| montycat_forgetA | 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. |
| montycat_updateA | 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 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. |
| montycat_list_memoriesA | Browse stored memories — enumerate what is remembered, not search by meaning. Returns up to 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. Falls back to a full scan when the latest volume is empty. Pass False to scan the whole keyspace from the start. |
| montycat_remember_bulkA | 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 |
| montycat_await_memory_changeA | 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 montycat_semantic_search. Returns Args:
scope: Owner/user id whose memory to watch (keyspace mem_).
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 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MontyGovernance/montycat-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server