Skip to main content
Glama
ergut

MCP server for LogSeq

by ergut

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
NameRequiredDescriptionDefault
page_nameYesName of the page to delete

Implementation Reference

  • 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)}" )]
  • 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"] } )
  • 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())
  • 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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ergut/mcp-logseq-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server