Token导航 LogoToken导航

MCP Server · 文档知识

Siyuan MCP

为思源笔记提供模型上下文协议(MCP)支持,实现AI助手与笔记的无缝交互。

stdio官方级别未说明来源级核验工具 0@porkll/siyuan-mcp
知识管理自动化TypeScriptClaudeJavaScriptClaude DesktopCursor

快速开始

作者 / 组织
porkll
提供方
porkll
运行时
Node.js

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

6

仓库热度

收录来源

1 个

MCP World

选型结论

Siyuan MCP 属于文档知识类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude、Cursor,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

文档知识

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

npx @porkll/siyuan-mcp

客户端配置示例

{
  "mcpServers": {
    "siyuan-mcp": {
      "command": "npx",
      "args": [
        "@porkll/siyuan-mcp"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

思源MCP服务器

中文文档 |英语

SiYuan Note的模型上下文协议(MCP)服务器,使Claude、Cursor和其他MCP兼容工具等AI助手能够与您的SiYuan笔记无缝交互。

⚠️ Important Notice | 重要声明

英语:

这个项目中的代码主要是在人工智能的帮助下开发的。虽然已经进行了功能测试,但全面的代码审查尚未完成。在使用本项目之前,请注意并接受以下内容:

  • 代码可能包含未发现的问题或潜在风险
  • 使用前进行必要的代码审查和测试
  • 用户承担因使用本项目而产生的所有风险和责任
  • 建议在生产使用前进行彻底验证

请谨慎使用,并自行承担风险。

______________________________________________________________________

中文:

本项目代码主要由 AI 辅助开发,仅进行了功能性测试,未对所有代码进行完整审查。使用本项目前,请充分了解并接受以下内容:

  • 代码可能存在未发现的问题或潜在风险
  • 请在使用前进行必要的代码审查和测试
  • 使用者需自行承担使用本项目所产生的风险和责任
  • 建议在生产环境使用前进行充分的验证

请谨慎使用,并对自己的选择负责。

✨ 特性

  • 🚀 完整的MCP(模型上下文协议)实现
  • 📝 全面操作思源纸币的15个基本工具
  • 🔍 统一搜索(内容、文件名、标签和组合)
  • 📁 文档管理(创建、读取、更新、移动、树)
  • 📅 每日笔记支持自动创建
  • 📚 笔记本操作
  • 📸 快照管理(备份和恢复)
  • 🏷️ 标签管理(列表、替换)
  • 💻 用TypeScript编写,具有完整的类型定义
  • 🌐 适用于Claude Desktop、Cursor和任何兼容MCP的客户端

📦 安装

选项1:从源代码安装(推荐)

# Clone the repository
git clone https://github.com/porkll/siyuan-mcp.git
cd siyuan-mcp

# Install dependencies
npm install

# Build the project
npm run build

# Install globally
npm install -g .

选项2:从npm安装

# Install globally
npm install -g @porkll/siyuan-mcp

# Or use npx (no installation needed)
npx @porkll/siyuan-mcp

全局安装后 siyuan-mcp 命令将在全球范围内可用。

🔧 配置

先决条件

  1. 获取您的思源API代币:

- 打开思源纸币 - 转到“设置”→ 关于→ API代币 - 复制令牌

  1. 确保思源正在运行:

- 默认URL: http://127.0.0.1:6806 - 如果使用其他端口,请调整 baseUrl 相应地

配置光标

在以下位置编辑MCP配置文件 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "siyuan-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@porkll/siyuan-mcp",
        "stdio",
        "--token",
        "YOUR_API_TOKEN_HERE",
        "--baseUrl",
        "http://127.0.0.1:6806"
      ]
    }
  }
}

备注:如果全局安装,则可以使用 "command": "siyuan-mcp" 而不是 "command": "npx".

为Claude桌面配置

在以下位置编辑配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "siyuan-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@porkll/siyuan-mcp",
        "stdio",
        "--token",
        "YOUR_API_TOKEN_HERE",
        "--baseUrl",
        "http://127.0.0.1:6806"
      ]
    }
  }
}

备注:如果全局安装,则可以使用 "command": "siyuan-mcp" 而不是 "command": "npx".

验证安装

配置后,重新启动MCP客户端(Cursor/Claude Desktop)并尝试:

  • “列出我所有的思源笔记本”
  • 搜索包含“项目计划”的文档
  • “在我的工作笔记本中创建新的会议笔记”
  • “显示最近修改的5个文档”

🛠️ 可用的MCP工具

配置后,您可以通过自然语言与思源进行交互。服务器提供15个基本工具:

🔍 搜索

  • 统一搜索 -统一搜索工具:按内容、文件名、标签或任何组合进行搜索

📄 文档操作

  • get_document_content -获取文档的降价内容
  • 创建_文档 -创建新文档
  • 附录_文档 -将内容附加到现有文档
  • update_document -更新(覆盖)文档内容
  • move_文档 -将一个或多个文档移动到新位置
  • get_document_tree -获取具有指定深度的文档树结构

📅 每日笔记

  • append_to_daily_note -添加到今天的每日笔记中(如果需要,会自动创建)

📚 笔记本管理

  • list_notebooks -列出所有笔记本
  • 获取最近更新的文档 -获取最近更新的文档

📸 快照管理

  • create_snapshot -创建数据快照进行备份
  • list_snapshots -列出可用快照
  • rollback_to_snapshot -回滚到特定快照

🏷️ 标签管理

  • list_all_tags -列出工作区中的所有唯一标签

- 支持按前缀过滤(prefix 参数) - 支持深度限制(depth 参数,从1开始,标签之间用 /)

  • batch_replace_tag -批量替换或删除所有文档中的标签

使用示例

自然地问你的AI助手:

"List all my SiYuan notebooks"
"Search for documents about machine learning"
"Create a new document called 'Project Ideas' in my Work notebook"
"Show me the 10 most recently modified documents"
"Append 'Meeting notes: discussed Q4 goals' to today's daily note"
"Create a snapshot before I make major changes"
"What's the tree structure of my 'Projects' notebook?"
"Move document X to the root of my Work notebook"
"Move documents X and Y under document Z"

📖 刀具参数参考

move_文档

将一个或多个文档移动到新位置。

参数:

  • from_ids (字符串\[\])- 必需要移动的文档ID数组

- 对于单个文档,使用一个包含一个元素的数组: ["20210101000000-abc1234"] - 对于多个文档: ["20210101000000-abc1234", "20210102000000-def5678"]

  • to_parent_id (字符串)- 选项1:目标父文档ID。文档将作为子文档移动到此文档下。不能与一起使用 to_notebook_root.
  • to_notebook_root (字符串)- 选项2:目标笔记本ID。文档将被移动到此笔记本的根目录(顶层)。不能与一起使用 to_parent_id.

重要提示: 您必须提供一个目的地: to_parent_id 或 to_notebook_root.

示例:

// Move single document to notebook root
{
  from_ids: ["20210101000000-abc1234"],
  to_notebook_root: "20210101000000-notebook1"
}

// Move multiple documents under another document
{
  from_ids: ["20210101000000-abc1234", "20210102000000-def5678"],
  to_parent_id: "20210103000000-parent99"
}

batch_replace_tag

批量替换所有文档中出现的所有标记。

参数:

  • old_tag (字符串)- 必需.要替换的标签名称(不带#符号)
  • new_tag (字符串)- 必需.新标记名称(不带#符号,使用空字符串删除)

示例:

// Replace tag
{
  old_tag: "project",
  new_tag: "work-project"
}

// Remove tag
{
  old_tag: "deprecated",
  new_tag: ""
}

🔧 高级:用作TypeScript库

虽然主要设计为MCP服务器,但您也可以在自己的项目中将此包用作TypeScript库:

import { createSiyuanTools } from '@porkll/siyuan-mcp';

// Create an instance
const siyuan = createSiyuanTools('http://127.0.0.1:6806', 'your-token');

// Search operations
const files = await siyuan.searchByFileName('keyword', 10);
const blocks = await siyuan.searchByContent('content', 20);

// Document operations
const content = await siyuan.getFileContent(documentId);
await siyuan.createFile('notebookId', '/path/to/doc', '# Title\n\nContent');
await siyuan.appendToFile(documentId, 'New content');
await siyuan.overwriteFile(documentId, 'Replaced content');

// Daily note
await siyuan.appendToDailyNote('notebookId', 'Today I learned...');

// Notebook operations
const notebooks = await siyuan.listNotebooks();

// SQL queries
const results = await siyuan.search.query(`
  SELECT * FROM blocks 
  WHERE type='d' AND content LIKE '%keyword%'
  ORDER BY updated DESC
  LIMIT 10
`);

// Direct API access
await siyuan.block.insertBlockAfter(blockId, 'New block content');
await siyuan.document.moveDocument(['doc1', 'doc2'], 'targetNotebookId');
const tree = await siyuan.document.getDocTree('notebookId', 2);

类型定义

包含完整的TypeScript类型:

import type {
  SiyuanConfig,
  SiyuanApiResponse,
  Block,
  Notebook,
  NotebookConf,
  DocTreeNode,
  SearchOptions
} from '@porkll/siyuan-mcp';

💻 发展

设置

# Clone and install
git clone https://github.com/porkll/siyuan-mcp.git
cd siyuan-mcp
npm install

# Build
npm run build

# Watch mode (auto-rebuild)
npm run watch

# Lint
npm run lint

# Format
npm run format

手动测试

# Start stdio server manually
npm run mcp:stdio -- --token YOUR_TOKEN --baseUrl http://127.0.0.1:6806

# Start HTTP server (for web clients)
npm run mcp:http -- --token YOUR_TOKEN --port 3000 --baseUrl http://127.0.0.1:6806

🏗️ 建筑

siyuan-mcp/
├── src/                    # Core TypeScript library
│   ├── api/               # SiYuan API clients
│   ├── types/             # Type definitions
│   └── utils/             # Helper utilities
├── mcp-server/            # MCP server implementation
│   ├── bin/               # CLI entry points
│   ├── core/              # MCP server core
│   ├── handlers/          # Tool handlers
│   └── transports/        # Stdio/HTTP transports
└── dist/                  # Compiled JavaScript

🔧 技术栈

  • 语言:TypeScript 5.3+
  • 运行时:Node.js 18+
  • 模块系统:ES模块
  • MCP-SDK:@modelcontextprotocol/sdk
  • 协议:MCP(模型上下文协议)

❓ 常见问题解答

如何获取我的思源API代币?

  1. 打开思源纸币
  2. 转到“设置”→ 关于→ API代币
  3. 复制令牌

如何找到我的笔记本ID?

问你的MCP客户:“列出我所有的思源笔记本”,它会显示ID。

或者以编程方式:

const notebooks = await siyuan.listNotebooks();
console.log(notebooks.map(nb => `${nb.name}: ${nb.id}`));

服务器不工作,我应该检查什么?

  1. 思源在跑步吗?(默认值:http://127.0.0.1:6806)
  2. 您的API令牌正确吗?
  3. 配置后是否重新启动了MCP客户端?
  4. 检查MCP客户端中的日志

我可以使用其他思源端口吗?

对!只需更新 baseUrl 参数:

"--baseUrl", "http://127.0.0.1:YOUR_PORT"

这适用于远程思源实例吗?

对!点 baseUrl 到您的远程实例:

"--baseUrl", "http://your-server.com:6806"

🤝 贡献

欢迎投稿!请随时提交问题和拉取请求。

📄 许可证

阿帕奇-2.0

🔗 相关项目

🙏 致谢

该项目主要在人工智能的帮助下开发,并建立在优秀的 思源纸币 项目。

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

笔记管理TypeScript本地部署AI集成协议服务器知识管理自动化工具

支持客户端

Claude DesktopClaudeCursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

读长文档提问

把 PDF、Markdown 和笔记交给模型,按章节追问细节。

整理知识库

把零散资料归档、打标签,检索时更容易命中。

批量出摘要

提取要点,输出能直接引用的段落。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude、Cursor,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Node.js,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在文档知识场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Siyuan MCP

MCP World · 本页

0stdio有1 个2026-05-17
Cherry Studio

MCP World

0未说明未标注1 个2026-05-17
Pdf Math Translate

MCP World

0stdio有1 个2026-05-17
report generation

MCP World

0stdio有1 个2026-05-17
Anything To Notebooklm

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Siyuan MCP 怎么安装?

公开资料给出的安装命令是 npx @porkll/siyuan-mcp,运行环境为 Node.js。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Siyuan MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Node.js;保存后完全退出客户端再打开,配置才会生效。

Siyuan MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Siyuan MCP 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Siyuan MCP 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude、Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP