Mnemosyne MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Logging verbosity (DEBUG, INFO, WARNING, ERROR, CRITICAL) | INFO |
| REDIS_URL | No | Redis connection for sessions | redis://localhost:6379 |
| MNEMOSYNE_API_URL | No | API endpoint | https://api.sophia-labs.com |
| MNEMOSYNE_CONFIG_DIR | No | Token storage location | ~/.mnemosyne |
| CLAUDE_CODE_SETTINGS_PATH | No | Claude settings file | ~/.claude/settings.json |
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
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_graphsA | Lists all knowledge graphs owned by the authenticated user. Returns graph metadata including IDs, titles, and timestamps. |
| create_graphB | Creates a new knowledge graph with the given ID, title, and optional description. The graph_id should be a URL-safe identifier (e.g., 'my-project', 'research-notes'). |
| delete_graphA | Permanently deletes a knowledge graph and all its contents. This action cannot be undone. Use with caution. |
| sparql_queryA | Executes a read-only SPARQL SELECT or CONSTRUCT query against the user's graphs. Returns query results as JSON. Use this for searching and retrieving data from graphs. |
| sparql_updateA | Executes a SPARQL INSERT, DELETE, or UPDATE operation to modify graph data. Use this for adding, modifying, or removing triples from graphs. |
| get_active_contextA | Returns the currently active graph ID and document ID from the user's session. Use this to understand what the user is currently working on in the Mnemosyne UI. The user_id is automatically derived from authentication if not provided. |
| read_documentB | Reads document content as TipTap XML with full formatting. Blocks: paragraph, heading (level="1-3"), bulletList, orderedList, blockquote, codeBlock (language="..."), taskList (taskItem checked="true"), horizontalRule Marks (nestable): strong, em, strike, code, mark (highlight), a (href="..."), footnote (data-footnote-content="..."), commentMark (data-comment-id="...") Lists: item |
| write_documentA | Replaces document content with TipTap XML. Syncs to UI in real-time. WARNING: This REPLACES all content. For collaborative editing, prefer append_to_document. Blocks: paragraph, heading (level="1-3"), bulletList, orderedList, blockquote, codeBlock (language="..."), taskList (taskItem checked="true"), horizontalRule Marks (nestable): strong, em, strike, code, mark (highlight), a (href="..."), footnote (data-footnote-content="..."), commentMark (data-comment-id="...") Example: Text with highlight and a note Comments: Pass a dict mapping comment IDs to metadata. Comment IDs must match data-comment-id attributes in the content. Example comments: {"comment-1": {"text": "Great point!", "author": "Claude"}} |
| append_to_documentA | Appends a block to the end of a document. Accepts TipTap XML for any block type. Use this for incremental additions without replacing existing content. For plain text, wrap in text. For structured content, provide full XML like Title or .... |
| get_workspaceB | Returns the folder and file structure of a graph's workspace. Use this to understand the organization of documents in a graph. |
| create_folderB | Create a new folder in the workspace. Use parent_id to nest inside another folder (null for root level). The section parameter determines which sidebar section the folder appears in. |
| move_folderA | Move a folder to a new parent folder. Set new_parent_id to null to move to root level. Optionally update the order for positioning among siblings. |
| rename_folderC | Rename a folder's display label. |
| delete_folderA | Delete a folder from the workspace. Set cascade=true to delete all contents (subfolders, documents, artifacts). Without cascade, deletion fails if the folder has children. |
| move_artifactC | Move an artifact to a different folder. Set new_parent_id to null to move to root level. |
| rename_artifactC | Rename an artifact's display label. |
| move_documentA | Move a document to a folder. Set new_parent_id to null to move to root level (unfiled). Note: This updates the document's folder assignment in workspace navigation. |
| get_blockA | Read a specific block by its data-block-id. Returns detailed info including the block's XML content, attributes, text content, and context (prev/next block IDs). Use this for targeted reads without fetching the entire document. |
| query_blocksA | Search for blocks matching specific criteria. Filter by block type, indent level, list type, checked state, or text content. Returns a list of matching block summaries. Use this to find blocks without reading the entire document. |
| update_blockA | Update a block by its ID. Can update attributes (indent, checked, listType) without changing content, or replace the entire block content. This is the most surgical edit - only modifies what you specify. |
| insert_blockA | Insert a new block relative to an existing block. Use position='after' or 'before' to specify where to insert. Returns the new block's generated ID. For appending to the end, use append_to_document instead. |
| delete_blockA | Delete a block by its ID. Use cascade=true to also delete all subsequent blocks with higher indent (indent-based children). Returns the list of deleted block IDs. |
| batch_update_blocksB | Update multiple blocks in a single transaction. More efficient than individual update_block calls. Each update can specify attributes to change and/or new XML content. Returns results for each update. |
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 23 tools
Each tool has a clearly distinct purpose with no significant overlap. For example, append_to_document is for adding content without replacement, while write_document replaces entire documents; get_block retrieves a single block, query_blocks searches across blocks, and read_document fetches full documents. The separation between document operations, block operations, folder management, and graph queries is well-defined.
Tool names follow a highly consistent verb_noun pattern throughout, such as create_folder, delete_block, get_workspace, and move_document. All tools use snake_case without deviation, and verbs like create, delete, get, list, move, rename, query, and update are applied predictably across different resource types (e.g., graph, folder, block, document).
With 23 tools, the count is slightly high but reasonable for the server's broad scope covering document editing, block management, folder organization, and graph operations. Each tool appears purposeful, such as batch_update_blocks for efficiency or sparql_query for specialized queries, though some consolidation might be possible (e.g., move_artifact, move_document, and move_folder could be unified).
The toolset provides comprehensive coverage for the Mnemosyne domain, including full CRUD for documents, blocks, folders, and graphs, plus advanced operations like SPARQL queries, workspace navigation, and context retrieval. There are no obvious gaps; tools support creation, reading, updating, deletion, moving, renaming, querying, and batch operations, enabling agents to handle all typical workflows without dead ends.