Logseq MCP Server

# Logseq MCP Server A Model Context Protocol server that provides direct integration with Logseq's knowledge base. This server enables LLMs to interact with Logseq graphs, create pages, manage blocks, and organize information programmatically. ## Available Tools ### Block Operations - **logseq_insert_block** - Create new blocks in Logseq **Parameters**: - `parent_block` (string): Parent block UUID or page name - `content` (string, required): Block content - `is_page_block` (boolean): Create as page-level block - `before` (boolean): Insert before parent block - `custom_uuid` (string): Custom UUIDv4 for block - **logseq_edit_block** - Enter block editing mode **Parameters**: - `src_block` (string, required): Block UUID - `pos` (number): Cursor position - **logseq_exit_editing_mode** - Exit editing mode **Parameters**: - `select_block` (boolean): Keep block selected ### Page Operations - **logseq_create_page** - Create new pages **Parameters**: - `page_name` (string, required): Page name - `properties` (object): Page properties - `journal` (boolean): Create as journal page - `format` (string): Page format (markdown/org) - **logseq_get_page** - Get page details **Parameters**: - `src_page` (string, required): Page identifier - `include_children` (boolean): Include child blocks - **logseq_get_all_pages** - List all pages **Parameters**: - `repo` (string): Repository name ### Content Retrieval - **logseq_get_current_page** - Get active page/block **Parameters**: None - **logseq_get_current_blocks_tree** - Current page's block hierarchy **Parameters**: None - **logseq_get_editing_block_content** - Get content of active block **Parameters**: None - **logseq_get_page_blocks_tree** - Get page's block structure **Parameters**: - `src_page` (string, required): Page identifier ## Prompts ### logseq_insert_block Create a new block in Logseq **Arguments:** - `parent_block`: Parent block reference (page name or UUID) - `content`: Block content - `is_page_block`: Set true for page-level blocks ### logseq_create_page Create a new Logseq page **Arguments:** - `page_name`: Name of the page - `properties`: Page properties as JSON - `journal`: Set true for journal pages ## Installation ### Using pip ```bash pip install mcp-server-logseq ``` ### From source ```bash git clone https://github.com/dailydaniel/logseq-mcp.git cd logseq-mcp cp .env.example .env uv sync ``` Run the server: ```bash python -m mcp_server_logseq ``` ## Configuration ### API Key 1. Generate API token in Logseq: APIAuthorization tokens 2. Set environment variable: ```bash export LOGSEQ_API_TOKEN=your_token_here ``` Or pass via command line: ```bash python -m mcp_server_logseq --api-key=your_token_here ``` ### Graph Configuration Default URL: http://localhost:12315 To customize: ```bash python -m mcp_server_logseq --url=http://your-logseq-instance:port ``` ## Examples ## Create meeting notes page ```plaintext Create new page "Team Meeting 2024-03-15" with properties: - Tags: #meeting #engineering - Participants: Alice, Bob, Charlie - Status: pending ``` ### Add task block to existing page ```plaintext Add task to [[Project Roadmap]]: - [ ] Finalize API documentation - Due: 2024-03-20 - Priority: high ``` ### Create journal entry with first block ```plaintext Create journal entry for today with initial content: - Morning standup completed - Started work on new authentication system ``` ## Debugging ```bash npx @modelcontextprotocol/inspector uv --directory . run mcp-server-logseq ``` ## Contributing We welcome contributions to enhance Logseq integration: - Add new API endpoints (page linking, query support) - Improve block manipulation capabilities - Add template support - Enhance error handling