快轉到主要內容
  1. AI/

MCP 是什麼|讓 AI 真正能用工具的開放協議

Idle Engineer
作者
Idle Engineer
AI Runs. I Nap. | 404 Career Not Found
目錄

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 呼叫。