Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MEMSTATE_API_KEY | Yes | API key from memstate.ai/dashboard | |
| MEMSTATE_MCP_URL | No | Override for self-hosted deployments | https://mcp.memstate.ai |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| memstate_delete | Soft-delete a memory by keypath. Creates a tombstone version preserving full history. The memory can be un-deleted by setting a new value at the same keypath. USE THIS WHEN: You need to remove outdated or incorrect memories, clean up a keypath subtree, or mark memories as no longer relevant. NOT FOR: Updating content (use memstate_set or memstate_remember to overwrite with new content instead). memstate_delete(project_id="myapp", keypath="config.old_setting") memstate_delete(project_id="myapp", keypath="config", recursive=true) → deletes config and all children History is preserved. Use memstate_history to see the deletion in the version chain. Keypath is auto-prefixed. |
| memstate_delete_project | Soft-delete an entire project and all its memories. Creates tombstone versions for every memory, preserving full history. The project is hidden from listings but can be restored by creating a new project with the same ID. USE THIS WHEN: You want to remove all memories for a project, e.g. cleaning up test data or decommissioning a project. memstate_delete_project(project_id="old-project") All memories get individual tombstone versions. History is preserved via memstate_history. |
| memstate_get | Browse and retrieve memories. Use BEFORE starting tasks to fetch existing knowledge. USE THIS WHEN: You need to read what's already stored — list projects, browse a project tree, or get content at a keypath. NOT FOR: Saving new content (use memstate_remember for markdown/summaries, memstate_set for one keypath value). memstate_get() → list all projects memstate_get(project_id="myapp") → full project tree memstate_get(project_id="myapp", keypath="database") → subtree memstate_get(project_id="myapp", keypath="db", include_content=true) → with full content memstate_get(memory_id="mem_abc123") → single memory by ID Keypath is auto-prefixed. Default recursive=true. |
| memstate_history | View version history for a keypath or memory chain. Use when you need to see how a value changed over time. USE THIS WHEN: Debugging past state, auditing changes, or recovering a previous value. NOT FOR: Reading current content (use memstate_get) or saving (use memstate_remember or memstate_set). memstate_history(project_id="myapp", keypath="config.database.port") memstate_history(memory_id="mem_abc123") Returns all versions with timestamps; latest is marked is_latest=true. |
| memstate_remember | Save markdown, task summaries, or any text. Server extracts keypaths and creates structured memories automatically. This is the PREFERRED way to save information. USE THIS WHEN: Saving task summaries, meeting notes, docs, or any text with multiple facts. The server handles organization, conflict detection, and versioning. NOT FOR: Setting one specific keypath to a short value (e.g. config.port = "8080") — use memstate_set for that. memstate_remember(project_id="myapp", content="## Task Summary\n- Added OAuth\n- Files: auth.go, middleware.go", source="agent") memstate_remember(project_id="myapp", content="Architecture decision: migrated to JWT tokens for session management") Content limit: 100,000 chars. Processing is async (~15-18s); returns job_id immediately. |
| memstate_search | Find memories by meaning (semantic search). Use BEFORE starting tasks when you don't know the exact keypath. USE THIS WHEN: You want to find relevant memories by topic or meaning, not by exact keypath. NOT FOR: Saving content (use memstate_remember for markdown/summaries, memstate_set for one keypath value). memstate_search(query="how is authentication configured", project_id="myapp") memstate_search(query="database connection settings", project_id="myapp") Returns summaries with similarity scores. Use memstate_get(memory_id="...") to fetch full content of a result. |
| memstate_set | Set one keypath to a short value. Only for simple key=value facts like config, status, or version numbers. USE THIS WHEN: You need to store ONE specific value at a known keypath (e.g. a port number, a status flag, a version string). NOT FOR: Task summaries, markdown, or text with multiple facts — use memstate_remember instead. memstate_set(project_id="myapp", keypath="config.database.port", value="5432") memstate_set(project_id="myapp", keypath="status.deployment", value="production") memstate_set(project_id="myapp", keypath="version.current", value="2.1.0") Value limit: 2,000 chars. If longer, use memstate_remember instead. Keypath is auto-prefixed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |