← 返回技術博客

MCP(Model Context Protocol)是什麼?新手也能看懂的完整指南

Cursor Settings 裡每一行 MCP 配置,都是在啟動一個獨立行程,讓 Agent 呼叫讀檔案、搜 Issue 等能力。本文從這條配置鏈路講起:三角色怎麼分工、和 Function Calling 差在哪、filesystem 怎麼五分鐘配通。

1. 先從 Cursor 裡那個 MCP 開關說起

打開 Cursor → Settings → MCP,每一行設定都是在告訴 Host:去啟動哪個本機行程,把哪些能力開放給 Agent。你加了 filesystem,Agent 才能直接 read_file;你加了 GitHub Server,它才能去搜 Issue——不是模型突然變聰明了,而是背後多了一條工具呼叫鏈路。

這條鏈路走 Model Context Protocol(MCP)。全名可以後記,先記住分工:

角色 你接觸到的形態 幹什麼
Host Cursor、Claude Desktop 聊天、排程、決定要不要調工具
Server 設定裡的 filesystemgithub 真正讀碟、調 API、跑查詢
Client Host 內建,介面上通常看不見 按 MCP 協定把 Host 和 Server 連起來

大多數人裝 MCP,只為一件事:讓 AI 存取聊天視窗以外的系統——專案檔案、工單、資料庫——而不是反覆複製貼上。下面先講為什麼這件事值得用協定來做,再拆架構細節。


2. 為什麼值得單獨搞一套協定?

大模型預設只會處理你發進對話框的內容。真實工作裡你往往還需要它:

  1. 讀你專案裡的程式碼,而不是你手動複製貼上
  2. 查公司內網文件或工單系統
  3. 執行 git commit、跑測試、調 API

過去常見做法是 Function Calling(函式呼叫):開發者在程式碼裡硬編碼一組函式,模型只能呼叫這些。問題是——

痛點 沒有 MCP 時 有 MCP 時
工具發現 每換一個 Host 要重寫整合 執行時自動發現伺服器能力列表
廠商鎖定 綁定 OpenAI / Anthropic 專有格式 開放協定,多 Host 複用同一伺服器
權限隔離 容易把 API Key 寫進提示詞 伺服器側託管憑證,模型只見工具介面
組合擴充 加一個新工具要改 Host 程式碼 設定檔裡加一行 MCP 伺服器位址即可

2025 年底 Anthropic 將 MCP 捐贈給 Agentic AI Foundation,OpenAI、Google、Microsoft 等成員共同參與。到 2026 年,MCP 已成為 AI 工具接入的事實標準之一——類似當年 REST 之於 Web API。


3. 三個角色:先認清「誰是誰」

MCP 架構裡只有三個核心角色。新手最容易混淆 HostClient,我們分開講。

3.1 Host(宿主應用程式)

你日常使用的軟體:CursorClaude DesktopVS Code + Copilot、自研 Agent 平台等。

Host 負責:展示聊天介面、呼叫大模型、決定是否把使用者任務交給 MCP。

3.2 Client(MCP 客戶端)

執行在 Host 內部的連接器,由 Host 廠商實作。一個 Host 可以同時連接多個 MCP 伺服器。

你可以把 Client 理解成 Host 裡的「MCP 驅動程式」——使用者通常看不見它。

3.3 Server(MCP 伺服器)

真正幹活的一方:暴露工具(Tools)、資源(Resources)、提示模板(Prompts)。可以是本機行程,也可以是遠端服務。

┌─────────────┐     ┌─────────────┐     ┌──────────────────┐
│    Host     │     │ MCP Client  │     │   MCP Server     │
│  (Cursor)   │────▶│  (內建)     │────▶│  (filesystem)    │
│  使用者介面  │     │  協定轉譯    │     │  讀檔案/列目錄    │
└─────────────┘     └─────────────┘     └──────────────────┘
                           │
                           ▼
                    ┌──────────────────┐
                    │   MCP Server     │
                    │  (github)        │
                    │  提 PR / 查 Issue │
                    └──────────────────┘

角色對照表

Host
你開啟的 App;負責 UX 和模型推理
Client
Host 內建;按 MCP 協定與 Server 通訊
Server
你設定的工具服務;執行具體操作

4. MCP 伺服器能暴露什麼?三大能力

4.1 Tools(工具)—— 讓 AI「動手」

最常用。每個 Tool 有名稱、描述、輸入參數 schema。模型根據描述自主選擇是否呼叫。

典型例子:

  • read_file(path) — 讀檔案
  • search_issues(query) — 搜 GitHub Issue
  • run_sql(query) — 查資料庫

Tools 是有副作用的操作(寫檔案、發請求),需要權限控制。

4.2 Resources(資源)—— 讓 AI「唯讀存取」

類似「可訂閱的資料來源」:檔案內容、API 文件、資料庫 schema。AI 可以 list / read 資源,但不一定透過 Tool 形式修改。

適合:把日誌目錄、知識庫文件暴露給模型上下文,而不每次全量貼上。

4.3 Prompts(提示模板)—— 可複用的工作流

伺服器預置的提示詞模板,帶參數。例如「程式碼審查模板」「SQL 產生模板」。

Host 可以一鍵插入,減少使用者重複寫提示詞。

能力對比

能力 是否常有副作用 典型用途 新手優先級
Tools 執行命令、寫檔案、調 API ★★★★★
Resources 否(唯讀) 暴露文件、設定、schema ★★★☆☆
Prompts 標準化審查/翻譯流程 ★★☆☆☆

5. MCP vs 外掛程式 vs Function Calling vs REST

新手常問:「我直接用 REST API 不行嗎?」可以,但場景不同。

維度 REST API Function Calling 瀏覽器外掛程式 / ChatGPT 外掛程式 MCP
協定開放性 開放 廠商專有格式 平台專有 開放標準
工具發現 需事先知道端點 編譯期寫死函式列表 商店安裝 執行時動態發現
跨 Host 複用 需各寫適配層 每個模型 SDK 不同 基本不能跨平台 同一 Server 多 Host 共用
本機工具 需自建 HTTP 服務 程式碼內嵌 受限 stdio / SSE 原生支援
適合誰 傳統後端整合 單一 App 內嵌 AI 消費級聊天產品 開發者工具鏈、Agent 生態

記憶口訣:REST 是「我知道位址就去調」;Function Calling 是「我提前告訴模型只有這幾招」;MCP 是「連上伺服器後,現場問你能幹嘛」。

~~把 MCP 當成 REST 的替代品~~ 並不準確——很多 MCP Server 內部正是封裝了 REST API,MCP 是 AI 時代的接入層,不是 HTTP 的替代品。


6. 一次完整呼叫是怎麼發生的?

以「幫我在專案裡找所有 TODO 註解」為例,簡化流程如下:

  1. 使用者在 Host 輸入任務(Cursor 聊天框)
  2. Host 把對話發給大模型,並附上已連接 MCP 伺服器的 Tools 列表(名稱 + 描述)
  3. 模型決定呼叫 search_files 工具,產生參數 { "pattern": "TODO", "path": "/project" }
  4. MCP Client 把請求發給 filesystem MCP Server
  5. Server 執行 grep / 遍歷,回傳結果 JSON
  6. 模型根據結果組織自然語言回覆,或繼續呼叫其他工具

傳輸方式(Transport)

方式 說明 常見場景
stdio 本機行程,標準輸入輸出通訊 Claude Desktop、Cursor 本機 Server
SSE / HTTP 遠端 HTTP 長連線 團隊共享的 MCP 閘道、雲端部署

本機開發用 stdio 最多:設定裡寫 command + args,Host 啟動子行程即可。


7. 你在哪裡能用到 MCP?

2026 年主流 Host 對 MCP 的支援情況:

Host MCP 支援 設定方式
Cursor ✅ 內建 Settings → MCP → 新增伺服器
Claude Desktop ✅ 原生 claude_desktop_config.json
VS Code(GitHub Copilot 等) ✅ 逐步完善 擴充功能 / 設定面板
Windsurf / Zed ✅ 或部分 各產品文件
自研 Agent ✅ SDK 接入 @modelcontextprotocol/sdk

你不需要換編輯器——在現有工具裡加設定就能擴充能力。


8. 五分鐘上手:在 Cursor 裡啟用 MCP

下面以官方 filesystem 伺服器為例(唯讀存取指定目錄)。操作路徑因版本略有差異,核心步驟一致。

8.1 前置條件

  • 已安裝 Node.js 18+
  • 明確要讓 AI 存取的目錄(建議專用工作區,不要直接開放整個使用者目錄)

8.2 新增設定

打開 Cursor → SettingsMCPAdd new global MCP server,填入類似設定:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/you/projects/my-app"
      ]
    }
  }
}

儲存後重啟 Cursor,或重新整理 MCP 連線。狀態列 / MCP 面板應顯示 filesystem 已連接。

8.3 驗證

在 Agent 模式輸入:

列出 /Users/you/projects/my-app 根目錄下的檔案,並告訴我 package.json 裡有哪些 scripts。

若模型能直接回傳目錄列表而非讓你手動貼上,說明 MCP 已生效。

常用快捷鍵

  • 開啟命令面板: + Shift + P(macOS)
  • 開啟 Cursor 設定: + ,
Claude Desktop 使用者:設定檔路徑

macOS 設定檔位於:

~/Library/Application Support/Claude/claude_desktop_config.json

結構與 Cursor 類似,同樣使用 mcpServers 欄位。修改後需完全退出 Claude Desktop 再重新開啟。


社群已有大量現成 Server,按場景分類:

類別 代表 Server 能做什麼
檔案系統 @modelcontextprotocol/server-filesystem 讀寫在允許目錄內的檔案
程式碼託管 GitHub MCP、GitLab MCP 查 Issue、讀 PR、管理儲存庫
知識庫 Notion、Confluence MCP 讀/寫頁面與資料庫
資料庫 PostgreSQL、SQLite MCP 執行唯讀或受限 SQL
搜尋 Brave Search、Fetch MCP 連網搜尋、擷取網頁
自動化 Puppeteer / Playwright MCP 瀏覽器自動化
蘋果生態 Xcode / simctl 封裝(社群) iOS 建置、模擬器控制

完整列表可在 MCP 官方儲存庫Cursor MCP 目錄 查閱。安裝前請閱讀每個 Server 的權限說明。

選型建議

  1. 先少後多:從 1–2 個唯讀 Server 開始,確認行為符合預期
  2. 生產與實驗分離:個人筆電用寬鬆設定,團隊環境用獨立機器 + 白名單目錄
  3. 需要 macOS 工具鏈(Xcode、模擬器)時,Server 必須跑在 Mac 上——可考慮 雲端 Mac mini 做 24/7 託管

10. 安全清單:別讓 AI 變成「超級管理員」

MCP 把執行力交給了模型。提示注入(惡意網頁/文件誘導模型呼叫危險工具)是真實風險。

必做四項

  1. 最小權限:filesystem 只開放專案子目錄,禁止 ~/etc
  2. 憑證隔離:API Token 放在 Server 環境變數,不要寫進聊天或設定檔並提交 Git
  3. 獨立帳戶:生產 MCP 用專用系統使用者執行,無 sudo
  4. 稽核日誌:記錄每次 Tool 呼叫與參數,便於事後追溯

風險對照

設定 風險等級 說明
唯讀 + 單專案目錄 適合日常開發
可寫 filesystem + 無路徑限制 極高 模型可能被誘導刪檔案
帶 Shell 執行權限的 Server 極高 僅應在隔離 VM / 專用機器使用
遠端 SSE + 無鑑權 極高 必須加 Token / mTLS

原則:給 AI 的權限,不應超過你會給一名初級實習生的權限。


11. 五個常見誤區

  1. 「MCP 是大模型的一種」 — 錯。MCP 是協定,與 GPT、Claude 等模型無關。
  2. 「裝了 MCP 模型就變強了」 — 錯。MCP 只擴充手和眼(工具與資料),不提升推理能力。
  3. 「MCP 只能本機用」 — 錯。stdio 適合本機,SSE/HTTP 可部署在雲端供團隊共享。
  4. 「MCP 會替代 LangChain」 — 不準確。LangChain 是編排框架,MCP 是工具接入協定,常可配合使用。
  5. 「所有 Server 都官方維護」 — 錯。社群 Server 品質參差,接入前看原始碼與權限。

12. 我該用現成的,還是自己寫一個?

你的情況 建議
只想讓 Cursor 能讀專案檔案 用官方 filesystem,5 分鐘搞定
要接公司內部 API 先用 Fetch / 自建薄封裝 Server
要接私有資料庫 + 複雜業務邏輯 用 Python/TS SDK 自寫 Server
團隊多人共享、需稽核 雲端 Mac / Linux 部署 SSE 閘道 + 統一鑑權

自寫 Server 的最小 Python 範例(概念演示):

# pip install mcp
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("hello")

@mcp.tool()
def greet(name: str) -> str:
    """向指定名字打招呼"""
    return f"Hello, {name}!"

if __name__ == "__main__":
    mcp.run()

執行後,在 Host 設定裡把 command 指向 python /path/to/server.py 即可。


13. 詞彙表

術語 英文 一句話解釋
MCP Model Context Protocol AI 應用連接工具與資料的開放協定
Host 你用的 AI 軟體(Cursor、Claude Desktop)
Server MCP Server 暴露 Tools/Resources 的工具服務
Tool 可被模型呼叫的函式,常有副作用
Resource 唯讀資料來源,如檔案、文件 URI
stdio standard I/O 本機行程通訊方式,最常見
SSE Server-Sent Events 遠端 HTTP 串流通訊方式

14. 結論:現在值得學嗎?

值得。 即便你暫時不自寫 Server,理解 MCP 也能幫你:

  • 更安全地設定 Cursor / Claude Desktop 的擴充能力
  • 與團隊對齊「AI 如何接公司內部系統」的架構語言
  • 判斷什麼時候該用 MCP、什麼時候該用傳統 API

建議路徑:

  1. 今天:在 Cursor 加一個 filesystemGitHub Server
  2. 本週:讀一個官方 Server 原始碼,理解 Tool 如何定義
  3. 有需要時:再讀 MCP 伺服器實戰部署,把 Server 部署到雲端 24/7 執行

先把 filesystemGitHub Server 配上、親眼看到 Agent 調通一次工具,比堆定義有用得多。

需要 24/7 跑私有 MCP 伺服器?

雲端 Mac mini M4 獨享裸金屬,SSH 常在線,適合 filesystem / Git / Xcode 類工具鏈

按天計費,東京、新加坡、香港節點可選——CI 與 MCP 同一台機器,TCO 更優

延伸閱讀

常見問題

MCP 和 REST API 有什麼本質區別?

REST API 像固定菜單:客戶端必須事先知道每個端點。MCP 在執行時向伺服器發現可用工具再決定呼叫——Agent 無需改程式即可接入新能力。

我不會寫程式,能用 MCP 嗎?

可以。在 Cursor、Claude Desktop 等 Host 裡新增現成 MCP 伺服器(filesystem、GitHub、Notion),用自然語言描述任務即可。只有自建私有工具時才需要寫程式。

MCP 安全嗎?會不會讓 AI 隨便刪我電腦上的檔案?

風險取決於啟用的伺服器與權限範圍。filesystem 應限制在特定目錄;生產環境建議獨立帳戶、最小權限、稽核日誌。詳見正文「安全清單」。

MCP 和 ChatGPT 外掛是一回事嗎?

不是。ChatGPT 外掛是 OpenAI 專有接入;MCP 是捐贈給 Agentic AI Foundation 的開放協議,Cursor、Claude Desktop、VS Code 等均可使用,且可自託管。

學 MCP 之前需要先懂 AI Agent 嗎?

不需要。會聊天、會在 Cursor 裡改設定,就足夠跟著本文把 filesystem Server 配通。Agent 編排是下一步的事。

限時優惠 →