MCP 完整教學 2026:什麼是 Model Context Protocol?從架構、三大原語到 Python 實作第一個 MCP Server 的權威指南

MCP(Model Context Protocol)是 Anthropic 在 2024 年底開源的開放標準,讓 AI 應用(Claude、ChatGPT、Cursor)透過統一介面連接資料庫、檔案、API 等外部系統,被譽為「AI 界的 USB-C」。本文用 15 行程式碼帶你實作第一個 MCP Server,完整解析 Host/Client/Server 架構、Tools/Resources/Prompts 三大原語、stdio 與 Streamable HTTP 傳輸差異、2026 生態系採用數據與企業安全最佳實踐。

  • Dennis
  • 7 分鐘閱讀
MCP 完整教學 2026:什麼是 Model Context Protocol?從架構、三大原語到 Python 實作第一個 MCP Server 的權威指南

MCP(Model Context Protocol)是讓 AI 應用連接外部工具與資料的開放標準,像「AI 界的 USB-C」:一次開發、處處可用,Claude、ChatGPT、Cursor 都支援,2026 年已是 AI 代理開發的必學基礎。

如果你在 2026 年還不知道 MCP,那你大概錯過了 AI 開發領域最重要的基礎建設之一。這個由 Anthropic 在 2024 年底開源的協定,只花了不到兩年就變成整個 AI 生態系的「共同語言」——OpenAI 在 2025 年 3 月宣布支援、Google Gemini 與 Microsoft Copilot 跟進、官方 Registry 已有近萬個伺服器記錄。這篇文章用最白話的方式,帶你從零搞懂 MCP:它解決什麼問題、架構長怎樣、三大原語是什麼,最後用 Python 實作第一個 MCP Server。

為什麼需要 MCP?先看 AI 整合的碎片化噩夢

在 MCP 出現之前,把 AI 模型接到外部系統是場噩夢。假設你的公司有三個 AI 平台(Claude、ChatGPT、Gemini)和三個系統(資料庫、CRM、檔案庫):

  • 把 ChatGPT 接到 CRM?要寫一個 ChatGPT 專屬 plugin。
  • 同一套功能搬到 Claude?全部重寫。
  • Gemini 又是另一套做法。

這就是經典的 N×M 整合問題:每個「模型 × 工具」組合都要一套客製化 glue code(膠水程式碼)、schema、錯誤處理。系統越多,複雜度爆炸式成長,開發慢、bug 多、維護成本高。

MCP 的解法很簡單:把「模型」和「工具」中間的介面標準化。就像 USB-C 統一了充電與傳輸介面——不管哪個裝置,插上就能用。模型端只要支援 MCP,就能連接任何 MCP Server;工具端只要做成 MCP Server,就能服務任何支援 MCP 的 AI 應用。一次開發,多處複用,N×M 直接變成 N+M。

MCP 核心架構:Host / Client / Server 三層

flowchart LR
    H[Host<br/>AI 應用<br/>Claude Desktop / Cursor / ChatGPT]
    C1[MCP Client 1]
    C2[MCP Client 2]
    S1[MCP Server A<br/>本地 檔案系統<br/>stdio]
    S2[MCP Server B<br/>本地 資料庫<br/>stdio]
    S3[MCP Server C<br/>遠端 Sentry<br/>Streamable HTTP]
    H --> C1
    H --> C2
    C1 <--> S1
    C1 <--> S2
    C2 <--> S3

MCP 採用典型的 client-server 架構,三個角色各司其職:

角色是什麼職責
Host(主機)AI 應用本身,如 Claude Desktop、Claude Code、Cursor、ChatGPT啟動並管理多個 MCP Client,整合工具與資料,決定何時呼叫工具
Client(客戶端)Host 內部的連接元件與每個 MCP Server 建立一對一的專屬連線,負責安全通訊、發送請求
Server(伺服器)真正接觸資料與 API 的程式向 AI 暴露 Tools / Resources / Prompts,執行模型的要求

一個 Host 可以同時連接多個 Server——本地 Server(如檔案系統、資料庫,走 stdio)與遠端 Server(如 Sentry、GitHub,走 Streamable HTTP)可以混用。所有訊息走 JSON-RPC 2.0 格式,不管底層用什麼傳輸方式,協定表面都一致。

三大核心原語:Tools / Resources / Prompts

MCP 定義了三種 Server 可以暴露給 AI 的「原語」(Primitives),理解這三個就掌握了 MCP 的精髓:

原語是什麼比喻實際例子
Tools(工具)模型可以執行的函數AI 的手查詢資料庫、發送 API 請求、建立工單
Resources(資源)模型可以讀取的資料AI 的眼睛檔案內容、資料庫 schema、API 回應
Prompts(提示模板)預先定義的互動工作流AI 的 SOP系統提示詞、few-shot 範例、標準作業流程

一個資料庫 MCP Server 的典型設計:用 Tools 讓模型執行 SQL 查詢、用 Resources 暴露資料庫 schema 給模型參考、用 Prompts 提供「如何用這些工具」的示範對話。Client 透過 tools/listresources/list 等方法動態發現能力,所以 Server 的功能可以隨時擴充。

💡 2026-07-28 最新版規格還加入了客戶端原語:Elicitation(Server 主動向使用者追問資訊、請求確認,取代已棄用的 Sampling)。新版規格也棄用了舊的 Logging 原語,建議改用 stderr 或 OpenTelemetry。

傳輸方式:stdio vs Streamable HTTP

MCP 的傳輸層(Transport)決定 Server 與 Client 之間怎麼「講話」:

特性stdioStreamable HTTP
適用場景本機開發、桌面應用、CLI遠端部署、SaaS 服務
運作方式透過標準輸入/輸出流直接通訊HTTP POST + 可選 SSE 串流
網路開銷零(同機器進程間)有(需 HTTPS)
認證不需要(本機信任)OAuth 2.1 / Bearer token / API key
典型連線數一個 Client 對一個 Server多個 Client 對一個 Server

Streamable HTTP 已取代舊版 HTTP+SSE 傳輸(2024-11-05 規格),但保持向下相容。實務上:本機開發一律用 stdio(Client 直接把 Server 當子進程啟動),要上線給多人用才部署 Streamable HTTP。

Python 實戰:15 行寫出第一個 MCP Server

理論講完,直接動手。用官方 MCP Python SDK v2(目前穩定版,支援 2026-07-28 規格,需 Python 3.10+):

# 安裝(含 CLI 工具)
pip install "mcp[cli]"
# 或用 uv
uv add "mcp[cli]"

建立 server.py,一個完整的 MCP Server 只要 15 行:

from mcp.server import MCPServer

mcp = MCPServer("Demo")


@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers."""
    return a + b


@mcp.resource("greeting://{name}")
def greeting(name: str) -> str:
    """Greet someone by name."""
    return f"Hello, {name}!"

@mcp.tool() 註冊工具、@mcp.resource() 註冊資源,就完成了!啟動並用官方 Inspector 除錯工具測試:

uv run mcp dev server.py

進階範例:SQLite 查詢工具

實務上更常見的用法是讓 AI 直接查資料庫。以下範例把 SQLite 查詢包成一個 tool:

import sqlite3
from mcp.server import MCPServer

mcp = MCPServer("SQLite Helper")


@mcp.tool()
def query_sales(sql: str) -> list:
    """Execute a read-only SQL query on the sales database."""
    conn = sqlite3.connect("sales.db")
    conn.row_factory = sqlite3.Row
    cur = conn.execute(sql)
    rows = [dict(r) for r in cur.fetchall()]
    conn.close()
    return rows

連到 Claude Code 與 Cursor

Server 寫好後,在 AI 工具的設定檔註冊即可:

Claude Code~/.claude.json 或專案 .mcp.json):

{
  "mcpServers": {
    "sqlite": {
      "command": "/path/to/venv/bin/python",
      "args": ["/path/to/server.py"]
    }
  }
}

Cursor~/.cursor/mcp.json):

{
  "mcpServers": {
    "sqlite": {
      "command": "/path/to/venv/bin/python",
      "args": ["/path/to/server.py"]
    }
  }
}

⚠️ 三個關鍵踩坑提醒

  1. 一定要用絕對路徑指定 Python 直譯器與腳本位置,相對路徑在子進程啟動時常常找不到。
  2. stdio 模式下 log 一律寫 stderr,千萬不要 print() 到 stdout——會破壞 JSON-RPC 訊息協定,讓 Client 直接斷線。
  3. 設定後 Cursor 會顯示綠色狀態點、Claude Desktop 會出現 tools 圖示,每次工具呼叫前都要使用者批准。

2026 生態系現況:MCP 已經不是「未來」

MCP 的採用數據在 2026 年已經非常扎實:

指標數據來源
企業生產環境採用率41%(軟體業受訪者已 limited/broad production)Stacklok《State of MCP in Software 2026》
官方 Registry 伺服器記錄9,652 筆最新版、28,959 筆含歷史版本(2026-05 快照)MCP Registry API
每月 SDK 下載量9,700 萬次以上(Python + TypeScript)Anthropic 2025-12 生態系更新
GitHub mcp-server 主題倉庫15,926 個GitHub Search API

各大平台支援現況:

平台MCP 支援
Claude / Claude Desktop原生支援(MCP 發源地),官方參考伺服器齊全
OpenAI / ChatGPT2025-03 起 Agents SDK、Responses API、ChatGPT 桌面版全面支援,並加入 MCP 指導委員會
Google Gemini / Vertex AIGemini SDK 支援 MCP tools 自動呼叫循環
Microsoft Copilot Studio可透過 Streamable 傳輸連接既有 MCP Server
GitHub官方 GitHub MCP Server(2025-04 公開預覽)
VercelAI SDK 內建 MCP client 路徑,支援部署 MCP Server

企業部署的安全挑戰

工具能力越強,安全責任越大。MCP 的動態工具呼叫模型帶來幾個獨特威脅:

  • 工具中毒(Tool Poisoning):攻擊者用惡意撰寫的工具描述誘騙模型做出不該做的事。
  • 間接提示注入(Prompt Injection):惡意文件或網頁內容夾帶隱藏指令,讓代理在執行任務時「被劫持」——OpenAI 自己都承認這個問題「不太可能被徹底解決」。

企業部署建議遵循以下原則:

  1. 零信任(Zero Trust):Never trust, always verify。每個請求都重新驗證授權,不只登入時驗一次。
  2. 最小權限:Server 只暴露必要的工具。與其給「全資料庫管理」,不如給「query_sales_data」這種窄範圍、帶參數限制與速率限制的工具。
  3. 即時權限授予(JIT):不給常駐權限,需要時才發放短期、限時、限用途的存取憑證。
  4. 閘道集中管控:企業內所有 MCP 連線走單一閘道,統一執行 OAuth 2.1 認證、工具級 RBAC 與呼叫級審計日誌,才能滿足 SOC 2 / 合規稽核。

總結

MCP 之於 AI 代理,就像 USB-C 之於消費電子——它把「AI 連外部世界」這件事標準化了。對開發者來說,學會寫 MCP Server 等於拿到一張「一次開發、所有 AI 都能用」的入場券;對企業來說,MCP 是讓 AI 從聊天機器人升級為真正能做事之員工的關鍵基礎設施。

下一步可以從官方 Registry 找現成 Server 裝來玩,或參考我們先前介紹的 MCP Router 開源路由器,用一個 Server 同時代理多個後端工具;對 MCP 安全性有興趣的讀者,可以看這篇企業 API 整合 MCP 難度分析

延伸閱讀

資料來源

📬 訂閱 most.tw 電子報

每週精選 AI 工具教學與技術乾貨,直接送到你的信箱。免費、隨時可退訂。