你有沒有想過,為什麼 ChatGPT 或 Claude 能幫你寫程式,卻沒辦法直接幫你讀資料庫、操作 GitHub、或是查公司內部的 API 文件?
答案很簡單:AI 被關在一個沒有工具的房間裡。 它能說會寫,但什麼都碰不到。
MCP(Model Context Protocol)的出現,就是為了打破這道牆。
MCP 是什麼?一句話解釋
MCP 是讓 AI 應用程式「安全地」連接外部工具和資料來源的標準協定。
你可以把它想像成 AI 世界的 USB 協定。就像 USB 讓你的電腦能接上滑鼠、鍵盤、隨身碟——MCP 讓你的 AI 助理能接上資料庫、檔案系統、API、以及任何你寫的服務。
重點是「標準」。以前每家 AI 平台都有自己的插件格式,寫一個工具得針對不同平台各做一次。MCP 統一了這件事:寫一次,到處能用。
為什麼 2026 年每個開發者都該認識 MCP?
1. AI 工具整合的需求爆發
從 Cursor、Windsurf 到 Claude Desktop,越來越多開發工具把 AI 放進工作流程。但 AI 如果只能「看」你貼給它的文字,能力就非常有限。MCP 讓 AI 能主動去撈資料、呼叫 API,等於從「被動顧問」升級成「主動執行者」。
2. 標準化帶來的生態系效應
Anthropic 在 2024 年底開源 MCP 後,社群快速跟進。GitHub、Slack、Postgres、Notion……主流服務的 MCP Server 一個個冒出來。當生態系成形,你不需要自己造輪子,裝一個現成的 Server 就能用。
3. 企業級的安全考量
MCP 的設計從一開始就考慮了權限控管。Server 端可以定義哪些工具可以被呼叫、哪些資料可以存取,Client 端(也就是 AI 應用)必須明確請求權限。這比「把 API Key 直接塞進 prompt」安全太多了。
MCP 的架構:三個角色搞懂就夠了
MCP 的世界裡有三個關鍵角色:
MCP Host(宿主)
就是你用的 AI 應用,例如 Claude Desktop、Cursor、或你自己開發的 AI 產品。Host 負責管理連線、控制權限。
MCP Client(客戶端)
住在 Host 裡面,負責跟 Server 建立連線、傳送請求、接收結果。一個 Host 可以同時跑多個 Client,連到不同的 Server。
MCP Server(服務端)
你寫的、或社群提供的服務。Server 暴露三種東西給 AI:
- Tools(工具):可以執行的動作,例如「查資料庫」、「發 Slack 訊息」
- Resources(資源):可以讀取的資料,例如「一份 API 文件」、「一個設定檔」
- Prompts(提示模板):預先定義好的 prompt 範本,方便重複使用
整個流程長這樣:
使用者輸入 → Host(AI 應用) → Client 發出 MCP 請求 → Server 執行工具/回傳資料 → AI 整合結果回覆使用者
動手做:5 分鐘寫一個 MCP Server
理論說完了,來寫程式。以下用 TypeScript 示範一個最簡單的 MCP Server——回報系統資訊。
Step 1:初始化專案
mkdir my-first-mcp-server && cd my-first-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk zod
Step 2:寫 Server 程式碼
建立 index.ts:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({
name: "system-info",
version: "1.0.0",
});
// 註冊一個工具:取得系統資訊
server.tool(
"get_system_info",
"取得目前系統的基本資訊",
{},
async () => {
const info = {
platform: process.platform,
nodeVersion: process.version,
uptime: `${Math.floor(process.uptime() / 60)} 分鐘`,
memoryUsage: `${Math.round(process.memoryUsage().heapUsed / 1024 / 1024)}MB`,
};
return {
content: [{ type: "text", text: JSON.stringify(info, null, 2) }],
};
}
);
// 啟動 Server
const transport = new StdioServerTransport();
await server.connect(transport);
Step 3:編譯並測試
npx tsc index.ts --esModuleInterop --module nodenext --moduleResolution nodenext
node index.js
如果你看到程式在等待輸入,恭喜——你的 MCP Server 已經在跑了。它透過 stdio(標準輸入輸出)跟 Client 溝通,這是 MCP 最常見的傳輸方式。
Step 4:接到 Claude Desktop
在 Claude Desktop 的設定檔 claude_desktop_config.json 加入:
{
"mcpServers": {
"system-info": {
"command": "node",
"args": ["/完整路徑/my-first-mcp-server/index.js"]
}
}
}
重啟 Claude Desktop,你就能在對話中叫 AI 幫你查系統資訊了。
實際應用場景:MCP 能幫你做什麼?
🗄️ 資料庫操作
裝一個 PostgreSQL MCP Server,AI 就能直接幫你查表、寫 query、甚至做資料分析。不用再複製貼上 SQL 結果。
📁 檔案系統存取
讓 AI 直接讀寫你本機的檔案。開發時請 AI 幫你重構一整個專案?它可以自己讀檔、改檔、存檔。
🔗 API 整合
自己寫一個 MCP Server 包裝公司內部 API,AI 就能直接呼叫。例如「幫我查上個月的銷售數字」,AI 直接打 API 拿資料。
📝 知識庫查詢
把 Notion、Confluence 或內部 Wiki 接上 MCP,AI 能即時查詢最新文件,不再受限於訓練資料的截止日期。
安全提醒:權力越大,責任越大
MCP 很強大,但也代表 AI 能做的事情變多了。幾個安全守則一定要記住:
- 最小權限原則:Server 只暴露必要的工具和資料,不要把整個資料庫開放
- 審計日誌:記錄 AI 呼叫了哪些工具、傳了什麼參數
- 敏感操作加確認:刪除資料、發送訊息等動作,最好設計成需要人工確認
- 不要把密碼寫死在程式裡:用環境變數管理敏感資訊
常見問題
MCP 跟 OpenAI 的 Function Calling 有什麼不同?
Function Calling 是單一平台的解決方案,你只能在 OpenAI 的生態系裡用。MCP 是跨平台標準,寫一個 Server 可以同時給 Claude、Cursor、或其他支援 MCP 的應用使用。
MCP 只能用 stdio 嗎?
不是。stdio 是最常見的本地傳輸方式,但 MCP 也支援 HTTP/SSE 遠端傳輸,適合部署在伺服器上的場景。
我需要會寫 TypeScript 嗎?
TypeScript/JavaScript 是目前 SDK 最成熟的,但 Python、Go、Rust 的 SDK 也在快速發展。選你最順手的語言就好。
結語:從聊天到行動
MCP 代表的是 AI 發展的一個重要轉折:從「只能說」到「能做事」。
過去我們跟 AI 聊天,它只能給建議。有了 MCP,AI 能直接幫你執行動作、查詢資料、操作工具。這不是小改進,而是使用方式的根本改變。
如果你還沒試過 MCP,今天就是最好的起點。從一個簡單的 Server 開始,你會發現 AI 助理的能力邊界,瞬間被拉開了好幾倍。
下一步行動:挑一個你日常最常重複的操作,試著把它包成一個 MCP Server。你會驚訝於 AI 能把這件事變得多輕鬆。