九號工具站
返回列表

MCP 協議進階教學 2026:讓 AI 工具彼此協作的標準化接口實作

MCP(Model Context Protocol)是 2026 年 AI 工具整合的事實標準。本文帶你從原理、架構到實作完整掌握 MCP,學會自建 MCP Server 並串接 Claude、Cursor、IDE,打造自己的 AI 工具生態。

MCP Model Context Protocol Anthropic AI Agent 進階教學 Tool Integration 2026

最後更新:2026-04-22

1. MCP 是什麼?為什麼說它是 AI 界的 USB-C

MCP(Model Context Protocol)是 Anthropic 在 2024 年底推出的開放協議,用來標準化 AI 模型與外部工具、資料來源之間的溝通方式。2026 年 MCP 已成為事實標準——Claude、Cursor、VS Code、Zed、多家 IDE 和企業平台都支援。如果你還在為每個 AI 工具各寫一套整合、或對每個 LLM 重新串接你的資料庫,就是在重複造輪子。MCP 的核心承諾:寫一次 MCP Server,所有支援 MCP 的 AI 工具都能用你的工具和資料。這就是「AI 界 USB-C」比喻的由來。

  • MCP 解決的三個痛點

    (1) N×M 整合地獄(N 個模型 × M 個工具各寫整合)(2) 每家廠商 API 規格不同 (3) 企業資料分散難被 AI 使用

  • MCP 的三大原語(Primitive)

    Tools(AI 可呼叫的函式)、Resources(AI 可讀取的檔案或資料)、Prompts(可重用的 Prompt 模板)

  • 2026 年 MCP 生態

    官方 SDK:Python、TypeScript、Go、Java、Rust。社群 MCP Server 超過 2000+(GitHub、Slack、Postgres、Figma、Blender 等)

小提示

  • MCP 採用 JSON-RPC 2.0 傳輸,概念上類似 LSP(Language Server Protocol)——學過 LSP 的人會覺得很熟悉
  • 不是所有整合都要 MCP:一次性腳本直接用 SDK 更快;長期要復用、要跨多個 AI 工具用才值得走 MCP

2. MCP 架構:Client、Server、Transport 三層

MCP 採用 Client-Server 架構。MCP Client(通常是 AI 應用或 IDE 插件)發起連線;MCP Server 提供 Tools、Resources、Prompts;中間用 Transport 層(stdio、HTTP/SSE、WebSocket)傳輸訊息。理解這三層是設計和除錯 MCP 應用的關鍵。

  • MCP Client 的角色

    AI 應用(Claude Desktop、Cursor)或自己的程式。負責連接 Server、把 Server 提供的能力轉成 AI 能理解的格式、代表 AI 呼叫工具

  • MCP Server 的角色

    你要建立的部分。提供 Tools/Resources/Prompts 給 Client 呼叫。可以是本機程序或遠端服務

  • Transport 層選擇

    stdio:本機程序最簡單、HTTP/SSE:遠端服務主流、WebSocket:雙向即時通訊。新手從 stdio 入門

  • 訊息流程

    Client 啟動 → initialize 握手 → tools/list 取得工具清單 → tools/call 呼叫工具 → 回傳結果 → AI 繼續推理

小提示

  • 除錯技巧:stdio 模式下把 stderr 輸出到檔案(stdout 被 MCP 佔用),用 tail -f 看 log 最方便
  • 遠端 MCP 用 HTTP/SSE,注意 auth 和 CORS;企業場景常用 OAuth 2.1 + PKCE

3. 實作 Step 1:建立你的第一個 MCP Server

用 Python SDK 建立最小可行 MCP Server,提供一個「查天氣」的工具。整個流程約 15 分鐘,走完你就掌握 MCP 開發全貌。

  • 環境準備

    Python 3.10+,pip install mcp[server]。開一個新資料夾 weather_mcp 當作專案

  • 骨架程式

    from mcp.server.fastmcp import FastMCP; app = FastMCP('weather')。用 @app.tool() 裝飾器定義工具

  • 定義工具

    @app.tool() def get_weather(city: str) -> str: 回傳 f'{city} 目前 25 度,多雲時晴'。型別提示會自動變成 JSON Schema

  • 啟動 Server

    if __name__ == '__main__': app.run(transport='stdio')。這就是完整 MCP Server

  • 測試

    用 mcp dev weather_mcp.py 啟動 inspector,在瀏覽器可以手動呼叫工具驗證

小提示

  • 工具的 docstring 和型別提示非常重要——AI 看這些判斷何時、怎麼呼叫你的工具
  • 回傳格式建議結構化:dict 或 Pydantic model 比純字串更可靠,AI 更容易解析

4. 實作 Step 2:接到 Claude Desktop / Cursor 使用

Server 寫好後要讓 AI 應用能用。以 Claude Desktop 和 Cursor 為例,兩者都只需修改一個設定檔,重啟後就能在對話中使用你的工具。

  • Claude Desktop 設定

    編輯 ~/Library/Application Support/Claude/claude_desktop_config.json(Mac)或 %APPDATA%\Claude(Windows)。加入 mcpServers 區塊

  • 設定檔範例

    {'mcpServers': {'weather': {'command': 'python', 'args': ['/absolute/path/to/weather_mcp.py']}}}。路徑要絕對路徑

  • Cursor 設定

    Cursor Settings → MCP → Add。填 name、command、args。支援 stdio 和 HTTP 兩種

  • 驗證連線成功

    重啟 Claude/Cursor → 看到工具圖示亮燈或在 settings 中顯示「connected」。在對話問「現在台北天氣」AI 會自動呼叫工具

  • 常見問題排查

    路徑錯(要絕對路徑)、Python 找不到(指定完整 python 路徑)、權限不足(macOS 可能要同意系統權限)

小提示

  • 企業環境常用 uv run 或 npx 直接跑而不安裝——設定 args 時寫 ['uv', 'run', 'mcp-server']
  • log 位置:Claude Desktop 在 ~/Library/Logs/Claude/、有錯先看 MCP log

5. 實作 Step 3:Resources 與 Prompts 進階功能

Tools 是 MCP 最基礎的用法,Resources 和 Prompts 才是讓你的 Server 發揮完整潛力的關鍵。Resources 讓 AI 讀取你的資料(程式碼庫、文件庫、資料庫),Prompts 讓你封裝可重用的工作流給使用者一鍵叫出。

  • Resources 設計模式

    @app.resource('file:///path/to/file') 或動態 URI 如 'db://customers/{id}'。回傳內容可以是文字、JSON、圖片 base64

  • Resources 使用情境

    企業內部 wiki 給 AI 查、程式碼庫 semantic search、資料庫查詢、日誌分析、設計檔案讀取

  • Prompts 設計模式

    @app.prompt() def code_review(language: str) 回傳預定義 Prompt 模板。使用者可在 Claude 介面直接選用

  • Prompts 適用情境

    團隊共用的 Prompt 模板、特定工作流(程式碼審查、文件摘要、bug 分析)、品牌一致的回應範本

小提示

  • Resources 的 list vs read 分兩階段:先讓 AI 列出有哪些、再只讀需要的,節省 context window
  • Prompts 最常被忽略但最有價值——企業可用它統一團隊的 AI 使用方式,避免每人 Prompt 品質差異

6. 實戰案例:建立團隊專屬的 Knowledge Base MCP Server

把前面技法整合成一個實用案例:一個能讓整個團隊查詢內部文件的 MCP Server。包含文件檢索(Tool)、文件讀取(Resource)、常用模板(Prompt)三大功能。這類 Server 在企業 AI 導入最常見,也最能顯現 MCP 價值。

  • 架構設計

    Data layer:PostgreSQL + pgvector 儲存文件 embedding。API layer:FastAPI 提供檢索。MCP layer:封裝成 MCP Server 讓 AI 使用

  • 三個 Tools

    search_docs(語意搜尋)、get_doc_by_id(取單一文件全文)、list_categories(分類瀏覽)。每個都寫清楚 docstring

  • Resources 設計

    doc://category/{cat} 列出分類下所有文件、doc://id/{id} 讀單一文件。讓 AI 能主動探索

  • Prompts 封裝

    「依本團隊規範撰寫技術文件」、「總結本週 meeting notes」等常用任務,封裝成 Prompt 供一鍵使用

  • 部署策略

    本機版給個人開發用(stdio)、雲端版給團隊用(HTTP/SSE + OAuth)、多租戶版給跨組織用(namespace 隔離)

小提示

  • 權限控制:MCP Server 必須自己處理誰能讀哪些文件,不要假設 Client 會過濾
  • 文件 chunk 大小建議 500-1000 token,太小失去上下文、太大 AI 吃不下

7. 進階議題:Security、Observability、Best Practices

MCP 上線前的三個關鍵議題:安全、可觀測性、最佳實踐。這些是把 demo 級 Server 推到生產環境的必經之路,也是讓你的 MCP Server 被信任採用的條件。

  • 安全議題

    Tool 呼叫可能被 Prompt Injection 利用(AI 被惡意網頁騙去呼叫你的 delete_user)。關鍵操作加人類確認、敏感 Tool 用 allow-list、驗證所有輸入

  • 認證與授權

    遠端 MCP 用 OAuth 2.1 + PKCE、Token 短效期 + refresh、每個工具呼叫都要檢查權限、支援 SSO 整合

  • 可觀測性

    記錄每次 tool call 的參數、結果、耗時、呼叫者。用 OpenTelemetry 整合到現有監控系統

  • 版本管理

    工具 schema 變更會破壞 Client。遵循 semver、舊版本保留一段時間、破壞性變更走 deprecation 流程

  • 效能最佳化

    長時間工具用 streaming 回傳、重複查詢加快取、批次操作支援、避免 tools/list 太龐大(>50 個工具 AI 會混亂)

小提示

  • 一個 Server 提供 5-15 個工具最理想。超過 20 個考慮拆分多個 Server 或加入 namespace
  • 2026 年最佳實踐:把 MCP Server 當成 micro-service 管理,有 CI/CD、監控、alerting、SLO

注意事項

MCP 協議仍在演進中,本文描述基於 2026 年 4 月版本,未來可能有破壞性變更。生產環境使用前請查閱 modelcontextprotocol.io 官方最新規格。涉及安全與權限的建議為通用指引,企業場景請遵循公司資安政策與法規要求。

重點整理

  • 1 MCP 是 Anthropic 推出的 AI 工具標準化協議,2026 年已成事實標準
  • 2 核心三原語:Tools(函式)、Resources(資料)、Prompts(模板)
  • 3 架構三層:Client(AI 應用)、Server(你建的)、Transport(stdio/HTTP)
  • 4 Python SDK 用 FastMCP 15 分鐘可建第一個 Server
  • 5 Claude Desktop / Cursor 改一個設定檔就能用你的 Server
  • 6 上線前三大議題:Security(Prompt Injection)、OAuth 認證、Observability
ℹ️

一般聲明

本站提供之資訊僅供參考,不保證其完整性與正確性。使用者應自行判斷資訊之適用性。

意見反饋