Skip to main content
Glama
mikeysrecipes

Logseq MCP Tools

create_block

Add bullet-point content to Logseq pages. Specify page name and content, optionally include properties. Automatically formats as bullet points and supports page links with [[Page Name]] syntax.

Instructions

Creates a new block on a page in the Logseq graph.

IMPORTANT NOTES:
1. All blocks are automatically formatted as bullet points in Logseq UI
2. To create links to other pages, use double brackets: [[Page Name]]

When creating blocks on journal pages:
  - The block will inherit the "journal?" and "journalDay" attributes from the page
  - "journalDay" will be in YYYYMMDD format (e.g., 20250404 for April 4, 2025)

Args:
    page_name (str): The name of the page to create the block on.
    content (str): The content of the new block.
    properties (dict, optional): Properties to set on the new block.
    
Returns:
    dict: Information about the created block.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
page_nameYes
contentYes
propertiesNo

Implementation Reference

  • The MCP tool handler for 'create_block', decorated with @mcp.tool(). Defines input schema via type hints and docstring. Delegates to LogseqAPIClient.create_block.
    @mcp.tool()
    def create_block(page_name: str, content: str, properties: Optional[Dict] = None) -> Dict:
        """
        Creates a new block on a page in the Logseq graph.
        
        IMPORTANT NOTES:
        1. All blocks are automatically formatted as bullet points in Logseq UI
        2. To create links to other pages, use double brackets: [[Page Name]]
        
        When creating blocks on journal pages:
          - The block will inherit the "journal?" and "journalDay" attributes from the page
          - "journalDay" will be in YYYYMMDD format (e.g., 20250404 for April 4, 2025)
        
        Args:
            page_name (str): The name of the page to create the block on.
            content (str): The content of the new block.
            properties (dict, optional): Properties to set on the new block.
            
        Returns:
            dict: Information about the created block.
        """
        """Create a new block on the specified page."""
        return logseq_client.create_block(page_name, content, properties)
  • Supporting utility in LogseqAPIClient that makes the actual API call to Logseq to append a new block to a page.
    def create_block(self, page_name: str, content: str, properties: Dict = None) -> Dict:
        """Create a new block on a page"""
        params = [page_name, content]
        if properties:
            params.append(properties)
        response = self.call_api("logseq.Editor.appendBlockInPage", params)
        if isinstance(response, dict) and "result" in response:
            return response.get("result")
        return response
  • Re-exports the create_block tool from blocks.py for convenient import in other modules.
    from .blocks import get_page_blocks, get_block, create_block, update_block, remove_block, insert_block, move_block, search_blocks
  • Includes create_block in the public __all__ exports of the package.
    create_block, 

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