mem9 MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MEM9_API_KEY | Yes | API key for authentication (also serves as tenant ID) | |
| MEM9_API_URL | No | mnemo-server base URL | https://api.mem9.ai |
| MEM9_AGENT_ID | No | Agent identifier | auto-detected |
| MEM9_LOG_LEVEL | No | Log level: debug, info, warn, error | info |
| MEM9_TIMEOUT_MS | No | HTTP request timeout (ms) | 10000 |
| MEM9_SEARCH_LIMIT | No | Default search result limit | 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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| memory_storeA | Store a new memory. The content will be processed asynchronously by the memory service (fact extraction and reconciliation) — it is not stored verbatim and may take a few seconds to become searchable. Use this when you learn something worth remembering: user preferences, project conventions, important decisions, recurring patterns, or any context that would be useful in future sessions. Do NOT store trivial or transient information like current file paths, temporary debug notes, or information that only matters in the current session. Note: the response does not include the stored memory's ID. If you need to update or delete a memory you just stored, use memory_search to find it first. |
| memory_searchA | Search your memory for relevant information. Use this at the start of a task to recall relevant context, when you need to check if something was previously discussed, or when the user references past work. Supports both semantic (meaning-based) and keyword search. |
| memory_getA | Retrieve a specific memory by its ID. Use this when you have a memory ID from a previous search and need the full content. |
| memory_updateA | Update an existing memory. Use this when information has changed, needs correction, or should be enriched with additional context. Provide the memory ID and at least one field to update. This is a direct field update — content is NOT re-processed through reconciliation. |
| memory_deleteA | Delete a memory that is no longer relevant or accurate. Use this to clean up outdated information. This action is irreversible. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Each tool targets a distinct operation: create (store), read (get/search), update, and delete. There is no overlap between retrieving by ID, searching, storing, updating, or deleting.
All tool names follow the same verb_noun pattern: memory_get, memory_delete, memory_store, memory_search, memory_update. Consistent and predictable.
Five tools is well-scoped for a memory server. It covers all core operations without unnecessary bloat or missing essentials.
The tool set provides full CRUD coverage (store, get, update, delete) plus search, which is the complete lifecycle for a memory service. No obvious gaps.