Skip to main content
Glama

get_page_blocks

Retrieve all blocks from a specified Logseq page, including hierarchical structure details like parent ID, indentation level, and adjacency. For journal pages, use the required date format to extract blocks with journal-specific metadata.

Instructions

Gets all blocks from a specific page in the Logseq graph. For journal pages, use the format "mmm dth, yyyy" (e.g., "Apr 4th, 2025"). Returned blocks contain information about their hierarchical structure: - parent: The parent block's ID - level: The indentation level (1 for top-level, 2+ for indented blocks) - left: The block to the left (typically the parent for indented blocks) Blocks from journal pages will have: - "journal?": true - "journalDay": YYYYMMDD - The date in numeric format (e.g., 20250404) Args: page_name (str): The name of the page to retrieve blocks from. Returns: list: A list of blocks from the specified page.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
page_nameYes

Implementation Reference

  • MCP tool handler for 'get_page_blocks'. Decorated with @mcp.tool() which handles schema and registration. Calls the LogseqAPIClient helper.
    @mcp.tool() def get_page_blocks(page_name: str) -> List[Dict]: """ Gets all blocks from a specific page in the Logseq graph. For journal pages, use the format "mmm dth, yyyy" (e.g., "Apr 4th, 2025"). Returned blocks contain information about their hierarchical structure: - parent: The parent block's ID - level: The indentation level (1 for top-level, 2+ for indented blocks) - left: The block to the left (typically the parent for indented blocks) Blocks from journal pages will have: - "journal?": true - "journalDay": YYYYMMDD - The date in numeric format (e.g., 20250404) Args: page_name (str): The name of the page to retrieve blocks from. Returns: list: A list of blocks from the specified page. """ """Fetch all blocks from a specific page.""" return logseq_client.get_page_blocks(page_name)
  • Helper method in LogseqAPIClient that performs the actual API call to Logseq's getPageBlocksTree endpoint and processes the response.
    def get_page_blocks(self, page_name: str) -> List[Dict]: """Get all blocks for a page""" response = self.call_api("logseq.Editor.getPageBlocksTree", [page_name]) if isinstance(response, list): return response return response.get("result", []) if isinstance(response, dict) else []
  • The @mcp.tool() decorator registers the tool with the FastMCP server, including auto-generating schema from signature and docstring.
    @mcp.tool() def get_page_blocks(page_name: str) -> List[Dict]: """ Gets all blocks from a specific page in the Logseq graph. For journal pages, use the format "mmm dth, yyyy" (e.g., "Apr 4th, 2025"). Returned blocks contain information about their hierarchical structure: - parent: The parent block's ID - level: The indentation level (1 for top-level, 2+ for indented blocks) - left: The block to the left (typically the parent for indented blocks) Blocks from journal pages will have: - "journal?": true - "journalDay": YYYYMMDD - The date in numeric format (e.g., 20250404) Args: page_name (str): The name of the page to retrieve blocks from. Returns: list: A list of blocks from the specified page. """ """Fetch all blocks from a specific page.""" return logseq_client.get_page_blocks(page_name)

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/mikeysrecipes/logseq-mcp'

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