MCP 擴充與 Skills 系統
MCP (Model Context Protocol) 概念
💡 比喻:幫 AI 裝手和眼睛 Claude Code 本身就像一個很聰明的大腦,但它只能「想」。 MCP 就是幫這個大腦裝上「手」和「眼睛」:
- 🖐️ filesystem MCP = 裝上手,可以碰你的檔案
- 👀 Chrome MCP = 裝上眼睛,可以看到瀏覽器畫面
- 🧠 memory MCP = 裝上記憶體,可以記住跨 Session 的資訊
- 📂 Google Drive MCP = 裝上雲端手臂,可以存取你的雲端文件
沒有 MCP,AI 只能跟你聊天。有了 MCP,AI 可以動手做事。
MCP 架構圖
你(使用者)
│
▼
Claude Code(AI 大腦)
│
├── filesystem MCP ──→ 讀寫你電腦上的檔案 # 基本的檔案操作能力
├── Chrome MCP ──────→ 操作瀏覽器(點擊、截圖)# 看網頁、測試網站
├── memory MCP ──────→ 長期記憶儲存 # 跨 Session 記住資訊
├── Google Drive MCP → 存取雲端文件 # 讀取 Google 文件
└── 其他 MCP ────────→ 無限擴充可能 # 社群開發的各種工具
為什麼需要 MCP?
沒有 MCP 的 AI: # 只能純文字對話
"幫我看看網站長什麼樣子"
→ "我沒辦法看網站,請你截圖給我" # 無法操作瀏覽器
有 Chrome MCP 的 AI: # 可以操作瀏覽器
"幫我看看網站長什麼樣子"
→ AI 自動打開瀏覽器 → 截圖 → 分析畫面 # 直接動手看
→ "網站目前有一個 Navbar 和三張卡片,配色是..." # 回報結果
常用 MCP 介紹
1. filesystem MCP(檔案系統)
功能:讀取、寫入、搜尋檔案 # 最基本的 MCP
用途:讓 AI 操作你電腦上的檔案 # 不限於專案目錄
常用操作:
- read_file:讀取檔案內容 # 看程式碼
- write_file:寫入新檔案 # 建立新檔案
- list_directory:列出資料夾內容 # 看有哪些檔案
- search_files:用 glob 搜尋檔案 # 找特定檔案
- edit_file:編輯現有檔案 # 修改程式碼
2. Chrome MCP(瀏覽器操作)
功能:操作 Chrome 瀏覽器 # 裝了就能看網頁
用途:預覽網站、截圖、點擊、填表單 # 測試和預覽
常用操作:
- navigate:導航到指定 URL # 打開網頁
- screenshot:擷取畫面截圖 # 看網站長什麼樣
- left_click:滑鼠點擊 # 模擬使用者操作
- type:輸入文字 # 填寫表單
- read_page:讀取頁面結構 # 分析 DOM 元素
3. memory MCP(長期記憶)
功能:建立知識圖譜,儲存跨 Session 的資訊 # 比 CLAUDE.md 更結構化
用途:記住使用者偏好、專案重要資訊 # 長期記憶
常用操作:
- create_entities:建立知識節點 # 新增一條記憶
- search_nodes:搜尋記憶 # 找之前記住的事
- create_relations:建立節點關係 # 記住 A 和 B 有關
- read_graph:讀取整個知識圖譜 # 看所有記憶
4. Google Drive MCP(雲端文件)
功能:搜尋和讀取 Google Drive 文件 # 存取雲端
用途:讀取規格文件、設計稿、會議記錄 # 讀取雲端文件
常用操作:
- google_drive_search:搜尋 Drive 文件 # 找文件
- google_drive_fetch:讀取文件內容 # 看文件內容
MCP 安裝設定(.mcp.json 格式)
💡 比喻:安裝外掛 安裝 MCP 就像在遊戲裡安裝外掛(mod):
- .mcp.json = 外掛清單(告訴遊戲要載入哪些外掛)
- 每個 MCP = 一個外掛(提供特定功能)
- 安裝完重新啟動就能用
.mcp.json 檔案位置
你的專案/
├── .claude/
│ └── .mcp.json # 放在 .claude 資料夾裡 # 專案級別設定
├── CLAUDE.md # 專案記憶檔 # 和 MCP 設定分開
└── Program.cs # 你的程式碼 # 正常的專案檔案
.mcp.json 格式範例
{
"mcpServers": { // MCP 伺服器清單
"filesystem": { // filesystem MCP 設定
"command": "npx", // 用 npx 執行
"args": [ // 執行參數
"-y", // 自動確認安裝
"@anthropic-ai/mcp-filesystem", // MCP 套件名稱
"C:/Users/user" // 允許存取的路徑
]
},
"memory": { // memory MCP 設定
"command": "npx", // 用 npx 執行
"args": [ // 執行參數
"-y", // 自動確認安裝
"@anthropic-ai/mcp-memory" // MCP 套件名稱
]
}
}
}
安裝新的 MCP
# 方法 1:手動編輯 .mcp.json(加入新的 MCP 設定) # 直接改設定檔
# 方法 2:用 Claude Code 指令安裝 # 更方便
claude mcp add filesystem npx @anthropic-ai/mcp-filesystem C:/Users/user
# 安裝完重啟 Claude Code # 重新啟動讓設定生效
claude
Skills 是什麼(預寫好的 Prompt 模板)
💡 比喻:食譜卡 Skills 就像廚房裡的食譜卡:
- 每張卡片 = 一個 Skill(例如「做番茄炒蛋」)
- 卡片上寫了步驟和材料
- 你只要說「照食譜做」,AI 就知道該怎麼做
- 不用每次都從頭解釋
Skill 的用途
沒有 Skill:
每次都要說:"幫我建一個 ASP.NET Core MVC 專案, # 每次都要打很長的指令
用 Bootstrap 5,SQLite, # 重複的需求描述
繁體中文註解,暖米色系..." # 浪費時間
有 Skill:
直接說:"用 /create-project skill" # 一句話搞定
→ AI 自動按照 Skill 定義的模板執行 # 不用重複描述
SKILL.md 格式與建立
SKILL.md 的結構
---
description: 建立 ASP.NET Core 專案的標準流程 # Skill 的簡短說明
---
# 建立 ASP.NET Core 專案 # Skill 的標題
## 步驟 # 詳細步驟
1. 用 dotnet new mvc 建立專案 # 第一步
2. 安裝 Entity Framework Core 和 SQLite # 第二步
3. 建立基本的 Model 和 DbContext # 第三步
4. 設定 Program.cs 的 DI 註冊 # 第四步
5. 建立初始 Migration # 第五步
## 規則 # 要遵守的規則
- 所有註解用繁體中文 # 註解語言
- 用 Bootstrap 5 做前端 # 前端框架
- 資料庫用 SQLite # 資料庫選擇
SKILL.md 的存放位置
你的專案/
├── .claude/
│ └── skills/
│ ├── create-project/
│ │ └── SKILL.md # 建立專案的 Skill # 每個 Skill 一個資料夾
│ ├── deploy/
│ │ └── SKILL.md # 部署的 Skill # 可以有多個 Skill
│ └── fix-bug/
│ └── SKILL.md # 修 Bug 的 Skill # 按功能分類
└── Program.cs
建立自己的 Skill
# 方法 1:請 AI 幫你建 # 最簡單的方式
> "幫我建一個 Skill,功能是自動建立 ASP.NET Core MVC 專案"
# 方法 2:手動建立 # 自己控制內容
mkdir -p .claude/skills/create-project # 建立資料夾
# 然後在裡面建 SKILL.md # 寫 Skill 內容
Hooks 自動化(Stop hook, Start hook)
💡 比喻:自動門感應器 Hooks 就像商店的自動門感應器:
- Start Hook = 有人進門時,自動開燈、播放歡迎語
- Stop Hook = 最後一個人離開時,自動關燈、鎖門
- 你不用手動操作,一切自動發生
什麼是 Hook?
Hook = 在特定時機自動執行的腳本 # 自動化的關鍵
常用 Hook:
- PreToolUse:AI 使用工具之前觸發 # 在操作前攔截
- PostToolUse:AI 使用工具之後觸發 # 操作完成後檢查
- Notification:AI 需要通知時觸發 # 發送通知
- Stop:AI 停止回應時觸發 # 結束時自動執行
Hook 設定範例
{
"hooks": { // Hook 設定區塊
"PostToolUse": [ // 工具使用後觸發
{
"matcher": "Write|Edit", // 當寫入或編輯檔案時
"command": "dotnet build" // 自動執行 build
}
],
"Stop": [ // AI 停止回應時觸發
{
"command": "git add -A && git commit -m 'auto-save'" // 自動存檔
}
]
}
}
Hook 的實際用途
場景 1:自動 build
每次 AI 改完程式碼 → 自動 dotnet build → 馬上知道有沒有編譯錯誤
# 不用手動執行
場景 2:自動測試
每次 AI 改完程式碼 → 自動跑 dotnet test → 確認沒有破壞現有功能
# 持續整合概念
場景 3:自動 commit
AI 完成一個任務 → 自動 git commit → 不怕改壞回不去
# 自動版本控制
實際案例:自動部署 Hook
情境說明
目標:每次 AI 完成修改,自動部署到 Railway # 改完即部署
流程:AI 改 code → 自動 build → 自動 test → 自動部署 # 全自動化
設定步驟
{
"hooks": { // Hook 設定
"Stop": [ // AI 停止時觸發
{
"command": "dotnet build && dotnet test && git add -A && git commit -m 'auto-deploy' && git push"
// 依序執行 build、test、commit、push
}
]
}
}
執行流程
你說:"幫我在首頁加一個輪播圖" # 只需描述需求
↓
AI 開始工作 # 自動讀取、修改檔案
↓
AI 修改 Views/Home/Index.cshtml # 加入輪播圖 HTML
AI 修改 wwwroot/css/site.css # 加入輪播圖樣式
↓
AI 完成,觸發 Stop Hook # 自動觸發
↓
dotnet build → 編譯通過 ✅ # 確認沒有語法錯誤
dotnet test → 測試通過 ✅ # 確認沒有破壞功能
git commit → 自動存檔 ✅ # 版本控制
git push → 推到 GitHub ✅ # 觸發 Railway 部署
↓
Railway 偵測到 push → 自動部署 🚀 # 網站自動更新
🤔 我這樣寫為什麼會錯?
❌ 錯誤 1:MCP 設定路徑寫錯
❌ 錯誤的 .mcp.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-filesystem", "C:\\Users\\user"]
// Windows 反斜線會出錯
}
}
}
✅ 正確做法:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-filesystem", "C:/Users/user"]
// 用正斜線,避免跳脫問題
}
}
}
💡 在 JSON 中,路徑建議都用正斜線 /,避免反斜線的跳脫問題。
❌ 錯誤 2:Hook 指令有錯但不知道
❌ 常見情況:
Hook 設定了 "dotnet biuld" # 打錯字:biuld → build
→ 每次 AI 完成都會跳出錯誤 # 但你不知道為什麼
→ "command not found" 但你以為是 AI 的問題 # 其實是打字錯誤
✅ 正確做法:
1. 先手動在終端機測試 Hook 指令 # 確認指令可以正常執行
2. 一個一個加 Hook,不要一次加太多 # 方便找出問題
3. 看 Claude Code 的輸出 log # 會顯示 Hook 執行結果
❌ 錯誤 3:Skill 寫太模糊,AI 每次做出來都不一樣
❌ 模糊的 SKILL.md:
---
description: 建立專案
---
建一個專案 # 太簡短,沒有具體步驟
✅ 正確的 SKILL.md:
---
description: 建立 ASP.NET Core 8.0 MVC 專案(含 EF Core + SQLite)
---
# 建立專案步驟 # 清楚的標題
1. 使用 dotnet new mvc 建立專案 # 每一步都寫清楚
2. 安裝 NuGet:EntityFrameworkCore.Sqlite # 指定套件名稱
3. 建立 Models/Product.cs(Id, Name, Price) # 指定 Model 欄位
4. 建立 Data/AppDbContext.cs # 指定檔案路徑
5. Program.cs 註冊 DbContext # 指定設定位置
6. dotnet ef migrations add Init # 指定 Migration 指令
7. dotnet ef database update # 指定更新指令
💡 Skill 越詳細,AI 每次執行的結果越一致。
本章重點整理
| 主題 | 重點 |
|---|---|
| MCP 概念 | 幫 AI 裝上手和眼睛,讓它能操作外部工具 |
| 常用 MCP | filesystem(檔案)、Chrome(瀏覽器)、memory(記憶)、Google Drive(雲端) |
| MCP 設定 | .mcp.json 放在 .claude/ 資料夾,JSON 格式 |
| Skills | 預寫好的 Prompt 模板,放在 .claude/skills/ 資料夾 |
| SKILL.md | Skill 的定義檔,要寫清楚步驟和規則 |
| Hooks | 在特定時機自動執行腳本(Start, Stop, PostToolUse) |
| 自動部署 | 用 Stop Hook 串接 build → test → commit → push |