rename_folder
Change the display label of a folder in Mnemosyne knowledge graphs to update organization and improve clarity.
Instructions
Rename a folder's display label.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| graph_id | Yes | ||
| folder_id | Yes | ||
| new_label | Yes |
Implementation Reference
- src/neem/mcp/tools/hocuspocus.py:506-571 (handler)The complete implementation of the 'rename_folder' tool, including registration decorator and handler function. It authenticates, validates inputs, verifies the folder exists, updates the folder name using a Y.js workspace transaction via HocuspocusClient, and returns the updated workspace snapshot.@server.tool( name="rename_folder", title="Rename Folder", description="Rename a folder's display label.", ) async def rename_folder_tool( graph_id: str, folder_id: str, new_label: str, context: Context | None = None, ) -> dict: """Rename a folder via Y.js.""" auth = MCPAuthContext.from_context(context) auth.require_auth() if not graph_id or not graph_id.strip(): raise ValueError("graph_id is required and cannot be empty") if not folder_id or not folder_id.strip(): raise ValueError("folder_id is required and cannot be empty") if not new_label or not new_label.strip(): raise ValueError("new_label is required and cannot be empty") try: await hp_client.connect_workspace(graph_id.strip()) # Verify folder exists channel = hp_client._workspace_channels.get(graph_id.strip()) if channel is None: raise RuntimeError(f"Workspace not connected: {graph_id}") reader = WorkspaceReader(channel.doc) current = reader.get_folder(folder_id.strip()) if not current: raise RuntimeError(f"Folder '{folder_id}' not found in graph '{graph_id}'") # Update folder name via Y.js await hp_client.transact_workspace( graph_id.strip(), lambda doc: WorkspaceWriter(doc).update_folder( folder_id.strip(), name=new_label.strip(), ), ) snapshot = hp_client.get_workspace_snapshot(graph_id.strip()) result = { "success": True, "folder_id": folder_id.strip(), "graph_id": graph_id.strip(), "new_label": new_label.strip(), "workspace": snapshot, } return result except Exception as e: logger.error( "Failed to rename folder", extra_context={ "graph_id": graph_id, "folder_id": folder_id, "error": str(e), }, ) raise RuntimeError(f"Failed to rename folder: {e}")
- src/neem/mcp/server/standalone_server.py:317-317 (registration)The call to register_hocuspocus_tools which registers the rename_folder tool (among others) on the MCP server instance.register_hocuspocus_tools(mcp_server)