Skills 與 MCP:教它新招、接上外部工具
這篇你會學到
- Skill(技能)是一份教 Claude 特定流程的說明檔,這篇照官方範例動手建第一個
- MCP(Model Context Protocol)是讓 AI 連接外部工具的開放標準,這篇照官方最簡單的例子接一個現成的
- Hook(掛勾)、Skill、子代理(subagent)、代理團隊(agent teams)差在哪,什麼情境該用哪一個
- 什麼情況值得建 Skill 或接 MCP,什麼情況其實不需要
官方原文:Extend Claude with skills、Connect Claude Code to tools via MCP(功能更新以官方為準)
功能與介面更新很快,以官方說明為準。
一、Skill 是什麼:把你重複貼的指示變成一個檔案
你有沒有這種經驗:每次都要貼同一段「請照這個格式寫」「發布前先跑這三步」給 Claude?如果你常貼同一段規則,就把它做成 Skill。Skill 像一份給 Claude 的工作說明。需要時才載入,不會一直占用對話空間。
官方的判斷法也很直接。同一份指示、檢查清單或多步驟流程,你一直重複貼進對話,就該做成 Skill。CLAUDE.md 裡某一段已經長成一套流程,而不是單純事實,也一樣該搬。 (來源:官方文件〈Extend Claude with skills〉)
Skill 就是一個叫 SKILL.md 的檔案,放在指定資料夾裡。Claude 在相關情境會自動使用它。你也可以打 /技能名稱 直接叫它出來。
它和 CLAUDE.md 不同:內容只在被使用時才載入。平常幾乎不占空間,所以放長篇參考資料也不心疼。 (來源:官方文件〈Extend Claude with skills〉)
放的位置決定誰能用:
| 位置 | 路徑 | 適用範圍 |
|---|---|---|
| 個人 | ~/.claude/skills/技能名/SKILL.md |
你的所有專案 |
| 專案 | .claude/skills/技能名/SKILL.md |
只有這個專案(可進版本控制分享給團隊) |
(來源:官方文件〈Extend Claude with skills〉)
資料夾名稱就是你之後打的指令名稱。例如資料夾叫 summarize-changes,指令就是 /summarize-changes。
二、動手建第一個 Skill(官方範例)
官方入門範例是一個「摘要目前未提交修改、順便點出風險」的技能。照做三步就好。 (來源:官方文件〈Extend Claude with skills〉)
第一步:建資料夾。打開終端機,建立個人技能資料夾:
mkdir -p ~/.claude/skills/summarize-changes
第二步:寫 SKILL.md。每個 Skill 都要有這個檔,分兩部分。最上面兩條 --- 之間是 frontmatter(檔案開頭的設定區)。它用來告訴 Claude 什麼時候用這個技能。下面則是 Claude 執行時要照做的指示。把下面內容存到 ~/.claude/skills/summarize-changes/SKILL.md,內文可以用中文寫,結構依官方範例:
---
description: 摘要尚未提交的程式修改並點出風險。當使用者問改了什麼、想要 commit 訊息、或想檢視 diff 時使用。
---
## 目前的修改
!`git diff HEAD`
## 指示
把上面的修改摘要成兩三個重點,然後列出你注意到的風險,
例如缺少錯誤處理、寫死的數值、或需要更新的測試。
如果 diff 是空的,就說目前沒有未提交的修改。
其中 !`git diff HEAD` 那行是動態插入。Claude Code 會先跑這個指令,把輸出直接放進技能內容。所以 Claude 看到的是你當下真實的修改,不是用猜的。
(來源:官方文件〈Extend Claude with skills〉)
第三步:測試。到任一個 git 專案,隨便改一個檔案,啟動 claude,然後兩種方式都試試:
我改了什麼?
這句話符合 description 的描述,Claude 會自動載入這個技能。或直接指名:
/summarize-changes
兩種方式都應該得到修改摘要加風險清單。
幾個實用細節:
- 改了馬上生效:Claude Code 會監看技能資料夾。新增或修改 SKILL.md,在當前對話內就生效,不用重開。但整個頂層 skills 資料夾,若是對話開始後才建立,就要重啟一次。
- 只想手動觸發:在 frontmatter 加一行
disable-model-invocation: true。這樣 Claude 就不會自作主張執行。適合部署、發訊息這類你想控制時機的動作。 - 看有哪些技能:在對話中打
/skills,列出全部可用技能。
(來源:官方文件〈Extend Claude with skills〉)
三、MCP 白話:一顆萬用轉接頭
MCP 的全名是 Model Context Protocol。它是一個開放標準,讓 AI 連接外部工具。
Claude Code 內建的工具,只能碰你電腦上的檔案和指令。但你的資料常常住在別的地方:專案管理系統、資料庫、設計稿。MCP 就像一顆萬用轉接頭。任何服務只要做了「MCP 伺服器」這一端,Claude Code 就能插上去。插上之後,Claude 可以直接讀取和操作,你不用再手動複製貼上。 (來源:官方文件〈Connect Claude Code to tools via MCP〉)
官方給的判斷句:你發現自己一直從別的工具複製資料進對話,就是該接 MCP 的時候。例如議題追蹤系統或監控儀表板。 (來源:官方文件〈Connect Claude Code to tools via MCP〉)
四、接上第一個 MCP 伺服器(官方最簡單範例)
官方快速上手用的例子是「Claude Code 官方文件搜尋伺服器」。不用註冊、不用登入,最適合拿來練習。 (來源:官方文件〈Connect to MCP servers〉)
第一步:註冊伺服器。在終端機執行(注意是在終端機,不是在 claude 對話裡):
claude mcp add --transport http claude-code-docs https://code.claude.com/docs/mcp
拆解這行指令:claude mcp add 是註冊伺服器。--transport http 表示伺服器架在網址上,不是在你電腦上跑的程式。claude-code-docs 是你自己取的名字。最後是伺服器網址。
第二步:確認連上了:
claude mcp list
畫面會顯示每個伺服器的狀態,對照下表:
| 畫面上的英文 | 中文意思 | 你要做什麼 |
|---|---|---|
✓ Connected |
已連上 | 不用做什麼,直接進第三步 |
! Needs authentication |
需要登入 | 在對話中打 /mcp,走瀏覽器登入流程 |
Pending approval |
等待你本人核准 | 啟動一次互動式 claude,依提示核准(詳見常見卡點 3) |
(來源:官方文件〈Connect to MCP servers〉、〈Connect Claude Code to tools via MCP〉)
第三步:用用看。啟動 claude,然後指名要它用這個伺服器:
用 claude-code-docs 伺服器查一下 MCP_TIMEOUT 是做什麼的
第一次呼叫時,Claude 會請你核准這個新工具。平常其實不必指名伺服器,Claude 會自己挑相關工具。這裡指名,只是為了確認答案真的來自新伺服器。 (來源:官方文件〈Connect to MCP servers〉)
第四步(可選):移除。練習完不想留著:
claude mcp remove claude-code-docs
官方提醒:每個連上的伺服器,都會占用一些上下文空間,不用的就移掉。 (來源:官方文件〈Connect to MCP servers〉)
想找更多現成伺服器,可以逛 Anthropic Directory(官方連接器目錄)。網址是 claude.ai/directory。
加碼:內建 Skill 命令——官方送你的現成技能
前面教你自己寫 Skill,但其實不用從零開始。Claude Code 出廠就附了一批「內建 Skill」(官方稱 bundled skills,隨附技能)。每一場對話都自動帶著,除非你在設定裡用 disableBundledSkills 關掉。
(來源:官方文件〈Extend Claude with skills〉)
它們跟 /help 這類寫死在程式裡的內建命令不同。本質和你自己寫的 SKILL.md 一樣,是一份「給 Claude 的指示」。Claude 讀完後,自己動用手上的工具把事情完成。用法也一樣:打 / 加名稱直接呼叫,或在相關情境讓 Claude 自己啟用。
打個比方:Skill 命令像隨身帶著一本操作手冊,喊一聲,它就翻開手冊照著做事。
(來源:官方文件〈Extend Claude with skills〉)
幾個常用的內建 Skill:
/code-review:審查你目前改動的程式碼,找出正確性錯誤和可以簡化的地方。加--fix會直接把發現的問題修進檔案。/debug:開啟這場對話的除錯紀錄(debug log),再由 Claude 讀紀錄,幫你分析問題出在哪。/batch:把橫跨整個專案的大改動,拆成多個獨立小任務平行處理。每個小任務交給一個分身各自完成。/loop:讓一段指示每隔一段時間重複執行。例如「每 5 分鐘檢查部署好了沒」。/claude-api:載入 Claude API(Anthropic 提供的程式介面)的參考資料。寫串接 Claude 的程式時特別有用。
(來源:官方文件〈Commands〉)
一個好用的規則:同名的自己人優先。在專案的 .claude/skills/ 放一個叫 code-review 的 Skill,它會蓋過內建的 /code-review。也就是說,官方版不合你團隊的胃口,直接寫一個同名的換掉就好。
(來源:官方文件〈Extend Claude with skills〉)
另外,接上第四節那種 MCP 伺服器之後,/ 選單裡也可能多出新命令。格式是 /mcp__伺服器名__提示名。那是伺服器自己提供的現成提示,連上就自動出現。
(來源:官方文件〈Commands〉)
內建命令和內建 Skill 的完整清單,請見站內的斜線命令總覽。功能更新很快,一律以官方 code.claude.com 文件為準。
五、什麼時候需要,什麼時候不需要
值得建 Skill:同一段指示貼了三次以上。或者團隊有固定流程,想讓每個人的 Claude 都照做(放專案的 .claude/skills/ 進版本控制)。
值得接 MCP:資料住在外部系統,你一直手動搬運。想讓 Claude 直接查、直接改那個系統。
先不用急著弄:
- 只是單次任務的指示,直接打在對話裡就好。
- 那個服務有現成的命令列工具(例如 GitHub 的
gh)。官方成本文件明說,CLI 工具通常比 MCP 伺服器更省上下文。因為不用載入一堆工具清單,Claude 直接跑指令就好。(來源:官方文件〈Manage costs effectively〉) - 來路不明的 MCP 伺服器。官方警告,會抓取外部內容的伺服器,可能帶來提示注入風險。提示注入(prompt injection)指攻擊者把惡意指令藏在內容裡,騙 AI 執行。接之前先確認你信任它。Anthropic 會依上架標準審查目錄裡的連接器,但不做安全稽核。(來源:官方文件〈Connect Claude Code to tools via MCP〉、〈Security〉)
六、什麼情境用什麼:Hook、Skill、子代理、代理團隊對照表
前面幾節教了 Skill 和 MCP。但 Claude Code 能「自動化」的方式不只這兩種。判斷原則很簡單:規則明不明確、要不要 AI 現場判斷、是不是反覆出現的專職任務,答案不同,該用的工具就不同。
| 情境特徵 | 用什麼 | 白話說明 | 非營利組織情境例子 |
|---|---|---|---|
| 規則清楚、不需要 AI 判斷、每次都要固定觸發 | Hook(掛勾) | 使用者自訂的處理器,會在特定時點自動執行,例如工具執行前、檔案編輯後、對話開始時。處理器可以是 shell 指令、HTTP 端點、MCP 工具、LLM 提示或子代理。它是「確定性」的:固定時點就會觸發,不是由模型自己決定要不要做 | 每次存檔,就自動跑一次錯字檢查 |
| 要 AI 判斷怎麼做、同一套多步驟流程你一直重複下達 | Skill(技能) | 一份 SKILL.md,內含指示、知識或工作流程,Claude 覺得相關時自動載入,或打 /技能名稱 直接叫出來 |
每月電子報的固定流程:收素材、排版、校對、發送前檢查,讓 Claude 判斷怎麼套用 |
| 反覆出現的專職任務,適合切到獨立空間處理、只回報摘要 | 子代理(subagent,/agents) |
在自己獨立的上下文(context window)裡運作的專門化助理,有自訂的 system prompt(系統指示,設定它扮演什麼角色)、特定的工具存取權限、獨立的權限設定;處理交辦的任務後,把摘要回傳給主對話 | 專門盯法規新聞的幫手,平常在背景查資料,只把重點回報給你 |
| 需要好幾個「各自完整」的 Claude 同時協作、彼此能直接互通訊息 | 代理團隊(agent teams,實驗性功能,預設停用) | 多個獨立的 Claude Code 對話(session),由一個團隊帶頭者(team lead)協調,共用任務清單、可以互相傳訊;使用者能直接找任一個成員對話,不一定要透過帶頭者。跟子代理的差別:子代理只能回報給發起它的那個對話,代理團隊裡每個成員都有自己獨立的上下文,是完整獨立的對話 | 準備一場記者會,同時要查資料、寫稿、核對事實,三人彼此需要看到對方進度、互相對話,不是各自獨立回報給你一個人 |
(依官方文件〈Glossary〉(Hook、子代理、代理團隊詞條)、〈Hooks〉、〈Agent teams〉)
代理團隊是實驗性功能,預設不會啟用;要開啟需要另外設定環境變數,一般使用者不用特別去碰,知道有這個選項、遇到真的需要「多人協作互通」的情境再考慮就好(依官方文件〈Agent teams〉)。
常見卡點
- 建了 Skill 但打
/找不到。症狀:/summarize-changes顯示不存在。解法:確認檔名是SKILL.md,路徑是~/.claude/skills/summarize-changes/SKILL.md。如果整個 skills 資料夾是這場對話開始後才建的,重啟 Claude Code 一次。(來源:官方文件〈Extend Claude with skills〉) - Claude 不會自動用我的 Skill。症狀:問了相關問題,它還是照自己的方式做。解法:把 frontmatter 的 description 寫得更像「使用時機」。例如「當使用者問 X、想做 Y 時使用」。等不及就直接
/技能名指名呼叫。(來源:官方文件〈Extend Claude with skills〉) - MCP 伺服器顯示 Pending approval。症狀:
claude mcp list出現暫停核准字樣。解法:這是專案共用的.mcp.json裡的伺服器,基於安全,需要你本人核准。啟動一次互動式claude,依提示核准即可。(來源:官方文件〈Connect Claude Code to tools via MCP〉) - 本機伺服器的參數被吃掉。症狀:用
claude mcp add加本機程式(stdio 型)一直失敗。解法:自己的選項和伺服器指令之間,要用兩個減號--隔開。例如claude mcp add --transport stdio myserver -- npx server。--後面的內容,才會原封不動傳給伺服器。(來源:官方文件〈Connect Claude Code to tools via MCP〉) - 接了一堆伺服器後,對話變貴變慢。症狀:
/context一看,MCP 占掉一大塊。解法:打/mcp停用沒在用的伺服器,或用claude mcp remove移除。(來源:官方文件〈Manage costs effectively〉)
重點回顧
- Skill 就是一個 SKILL.md。上面的 description 寫「什麼時候用」,下面寫「怎麼做」,放對資料夾就能用。
- 重複貼三次的指示,就值得做成 Skill。內容只在用到時載入,不心疼長度。
- MCP 是萬用轉接頭。接上伺服器,Claude 就能直接操作外部系統,不用你當搬運工。
- 第一個 MCP 練習就用官方文件伺服器:一行指令、不用登入。
- 有 CLI 工具就先用 CLI。MCP 伺服器要挑信任的來源,而且不用的就移掉。
- 規則明確固定觸發用 Hook;要 AI 判斷的流程用 Skill;反覆出現的專職任務用子代理;需要多人互通協作才考慮代理團隊。
下一步
- 內建命令與內建 Skill 的完整清單:斜線命令總覽
- 權限、費用、公司資料紅線,一次弄清楚:安全與成本:放心用的邊界
- 忘了常用指令怎麼按:日常操作:模式、指令與省力技巧
- 回到系列目錄:Claude Code 完全上手