☕ NEW! 完成新手任務即可參加抽獎!LINE 星巴克禮券等你拿,名額有限!        🎉 推廣活動:邀請好友註冊 DevLearn,累積推薦抽 LINE 星巴克禮券! 活動詳情 →        🔥 活動期間 2026/4/1 - 5/31 |已有 0 人參加       
AI 應用 中級

MCP 與 Skills 擴充系統

MCP 是什麼?

💡 比喻:手機的 App Store AI 本身就像一支剛買的新手機——功能有限。 MCP(Model Context Protocol)就像 App Store, 讓你安裝各種「插件」,讓 AI 能做更多事。

沒裝 App 的手機:只能打電話、傳簡訊 裝了 App 的手機:能叫車、點餐、付款、拍照修圖

沒有 MCP 的 AI:只能讀文字、寫文字 有 MCP 的 AI:能開瀏覽器、讀檔案、查資料庫、控制應用程式

沒有 MCP vs 有 MCP

沒有 MCP:
你:"幫我看桌面上有什麼檔案"
AI:"抱歉,我無法存取你的檔案系統"

有 MCP(filesystem):
你:"幫我看桌面上有什麼檔案"
AI:"你的桌面有以下檔案:
     - project.docx
     - notes.txt
     - photo.jpg"
沒有 MCP:
你:"幫我打開 Google 搜尋 ASP.NET Core 教學"
AI:"抱歉,我無法操作瀏覽器"

有 MCP(Chrome):
你:"幫我打開 Google 搜尋 ASP.NET Core 教學"
AI:[打開瀏覽器] → [輸入搜尋] → [回傳結果]

常用 MCP 介紹

1. Filesystem MCP(檔案系統)

功能:讀寫本機檔案和資料夾
用途:讓 AI 能操作你電腦上的檔案

可以做的事:
- 讀取檔案內容
- 建立新檔案
- 修改現有檔案
- 列出資料夾內容
- 搜尋檔案

2. Memory MCP(跨對話記憶)

功能:建立跨 session 的知識圖譜
用途:讓 AI 記住跨對話的資訊

可以做的事:
- 儲存實體和關係
- 搜尋已儲存的知識
- 跨專案共享記憶

3. Chrome MCP(瀏覽器自動化)

功能:控制 Chrome 瀏覽器
用途:讓 AI 能瀏覽網頁、截圖、填表單

可以做的事:
- 開啟網頁
- 截取螢幕截圖
- 點擊按鈕和連結
- 填寫表單
- 讀取頁面內容

4. GitHub MCP(代碼管理)

功能:操作 GitHub Repository
用途:讓 AI 能管理你的 GitHub

可以做的事:
- 建立 Pull Request
- 查看 Issues
- 管理 Branch
- Code Review

如何安裝 MCP

MCP 的設定檔是 .mcp.json,可以放在專案根目錄使用者設定

專案級設定(.mcp.json)

放在專案根目錄,只對這個專案生效:

{
  "mcpServers": {
    "filesystem": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@modelcontextprotocol/server-filesystem", "C:/Users/user/Desktop"]
    }
  }
}

全域設定(~/.claude/settings.local.json)

放在使用者設定,所有專案都能用:

{
  "mcpServers": {
    "memory": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@anthropic-ai/memory-mcp"]
    },
    "filesystem": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@modelcontextprotocol/server-filesystem", "C:/Users/user/projects"]
    }
  }
}

Windows 特別注意

⚠️ Windows 上一定要用 "cmd" + "/c" 來包裝 npx!

❌ 錯誤(Linux/Mac 的寫法):
"command": "npx"
→ Windows 上會報錯:spawn npx ENOENT

✅ 正確(Windows 的寫法):
"command": "cmd"
"args": ["/c", "npx", "-y", "..."]
→ 用 cmd /c 來執行 npx

安裝完成後

# 重啟 Claude Code 讓設定生效
# 在專案目錄重新啟動
claude

# 啟動時會看到 MCP 載入訊息
# 如果成功,會顯示可用的 MCP 工具列表

Skills 是什麼?

💡 比喻:巨集(Macro) 如果 MCP 是「讓 AI 有手腳」, Skills 就是「預寫好的動作指令」。 就像 Excel 的巨集——錄好一次,以後一鍵執行。

Skills 的概念

Skills 是預寫好的 Prompt 指令,存在 .claude/skills/ 資料夾中。

.claude/
└── skills/
    ├── deploy/
    │   └── SKILL.md     # 部署技能
    ├── setup-project/
    │   └── SKILL.md     # 專案初始化技能
    └── fix-css/
        └── SKILL.md     # CSS 修復技能

SKILL.md 格式範例

---
description: 自動部署到 Railway
command: deploy
---

# 部署流程

請執行以下步驟:

1. 執行 `dotnet build -c Release` 確認編譯成功
2. 執行 `dotnet test` 確認測試通過
3. 建立 git commit(訊息:"deploy: auto deploy via skill")
4. 執行 `git push origin main`
5. 確認 Railway 自動部署啟動

如果任何步驟失敗,停下來回報錯誤,不要繼續。

使用 Skill

# 在 Claude Code 中輸入 slash command
> /deploy

# AI 會自動載入 SKILL.md 的內容並執行
# 就像按了一個「一鍵部署」的按鈕

更多 Skill 範例

---
description: 新增一個 CRUD Controller
command: new-crud
---

# 建立 CRUD Controller

請依照以下步驟:

1. 詢問使用者 Model 名稱
2. 在 Models/ 建立 Model 檔案(Id + 使用者指定的欄位)
3. 在 ApplicationDbContext 加上 DbSet
4. 建立 Controller(所有 CRUD action,async/await)
5. 建立 Views/(Index, Details, Create, Edit, Delete)
6. 建立 Migration 並更新資料庫
7. 執行 dotnet build 確認編譯成功

Hooks:事件觸發自動執行

💡 比喻:自動門 你不需要手動推門,走到門前它就自動開了。 Hooks 就是「自動門」——當某個事件發生時,自動執行指定的動作。

什麼是 Hooks?

Hooks 是在特定事件發生時自動執行的腳本。

可用的 Hook 事件:
- Stop:每次 AI 回應結束後觸發
- PreToolUse:AI 使用工具前觸發
- PostToolUse:AI 使用工具後觸發
- Notification:通知事件觸發

設定 Hooks

settings.local.json 中設定:

{
  "hooks": {
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "cd /path/to/project && dotnet build"
          }
        ]
      }
    ]
  }
}

實用 Hook 範例:對話結束後自動 Build

{
  "hooks": {
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "cd C:/Users/user/GuitarSchool && dotnet build -c Release"
          }
        ]
      }
    ]
  }
}

這樣每次 AI 回應結束後,都會自動跑 dotnet build,確保程式碼沒有編譯錯誤。


完整設定流程:MCP + Skill + Hook

Step 1:建立 MCP 設定

在專案根目錄建立 .mcp.json

{
  "mcpServers": {
    "filesystem": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@modelcontextprotocol/server-filesystem", "C:/Users/user/GuitarSchool"]
    }
  }
}

Step 2:建立 Skill

建立 .claude/skills/deploy/SKILL.md

---
description: 一鍵部署到 Railway
command: deploy
---

# 部署流程

1. 執行 dotnet build -c Release
2. 執行 dotnet test(如果有測試的話)
3. git add -A && git commit -m "deploy: auto deploy"
4. git push origin main
5. 回報部署狀態

Step 3:設定 Hook

~/.claude/settings.local.json 加上:

{
  "hooks": {
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "echo 'AI 回應結束'"
          }
        ]
      }
    ]
  }
}

Step 4:重啟 Claude Code

# 關閉目前的 Claude Code
# 重新啟動
claude

bypassPermissions:免問許可

Claude Code 預設會在執行某些操作前問你「可以嗎?」, 如果你信任 AI 的操作,可以設定 bypassPermissions 跳過確認。

設定方式

~/.claude/settings.local.json

{
  "permissions": {
    "allow": [
      "Bash(dotnet build*)",
      "Bash(dotnet run*)",
      "Bash(dotnet test*)",
      "Bash(git *)",
      "Read(*)",
      "Write(*.cs)",
      "Write(*.cshtml)"
    ]
  }
}
allow 清單說明:
- "Bash(dotnet build*)" → 允許執行 dotnet build 相關指令
- "Read(*)" → 允許讀取任何檔案
- "Write(*.cs)" → 允許寫入 .cs 檔案
- "Bash(git *)" → 允許執行 git 指令

⚠️ 注意:不要加 "Bash(rm *)" 或 "Bash(del *)"!
    讓 AI 有刪除權限很危險。

🤔 常見錯誤

錯誤 1:Windows 上忘記用 cmd /c

❌ 錯誤:
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem"]
    }
  }
}
→ 錯誤訊息:spawn npx ENOENT

✅ 正確:
{
  "mcpServers": {
    "filesystem": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@modelcontextprotocol/server-filesystem"]
    }
  }
}

錯誤 2:.mcp.json 放錯位置

❌ 放在 src/ 子目錄
❌ 放在 home 目錄(那是給 settings.local.json 的)
❌ 檔名打錯(mcp.json 少了前面的點)

✅ 專案級:放在專案根目錄 → /path/to/project/.mcp.json
✅ 全域級:放在 ~/.claude/settings.local.json 的 mcpServers 裡

錯誤 3:沒有重啟讓設定生效

❌ 改了 .mcp.json 但沒有重啟 Claude Code
→ 新設定不會載入,MCP 不會生效

✅ 改完設定後:
1. 關閉 Claude Code(Ctrl+C 或輸入 /exit)
2. 重新啟動 Claude Code
3. 確認 MCP 工具列表有顯示新的 MCP

本章重點整理

概念 說明
MCP 讓 AI 有手腳的插件系統
.mcp.json MCP 設定檔,放在專案根目錄
Skills 預寫好的 Prompt 指令(巨集)
Hooks 事件觸發自動執行的腳本
bypassPermissions 跳過 AI 操作確認
cmd /c Windows 上執行 npx 的必要包裝

💡 大家的想法 · 0

載入中...
💬 即時聊天室 🟢 0 人在線
😀 😎 🤓 💻 🎮 🎸 🔥
➕ 新問題
📋 我的工單
💬 LINE 社群
🔒
需要註冊才能使用此功能
註冊帳號即可解鎖測驗、遊戲、簽到、筆記下載等所有功能,完全免費!
免費註冊