Skip to main content
Glama

Logseq MCP 도구

이 프로젝트는 AI 에이전트가 로컬 Logseq 인스턴스와 상호 작용할 수 있도록 하는 MCP(Model Context Protocol) 도구 세트를 제공합니다.

설치

  1. Python 3.11 이상이 설치되어 있는지 확인하세요.

  2. 이 저장소를 복제하세요

  3. 종속성 설치:

    지엑스피1

Related MCP server: Logseq MCP Tools

설정

  1. Logseq에 API가 활성화되어 있는지 확인하세요.

    • Logseq에서 설정 > 고급 > 개발자 모드 > 개발자 모드 활성화로 이동합니다.

    • 그런 다음 플러그인 > Logseq 개발자 플러그인 켜기로 이동하세요.

    • 고급 설정에서 API 토큰도 설정하세요

    • Logseq 재시작

  2. Cursor MCP 구성 파일(일반적으로 ~/.cursor/mcp.json )에서 MCP 서버를 구성합니다.

    {
      "mcpServers": {
        "logseq": {
          "command": "/opt/homebrew/bin/uvx",
          "args": ["logseq-mcp"],
          "env": {
            "LOGSEQ_API_URL": "http://localhost:12315",
            "LOGSEQ_TOKEN": "your-token-here"
          }
        }
      }
    }

또는

  1. MCP 서버를 사용하도록 Claude Code를 구성합니다.

claude mcp add
  • 범위 선택

  • Stdio 선택

  • LOGSEQ_API_URL=http://localhost:12315 LOGSEQ_TOKEN=your-token-here /opt/homebrew/bin/uvx logseq-mcp

커서와 클로드와 함께 사용

커서의 MCP 도구에 추가

  1. 위의 설정 섹션에서 표시된 대로 MCP 서버를 구성하세요.

  2. 커서를 열고 MCP 패널(사이드바)로 이동합니다.

  3. Logseq 도구는 사용 가능한 도구 목록에 나타나야 합니다.

Claude와 함께 사용

Cursor에서 Claude를 사용하는 경우 다음과 유사한 프롬프트를 통해 Logseq 도구를 사용할 수 있음을 알려야 합니다.

"Logseq 그래프와 상호 작용하는 데 도움이 되는 Logseq 도구를 이용하실 수 있습니다. logseq.get_all_pages(), logseq.get_page(name), logseq.create_page(name) 등의 함수를 사용하실 수 있습니다."

사용 가능한 도구

모든 도구는 logseq 네임스페이스에서 사용할 수 있습니다.

페이지

  • logseq.get_all_pages : Logseq 그래프의 모든 페이지 목록을 가져옵니다.

  • logseq.get_page : 이름으로 특정 페이지를 가져옵니다.

  • logseq.create_page : 새 페이지를 만듭니다

  • logseq.delete_page : 페이지와 해당 페이지의 모든 블록을 삭제합니다.

블록

  • logseq.get_page_blocks : 특정 페이지의 모든 블록을 가져옵니다.

  • logseq.get_block : ID로 특정 블록 가져오기

  • logseq.create_block : 페이지에 새 블록을 만듭니다.

  • logseq.insert_block : 블록을 다른 블록의 자식으로 삽입합니다.

  • logseq.update_block : 기존 블록을 업데이트합니다.

  • logseq.move_block : 블록을 다른 위치로 이동합니다.

  • logseq.remove_block : 블록과 그 모든 자식을 제거합니다.

  • logseq.search_blocks : 쿼리와 일치하는 블록을 검색합니다.

Logseq 작업

저널 페이지

Logseq의 저널 페이지에는 특정 형식과 속성이 있습니다.

  1. 저널 페이지를 만들거나 액세스할 때 "mmm dth, yyyy"(예: "2025년 4월 4일") 형식을 사용하세요.

  2. 저널 페이지는 적절한 날짜로 Logseq에 의해 자동으로 포맷됩니다.

  3. 저널 페이지에는 Logseq에서 자동으로 설정되는 특수 속성이 있습니다.

    • journal? : true - 이것이 저널 페이지임을 나타냅니다.

    • journalDay : YYYYMMDD - 숫자 형식의 날짜(예: 2025년 4월 4일의 경우 20250404)

  4. 예: await logseq.create_page("Apr 4th, 2025")

중요: journal? 또는 journalDay 속성을 수동으로 설정할 필요는 없습니다. 적절한 날짜 형식(예: "2025년 4월 4일")으로 페이지를 생성하기만 하면 해당 속성이 적용된 저널 페이지로 자동 설정됩니다.

블록 구조 및 형식

Logseq의 블록에는 이해해야 할 몇 가지 중요한 특성이 있습니다.

  1. 자동 글머리 기호 : 모든 블록은 Logseq UI에서 자동으로 글머리 기호로 렌더링됩니다.

  2. 페이지 링크 : 이중 괄호를 사용하여 링크를 만듭니다: [[Page Name]]

  3. 계층적 블록 :

    • 블록 구조 데이터에는 계층적 정보가 포함되어 있습니다.

      • parent : 부모 블록의 ID

      • level : 들여쓰기 레벨(최상위 레벨의 경우 1, 들여쓰기 블록의 경우 2+)

      • left : 왼쪽 블록(일반적으로 들여쓰기된 블록의 부모)

  4. 블록 콘텐츠 : 블록을 만들 때 텍스트 서식을 포함할 수 있습니다.

    • 기본 마크다운이 지원됩니다(굵게, 기울임꼴 등)

    • 블록 내의 글머리 기호는 지원이 제한될 수 있습니다.

    • 다중 줄 콘텐츠가 지원되지만 Logseq의 구문 분석 규칙이 적용될 수 있습니다.

  5. 저널 블록 : 저널 페이지에서 생성된 블록은 다음과 같은 특수 속성을 상속합니다.

    • journal? : 사실

    • journalDay : YYYYMMDD - 저널 페이지와 동일

참고: 저널 페이지와 마찬가지로 이러한 블록 속성은 Logseq에서 자동으로 처리됩니다. 저널 페이지에 블록을 생성할 때 journal? 또는 journalDay 속성을 수동으로 설정할 필요가 없습니다.

일반적인 작업에 대한 사용 예

Cursor 에이전트 작업: Cursor에 Logseq MCP 도구가 구성된 경우 다음과 같은 프롬프트를 에이전트에 제공할 수 있습니다.

  • "오늘의 일정에 대한 요점을 담은 '회의 메모'라는 새 페이지를 만드세요."

  • "오늘의 작업을 '작업' 섹션이 있는 저널 페이지에 추가"

  • "[[프로젝트 계획]]으로 오늘의 저널 항목을 업데이트하고, 해당 자식 요소를 '완료된 마일스톤 1'로 설정합니다."

  • "내 그래프에서 '파이썬 프로젝트'에 대한 블록을 검색하여 새 페이지에 구성합니다."

에이전트는 적절한 Logseq 도구를 사용하여 그래프에서 이러한 작업을 수행합니다.

Available Tools

13 tools
create_blockA
Creates a new block on a page in the Logseq graph.

Note: Blocks are automatically formatted as bullet points in Logseq UI.
Use [[Page Name]] to create links to other pages.

Args:
    page_name: The name of the page to create the block on.
    content: The content of the new block.
    properties: Optional properties to set on the new block.
    
Returns:
    Information about the created block.
ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
page_nameYes
propertiesNo

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions automatic bullet formatting and link syntax, which are useful behavioral details, but fails to address critical aspects like permissions required, whether creation is idempotent, error conditions, or what 'Information about the created block' entails. For a mutation tool with zero annotation coverage, this leaves significant gaps.

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 well-structured with purpose statement, behavioral note, parameter documentation, and return indication. Each section earns its place, though the 'Returns' statement is vague. The text is appropriately sized for a 3-parameter tool without unnecessary elaboration.

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 a mutation tool with 3 parameters, no annotations, and no output schema, the description is moderately complete. It covers parameter semantics well and includes some behavioral context (formatting, linking), but lacks details about the return value, error handling, and operational constraints. The absence of output schema means the vague 'Information about the created block' leaves the agent uncertain about response structure.

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?

The description explicitly documents all three parameters with clear semantics: 'page_name: The name of the page to create the block on', 'content: The content of the new block', and 'properties: Optional properties to set on the new block'. With 0% schema description coverage, this fully compensates by providing meaning beyond the bare schema types. The optional nature of 'properties' is correctly indicated.

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's purpose with specific verb ('creates') and resource ('new block on a page in the Logseq graph'), and distinguishes it from siblings like 'create_page' by specifying it creates blocks rather than pages. The mention of 'automatically formatted as bullet points' further clarifies the nature of the created resource.

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 provides some implied usage guidance through the note about formatting and link syntax ('Use [[Page Name]] to create links'), but lacks explicit when-to-use guidance versus alternatives like 'insert_block' or 'update_block'. No exclusions or prerequisites are mentioned, leaving the agent to infer appropriate contexts.

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

create_pageA
Creates a new page in the Logseq graph.

For journal pages, use the format "mmm dth, yyyy" (e.g., "Apr 4th, 2025").
Logseq automatically sets "journal?": true and "journalDay": YYYYMMDD.

Args:
    name: The name of the new page.
    properties: Optional properties to set on the new page.
    
Returns:
    Information about the created page.
ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
propertiesNo

TDQS

A4.4/5.0
Behavior3/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 discloses that Logseq automatically sets journal properties, which is useful behavioral context. However, it doesn't mention permissions needed, error conditions, or whether the operation is idempotent. For a creation tool with zero annotation coverage, this leaves gaps in behavioral understanding.

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 well-structured and front-loaded with the core purpose. Each sentence adds value: the first states the action, the second provides journal-specific formatting, the third explains automatic behavior, and the last two clarify parameters and returns. Zero waste.

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 no annotations and no output schema, the description does a good job covering the basics: purpose, journal formatting, parameters, and return info. However, for a creation tool, it could better explain error handling or what 'Information about the created page' includes. It's mostly complete but has minor gaps.

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 description coverage is 0%, so the description must compensate. It explains that 'name' is 'The name of the new page' and 'properties' are 'Optional properties to set on the new page', adding meaningful semantics beyond the bare schema. However, it doesn't detail what properties are valid or provide examples beyond journal formatting.

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 specific action ('Creates a new page') and resource ('in the Logseq graph'), distinguishing it from siblings like create_block (which creates blocks) or delete_page (which removes pages). The verb+resource combination is precise and unambiguous.

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?

The description provides explicit guidance on when to use this tool vs alternatives: it specifies 'For journal pages, use the format "mmm dth, yyyy"' and notes that Logseq automatically handles journal-specific properties. This gives clear context for journal page creation versus regular pages.

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

delete_pageA
Deletes a page from the Logseq graph.

⚠️ This removes the page and all its blocks. Cannot be undone.

Args:
    name: The name of the page to delete.
    
Returns:
    Result of the deletion operation.
ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates critical behavioral traits: that the operation is destructive ('removes the page and all its blocks'), irreversible ('Cannot be undone'), and returns a result. This covers the essential safety and outcome information needed for a destructive operation.

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 efficiently structured with a clear purpose statement, critical warning, and organized parameter/return sections. Every sentence serves a distinct purpose: establishing action, warning about consequences, explaining the parameter, and describing the return value. No wasted 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?

For a destructive tool with no annotations and no output schema, the description provides strong coverage of purpose, behavior, and parameter meaning. The main gap is the lack of detail about what the 'Result of the deletion operation' actually contains, which would be helpful given the absence of an output schema.

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?

With 0% schema description coverage for the single parameter, the description compensates by explaining that 'name' refers to 'The name of the page to delete.' This adds meaningful context beyond the bare schema, clarifying what the parameter represents in the tool's domain.

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 specific action ('Deletes') and target resource ('a page from the Logseq graph'), distinguishing it from sibling tools like remove_block or create_page. It precisely communicates what the tool does without being vague or tautological.

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 about when to use this tool (to delete a page and all its blocks) and includes a warning about irreversibility, which helps guide usage decisions. However, it doesn't explicitly mention when NOT to use it or name specific alternatives among the sibling tools for partial deletions.

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

get_all_pagesB
Gets all pages from the Logseq graph.

Journal pages can be identified by the "journal?" attribute set to true and 
will include a "journalDay" attribute in the format YYYYMMDD.

Returns:
    List of all pages in the Logseq graph.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool returns but lacks critical details: whether it's paginated for large graphs, if it requires specific permissions, potential rate limits, or error conditions. The journal attribute detail is useful but doesn't cover core behavioral traits like performance or access control.

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 well-structured and concise: it opens with the core purpose, adds a clarifying detail about journal pages, and ends with the return value. Each sentence earns its place, and there's no fluff. However, it could be slightly more front-loaded by merging the first and last sentences for immediate clarity.

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 the tool's simplicity (0 parameters, no annotations, no output schema), the description is minimally adequate. It explains what 'pages' are and hints at structure via journal attributes, but lacks output format details (e.g., list structure, fields per page) and behavioral context. For a read-only list operation, this is passable but leaves gaps an agent might need.

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?

The tool has 0 parameters, and schema description coverage is 100% (empty schema). The description appropriately doesn't discuss parameters, focusing instead on output semantics (journal page attributes). This meets the baseline of 4 for zero-parameter tools, as it adds value by explaining what 'pages' include without redundant parameter info.

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 ('Gets') and resource ('all pages from the Logseq graph'), making the purpose unambiguous. It distinguishes itself from siblings like get_page (single page) and get_page_blocks (blocks within a page) by specifying 'all pages'. However, it doesn't explicitly contrast with search_blocks or get_page_linked_references, which serve different but related purposes.

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 doesn't mention prerequisites, performance considerations for large graphs, or when to prefer get_page (for a specific page) or search_blocks (for filtered content). The journal page detail is informational but not a usage guideline.

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

get_blockA
Gets a specific block from the Logseq graph by its ID.

The returned block contains hierarchical structure information:
  - parent: The parent block's ID
  - level: The indentation level
  - left: The block to the left

Args:
    block_id: The ID of the block to retrieve.
    
Returns:
    Information about the requested block, or None if not found.
ParametersJSON Schema
NameRequiredDescriptionDefault
block_idYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool returns hierarchical structure information (parent, level, left) and handles missing blocks by returning None, which adds useful behavioral context beyond just being a read operation. However, it doesn't mention error conditions, performance characteristics, or authentication needs.

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 efficiently structured with a clear purpose statement, bullet points for return details, and labeled Args/Returns sections. Every sentence adds value with no redundant information.

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 read operation with 1 parameter and no output schema, the description is reasonably complete: it explains what the tool does, what parameter it needs, what information it returns, and the not-found case. The main gap is lack of explicit usage guidance versus sibling tools.

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?

With 0% schema description coverage and only 1 parameter, the description compensates well by explaining that 'block_id' is 'The ID of the block to retrieve,' providing clear semantic meaning. It doesn't specify format or constraints, but for a single parameter tool this is adequate.

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 specific action ('Gets a specific block') and resource ('from the Logseq graph by its ID'), distinguishing it from siblings like get_page, get_page_blocks, or search_blocks which operate on different resources or with different scopes.

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 usage by specifying it retrieves a block by ID, but doesn't explicitly state when to use this versus alternatives like get_page_blocks (for all blocks on a page) or search_blocks (for query-based retrieval). No exclusions or prerequisites are mentioned.

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

get_pageA
Gets a specific page from the Logseq graph by name.

For journal pages, use the format "mmm dth, yyyy" (e.g., "Apr 4th, 2025").
Journal pages have specific attributes:
- "journal?": true - Indicates this is a journal page
- "journalDay": YYYYMMDD - The date in numeric format

Args:
    name: The name of the page to retrieve.
    
Returns:
    Information about the requested page, or None if not found.
ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains that the tool returns page information or None if not found, which is useful. However, it lacks details on permissions, error handling, rate limits, or whether this is a read-only operation, which are important for a tool interacting with a graph system.

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 well-structured with a clear purpose statement, usage guidelines, and labeled sections for Args and Returns. It is appropriately sized, but the journal page details could be slightly more concise, and the front-loading is effective with the main action stated first.

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 the complexity of interacting with a graph system, no annotations, and no output schema, the description is moderately complete. It covers the purpose, parameter semantics, and basic return behavior, but lacks details on output structure, error cases, or integration with sibling tools, leaving room for improvement.

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?

The schema description coverage is 0%, so the description must compensate. It adds meaningful context for the 'name' parameter, explaining the specific format for journal pages and their attributes, which goes beyond the basic schema. However, it does not cover other potential nuances like case sensitivity or special characters for non-journal pages.

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 specific action ('Gets a specific page') and resource ('from the Logseq graph by name'), distinguishing it from siblings like get_all_pages (which lists all pages) and get_page_blocks (which retrieves blocks within a page). The verb 'gets' is precise and the scope is well-defined.

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 explicit guidance on when to use this tool for journal pages, specifying the required date format ('mmm dth, yyyy') and attributes. However, it does not mention when NOT to use it or explicitly compare it to alternatives like get_all_pages or get_page_blocks, leaving some context gaps.

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

get_page_blocksA
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 hierarchical structure information:
  - parent: The parent block's ID
  - level: The indentation level (1 for top-level, 2+ for indented)
  - left: The block to the left (typically the parent for indented blocks)

Args:
    page_name: The name of the page to retrieve blocks from.
    
Returns:
    List of blocks from the specified page.
ParametersJSON Schema
NameRequiredDescriptionDefault
page_nameYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds valuable context beyond the basic purpose: it specifies the hierarchical structure information returned (parent, level, left), which helps the agent understand the output format. However, it doesn't mention potential errors (e.g., if the page doesn't exist), rate limits, or authentication needs, leaving some gaps. This earns a 4 for adding significant behavioral details but not being exhaustive.

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 appropriately sized and well-structured: it starts with the core purpose, provides usage guidelines, details the return structure, and lists parameters clearly with 'Args' and 'Returns' sections. Every sentence adds value without redundancy, making it easy to scan and understand quickly.

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 moderate complexity (retrieving structured data), no annotations, no output schema, and low schema coverage, the description does a good job of being complete. It explains the purpose, parameter usage, and return format in detail. However, it lacks information on error handling or performance aspects (e.g., pagination for large pages), which prevents a perfect score. Overall, it's largely sufficient for an agent to use the tool effectively.

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?

The schema description coverage is 0%, so the description must compensate. It adds meaning beyond the input schema by explaining the 'page_name' parameter: 'The name of the page to retrieve blocks from.' and provides a specific format example for journal pages. This clarifies the parameter's purpose and usage, effectively compensating for the lack of schema descriptions. However, it doesn't cover edge cases or validation rules, so it's not a perfect 5.

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 tool's purpose: 'Gets all blocks from a specific page in the Logseq graph.' It specifies the verb ('Gets'), resource ('blocks'), and scope ('from a specific page'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'get_block' or 'search_blocks', which limits the score to 4 instead of 5.

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 provides some usage guidance: 'For journal pages, use the format "mmm dth, yyyy" (e.g., "Apr 4th, 2025").' This implies context for when to use a specific format, but it doesn't explicitly state when to use this tool versus alternatives like 'get_block' (for single blocks) or 'search_blocks' (for filtered searches). The guidance is helpful but incomplete, warranting a score of 3.

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

get_page_linked_referencesA
Gets all linked references to a specific page.

Returns blocks containing [[Page Name]] links to the specified page.

Args:
    page_name: The name of the page to find references to.
    
Returns:
    List of blocks that reference the specified page.
ParametersJSON Schema
NameRequiredDescriptionDefault
page_nameYes

TDQS

A3.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 describes what the tool does (gets references) and the return format (list of blocks), but lacks behavioral details such as whether it requires authentication, how it handles non-existent pages, pagination, rate limits, or error conditions. The description doesn't contradict any annotations since none exist.

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 appropriately sized and front-loaded: the first sentence states the core purpose, the second clarifies the return content, and the Args/Returns sections are concise and necessary. Every sentence earns its place with no redundant information.

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 the tool's moderate complexity (finding references), no annotations, no output schema, and 1 parameter, the description is somewhat complete but has gaps. It explains the purpose, parameter, and return type, but lacks behavioral context (e.g., error handling, performance). The absence of an output schema means the description should ideally detail the return structure more, though it does specify 'List of blocks.'

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?

With 0% schema description coverage (the schema has no descriptions for parameters), the description compensates by explaining the single parameter 'page_name' as 'The name of the page to find references to.' This adds clear meaning beyond the bare schema. However, it doesn't specify format constraints (e.g., case sensitivity, special characters).

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's purpose with specific verb ('Gets') and resource ('all linked references to a specific page'), and distinguishes it from siblings like get_page (which retrieves page content) and get_page_blocks (which retrieves blocks within a page). The second sentence further clarifies what constitutes a 'linked reference' by mentioning 'blocks containing [[Page Name]] links'.

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 implicitly indicates when to use this tool (to find references to a specific page) but does not explicitly state when not to use it or name alternatives. For example, it doesn't clarify if this should be used instead of search_blocks for finding references, though the context suggests this is the specialized tool for that purpose.

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

insert_blockA
Inserts a new block as a child of the specified parent block.

Creates hierarchical content by adding children to existing blocks.
The new block is inserted at the beginning (before=True) or end (before=False)
of the parent's children.

Args:
    parent_block_id: The ID of the parent block to insert under.
    content: The content of the new block.
    properties: Optional properties to set on the new block.
    before: Whether to insert at the beginning of children (default: False).
    
Returns:
    Information about the created block.
ParametersJSON Schema
NameRequiredDescriptionDefault
beforeNo
contentYes
parent_block_idYes
propertiesNo

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses key behavioral traits: the tool creates new content (mutation operation), specifies insertion position logic (beginning vs end), and mentions hierarchical relationships. However, it doesn't cover permissions needed, error conditions, or rate 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?

Perfectly structured with purpose statement, usage context, parameter explanations, and return value note. Every sentence earns its place: first states core function, second explains hierarchical context, third details insertion logic, Args section documents parameters efficiently, Returns section sets expectations.

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 mutation tool with no annotations and no output schema, the description provides good coverage: clear purpose, usage context, parameter semantics, and behavioral aspects like insertion position. The main gap is lack of output details (only mentions 'Information about the created block' without specifics).

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?

With 0% schema description coverage, the description compensates well by explaining all 4 parameters in the Args section. It clarifies parent_block_id's role, content's purpose, properties as optional settings, and before's positional logic with default behavior. This adds substantial meaning beyond the bare 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 specific action ('inserts a new block') and resource ('as a child of the specified parent block'), distinguishing it from sibling tools like create_block (which likely creates standalone blocks) and move_block (which repositions existing blocks). The hierarchical nature is explicitly mentioned.

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 about when to use this tool ('Creates hierarchical content by adding children to existing blocks'), but doesn't explicitly mention when not to use it or name specific alternatives. It implies usage for adding child blocks to existing parents rather than creating standalone blocks.

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

move_blockA
Moves a block to a new location in the graph.

Moves a block and all its children to a different location.
- as_child=True: Block becomes a child of the target
- as_child=False: Block becomes a sibling after the target

Args:
    block_id: The ID of the block to move.
    target_block_id: The ID of the target block to move to.
    as_child: Whether to make the block a child of the target (default: False).
    
Returns:
    Result of the move operation.
ParametersJSON Schema
NameRequiredDescriptionDefault
as_childNo
block_idYes
target_block_idYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but lacks critical behavioral details. It mentions moving 'all its children' and the as_child parameter effects, but doesn't disclose permissions needed, whether the operation is reversible, error conditions, or what 'Result of the move operation' entails. For a mutation tool with zero annotation coverage, this is insufficient.

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 purpose statement, elaboration, parameter details, and return mention. The bullet points for as_child values are efficient. Slightly verbose in repeating 'block' in parameter explanations, but overall earns its place without fluff.

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 mutation tool with 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It explains parameters well but misses behavioral context (permissions, side effects, error handling) and output details. Should provide more guidance given the complexity.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate fully. It provides clear semantic explanations for all three parameters: block_id identifies what to move, target_block_id specifies where, and as_child defines the relationship with detailed boolean interpretations. This adds significant value beyond the bare 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 specific action ('moves a block to a new location') and resource ('block and all its children'), distinguishing it from siblings like insert_block (adds new) or remove_block (deletes). The second sentence elaborates on scope, making the purpose unambiguous.

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?

Usage is implied through parameter explanations (as_child=True/False scenarios), but there's no explicit guidance on when to use this tool versus alternatives like insert_block or update_block for structural changes. The description doesn't mention prerequisites or exclusions.

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

remove_blockA
Removes a block from the Logseq graph.

⚠️ Permanently removes the block and all its children. Cannot be undone.

Args:
    block_id: The ID of the block to remove.
    
Returns:
    Result of the removal operation.
ParametersJSON Schema
NameRequiredDescriptionDefault
block_idYes

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description carries full burden and excels. It discloses critical behavioral traits: the operation is permanent ('Cannot be undone'), destructive ('Permanently removes'), and cascading ('and all its children'). This goes well beyond what a basic 'remove' verb would imply, providing essential safety context.

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 perfectly structured and front-loaded: purpose statement first, critical warning second, then parameter and return documentation. Every sentence earns its place - the warning is essential safety information, and the Args/Returns sections provide necessary documentation without fluff.

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 destructive mutation tool with no annotations and no output schema, the description does an excellent job covering safety implications and parameter meaning. The main gap is the vague return description ('Result of the removal operation') - more specificity about success/failure indicators would have made this a 5, but overall it's highly complete given the context.

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?

With 0% schema description coverage (the schema only shows block_id as a string with no description), the description compensates by explaining what block_id represents ('The ID of the block to remove'). This adds meaningful context beyond the bare schema. It doesn't provide format examples or validation rules, so it's not a perfect 5.

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 specific action ('Removes') and target resource ('a block from the Logseq graph'), distinguishing it from siblings like delete_page (which removes pages) and update_block (which modifies blocks). The verb+resource combination is precise and unambiguous.

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 about when to use this tool (to permanently remove blocks) through the warning about permanent deletion. However, it doesn't explicitly mention when NOT to use it or name specific alternatives like delete_page for removing pages instead of blocks, which would have earned a 5.

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

search_blocksA
Searches for blocks matching a query in the Logseq graph.

Query examples:
- page:"Page Name" - blocks on a specific page
- "search term" - blocks containing the term
- [[Page Name]] - references to a specific page

Args:
    query: The search query.
    
Returns:
    List of blocks matching the search query.
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adequately describes the core behavior (searching for blocks matching a query) and provides helpful query syntax examples, but doesn't address important behavioral aspects like whether results are paginated, sorted, or limited; what happens with no matches; or any performance considerations. The description adds value but leaves gaps in behavioral transparency.

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 perfectly structured and economical. It begins with the core purpose statement, follows with practical query examples in a bulleted format, then clearly documents the single parameter and return value. Every sentence earns its place, with no redundant or unnecessary information. The formatting with clear sections enhances readability.

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 single-parameter search tool with no annotations and no output schema, the description provides excellent coverage of the core functionality, parameter usage, and return type. The query examples are particularly valuable. The main gap is the lack of information about the return format - while it states 'List of blocks matching the search query,' it doesn't specify what fields blocks contain or their structure. Given the tool's relative simplicity, this is a minor omission.

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

Parameters5/5

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

With 0% schema description coverage for the single parameter, the description fully compensates by providing rich semantic information about the 'query' parameter. It not only explains what the parameter is ('The search query') but provides three concrete examples with different syntax patterns, giving the agent practical guidance on how to construct effective queries. This goes well beyond what the bare schema provides.

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 specific action ('searches for blocks matching a query') and resource ('in the Logseq graph'), distinguishing it from sibling tools like get_block, get_page_blocks, or get_page_linked_references which retrieve specific blocks or pages without search functionality. The verb+resource combination is precise and unambiguous.

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 for when to use this tool through query examples that demonstrate different search scenarios, such as finding blocks on a specific page or containing a term. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools, though the examples imply it's for flexible searching rather than direct retrieval.

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

update_blockB
Updates an existing block in the Logseq graph.

Use [[Page Name]] to create links to other pages.

Args:
    block_id: The ID of the block to update.
    content: The new content for the block.
    properties: Optional properties to update on the block.
    
Returns:
    Information about the updated block.
ParametersJSON Schema
NameRequiredDescriptionDefault
block_idYes
contentYes
propertiesNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While it states this is an update operation and mentions link creation syntax, it doesn't describe important behavioral aspects like permission requirements, whether the update overwrites or merges content, error conditions, or what 'Information about the updated block' actually contains. Significant gaps remain for a mutation tool.

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 well-structured with clear sections (purpose, usage tip, args, returns) and reasonably concise. The 'Use [[Page Name]]...' tip is helpful but could be more integrated. Overall efficient with minimal waste.

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 mutation tool with 3 parameters, 0% schema description coverage, and no output schema, the description provides basic parameter semantics and return indication but lacks details on behavioral aspects, error handling, and the actual return format. It's minimally adequate but has clear gaps given the complexity.

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?

The description provides clear parameter explanations beyond the schema (which has 0% description coverage): it defines block_id as 'The ID of the block to update', content as 'The new content for the block', and properties as 'Optional properties to update on the block'. This adds substantial value over the bare schema, though it could elaborate on properties format.

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 'Updates' and resource 'existing block in the Logseq graph', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'insert_block' or 'move_block' beyond the basic operation name.

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 provides some implied usage context by mentioning 'Use [[Page Name]] to create links to other pages' and listing parameters, but doesn't explicitly state when to use this tool versus alternatives like 'insert_block' or 'move_block'. No clear when-not-to-use guidance or prerequisites are provided.

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

TDQS

A4/5.0
Disambiguation5/5

Each tool has a distinct purpose targeting specific resources and actions in the Logseq graph. For example, create_block vs. insert_block clearly differentiate between creating a top-level block and inserting a child block, while get_page_blocks and search_blocks serve different retrieval functions. No tools appear to overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case naming (e.g., create_block, get_page, update_block). The verbs are clear and appropriate (create, get, delete, search, update, move, remove, insert), and the nouns consistently refer to Logseq entities (block, page). There are no deviations in naming conventions.

Tool Count5/5

With 13 tools, this server is well-scoped for managing a Logseq graph, covering core operations without bloat. The count aligns with the domain's complexity, providing comprehensive functionality for pages and blocks (e.g., CRUD operations, hierarchical management, search) without being excessive or insufficient.

Completeness5/5

The tool set offers complete coverage for Logseq graph management, including full CRUD for pages and blocks, hierarchical operations (insert_block, move_block), search capabilities, and reference tracking. There are no obvious gaps; agents can perform all essential workflows from creation to deletion with support for linking and properties.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI agents to interact with a local Logseq instance, allowing operations like creating pages, managing blocks, and searching across a knowledge graph.
    13
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for interacting with Logseq graphs, enabling AI assistants to read, create, and manipulate Logseq content.
    MIT

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

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