TL;DR | 面試情境模擬 #
👴 面試官:什麼是 MCP?解決了什麼問題?
🧑💻 你:MCP(Model Context Protocol)是 Anthropic 在 2024 年底發布的開放協議,解決 AI 接入外部工具的整合碎片化問題。過去每個 AI 平台接 GitHub、資料庫、Slack 都要各自實作,MCP 定義了統一的介面標準——只要工具實作了 MCP Server,任何支援 MCP 的 AI(Claude、Cursor、Windsurf 等)都能直接使用,不需要重複整合。
比喻:USB 標準 #
在 USB 之前,每個裝置都有自己的接頭,鍵盤、滑鼠、隨身碟各用各的。USB 定義了統一標準後,任何裝置只要符合 USB 規格,就能插在任何電腦上。
MCP 就是 AI 工具世界的 USB:
- MCP Server:你的工具(GitHub、資料庫、Figma、Slack)
- MCP Client:支援 MCP 的 AI 應用(Claude Desktop、Cursor、Windsurf)
- MCP 協議:定義兩者如何溝通的標準
MCP 的三個核心能力 #
1. Tools(工具調用) #
讓 AI 執行操作:讀寫檔案、呼叫 API、執行程式碼。
使用者:「幫我看一下 GitHub PR #123 有什麼 comment」
AI → MCP Server(GitHub)→ 呼叫 GitHub API
→ 回傳 PR comments
AI → 彙整後回答使用者
2. Resources(資源讀取) #
讓 AI 讀取結構化資料:資料庫查詢結果、文件內容、API 回應。
AI 可以讀取:
- 本地檔案系統
- 資料庫記錄
- 網頁內容
- 雲端文件(Google Docs、Notion)
3. Prompts(提示模板) #
Server 提供預定義的 Prompt 模板,讓 AI 按照特定格式處理任務。
MCP 架構 #
使用者
│
▼
MCP Client(Claude Desktop / Cursor)
│
├── MCP Server A(Filesystem)── 讀寫本地檔案
├── MCP Server B(GitHub)────── GitHub API
├── MCP Server C(PostgreSQL)── 查詢資料庫
└── MCP Server D(Slack)──────── 發送訊息
每個 Server 獨立運作,Client 統一管理所有 Server 的連線。
目前支援 MCP 的工具 #
AI Client(支援呼叫 MCP Server):
- Claude Desktop(Anthropic)
- Cursor、Windsurf(AI 編輯器)
- Zed(編輯器)
常用 MCP Server:
- Filesystem(讀寫本地檔案)
- GitHub(PR、Issue、Code review)
- PostgreSQL / SQLite(資料庫查詢)
- Brave Search(網路搜尋)
- Figma(設計稿讀取)
- Slack、Linear、Notion(各種 SaaS 工具)
自己寫 MCP Server #
MCP Server 可以用任何語言實作,官方有 TypeScript 和 Python SDK:
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
const server = new Server({ name: "my-tool", version: "1.0.0" });
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "get_weather",
description: "取得指定城市的天氣",
inputSchema: {
type: "object",
properties: { city: { type: "string" } }
}
}]
}));
💡 延伸問題 #
Q1:MCP 和 OpenAI Function Calling 有什麼差別? #
Function Calling 是 OpenAI 的私有功能,只在 OpenAI API 裡用。MCP 是開放標準,任何 AI 和任何工具都可以實作。MCP 更像基礎設施,Function Calling 更像特定模型的功能。
Q2:MCP 安全嗎?可以信任 MCP Server 嗎? #
MCP Server 有讀寫本地檔案、執行程式碼的能力,使用第三方 MCP Server 需要謹慎。Anthropic 建議只安裝來自可信來源的 Server,並且了解每個 Server 的權限範圍。
Q3:MCP 和 LangChain 的 Tools 有什麼關係? #
LangChain Tools 是框架層面的工具整合,每個框架各自實作。MCP 是更底層的協議標準,框架可以在 MCP 之上構建。兩者可以共存,MCP Server 也可以被 LangChain 呼叫。