SiYuan MCP Server
MCP server for SiYuan Note, enabling AI integration and smart knowledge management with note, block, search, template, export, asset, SQL, and file operations.
README
SiYuan MCP Server
一个为思源笔记(SiYuan)设计的 Model Context Protocol (MCP) 服务器,提供完整的 AI 集成和智能知识管理功能。
🌟 核心特性
笔记管理
- 笔记本操作: 创建、列表、打开、关闭、重命名、删除笔记本
- 文档管理: 创建、读取、更新、删除文档,支持批量操作
- 块操作: 创建、读取、更新、删除笔记块,支持批量操作
- 块属性: 设置和获取块属性,支持自定义属性管理
搜索功能
- 简单搜索: 快速关键词搜索
- 递归搜索: 深度内容挖掘,支持层级遍历
- 文档内搜索: 在指定文档中精确查找
- 批量读取: 高效批量读取多个文档
模板与渲染
- 模板渲染: 支持标准模板语法
- Sprig模板: 支持Sprig函数库的高级模板功能
- 动态内容: 基于模板生成格式化内容
导出功能
- Markdown导出: 导出为标准Markdown格式
- 多格式导出: 支持PDF、Word、HTML等多种格式
- 树状结构导出: 保留文档层级关系的JSON导出
资源管理
- 文件上传: 上传图片、文档等资源文件
- 资源列表: 列出文档中的所有资源
- 资源重命名: 重命名资源文件
- OCR识别: 图片文字识别功能
数据操作
- SQL查询: 执行SQL查询,支持复杂的数据检索
- 文件操作: 读取、写入、删除文件
- 文件列表: 列出目录中的文件
系统工具
- 时间获取: 获取当前真实时间,支持多种格式和时区
- 健康检查: 系统健康状态监控
- 端口发现: 自动发现思源笔记可用端口
AI 智能集成
- 智能工具选择: AI驱动的工具推荐和选择
- 使用场景指导: 详细的工具使用场景和示例
- 性能优化建议: 基于使用模式的优化建议
- 错误处理: 标准化的错误处理和重试机制
性能优化
- 缓存机制: 智能缓存提升响应速度
- 批量处理: 高效的批量数据操作
- 性能监控: 实时性能指标和统计
- 并发控制: 合理的并发请求管理
🚀 快速开始
1. 安装思源笔记
- 下载安装包:https://github.com/siyuan-note/siyuan/releases
- 启动思源笔记
2. 配置思源笔记
- 启动思源笔记
- 设置 → 关于 → API token
- 复制API Token
3. 安装 MCP Server
从 npm 安装
npm install -g siyuan-mcp-server
从源码安装
git clone https://github.com/your-username/siyuan-mcp-server.git
cd siyuan-mcp-server
npm install
npm run build
npm link
4. 配置 MCP
在您的 MCP 客户端配置文件中添加:
{
"mcpServers": {
"siyuan": {
"command": "npx",
"args": ["siyuan-mcp-server"],
"env": {
"SIYUAN_API_TOKEN": "your-api-token"
}
}
}
}
注意:
SIYUAN_API_URL是可选的,如果不配置,系统会自动发现思源笔记的可用端口- 如果需要指定端口,可以添加
"SIYUAN_API_URL": "http://127.0.0.1:6806"
5. 环境变量
SIYUAN_API_TOKEN: 思源笔记 API Token(必需)SIYUAN_API_URL: 思源笔记 API 地址(可选,默认自动发现可用端口)
端口自动发现:
- 系统会自动扫描思源笔记的常用端口(6806, 6807, 6808)
- 如果思源笔记正在运行,系统会自动连接到正确的端口
- 如果自动发现失败,会尝试使用默认端口 6806
- 如需指定端口,可手动设置
SIYUAN_API_URL环境变量
🛠️ 技术栈
- 运行时: Node.js 18+
- 语言: TypeScript
- 协议: Model Context Protocol (MCP)
- HTTP客户端: Axios
- 构建工具: TypeScript Compiler
📡 MCP 工具列表
📚 笔记本操作 (Notebook)
list_notebooks- 列出所有笔记本open_notebook- 打开笔记本close_notebook- 关闭笔记本rename_notebook- 重命名笔记本remove_notebook- 删除笔记本
📄 文档操作 (Document)
create_document- 创建新文档get_document- 获取文档内容update_document- 更新文档delete_document- 删除文档list_documents- 列出文档batch_read_all- 批量读取所有文档
🧱 块操作 (Block)
create_block- 创建块get_block- 获取块update_block- 更新块delete_block- 删除块prepend_block- 在块前插入append_block- 在块后追加fold_block- 折叠块unfold_block- 展开块transfer_block_ref- 转移块引用set_block_attrs- 设置块属性get_block_attrs- 获取块属性batch_create_blocks- 批量创建块batch_update_blocks- 批量更新块batch_delete_blocks- 批量删除块
🔍 搜索操作 (Search)
simple_search- 简单搜索recursive_search- 递归搜索search_in_document- 在文档中搜索
🎨 模板操作 (Template)
render_template- 渲染模板render_sprig_template- 渲染Sprig模板
📤 导出操作 (Export)
export_markdown- 导出为Markdownexport_file- 导出为指定格式export_expand- 导出为树状结构
🖼️ 资源操作 (Assets)
upload_asset- 上传资源文件list_assets- 列出资源文件rename_asset- 重命名资源文件ocr_asset- OCR识别图片
💾 SQL查询 (SQL)
query_sql- 执行SQL查询
📁 文件操作 (File)
read_file- 读取文件write_file- 写入文件delete_file- 删除文件list_files- 列出文件
⏰ 系统操作 (System)
get_current_time- 获取当前真实时间
📖 使用示例
创建文档
// 创建新文档
await toolRegistry.execute('create_document', {
notebook: 'notebook-id',
path: '/path/to/document',
title: '文档标题',
content: '文档内容'
});
搜索内容
// 递归搜索
await toolRegistry.execute('recursive_search', {
query: '关键词',
notebook: 'notebook-id',
maxDepth: 5
});
批量操作
// 批量创建块
await toolRegistry.execute('batch_create_blocks', {
requests: [
{ content: '第一个块' },
{ content: '第二个块' }
]
});
获取时间
// 获取当前时间
await toolRegistry.execute('get_current_time', {
format: 'iso',
timezone: 'Asia/Shanghai'
});
导出文档
// 导出为Markdown
await toolRegistry.execute('export_markdown', {
id: 'document-id'
});
🔧 开发
构建项目
npm run build
运行测试
npm test
代码检查
npm run lint
类型检查
npm run typecheck
🤝 贡献指南
欢迎贡献代码、报告问题或提出改进建议!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
📄 许可证
MIT License - 详见 LICENSE 文件
🙏 致谢
感谢思源笔记团队提供优秀的笔记软件和 API 支持。
📮 联系方式
- 问题反馈: GitHub Issues
- 功能建议: GitHub Discussions
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。