Skip to main content
Glama
blueblueeyes

siyuan-mcp-server

by blueblueeyes

SiYuan Note MCP Server

一个 MCP 服务器实现,提供与思源笔记系统的集成,使 AI 模型能够访问和操作笔记数据。

An MCP server implementation that provides integration with the SiYuan Note system, enabling AI models to access and manipulate note data.

功能特性 | Features

  • 笔记本管理 | Notebook Management

  • 文档操作 | Document Operations

  • 内容块控制 | Block Control

  • 文件和资源管理 | File and Asset Management

  • SQL 查询支持 | SQL Query Support

  • 属性管理 | Attribute Management

  • 导出和转换 | Export and Conversion

  • 系统功能 | System Functions

Related MCP server: SiYuan Note MCP Server

命令列表 | Command List

所有命令都支持使用 help 查询获取详细说明。例如:

All commands support detailed documentation via the help command. For example:

{
  "type": "help",
  "params": {
    "type": "block.insertBlock"
  }
}

资源管理 | Asset Management

  • assets.uploadAssets - 上传资源文件 | Upload assets

属性管理 | Attribute Management

  • attr.setBlockAttrs - 设置块属性 | Set block attributes

  • attr.getBlockAttrs - 获取块属性 | Get block attributes

内容块操作 | Block Operations

  • block.insertBlock - 插入内容块 | Insert a block

  • block.updateBlock - 更新内容块 | Update block content

  • block.deleteBlock - 删除内容块 | Delete a block

  • block.moveBlock - 移动内容块 | Move a block

  • block.getBlockKramdown - 获取块的 Markdown 内容 | Get block Kramdown content

格式转换 | Format Conversion

  • convert.pandoc - 使用 Pandoc 转换内容 | Convert content using Pandoc

导出功能 | Export Functions

  • export.exportNotebook - 导出笔记本 | Export notebook

  • export.exportDoc - 导出文档 | Export document

文件操作 | File Operations

  • file.getFile - 获取文件内容 | Get file content

  • file.putFile - 写入文件内容 | Put file content

  • file.removeFile - 删除文件 | Remove file

  • file.readDir - 读取目录内容 | List files in directory

文档树操作 | File Tree Operations

  • filetree.createDocWithMd - 使用 Markdown 创建文档 | Create document with Markdown

  • filetree.renameDoc - 重命名文档 | Rename document

  • filetree.removeDoc - 删除文档 | Remove document

  • filetree.moveDocs - 移动文档 | Move documents

  • filetree.getHPathByPath - 获取文档可读路径 | Get document HPath by path

  • filetree.getHPathByID - 通过 ID 获取文档可读路径 | Get document HPath by ID

网络代理 | Network Proxy

  • network.forwardProxy - 网络请求代理 | Forward proxy request

笔记本管理 | Notebook Management

  • notebook.lsNotebooks - 列出所有笔记本 | List all notebooks

  • notebook.openNotebook - 打开笔记本 | Open notebook

  • notebook.closeNotebook - 关闭笔记本 | Close notebook

  • notebook.renameNotebook - 重命名笔记本 | Rename notebook

  • notebook.createNotebook - 创建笔记本 | Create notebook

  • notebook.removeNotebook - 删除笔记本 | Remove notebook

  • notebook.getNotebookConf - 获取笔记本配置 | Get notebook configuration

  • notebook.setNotebookConf - 设置笔记本配置 | Set notebook configuration

通知提醒 | Notifications

  • notification.pushMsg - 发送消息通知 | Push message notification

  • notification.pushErrMsg - 发送错误通知 | Push error message notification

查询功能 | Query Functions

  • query.sql - 执行 SQL 查询 | Execute SQL query

  • query.block - 通过 ID 查询块 | Query block by ID

搜索功能 | Search Functions

  • search.fullTextSearch - 全文搜索 | Full text search

SQL 查询 | SQL Query

  • sql.sql - 执行 SQL 查询 | Execute SQL query

系统功能 | System Functions

  • system.getBootProgress - 获取启动进度 | Get boot progress

  • system.getVersion - 获取系统版本 | Get system version

  • system.getCurrentTime - 获取当前时间 | Get current time

模板功能 | Template Functions

  • template.renderTemplate - 渲染模板 | Render template

  • template.renderSprig - 渲染 Sprig 模板 | Render Sprig template

使用说明 | Usage

环境变量配置 | Environment Variables

服务器需要配置以下环境变量: The server requires the following environment variables:

  • SIYUAN_TOKEN - 思源笔记 API 令牌(必需)| SiYuan Note API token (required)

    • 在思源笔记设置 - 关于 中查看 | Check in SiYuan Note Settings - About

    • 用于 API 认证 | Used for API authentication

在 Claude Desktop 中使用 | Using in Claude Desktop

将以下配置添加到 claude_desktop_config.json: Add the following configuration to claude_desktop_config.json:

{
  "mcpServers": {
    "siyuan": {
      "command": "npx",
      "args": [
        "-y",
        "@onigeya/siyuan-mcp-server"
      ],
      "env": {
        "SIYUAN_TOKEN": "your-siyuan-token"
      }
    }
  }
}

本地运行 | Local Run

  1. 安装依赖 | Install dependencies:

pnpm install
  1. 设置环境变量 | Set environment variables:

# Windows
set SIYUAN_TOKEN=your-siyuan-token

# Linux/macOS
export SIYUAN_TOKEN=your-siyuan-token
  1. 启动服务 | Start service:

pnpm start

Docker 运行 | Docker Run

docker run --rm -i \
  -e SIYUAN_TOKEN=your-siyuan-token \
  mcp/siyuan

构建 | Build

环境要求 | Requirements

  • Node.js >= 23.10.0

  • pnpm

本地构建 | Local Build

pnpm build

Docker 构建 | Docker Build

docker build -t mcp/siyuan .

许可证 | License

本项目基于 ISC 许可证发布。这意味着你可以自由使用、修改和分发本软件,但需要遵守 ISC 许可证的条款和条件。详细信息请参见项目仓库中的 LICENSE 文件。

This project is released under the ISC License. This means you can freely use, modify, and distribute this software, subject to the terms and conditions of the ISC License. For detailed information, please refer to the LICENSE file in the project repository.

Available Tools

3 tools
executeCommandC

执行指定的命令

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes命令类型
paramsNo命令参数

TDQS

C2.3/5.0
Behavior1/5

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

No annotations are provided, and the description only repeats the tool's function without disclosing any behavioral traits (e.g., destructive potential, permissions, side effects). This is insufficient for an execution tool.

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

Conciseness3/5

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

Single sentence is concise but under-specified. It earns its place minimally but lacks useful detail.

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 no output schema, no annotations, and two parameters that are not elaborated, the description is incomplete. It fails to cover expected behavior, command types, or example usage.

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% and descriptions exist, so baseline is 3. Description does not add additional meaning beyond schema or clarify expected values for 'type' or structure of 'params'.

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

Purpose3/5

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

Description states it executes a command, which is clear but vague. It does not differentiate from siblings like 'help' or 'queryCommands', nor specify scope or command types.

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. No prerequisites or context provided.

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

helpB

获取命令的帮助信息

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes命令类型

TDQS

B3.1/5.0
Behavior2/5

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

The description merely restates the purpose without disclosing behavioral traits such as return format, documentation scope, or any constraints. No annotations are provided to compensate.

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, concise sentence with 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?

Given the simplicity (1 param, no output schema), the description is adequate but lacks any detail about the help content, format, or scope.

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 a parameter description for 'type'. The tool description adds context that the parameter refers to a command for which help is sought, meeting the baseline expectation.

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 'get help information for commands' clearly states the verb and resource. It implicitly distinguishes from siblings executeCommand (execution) and queryCommands (querying) by focusing on help retrieval.

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. It does not specify conditions, prerequisites, or exclusions.

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

queryCommandsC

查询可用的命令列表

ParametersJSON Schema
NameRequiredDescriptionDefault
namespaceNo命令命名空间过滤
typeNo命令名称过滤

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description adds no behavioral details beyond 'query'. It does not disclose if the operation is read-only, requires permissions, or any side effects. Minimal transparency.

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, concise sentence. It is front-loaded and efficient, but lacks detail that could be added without significant verbosity.

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 no output schema and no annotations, the description should provide more context about return format, pagination, or behavior. It is incomplete for a listing tool.

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 the input schema already documents the two optional parameters (namespace, type). The description adds no additional meaning beyond the schema, meeting the baseline.

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 queries a list of available commands. It distinguishes from siblings (executeCommand, help) by indicating a listing function, but does not explicitly differentiate.

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 usage guidelines provided. The description does not specify when to use this tool versus alternatives (e.g., help or executeCommand), nor any prerequisites or context.

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

TDQS

B3.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: executeCommand runs a command, help provides help for a specific command, and queryCommands lists available commands. No ambiguity.

Naming Consistency4/5

Two tools follow a verb_noun pattern (executeCommand, queryCommands), but 'help' is a single word that deviates slightly. The inconsistency is minor and does not cause confusion.

Tool Count5/5

With only 3 tools, the surface is tightly scoped for a command execution helper. Each tool is essential and contributes to the core functionality.

Completeness5/5

The set covers the essential operations: listing available commands, executing them, and getting help. There are no obvious gaps for the intended purpose of a command execution interface.

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
    Not graded
    quality
    D
    maintenance
    Enables interaction with SiYuan Note through its API for comprehensive note management. Supports searching, creating, editing documents, managing notebooks, and daily notes operations through natural language commands.
    41
    15
    Apache 2.0
  • A
    license
    C
    quality
    A
    maintenance
    Enables AI assistants to interact with SiYuan Note for comprehensive notebook management, document editing, and block-level content operations. It supports advanced features like full-text search and SQL queries via secure API integration.
    3
    46
    40
    ISC
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to create, read, update, and manage SiYuan notes, supporting notebook management, document operations, block editing, database attribute views, search, file operations, and export.
    11
    17
    1
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Enables AI assistants to interact with SiYuan Note through its API, supporting notebook and document management, block operations, search, file operations, and more.
    69
    105
    71
    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/blueblueeyes/siyuan-mcp-server'

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