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 | 設定裡的 filesystem、github 等 |
真正讀碟、調 API、跑查詢 |
| Client | Host 內建,介面上通常看不見 | 按 MCP 協定把 Host 和 Server 連起來 |
大多數人裝 MCP,只為一件事:讓 AI 存取聊天視窗以外的系統——專案檔案、工單、資料庫——而不是反覆複製貼上。下面先講為什麼這件事值得用協定來做,再拆架構細節。
2. 為什麼值得單獨搞一套協定?
大模型預設只會處理你發進對話框的內容。真實工作裡你往往還需要它:
- 讀你專案裡的程式碼,而不是你手動複製貼上
- 查公司內網文件或工單系統
- 執行
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 架構裡只有三個核心角色。新手最容易混淆 Host 和 Client,我們分開講。
3.1 Host(宿主應用程式)
你日常使用的軟體:Cursor、Claude Desktop、VS 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 Issuerun_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 註解」為例,簡化流程如下:
- 使用者在 Host 輸入任務(Cursor 聊天框)
- Host 把對話發給大模型,並附上已連接 MCP 伺服器的 Tools 列表(名稱 + 描述)
- 模型決定呼叫
search_files工具,產生參數{ "pattern": "TODO", "path": "/project" } - MCP Client 把請求發給 filesystem MCP Server
- Server 執行 grep / 遍歷,回傳結果 JSON
- 模型根據結果組織自然語言回覆,或繼續呼叫其他工具
傳輸方式(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 → Settings → MCP → Add 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 再重新開啟。
9. 熱門 MCP 伺服器一覽
社群已有大量現成 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–2 個唯讀 Server 開始,確認行為符合預期
- 生產與實驗分離:個人筆電用寬鬆設定,團隊環境用獨立機器 + 白名單目錄
- 需要 macOS 工具鏈(Xcode、模擬器)時,Server 必須跑在 Mac 上——可考慮 雲端 Mac mini 做 24/7 託管
10. 安全清單:別讓 AI 變成「超級管理員」
MCP 把執行力交給了模型。提示注入(惡意網頁/文件誘導模型呼叫危險工具)是真實風險。
必做四項
- 最小權限:filesystem 只開放專案子目錄,禁止
~、/etc - 憑證隔離:API Token 放在 Server 環境變數,不要寫進聊天或設定檔並提交 Git
- 獨立帳戶:生產 MCP 用專用系統使用者執行,無
sudo - 稽核日誌:記錄每次 Tool 呼叫與參數,便於事後追溯
風險對照
| 設定 | 風險等級 | 說明 |
|---|---|---|
| 唯讀 + 單專案目錄 | 低 | 適合日常開發 |
| 可寫 filesystem + 無路徑限制 | 極高 | 模型可能被誘導刪檔案 |
| 帶 Shell 執行權限的 Server | 極高 | 僅應在隔離 VM / 專用機器使用 |
| 遠端 SSE + 無鑑權 | 極高 | 必須加 Token / mTLS |
原則:給 AI 的權限,不應超過你會給一名初級實習生的權限。
11. 五個常見誤區
- 「MCP 是大模型的一種」 — 錯。MCP 是協定,與 GPT、Claude 等模型無關。
- 「裝了 MCP 模型就變強了」 — 錯。MCP 只擴充手和眼(工具與資料),不提升推理能力。
- 「MCP 只能本機用」 — 錯。stdio 適合本機,SSE/HTTP 可部署在雲端供團隊共享。
- 「MCP 會替代 LangChain」 — 不準確。LangChain 是編排框架,MCP 是工具接入協定,常可配合使用。
- 「所有 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
建議路徑:
- 今天:在 Cursor 加一個 filesystem 或 GitHub Server
- 本週:讀一個官方 Server 原始碼,理解 Tool 如何定義
- 有需要時:再讀 MCP 伺服器實戰部署,把 Server 部署到雲端 24/7 執行
先把 filesystem 或 GitHub 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 編排是下一步的事。