
SiYuan Note MCP Server

2025.04.04
0
TypeScript笔记管理文档操作内容块控制文件和资源管理SQL 查询支持属性管理导出和转换系统功能开发效率
SiYuan Note MCP Server 是一个与思源笔记系统集成的 MCP 服务器实现,旨在使 AI 模型能够访问和操作笔记数据。它提供了丰富的功能,包括笔记本管理、文档操作、内容块控制、文件和资源管理、SQL 查询支持等,适用于需要自动化或增强思源笔记功能的场景。
View on GitHub
Overview
基本能力
产品定位
SiYuan Note MCP Server 是一个与思源笔记系统集成的 MCP 服务器实现,旨在使 AI 模型能够访问和操作笔记数据。
核心功能
- 笔记本管理
- 文档操作
- 内容块控制
- 文件和资源管理
- SQL 查询支持
- 属性管理
- 导出和转换
- 系统功能
适用场景
- 自动化笔记管理
- AI 辅助笔记生成和编辑
- 批量处理笔记数据
- 集成思源笔记到其他系统
工具列表
- 资源管理:
assets.uploadAssets
- 上传资源文件 - 属性管理:
attr.setBlockAttrs
,attr.getBlockAttrs
- 设置和获取块属性 - 内容块操作:
block.insertBlock
,block.updateBlock
,block.deleteBlock
,block.moveBlock
,block.getBlockKramdown
- 插入、更新、删除、移动和获取块的 Markdown 内容 - 格式转换:
convert.pandoc
- 使用 Pandoc 转换内容 - 导出功能:
export.exportNotebook
,export.exportDoc
- 导出笔记本和文档 - 文件操作:
file.getFile
,file.putFile
,file.removeFile
,file.readDir
- 获取、写入、删除文件和读取目录内容 - 文档树操作:
filetree.createDocWithMd
,filetree.renameDoc
,filetree.removeDoc
,filetree.moveDocs
,filetree.getHPathByPath
,filetree.getHPathByID
- 创建、重命名、删除、移动文档和获取文档路径 - 网络代理:
network.forwardProxy
- 网络请求代理 - 笔记本管理:
notebook.lsNotebooks
,notebook.openNotebook
,notebook.closeNotebook
,notebook.renameNotebook
,notebook.createNotebook
,notebook.removeNotebook
,notebook.getNotebookConf
,notebook.setNotebookConf
- 列出、打开、关闭、重命名、创建、删除笔记本和获取/设置笔记本配置 - 通知提醒:
notification.pushMsg
,notification.pushErrMsg
- 发送消息和错误通知 - 查询功能:
query.sql
,query.block
- 执行 SQL 查询和通过 ID 查询块 - 搜索功能:
search.fullTextSearch
- 全文搜索 - SQL 查询:
sql.sql
- 执行 SQL 查询 - 系统功能:
system.getBootProgress
,system.getVersion
,system.getCurrentTime
- 获取启动进度、系统版本和当前时间 - 模板功能:
template.renderTemplate
,template.renderSprig
- 渲染模板和 Sprig 模板
常见问题解答
- 如何获取思源笔记 API 令牌? 在思源笔记设置 - 关于中查看。
- 如何配置环境变量?
需要设置
SIYUAN_TOKEN
环境变量,用于 API 认证。
使用教程
使用依赖
- Node.js >= 23.10.0
- pnpm
安装教程
- 安装依赖:
pnpm install
- 设置环境变量:
# Windows
set SIYUAN_TOKEN=your-siyuan-token
# Linux/macOS
export SIYUAN_TOKEN=your-siyuan-token
- 启动服务:
pnpm start
Docker 运行
docker run --rm -i \
-e SIYUAN_TOKEN=your-siyuan-token \
mcp/siyuan
调试方式
- 使用
help
命令查询详细说明:
{
"type": "help",
"params": {
"type": "block.insertBlock"
}
}