
skills&MCP
自從Claude skills出現後又算是開源了吧,整個AI界好像著魔一樣,每個博主都討論上了skills跟MCP的差別。加上各大主流AI工具也紛紛加入支援行列,一時間玩AI編程的不知道skills是啥的人好像是異類。讓大叔我著實心頭一驚,想說就趕緊來看看啥東西這麼紅火。
看了N位博主們的說法,慘了,這下更加混亂了,就是"一人一把號,各吹各個調。"每個講得很清楚,大叔我聽得很模糊。也大概是年紀有了,理解力有點下滑。所以乾脆直接上機裝看看,看看到底是啥玩意。
我目前呢是用Antigravity(Google出的AI開發工具)來練習開發一些小玩意,也就比較習慣使用它了。上機後,我突然想到,既然都是大模型打底的工具,我為啥不幹脆直接問大模型怎麼搞,所以我就直接問它,skills倒底是啥玩意,有啥好火的。果然,Antigravity用它一貫的語氣,詳細的說了啥是skills,還直接給我推薦了四個skills,我心想好嘛,自己送上門來,還不趕緊叫它上工,就讓它鼓搗了。東西呢是裝了,但是呢啥時用,怎麼用,它七手八腳地整了一個程式碼審查的skills,真的你還別說,真比以前在對話裡下提示詞好多了,聽說呢也比較簡單,不用佔用太多上下文,要用時在叫出來就好。
不過,又有不過了,我也問了它,那也跟下提示詞也差不多啊,我如果下"幫我進行程式碼審查",你也不是會去檢查嗎,還要多個skills幹嘛。它秉持著不得罪用戶的情形下,耐心的說了原因。如果只是太籠統的提示詞,大模型的檢查步驟就可能不完善,就會東漏西漏的,用skills裡面規範的就很詳細,它就能完整的做。這就是skills的作用,到此,我呢總算有了個幾分了解了。
當然,最後我就問了這篇的標題,skills跟MCP倒底有啥不同,讓它簡單清楚的說明,它也很詳細的回覆了我,不過有點長,我就全文照貼一下,給大家看看。
Skills vs MCP 完全指南
🎯 一句話判斷法
問自己一個問題:
「這個功能需要 AI 實際『執行』什麼嗎?」
- ✅ 需要執行 → 用 MCP
- ❌ 不需要執行,只需要知識 → 用 Skills
📊 決策流程圖
你想要的功能 ↓ 問:「需要連接外部服務嗎?」 ├─ 是 → MCP │ 例: 連接資料庫、呼叫 API │ └─ 否 → 繼續問 ↓ 問:「需要執行實際操作嗎?」 ├─ 是 → MCP │ 例: 建立檔案、執行指令 │ └─ 否 → Skills 例: 教 AI 如何寫好程式碼
💡 實際例子對比
例子 1: 我想要 AI 幫我審查程式碼
需求: AI 要能檢查程式碼品質、安全性
判斷:
- ❓ 需要連接外部服務? 否
- ❓ 需要執行操作? 否 (只需要讀程式碼和給建議)
- ✅ 答案: Skills
為什麼?
- AI 只需要「知道」什麼是好的程式碼
- 不需要實際執行任何東西
- 只需要參考知識和範例
建立: code-review Skill ✅
例子 2: 我想要 AI 能查詢 Supabase 資料庫
需求: AI 要能執行 SQL 查詢、建立資料表
判斷:
- ❓ 需要連接外部服務? 是 (Supabase)
- ✅ 答案: MCP
為什麼?
- 需要實際連接到 Supabase
- 需要執行真實的資料庫操作
- Skills 做不到這個
建立: supabase-mcp-server ✅
例子 3: 我想要 AI 知道如何設計 RESTful API
需求: AI 要知道 API 設計的最佳實踐
判斷:
- ❓ 需要連接外部服務? 否
- ❓ 需要執行操作? 否 (只需要知識)
- ✅ 答案: Skills
為什麼?
- 只需要「教」AI 什麼是好的 API 設計
- 不需要實際建立 API
- 提供範例和檢查清單就夠了
建立: api-design Skill ✅
例子 4: 我想要 AI 能搜尋 Google
需求: AI 要能執行 Google 搜尋
判斷:
- ❓ 需要連接外部服務? 是 (Google Search API)
- ✅ 答案: MCP
為什麼?
- 需要實際呼叫 Google API
- 需要執行真實的搜尋操作
- Skills 無法做到
建立: google-search-mcp ✅
🎨 更多實際場景
Scenario 1: 「我想要 AI 寫出符合 WCAG 標準的程式碼」
分析:
- 不需要連接外部服務
- 不需要執行操作
- 只需要知道 WCAG 標準是什麼
答案: Skills (wcag-accessibility)
Scenario 2: 「我想要 AI 能發送 Email」
分析:
- 需要連接 Email 服務 (SMTP, SendGrid 等)
- 需要執行實際的發送操作
答案: MCP (email-mcp-server)
Scenario 3: 「我想要 AI 知道如何優化效能」
分析:
- 不需要連接外部服務
- 不需要執行操作
- 只需要知道效能優化的方法
答案: Skills (performance-optimization)
Scenario 4: 「我想要 AI 能讀取 ClickHouse 資料」
分析:
- 需要連接 ClickHouse 資料庫
- 需要執行實際的查詢
答案: MCP (clickhouse-mcp-server)
但是!如果你想要 AI 知道如何設計 ClickHouse 查詢: 答案: Skills (clickhouse-io) ✅
🔄 兩者結合的例子
完整的 Supabase 開發
MCP: supabase-mcp-server
- 實際連接資料庫
- 執行查詢
- 建立資料表
Skills: database-best-practices (假設)
- 教 AI 如何設計好的資料庫結構
- 提供 SQL 最佳實踐
- 檢查清單
兩者配合:
- AI 用 Skills 學習如何設計資料庫
- AI 用 MCP 實際建立資料庫
✅ 快速檢查表
問題MCPSkills需要連接外部服務?✅❌需要執行實際操作?✅❌需要讀取外部資料?✅❌只需要知識和範例?❌✅只需要檢查清單?❌✅只需要最佳實踐?❌✅
🎯 記住這個口訣
MCP = 手 (實際做事)Skills = 腦 (知道怎麼做)需要「手」→ MCP需要「腦」→ Skills兩者配合 = 完美! 🤝
💭 還是不確定?問這三個問題:
1. 「這個功能離開電腦能做嗎?」
- 能 → Skills (知識可以寫在紙上)
- 不能 → MCP (需要電腦執行)
2. 「我能用文字和範例教會別人嗎?」
- 能 → Skills
- 不能 → MCP
3. 「這需要即時資料或外部連接嗎?」
- 需要 → MCP
- 不需要 → Skills
📚 Skills 的本質
什麼是 Skills?
Skills 就是「AI 的專業知識庫」,像是給 AI 準備的「教科書」或「參考手冊」。
比喻:
- 如果 AI 是個工程師
- Skills 就是他書架上的各種專業書籍
- 需要時,他會翻開相關的書來參考
Skills 的三種類型
1. 純知識型 (方法論)
只有知識、規則、流程沒有程式碼範例例子: workflow-master- 如何設計工作流程- 如何優化流程
2. 知識 + 範例型 (最常見)
知識 + 大量程式碼範例例子: react-best-practices- React 最佳實踐 (知識)- ❌ 錯誤範例 vs ✅ 正確範例 (程式碼)- 檢查清單
3. 知識 + 工具型 (進階)
知識 + 本地腳本/資料例子: ui-ux-pro-max- UI/UX 設計知識- search.py 腳本 (搜尋設計資源)- CSV 資料庫 (調色盤、字體)
🔧 MCP 的本質
什麼是 MCP?
MCP (Model Context Protocol) 是實際可執行的工具擴充系統,包含實際可執行的函式和外部服務連接。
比喻:
- 如果 AI 是個工程師
- MCP 就是他的工具箱
- 需要時,他會拿出工具來實際操作
MCP 的功能
🔧 MCP = 實際可執行的工具AI 呼叫 MCP 來「執行」實際操作包含:- 函式 (可以執行)- 外部服務連接 (資料庫、API)
💡 好的 Skills 應該包含什麼?
✅ 必須有:
- 清晰的使用時機 - 什麼時候用這個 Skill
- 豐富的程式碼範例 - 錯誤 vs 正確對比
- 檢查清單 - 確保不遺漏重要事項
- 最佳實踐 - 業界標準做法
❌ 不要:
- 只有文字說明,沒有程式碼
- 只有正確範例,沒有錯誤對比
- 內容與其他 Skills 重複
📂 Skills 放哪裡?
全域 Skills (推薦)
位置: ~/.gemini/antigravity/skills/適合:✅ 通用方法論 (所有專案都用)✅ 技術棧知識 (React, TypeScript)✅ 產業標準 (WCAG, GDPR)例子:- code-review (所有專案都需要審查)- react-best-practices (所有 React 專案)- api-design (所有後端專案)
專案 Skills (選擇性)
位置: /your-project/.agent/skills/適合:✅ 專案特定規範✅ 領域特定知識✅ 專案特定工具例子:- your-project-guidelines- domain-specific-patterns
🎨 實際範例: Code Review Skill
# Code Review Skill## 使用時機- 完成新功能- 修復 Bug- Pull Request 審查## 安全性檢查### ❌ 錯誤: SQL Injection```typescriptconst query = `SELECT * FROM users WHERE email = '${email}'`
✅ 正確: 參數化查詢
const { data } = await supabase .from('users') .select('*') .eq('email', email)
檢查清單
- 無 SQL Injection
- 無 XSS 漏洞
- 密碼已加密
**為什麼這是好的 Skill?**- ✅ 明確的使用時機- ✅ 錯誤和正確對比- ✅ 實用的檢查清單---## 🔄 Skills vs MCP 互補關係
Skills 提供智慧和方法論 MCP 提供實際能力和工具
兩者缺一不可!
### 為什麼需要程式碼範例?
只有文字 → AI 可能理解錯誤 有範例 → AI 看到具體做法 有對比 → AI 知道什麼是錯的
❌ 錯誤範例 + ✅ 正確範例 = 最有效的學習!
---## ✨ 總結### 核心概念
Skills = AI 的參考書 MCP = AI 的工具箱
Skills 教 AI「怎麼做」 MCP 讓 AI「實際做」
兩者互補,缺一不可!
### 決策原則- **需要執行** → MCP- **需要知識** → Skills- **兩者都需要** → 同時使用!---**記住**: 當你不確定時,問自己「這需要實際執行什麼嗎?」就能找到答案! 🎯













