一键导入
siyuan-skill
OpenClaw workflows for SiYuan Note via the siyuan MCP server (mcporter).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
OpenClaw workflows for SiYuan Note via the siyuan MCP server (mcporter).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | siyuan-skill |
| description | OpenClaw workflows for SiYuan Note via the siyuan MCP server (mcporter). |
| homepage | https://github.com/PurpleLiu/siyuan-mcp |
| metadata | {"openclaw":{"emoji":"📔","requires":{"env":["SIYUAN_TOKEN","SIYUAN_BASE_URL"]},"primaryEnv":"SIYUAN_TOKEN"}} |
本 Skill 的目標是把「思源筆記 MCP tools」組織成穩定、可重複使用的工作流(workflow)。
原則:MCP 與 Skill 分離(最小耦合)。Skill 不描述 MCP 內部實作,只描述「怎麼用」。
export SIYUAN_TOKEN="your_token_here"
export SIYUAN_BASE_URL="http://127.0.0.1:6806"
siyuan 的 MCP server:mcporter config add siyuan \
--command "siyuan-mcp stdio --token $SIYUAN_TOKEN --baseUrl $SIYUAN_BASE_URL"
mcporter call siyuan.<tool_name> key=value
列出工具與參數:
mcporter list siyuan --all-parameters
Daily Note20260205161632-m9mibni- [ ] ...- [x] ...適用:你說「幫我記一下…」「快速記錄…」「備忘…」
工具鏈:append_to_daily_note
mcporter call siyuan.append_to_daily_note \
notebook_id="20260205161632-m9mibni" \
content="- 2026-02-05 16:30 這是一則快速記錄"
適用:你說「提醒我…」「TODO…」「待辦…」
工具鏈:append_to_daily_note
mcporter call siyuan.append_to_daily_note \
notebook_id="20260205161632-m9mibni" \
content="- [ ] 明天買電池"
適用:你說「我有哪些還沒做完?」「列出未完成待辦」
工具鏈:list_daily_note_todos
mcporter call siyuan.list_daily_note_todos \
notebook_id="20260205161632-m9mibni" \
days=7
預期回傳(示意):
[
{
"text": "明天買電池",
"done": false,
"date": "2026-02-05",
"document_id": "...",
"line_no": 12
}
]
適用:你說「幫我找…」「搜尋…」
工具鏈:unified_search →(必要時)get_document_content
# 內容搜尋
mcporter call siyuan.unified_search content="kubernetes" limit=10
# 檔名搜尋
mcporter call siyuan.unified_search filename="週報" limit=10
# 標籤搜尋(不含 #)
mcporter call siyuan.unified_search tag="project" limit=10
適用:你說「整理今天」「幫我整理今日筆記」
目標(MVP):
建議工具鏈(可靠版本):
get_ids_by_hpath → 若不存在可用 create_document 建立get_document_content(document_id)list_daily_note_todos(notebook_id, days=1)append_to_document(document_id, content)範例(找到今日文件後):
mcporter call siyuan.list_daily_note_todos \
notebook_id="20260205161632-m9mibni" \
days=1
mcporter call siyuan.append_to_document \
document_id="<today_document_id>" \
content="\n\n## 今日整理(AI)\n\n- 摘要:...\n- 重點:...\n- 未完成 TODO:...\n- 可歸檔(候選):...\n"
適用:你說「幫我產出本週週報」
建議流程(最小版本):
list_daily_note_todos 拉出本週未完成項目週報自動寫回(create_document)放在 M2 里程碑後再固定模板。
當核心穩定後,再逐步加入:
思源內部連結使用以下格式,點擊可直接跳轉:
[顯示名稱](siyuan://blocks/文件ID)
範例:
- [維運客戶](siyuan://blocks/20250108190236-49uy54d)
- [SOP文件](siyuan://blocks/20250320164549-8nwn7q7)
有子文件的母文件,本身應作為「目錄/摘要」頁。標準模板:
## 摘要
- 主要內容/業務說明
- 負責人:(待補)
## 快速入口
- [最新/常用項目](siyuan://blocks/ID)
## 目錄
### 分類一
- [項目](siyuan://blocks/ID)
### 分類二
- [項目](siyuan://blocks/ID)
| 原則 | 說明 |
|---|---|
| 混合式分類 | 客戶專屬 → 客戶資料夾;可共用 → 抽到 SOP/教育訓練 |
| 母文件 = 目錄/摘要 | 有子文件的母文件,本身要能輸入內容,作為入口頁 |
| 索引放母文件 | 索引內容直接放在母文件,不額外開子文件 |
| 單一索引頁 | 每個筆記本只需一個總索引,整合所有入口 |
| 原則 | 說明 |
|---|---|
| 純 Markdown | 不使用特殊格式 |
| TODO 用 checkbox | - [ ] 待辦 / - [x] 完成 |
| 不重複 H1 | 思源自動產生 H1(標題),內容從 ## 開始 |
| 多行內容用 content_file | 避免 \n 字面化問題 |
| 原則 | 說明 |
|---|---|
未命名/重複 → _duplicates | 集中暫放,不直接刪除 |
| 散落文件 → 歸位 | 根層的文件移到對應分類下 |
| 整理前先快照 | 可回滾 |
| 歸檔需確認 | 不自動刪除,等使用者確認 |
設計原則:
> 💼 筆記本名稱 作為視覺提示[名稱](siyuan://blocks/ID)--- 分隔不同區塊標準區塊順序(建議):
極簡範例:
> 💼 筆記本名稱
## 🚀 快速入口
| 分類 | 說明 |
|------|------|
| [維運客戶](siyuan://blocks/ID) | 客戶專屬資料 |
| [SOP文件](siyuan://blocks/ID) | 標準作業流程 |
---
## 📂 結構
筆記本/ ├─ 索引 ├─ 分類A/ └─ 分類B/
當你用 mcporter call 傳遞多行 Markdown 內容時,不要直接在參數裡寫 \n,會變成字面文字。
❌ 錯誤寫法(會變成 \n 字面文字):
mcporter call siyuan.update_document document_id="xxx" content="# 標題\n\n內容"
✅ 最推薦:用 content_file(避免所有 shell 轉義問題)
cat << 'EOF' > /tmp/content.md
# 標題
這是內容。
## 小節
- 項目 1
- 項目 2
EOF
mcporter call siyuan.update_document document_id="xxx" content_file="/tmp/content.md"
✅ 其他可用寫法 1:先寫入檔案再用 $(cat ...) 帶入
mcporter call siyuan.update_document document_id="xxx" content="$(cat /tmp/content.md)"
✅ 其他可用寫法 2:用 $'...' 語法(bash)
mcporter call siyuan.update_document document_id="xxx" content=$'# 標題\n\n這是內容。'
✅ 其他可用寫法 3:直接用多行引號
mcporter call siyuan.update_document document_id="xxx" content="# 標題
這是內容。
## 小節
- 項目 1
- 項目 2
"
若工具列表讀不到,先確認:
SIYUAN_TOKEN、SIYUAN_BASE_URL 是否正確siyuan若要看所有 tools:
mcporter list siyuan --all-parameters