logseq_get_page_content
Retrieve the hierarchical block content of a specific page from your Logseq knowledge graph, using the page name or UUID for targeted access.
Instructions
Get block hierarchy for specific page
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| src_page | Yes | Page name or UUID |
Implementation Reference
- src/mcp_server_logseq/server.py:575-584 (handler)Main handler for logseq_get_page_content tool: parses arguments, calls Logseq API 'logseq.Editor.getPageBlocksTree', formats hierarchical block structure using format_blocks_tree, and returns as TextContent.elif name == "logseq_get_page_content": args = GetPageBlocksTreeParams(**arguments) result = make_request( "logseq.Editor.getPageBlocksTree", [args.src_page] ) return [TextContent( type="text", text=format_blocks_tree(result) )]
- Pydantic model defining input schema for the tool: requires 'src_page' parameter (page name or UUID). Used for validation in handler and tool registration.class GetPageBlocksTreeParams(LogseqBaseModel): src_page: Annotated[ str, Field(description="Page name or UUID", examples=["[[Journal]]", "6485a-9de3..."]) ]
- src/mcp_server_logseq/server.py:273-277 (registration)Tool registration in @server.list_tools(): defines name, description, and input schema linking to GetPageBlocksTreeParams.Tool( name="logseq_get_page_content", description="Get block hierarchy for specific page", inputSchema=GetPageBlocksTreeParams.model_json_schema(), ),
- Helper function to format the hierarchical block tree returned from Logseq API into a readable indented text representation, used in the tool handler.def format_blocks_tree(blocks: list) -> str: """Format hierarchical block structure""" def print_tree(block, level=0): output = [] prefix = " " * level + "- " output.append(f"{prefix}{block.get('content', '')}") for child in block.get('children', []): output.extend(print_tree(child, level + 1)) return output return "\n".join( line for block in blocks for line in print_tree(block) )