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 |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_graphs | Lists all knowledge graphs owned by the authenticated user. Returns graph metadata including IDs, titles, and timestamps. |
| create_graph | 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_graph | Permanently deletes a knowledge graph and all its contents. This action cannot be undone. Use with caution. |
| sparql_query | 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_update | Executes a SPARQL INSERT, DELETE, or UPDATE operation to modify graph data. Use this for adding, modifying, or removing triples from graphs. |
| get_active_context | 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_document | 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_document | 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_document | 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_workspace | Returns the folder and file structure of a graph's workspace. Use this to understand the organization of documents in a graph. |
| create_folder | 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_folder | 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_folder | Rename a folder's display label. |
| delete_folder | 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_artifact | Move an artifact to a different folder. Set new_parent_id to null to move to root level. |
| rename_artifact | Rename an artifact's display label. |
| move_document | 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_block | 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_blocks | 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_block | 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_block | 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_block | 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_blocks | 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 | |