Skip to main content
Glama
ergut

MCP server for LogSeq

by ergut

LogSeq 的 MCP 服务器

MCP 服务器通过其 API 与 LogSeq 交互。

成分

工具

服务器实现了多个工具来与 LogSeq 交互:

  • list_graphs:列出所有可用的图表

  • list_pages:列出当前图表中的所有页面

  • get_page_content:返回单个页面的内容

  • 搜索:搜索所有页面的内容

  • create_page:创建新页面

  • update_page:更新现有页面的内容

  • delete_page:删除页面

示例提示

最好先指示 Claude 使用 LogSeq。这样它就会始终调用该工具。

提示示例:

  • 获取我最新会议记录的内容并进行总结

  • 搜索所有提及项目 X 的页面并解释上下文

  • 使用今天的会议记录创建新页面

  • 使用最新更新更新项目状态页面

Related MCP server: Logseq MCP Server

配置

LogSeq API 配置

您可以通过两种方式使用 LogSeq API 设置配置环境:

  1. 添加到服务器配置(首选)

{
  "mcp-logseq": {
    "command": "uvx",
    "args": [
      "mcp-logseq"
    ],
    "env": {
      "LOGSEQ_API_TOKEN": "<your_api_token_here>",
      "LOGSEQ_API_URL": "http://localhost:12315"
    }
  }
}
  1. 在工作目录中创建一个包含所需变量的.env文件:

LOGSEQ_API_TOKEN=your_token_here
LOGSEQ_API_URL=http://localhost:12315

发展

建筑

准备分发包:

  1. 同步依赖项并更新锁文件:

uv sync

调试

由于 MCP 服务器通过 stdio 运行,调试起来可能比较困难。为了获得最佳调试体验,我们建议使用MCP Inspector 。

您可以通过npm启动 MCP Inspector:

npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-logseq run mcp-logseq

Available Tools

17 tools
create_pageA

Create a new page in Logseq with properly structured blocks.

Fails if a page with the same title already exists (use update_page to modify existing pages). This makes retries safe: re-sending a create_page that timed out will not create numbered duplicates like "Page(1)".

Markdown content is automatically parsed into Logseq's block hierarchy:

  • Headings (# ## ###) create nested sections

  • Lists (- or 1.) become proper block trees

  • Code blocks are preserved as single blocks

  • YAML frontmatter (---) becomes page properties

Example content:

---
tags: [project, active]
priority: high
---

# Project Title
Introduction paragraph.

## Tasks
- Task 1
  - Subtask A
- Task 2
ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the new page
contentNoMarkdown content to parse into blocks (optional)
propertiesNoPage properties (merged with frontmatter if both provided)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses failure on duplicate titles, retry safety, markdown parsing into block hierarchy, and property merging. Could mention return value or side effects, but covers key behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with sections, example, and clear explanations. Slightly long but each part serves a purpose. No wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers input semantics, behavior, and constraints. Missing return value description, but given the tool's simplicity and no output schema, it is sufficiently complete for page creation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3). Description adds meaning by explaining how 'content' is parsed (markdown into blocks) and that 'properties' merge with frontmatter. Adds value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a new page') and the resource ('in Logseq with properly structured blocks'). It distinguishes from sibling tools like update_page by noting the fail condition for duplicate titles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (creating new pages) and when not to (if page exists, use update_page). Also explains retry safety, providing clear guidance for the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_blockB

Delete a block from LogSeq by its UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
block_uuidYesUUID of the block to delete

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description does not disclose behavioral traits such as irreversibility, cascading effects, permissions needed, or return value. For a destructive operation, this lack of detail is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (one sentence), which is efficient. However, it could be front-loaded with additional critical info, but the brevity does not detract from clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (delete operation, single parameter, no output schema), the description lacks essential context about return values, error handling, and side effects, making it incomplete for safe agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema coverage is 100% with the parameter 'block_uuid' described. The description adds no further semantic meaning beyond 'by its UUID,' so it meets the baseline for adequate schema handling.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Delete'), resource ('block'), and method ('by its UUID'), making it unambiguous. It distinguishes from sibling tools like 'delete_page' by specifying the object type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool over alternatives (e.g., why not delete the parent page?), nor any prerequisites or context. The description simply states the action without usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_pageB

Delete a page from LogSeq.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_nameYesName of the page to delete

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states 'Delete a page' but does not disclose whether the operation is irreversible, what happens to associated content, or if any authorization is needed. For a destructive action, more behavioral context is essential.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, highly concise and front-loaded. However, it may be too terse for a destructive operation; a slightly longer description with more detail would not harm conciseness. Still, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description is minimally adequate. It does not explain return behavior or confirmation, but given the low complexity, it covers the basic purpose. Missing details about side effects hold it back from a higher score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with the parameter description 'Name of the page to delete', so the description adds no extra semantic value. Baseline 3 is appropriate as the schema handles the parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Delete' and resource 'page' from 'LogSeq', clearly distinguishing it from siblings like 'delete_block' or 'rename_page'. It immediately communicates the core action and scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, prerequisites (e.g., page existence), or consequences. The description lacks explicit 'when to use' or 'when not to use' context, leaving the agent to infer from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_pages_by_propertyA

Find all pages that have a specific property, optionally filtered by value. Simpler alternative to the full query DSL.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return
property_nameYesName of the property to search for (e.g., 'status', 'type', 'service')
property_valueNoOptional: specific value to match. If omitted, returns all pages that have this property.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It describes the core filtering behavior adequately but does not mention potential side effects, permissions, or return format. For a read-only search tool, this is acceptable but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise, front-loaded sentences. The first sentence states the core purpose, the second provides context on alternatives. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 params, 1 required, no output schema), the description covers the key functionality and use case. It could mention pagination or ordering, but for a basic search tool it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter described in the schema. The description adds overall context but no additional detail beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it finds all pages with a specific property, optionally filtered by value. Distinguishes itself by calling out it's a simpler alternative to the full query DSL.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says it's a simpler alternative to the query DSL, implying when to use this tool. However, it does not mention exclusions or contrast with other sibling search tools like 'search' or 'query'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_blockA

Get a single block by its UUID. Returns the block content, properties, and child blocks (recursively). Useful for inspecting a specific block after finding its UUID via search or query.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format (text or json)text
block_uuidYesUUID of the block to retrieve
include_childrenNoWhether to include child blocks recursively (default: true)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It accurately states that it returns block content, properties, and recursive child blocks, implying a read-only operation. However, it does not mention error conditions or recursion depth limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant information. The first sentence states the primary action; the second provides a usage hint. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward get tool with 3 parameters and no output schema, the description adequately covers purpose and return content. It could mention that the output format is selectable, but that is in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning to the parameters (block_uuid, include_children, format) beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a block by UUID and returns content, properties, and child blocks. It distinguishes itself from sibling tools like search or get_page_content by focusing on a single block identified by UUID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a use case: 'inspecting a specific block after finding its UUID via search or query.' This gives context but does not explicitly exclude scenarios or name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_page_contentB

Get the content of a specific page from LogSeq.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format (text or json)text
max_depthNoMaximum nesting depth to display (default: -1 for unlimited)
page_nameYesName of the page to retrieve
resolve_refsNoResolve [[uuid]] page references to [[Page Name]] in DB mode (default: true)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must convey behavioral traits. While 'Get' implies a read-only operation, it does not disclose potential side effects, authorization needs, rate limits, or error scenarios. The description is insufficient for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the core purpose without unnecessary words. It is highly efficient and front-loaded, meeting the standard for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks details about return values, output format, or how the content is structured. Given that no output schema exists and there are 4 parameters, the description should explain that the content is returned in the specified format (e.g., text or JSON) and potentially mention nesting or reference resolution behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all parameters with descriptions (100% coverage), so the baseline is 3. The description adds no additional parameter-level information, but the schema already adequately explains each parameter’s purpose and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves page content from LogSeq, using a specific verb ('Get') and resource ('content of a specific page'). This differentiates it from sibling tools like list_pages (which lists pages) or delete_page (destructive operation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, limitations, or contrast with sibling tools like search or query. The agent is left to infer usage without explicit context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pages_from_namespaceA

Get all pages within a namespace hierarchy (flat list). Use this to discover subpages of a parent page.

ParametersJSON Schema
NameRequiredDescriptionDefault
namespaceYesThe namespace to query (e.g., 'Customer', 'Projects/2024')

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the burden of behavioral disclosure. It correctly states it returns a flat list of pages, but omits details on output structure (e.g., page properties), pagination, or ordering. For a read operation, this is acceptable but lacking completeness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states the core function, second provides usage context. No unnecessary words, and information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 1-parameter tool with no output schema, the description covers the basic intent but lacks details on return format or limits. An agent may need to know the structure of returned pages to chain calls, but the description is not severely deficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter, and the description adds no new meaning beyond the schema's own description (e.g., 'The namespace to query (e.g., 'Customer', 'Projects/2024')'). Baseline of 3 is appropriate since the schema already documents the parameter adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves all pages within a namespace hierarchy as a flat list. It uses a specific verb 'Get' and resource 'pages within a namespace hierarchy', and implicitly differentiates from sibling 'get_pages_tree_from_namespace' by contrasting flat vs. tree structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to discover subpages of a parent page', providing a clear use case. However, it does not explicitly mention when not to use it or list alternatives like 'get_pages_tree_from_namespace' for tree views.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pages_tree_from_namespaceA

Get pages within a namespace as a hierarchical tree structure. Useful for understanding the full page hierarchy.

ParametersJSON Schema
NameRequiredDescriptionDefault
namespaceYesThe root namespace to build tree from (e.g., 'Projects')

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It lacks disclosure of behavioral traits like error handling, permissions, or limits beyond the basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff. Efficiently conveys purpose and context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and a single parameter, the description explains the use case but omits details about the tree structure or limitations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with the 'namespace' parameter described. The tool description adds minimal context beyond the schema, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get'), resource ('pages within a namespace'), and output format ('hierarchical tree structure'). It differentiates from sibling tool 'get_pages_from_namespace' by emphasizing hierarchy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context ('Useful for understanding the full page hierarchy') but does not explicitly mention when not to use or provide alternative sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

insert_nested_blockA

Insert a new block as a child or sibling of an existing block, enabling nested hierarchical structures

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesContent text for the new block
siblingNofalse (default) = insert as CHILD under parent_block_uuid. true = insert as SIBLING after parent_block_uuid at the same level. For multiple children under same parent, ALWAYS use false with the parent's UUID.
propertiesNoOptional block properties (e.g., {'marker': 'TODO', 'priority': 'A'})
parent_block_uuidYesUUID of the reference block. If sibling=false, new block becomes a CHILD of this UUID. If sibling=true, new block becomes a SIBLING of this UUID (at the same level).

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries burden. It discloses child/sibling behavior and provides a hint for multiple children. However, it omits details on ordering, error handling, or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence captures core functionality without redundancy. Front-loaded with verb and resource, efficiently conveying purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderate-complexity tool with no output schema and no annotations, the description is adequate but not thorough. It lacks details on return values, error cases, and ordering of nested blocks.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover all parameters (100% coverage). Description rephrases the parent_block_uuid and sibling roles but adds no new semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool inserts a block as child or sibling, with specific verb 'Insert' and resource 'block'. It distinguishes from sibling tools (e.g., update_block, delete_block) as the only insertion tool for nested hierarchies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like update_block or set_block_properties. The sibling parameter description offers some context but no global usage criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_pagesC

Lists all pages in a LogSeq graph.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoReturn at most this many pages (alphabetical). Omit for all.
include_journalsNoWhether to include journal/daily notes in the list

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only says 'lists all pages', which implies a read-only operation but does not explicitly state that it is safe, that it returns a large dataset, or that it has any pagination or side effects. The description adds minimal behavioral context beyond the obvious verb 'list', which is a significant gap for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence that front-loads the purpose without any fluff. It is appropriately concise for a simple listing operation. However, it might benefit from a brief mention of the optional parameters or alternatives, but this is a minor point given the excellent brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two optional parameters, no annotations, and several sibling functions, the description is incomplete. It does not explain how the 'limit' or 'include_journals' parameters affect the result, nor does it clarify that the output may differ from other page-listing tools (e.g., namespace-specific listings). An agent presented with this description alone would not know whether to choose this over find_pages_by_property or get_pages_from_namespace, making it insufficient for correct tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers both parameters (limit and include_journals) with clear descriptions and defaults, reaching 100% schema description coverage. The tool description itself adds no parameter-specific meaning, but since the schema already documents them thoroughly, a baseline of 3 is appropriate per the rubric.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'lists' and the resource 'all pages in a LogSeq graph', making the core purpose understandable. It implicitly distinguishes itself from content retrieval tools like get_page_content and property-based search like find_pages_by_property, but it doesn't explicitly name alternatives. The scope is clear, and the description is unambiguous, so it earns a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus its siblings. It doesn't mention that other tools exist for filtered or property-based page lookup (e.g., find_pages_by_property, get_pages_from_namespace) nor does it explain the trade-offs. With 17 sibling tools, the lack of any usage context leaves the agent to guess when this broad listing is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

queryA

Execute a Logseq DSL query to search pages and blocks. Supports property queries, tag queries, task queries, and logical combinations. See https://docs.logseq.com/#/page/queries for query syntax.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return
queryYesLogseq DSL query string (e.g., '(page-property status active)', '(and (task todo) (page [[Project]]))')
formatNoOutput format (text or json). JSON returns raw result objects including block UUIDs and page info for deep linking.text
result_typeNoFilter results by typeall

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, description partially covers behavior: it searches pages/blocks, supports various queries. However, it doesn't clarify mutability (likely read-only), return format details beyond schema, error handling, or performance implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus a link, front-loaded with key information. Every part is necessary and succinct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 params, full schema coverage, no output schema, and no annotations, the description adequately explains purpose and provides a reference for syntax. Could be more complete with return structure or examples, but sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. Description adds general context but no new parameter-specific information. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it executes a Logseq DSL query to search pages and blocks, listing supported query types and providing a link to syntax. Distinguishes from sibling tools like search by focusing on DSL queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like search or find_pages_by_property. Implies use for complex DSL queries but lacks direct comparison.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rename_pageA

Rename an existing page. All references throughout the graph will be automatically updated.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_nameYesNew name for the page
old_nameYesCurrent name of the page

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the critical behavior that all references are automatically updated, which is key for an AI agent to anticipate side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences with no extraneous information. Essential purpose and side effect are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema and no annotations, the description provides sufficient context: purpose, parameters implied, and the key side effect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description adds no additional semantics beyond the schema, so it meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action 'rename' and the resource 'an existing page', with a unique side effect (automatic reference updates) that distinguishes it from sibling tools like update_page or delete_page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is used for renaming pages but does not explicitly state when to use it over alternatives like update_page or provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_block_propertiesA

Set properties on a block in Logseq DB-mode. Properties must be defined on the block's tag/class. Use property display names (e.g. 'Content status', not the internal ident).

ParametersJSON Schema
NameRequiredDescriptionDefault
block_uuidYesUUID of the block to update
propertiesYesProperties to set as {name: value} pairs. Use display names (e.g. 'Content status': 'kiem')

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It mentions a precondition (properties must be defined on tag/class) but does not explain side effects like whether existing properties are overwritten, error handling, or return values. This is inadequate for a mutation tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, each serving a distinct purpose: stating the action, adding a constraint, and providing a usage example. There is no redundant or unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple set operation with two parameters and no output schema, the description covers the essential: what it does, a key constraint, and a formatting guideline. It could be improved by clarifying whether properties are merged or replaced, but given the tool's simplicity, it is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining that property names must be display names (not internal identifiers) and that properties must be defined on the block's tag/class, which is a critical constraint not evident from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action (set properties), the target (a block in Logseq DB-mode), and adds specificity with constraints on property definitions and display names, effectively distinguishing it from sibling tools like update_block.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on how to use the tool (use display names, properties must be defined on tag/class), but does not explicitly state when to prefer this over alternatives or when not to use it. A sibling like update_block exists but no differentiation is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_blockB

Update the content of an existing LogSeq block by UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesNew content that replaces the block text
block_uuidYesUUID of the block to update

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Lacks details on destructive behavior, permissions, side effects, or error handling. Without annotations, the description should be more transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 11 words, front-loaded with key action and scope, no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple 2-param update, but missing context on block existence requirements or return behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description adds no extra meaning beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb (update), resource (block), and scope (by UUID), distinguishing it from sibling tools like insert_nested_block or get_block.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs. alternatives (e.g., set_block_properties), or prerequisites like block existence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_pageA

Update a page in Logseq with new content and/or properties.

Supports two modes:

  • append: Add new blocks after existing content (default)

  • replace: Clear all existing blocks and add new content

Markdown is parsed into proper block hierarchy just like create_page. YAML frontmatter in content will be merged with explicit properties.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoappend: add after existing content. replace: clear page and add new content.append
contentNoMarkdown content to add or replace with
page_nameYesName of the page to update
propertiesNoPage properties to set/update

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses key behaviors: two modes, Markdown parsing, YAML frontmatter merging. However, it does not mention what happens if the page doesn't exist, error handling, or side effects like irreversible deletion in replace mode. The disclosure is adequate but not complete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise paragraphs: first states purpose, second details modes and behavior. Every sentence adds information with no filler. Front-loaded with the primary action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with no output schema, the description covers modes, content processing, and property merging. It references create_page for context. Lacks return value description and error conditions, but otherwise sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. The description adds value by explaining that 'mode' defaults to 'append', Markdown is parsed into block hierarchy, and YAML frontmatter in content merges with explicit properties. This goes beyond the schema's brief descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it updates a Logseq page with content/properties, explains two modes (append/replace), and distinguishes from create_page by implying modification of existing pages. The verb 'update' and the resource 'page' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus siblings like create_page or delete_page. The description mentions that Markdown parsing is 'just like create_page' but does not provide when-to-use or when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.9.2
    • Changedlist_pages1 field changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Return at most this many pages (alphabetical). Omit for all.",
        +  "minimum": 1,
        +  "type": "integer"
        +}
  2. 2 tool updatesv1.8.0
    • Changedquery1 field changed
      • addedInput schema / properties / format
        Added value: +{
        +  "default": "text",
        +  "description": "Output format (text or json). JSON returns raw result objects including block UUIDs and page info for deep linking.",
        +  "enum": [
        +    "text",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedsearch1 field changed
      • addedInput schema / properties / format
        Added value: +{
        +  "default": "text",
        +  "description": "Output format (text or json). JSON includes block UUIDs and page identifiers for deep linking.",
        +  "enum": [
        +    "text",
        +    "json"
        +  ],
        +  "type": "string"
        +}
  3. 14 tool updatesv1.6.2
    • Changedcreate_page3 fields changed
      • changedInput schema / properties / content / description
        Previous value: -"Content of the new page"New value: +"Markdown content to parse into blocks (optional)"
      • addedInput schema / properties / properties
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Page properties (merged with frontmatter if both provided)",
        +  "type": "object"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "title",
        -  "content"
        -]New value: +[
        +  "title"
        +]
    • Addeddelete_block
    • Addedfind_pages_by_property
    • Addedget_block
    • Addedget_page_backlinks
    • Changedget_page_content2 fields changed
      • addedInput schema / properties / max_depth
        Added value: +{
        +  "default": -1,
        +  "description": "Maximum nesting depth to display (default: -1 for unlimited)",
        +  "type": "integer"
        +}
      • addedInput schema / properties / resolve_refs
        Added value: +{
        +  "default": true,
        +  "description": "Resolve [[uuid]] page references to [[Page Name]] in DB mode (default: true)",
        +  "type": "boolean"
        +}
    • Addedget_pages_from_namespace
    • Addedget_pages_tree_from_namespace
    • Addedinsert_nested_block
    • Addedquery
    • Addedrename_page
    • Addedset_block_properties
    • Addedupdate_block
    • Changedupdate_page3 fields changed
      • changedInput schema / properties / content / description
        Previous value: -"New content to append to the page (optional)"New value: +"Markdown content to add or replace with"
      • addedInput schema / properties / mode
        Added value: +{
        +  "default": "append",
        +  "description": "append: add after existing content. replace: clear page and add new content.",
        +  "enum": [
        +    "append",
        +    "replace"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / properties / description
        Previous value: -"Page properties to update (optional)"New value: +"Page properties to set/update"
  4. 6 tool updatesv1.0.0
    • First observedcreate_page
    • First observeddelete_page
    • First observedget_page_content
    • First observedlist_pages
    • First observedsearch
    • First observedupdate_page

TDQS

A3.5/5.0

Scored across 17 tools

Disambiguation4/5

Each tool targets a clear resource (page vs block) and action, but search/query/find_pages_by_property and the two namespace getters have overlapping purposes that could cause an agent to pick the wrong one.

Naming Consistency4/5

Most tools follow verb_noun (list_pages, create_page, get_block, delete_block), but 'search' and 'query' break the pattern as bare verbs, and set_block_properties could be seen as an update_block variant.

Tool Count4/5

17 tools is slightly above the ideal 3-15 range, but the set covers pages, blocks, search, queries, namespaces, backlinks, and properties without obvious redundancy.

Completeness4/5

The surface provides full page and block CRUD plus search/query, namespaces, backlinks, and properties. Missing standalone root block creation and journal-specific tools, but core workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with your local Logseq knowledge base through advanced search, content creation, template management, and knowledge organization with privacy-first, local-only operations.
    7 npm
    7
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI assistants like Claude to directly read, write, search, and navigate your local Logseq knowledge graph, including managing journals, pages, backlinks, and page relationships without manual copy-pasting.
    11
    3 npm
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects AI assistants to Logseq knowledge graphs to read, write, and search pages, blocks, and journals via the Model Context Protocol. It features 17 tools for full graph management, including CRUD operations, batch block insertion, and full-text search.
    7 npm
    Apache 2.0