ワンクリックで
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