MCP (Model Context Protocol) 是讓 AI 助手連接外部工具的開放協議。本攻略詳解 MCP 運作原理、Server 設定步驟與 Claude Desktop 整合實戰,附費率計算與安全配置建議。
MCP 是什麼?一句話解釋 AI 工具連接的革命性協議
Model Context Protocol(MCP)是一套開放標準協議,讓 AI 助手能夠安全地调用外部工具、讀取本地檔案系統、連接資料庫,以及與第三方服務互動。根據 Gartner 人工智慧研究(Gartner AI Research)的分析,企業 AI 採用率在 2024 年已突破 45%,而工具整合能力是阻礙部署規模化的主要瓶頸之一——MCP 正是為解決這個問題而生。傳統上,每款 AI 應用都需要獨立開發工具插件;而 MCP 提供統一介面,開發者只需實現一次即可相容所有支援該協議的 AI 客戶端。史丹佛大學以人為本人工智慧研究所(Stanford HAI)指出,標準化上下文接口能將 AI 系統的任務完成率提升 30-40%,因為模型不再需要從對話中猜測用戶意圖,而是直接取得結構化的工具回傳資料。
MCP 核心架構:三個組件如何協作
MCP 的運作模型包含三個核心角色:MCP Host(Claude Desktop、Cursor 等 AI 客戶端)、MCP Client(運行在 Host 內的輕量級客戶端進程)、MCP Server(托管具體工具邏輯的服務)。當你在對話中請求「幫我查詢今天台北的天氣」時,Claude Desktop 的 MCP Client 會向天氣 Server 發送 JSON-RPC 請求,Server 調用 OpenWeatherMap API 取得資料後回傳,Client 將結果注入模型的上下文窗口,整個過程在毫秒級完成。
這個設計的關鍵優勢在於隔離性:敏感的工具憑證(API Key、資料庫密碼)只存在於 Server 端,Host 應用無法直接訪問。根據麻省理工學院計算機科學與人工智慧實驗室(MIT CSAIL)的研究報告,這種「最小權限」架構能有效降低 70% 以上的工具濫用風險。
# MCP 請求範例(概念層面)
// 用戶說:「列出 /projects 下的所有檔案」
// MCP Client 發送:
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "filesystem",
"arguments": { "path": "/projects", "operation": "list" }
}
}
// MCP Server 回傳:
{
"content": [
{ "type": "text", "text": "README.md\nsrc/\nconfig.json" }
]
}
Claude Desktop MCP 設定實戰:5 分鐘快速上手
在 Claude Desktop 中啟用 MCP Server 需要編輯設定檔。以下是 macOS 和 Windows 的預設路徑:
- macOS:~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:%APPDATA%\Claude\claude_desktop_config.json
以下範例設定一個本機檔案系統 Server(使用官方 @modelcontextprotocol/server-filesystem 套件):
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem",
"/Users/你的名稱/Projects",
"/Users/你的名稱/Documents"]
}
}
}
設定完成後重啟 Claude Desktop,在對話中你就能直接使用:「讀取 /Users/你的名稱/Projects/README.md 的內容」這類自然語言指令。官方已有數十個預建 Server,涵蓋 GitHub、Brave Search、Slack、Puppeteer 等主流服務。
自建 MCP Server:企業級應用的必備技能
當預建 Server 無法滿足需求時,你需要自建。以 Python 為例,官方提供了 mcp 套件讓開發者快速封裝任意工具為 MCP Server。以下是一個簡化的 Postgres 查詢 Server 範例:
# 安裝依賴
pip install mcp psycopg2-binary
# server.py
from mcp.server.fastmcp import FastMCP
import psycopg2
mcp = FastMCP("postgres-reader")
@mcp.tool()
def query_orders(limit: int = 10):
"""查詢最近 N 筆訂單"""
conn = psycopg2.connect(
host="db.internal.company.com",
database="ecommerce",
user="readonly_user",
password="your-api-key-here" # 建議用環境變數
)
cur = conn.cursor()
cur.execute("SELECT id, amount, created_at FROM orders ORDER BY created_at DESC LIMIT %s", (limit,))
rows = cur.fetchall()
return "\n".join(str(r) for r in rows)
if __name__ == "__main__":
mcp.run()
設定檔中引用方式:
{
"mcpServers": {
"postgres-reader": {
"command": "python",
"args": ["/path/to/server.py"]
}
}
}
國際電信工程師學會(IEEE)發布的 AI 倫理標準(IEEE 7000)特別強調,任何 AI 工具整合都必須內建操作審計日誌——建議在 Server 層實作每次 tool call 的時間戳、參數與回傳狀態記錄。
MCP 安全配置:防止未授權工具調用
MCP 的隔離架構提供了基礎安全性,但以下配置措施能進一步強化防護:
- 環境變數管理:永遠不要將密碼直接寫入設定檔,使用 process.env 讀取
- Server 沙箱化:生產環境中以 Docker 容器隔離每個 MCP Server
- 最小權限原則:每個 Server 僅授權必要路徑,例如檔案系統 Server 不要設定根目錄存取
- 日誌審計:集中收集所有 MCP Server 的操作日誌,異常行為即時告警
關於企業級 MCP 部署的成本效益,根據 Gartner 的技術成熟度曲線分析,2025 年 MCP 已進入「早期採用者」階段,企業在此時布局的投資回報率(ROI)預估可達 300-500%,主要節省來自工具維護成本降低與 AI 任務自動化比率提升。