/ Directory / Playground / mcp-logseq
● Community ergut ⚡ Instant

mcp-logseq

by ergut · ergut/mcp-logseq

Make your Logseq graph AI-queryable — read pages, create blocks, search by property, run DSL queries — over Logseq's local HTTP API.

mcp-logseq by ergut connects an MCP client to Logseq's Local HTTP API. 16 core tools cover pages, blocks, namespaces, backlinks, and DSL queries. Optional vector search adds semantic recall across the whole graph.

Why use it

Key features

Live Demo

What it looks like in practice

logseq.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "logseq": {
      "command": "uvx",
      "args": [
        "mcp-logseq"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "logseq": {
      "command": "uvx",
      "args": [
        "mcp-logseq"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "logseq": {
      "command": "uvx",
      "args": [
        "mcp-logseq"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "logseq": {
      "command": "uvx",
      "args": [
        "mcp-logseq"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "logseq",
      "command": "uvx",
      "args": [
        "mcp-logseq"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "logseq": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-logseq"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add logseq -- uvx mcp-logseq

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use mcp-logseq

Draft today's daily journal from your week

👤 Logseq power users ⏱ ~10 min beginner

When to use: Friday reflection; you want a summary of the week's journal pages.

Prerequisites
  • Logseq with HTTP API enabled — Settings > Features > enable HTTP APIs; generate API token
  • LOGSEQ_API_TOKEN + LOGSEQ_API_URL env vars — Set in your MCP client config
Flow
  1. Pull last week's journal pages
    Get the content of this week's daily journal pages (Monday through today).✓ Copied
    → Page contents per day
  2. Summarize and draft
    Summarize themes and draft today's journal with a Week Review section.✓ Copied
    → Draft ready to paste
  3. Write back
    Update today's journal page, appending the Week Review section.✓ Copied
    → Page updated

Outcome: A closing-the-loop weekly reflection with minimal typing.

Pitfalls
  • update_page in append mode duplicates content on retry — Use replace mode for idempotent operations, or check existing content first
  • Sensitive tags leak into summaries — Set LOGSEQ_EXCLUDE_TAGS=private,#secret to hide those

Find pages by property for a task sweep

👤 Logseq users with task-style pages ⏱ ~15 min beginner

When to use: You tag project pages with status:: active and want a list.

Flow
  1. Find by property
    find_pages_by_property: status=active. Return names and updated-at.✓ Copied
    → Page list
  2. Triage
    For each, fetch the page and tell me the last 3 blocks — is there a visible next action?✓ Copied
    → Per-page status

Outcome: A sweep of active projects with clear next actions.

Semantic recall across your whole graph

👤 Researchers with a huge Logseq graph ⏱ ~10 min intermediate

When to use: Keyword search isn't finding a note you know you wrote.

Prerequisites
  • Vector DB synced — Run sync_vector_db once; re-run after big imports
Flow
  1. Vector search
    vector_search: 'what did I note about test pyramid vs honeycomb?'✓ Copied
    → Ranked matches
  2. Pull full page
    get_page_content on the top match.✓ Copied
    → Full content

Outcome: Finding notes by meaning, not exact words.

Turn a meeting page into tracked action items

👤 PMs and team leads ⏱ ~10 min beginner

When to use: You capture meetings in Logseq and want the actions separated.

Flow
  1. Read meeting page
    get_page_content for 'Meeting/2026-04-14/engineering-sync'.✓ Copied
    → Notes
  2. Extract actions
    Identify TODO-flavored lines. For each, create a child block under today's journal with assignee and due date.✓ Copied
    → Blocks created

Outcome: Actions lifted out of notes into a trackable list.

Combinations

Pair with other MCPs for X10 leverage

logseq + marm-systems

Short-lived recall in MARM; durable notes in Logseq

Move these MARM contextual logs into Logseq as pages under /Notes/2026-04.✓ Copied
logseq + filesystem

Export curated Logseq pages to Markdown files

Export all pages tagged #public to ./exports/public-notes/ as individual .md files.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
list_pages (none) Graph overview free (local API)
get_page_content name: str Read a page free
create_page name, content, properties? New page free (write)
update_page name, content, mode: append|replace Edit an existing page free (write)
delete_page name: str Destructive — confirm free
search query: str Full-text search free
query dsl: str Logseq DSL query free
find_pages_by_property key: str, value?: str Filter by properties free
get_page_backlinks name: str Who links to this note free
insert_nested_block parent_uuid, content, position: child|sibling Add structured content free (write)
vector_search query: str Semantic recall free (local embeddings)

Cost & Limits

What this costs to run

API quota
None — Logseq's local API is unbounded
Tokens per call
Small for list/search; pages can be long
Monetary
Free
Tip
For graphs with 10k+ pages, keep vector DB synced nightly rather than on every query.

Security

Permissions, secrets, blast radius

Credential storage: LOGSEQ_API_TOKEN in env var
Data egress: All local to Logseq; vector embeddings stay on your machine
Never grant: Exposing Logseq's HTTP API to your LAN without firewalling

Troubleshooting

Common errors and fixes

Connection refused on localhost:12315

Start the HTTP API via the plug icon in Logseq. It's off by default.

Verify: curl http://localhost:12315
401 on API calls

Token missing or mismatched. Regenerate in Logseq Authorization tokens.

Verify: Check token in Logseq settings
vector_search empty

Run sync_vector_db first; it's not auto-synced.

Verify: vector_db_status

Alternatives

mcp-logseq vs others

AlternativeWhen to use it insteadTradeoff
Obsidian MCP (community)You use Obsidian insteadDifferent graph semantics
Notion MCPYou're on NotionPaid SaaS; different graph model
filesystem MCP on the Logseq dirYou only need raw file accessNo block-level operations, no DSL queries

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills