Skills 與 MCP:教它新招、接上外部工具
這篇你會學到
- Skill(技能)是一份教 Claude 特定流程的說明檔,這篇照官方範例動手建第一個
- MCP(Model Context Protocol)是讓 AI 連接外部工具的開放標準,這篇照官方最簡單的例子接一個現成的
- 什麼情況值得建 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 自己啟用。
(來源:官方文件〈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〉)
常見卡點
- 建了 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 伺服器要挑信任的來源,而且不用的就移掉。
下一步
- 內建命令與內建 Skill 的完整清單:斜線命令總覽
- 權限、費用、公司資料紅線,一次弄清楚:安全與成本:放心用的邊界
- 忘了常用指令怎麼按:日常操作:模式、指令與省力技巧
- 回到系列目錄:Claude Code 完全上手