delete_page
Remove pages from LogSeq to manage your knowledge graph by deleting unnecessary or outdated content.
Instructions
Delete a page from LogSeq.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page_name | Yes | Name of the page to delete |
Implementation Reference
- src/mcp_logseq/tools.py:235-269 (handler)The run_tool method of DeletePageToolHandler executes the core logic of the delete_page tool by instantiating the LogSeq API client and calling its delete_page method with the provided page_name argument.def run_tool(self, args: dict) -> list[TextContent]: if "page_name" not in args: raise RuntimeError("page_name argument required") try: api = logseq.LogSeq(api_key=api_key) result = api.delete_page(args["page_name"]) # Build detailed success message page_name = args["page_name"] success_msg = f"ā Successfully deleted page '{page_name}'" # Add any additional info from the API result if available if result and isinstance(result, dict): if result.get("success"): success_msg += f"\nš Status: {result.get('message', 'Deletion confirmed')}" success_msg += f"\nšļø Page '{page_name}' has been permanently removed from LogSeq" return [TextContent( type="text", text=success_msg )] except ValueError as e: # Handle validation errors (page not found) gracefully return [TextContent( type="text", text=f"ā Error: {str(e)}" )] except Exception as e: logger.error(f"Failed to delete page: {str(e)}") return [TextContent( type="text", text=f"ā Failed to delete page '{args['page_name']}': {str(e)}" )]
- src/mcp_logseq/tools.py:219-233 (schema)The input schema definition for the delete_page tool, specifying that a 'page_name' string is required.def get_tool_description(self): return Tool( name=self.name, description="Delete a page from LogSeq.", inputSchema={ "type": "object", "properties": { "page_name": { "type": "string", "description": "Name of the page to delete" } }, "required": ["page_name"] } )
- src/mcp_logseq/server.py:74-80 (registration)Registration of all tool handlers including DeletePageToolHandler in the MCP server setup.logger.info("Registering tool handlers...") add_tool_handler(tools.CreatePageToolHandler()) add_tool_handler(tools.ListPagesToolHandler()) add_tool_handler(tools.GetPageContentToolHandler()) add_tool_handler(tools.DeletePageToolHandler()) add_tool_handler(tools.UpdatePageToolHandler()) add_tool_handler(tools.SearchToolHandler())
- src/mcp_logseq/logseq.py:184-217 (helper)The LogSeq API helper method delete_page that performs the actual HTTP request to Logseq's deletePage RPC method after validating the page exists.def delete_page(self, page_name: str) -> Any: """Delete a LogSeq page by name.""" url = self.get_base_url() logger.info(f"Deleting page '{page_name}'") try: # Pre-delete validation: verify page exists existing_pages = self.list_pages() page_names = [p.get("originalName") or p.get("name") for p in existing_pages if p.get("originalName") or p.get("name")] if page_name not in page_names: raise ValueError(f"Page '{page_name}' does not exist") response = requests.post( url, headers=self._get_headers(), json={ "method": "logseq.Editor.deletePage", "args": [page_name] }, verify=self.verify_ssl, timeout=self.timeout ) response.raise_for_status() result = response.json() logger.info(f"Successfully deleted page '{page_name}'") return result except ValueError: # Re-raise validation errors as-is raise except Exception as e: logger.error(f"Error deleting page '{page_name}': {str(e)}") raise