Claude MCP Model Context Protocol 開發教學:打造 AI 工具整合生態系(2026 完整指南)
如果你最近有在關注 AI 開發圈的動態,應該會注意到一個越來越常被提到的名詞——MCP,全稱 Model Context Protocol。這是 Anthropic 在 2024 年底發布的開放協定,目標很明確:讓 AI 模型可以用標準化的方式連接外部工具跟資料來源。說白了,就是要解決「每家工具都要自己寫一套串接邏輯」這個讓開發者頭痛的問題。
我自己在實際用了幾個月之後,覺得 MCP 真的是目前 AI Agent 開發中最值得投資學習的技術之一。今天這篇就來好好聊聊怎麼從零開始上手 MCP 開發。
MCP 到底是什麼?為什麼你該關注它
Model Context Protocol 的核心概念其實不複雜。你可以把它想成 AI 世界的「USB 接口」——不管你接的是滑鼠、鍵盤還是隨身碟,只要遵循 USB 規範,就能即插即用。MCP 做的事情類似,它定義了一套標準的通訊協定,讓 LLM 可以透過統一的介面去呼叫各種外部工具。
在 MCP 出現之前,如果你想讓 AI 能查資料庫、讀 GitHub issue、操作 Slack,你得分別寫三套完全不同的整合邏輯。現在有了 MCP,每個工具只要實作一個 MCP Server,任何支援 MCP 的 AI 客戶端都能直接使用。這對於正在研究Microsoft Agent Framework 多 Agent 架構的開發者來說,意味著工具整合的成本大幅降低。
MCP 架構解析:Client、Server 與 Transport
MCP 的架構分成三個主要角色:
- MCP Host:就是你的 AI 應用,像 Claude Desktop、VS Code 裡的 Copilot,或你自己寫的 AI Agent
- MCP Client:負責跟 Server 建立連線、管理通訊的元件,通常內建在 Host 裡面
- MCP Server:提供工具能力的服務端,每個 Server 可以暴露多個 tools、resources 跟 prompts
Transport 層目前支援兩種模式:stdio(本地程序間通訊)跟 SSE(Server-Sent Events,走 HTTP)。開發測試的時候用 stdio 比較方便,部署到生產環境通常會改用 SSE。
三大核心能力:Tools、Resources、Prompts
MCP Server 可以提供三種類型的能力:
- Tools:可執行的動作,像是「查詢資料庫」、「發送訊息」、「建立檔案」
- Resources:可讀取的資料來源,類似 REST API 的 GET endpoint
- Prompts:預定義的提示模板,讓 AI 知道在什麼情境下該怎麼使用這些工具
這三者的搭配讓 MCP Server 不只是被動的工具箱,更能主動引導 AI 正確使用自己提供的能力。這跟LLM Function Calling 的概念很像,但 MCP 把它標準化了。
實作你的第一個 MCP Server
來動手吧!我們用 TypeScript 建一個簡單的天氣查詢 MCP Server。首先初始化專案:
mkdir my-weather-mcp && cd my-weather-mcp
npm init -y
npm install @modelcontextprotocol/sdk zod建立 src/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: "weather-server",
version: "1.0.0",
});
server.tool(
"get-weather",
"取得指定城市的天氣資訊",
{ city: z.string().describe("城市名稱,例如 Taipei") },
async ({ city }) => {
// 實際開發請串接真實天氣 API
const mockData = {
city,
temperature: "26°C",
condition: "多雲時晴",
humidity: "72%",
};
return {
content: [
{ type: "text", text: JSON.stringify(mockData, null, 2) },
],
};
}
);
const transport = new StdioServerTransport();
await server.connect(transport);這段程式碼做了幾件事:建立一個 MCP Server 實例、註冊一個叫 get-weather 的 tool、用 Zod 定義輸入參數的 schema,最後透過 stdio 啟動。
連接到 Claude Desktop 測試
編譯完成後,編輯 Claude Desktop 的設定檔(macOS 在 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"weather": {
"command": "node",
"args": ["/path/to/my-weather-mcp/dist/index.js"]
}
}
}重啟 Claude Desktop,你應該就能在對話中看到天氣工具的圖示了。試著問「台北現在天氣如何?」Claude 就會自動呼叫你的 MCP Server。
進階開發模式與最佳實踐
基本的 Server 搞定之後,來聊聊幾個進階技巧。
錯誤處理與安全性
生產環境的 MCP Server 一定要做好錯誤處理。MCP SDK 提供了 McpError 類別,建議所有可預期的錯誤都用它來包裝:
import { McpError, ErrorCode } from "@modelcontextprotocol/sdk/types.js";
server.tool("query-db", "查詢資料庫", { sql: z.string() }, async ({ sql }) => {
// 輸入驗證很重要!
if (sql.toLowerCase().includes("drop") || sql.toLowerCase().includes("delete")) {
throw new McpError(ErrorCode.InvalidParams, "不允許執行破壞性 SQL 語句");
}
// ... 執行查詢
});安全性這塊跟LLM Guardrails 安全護欄的理念一致——永遠不要相信輸入,永遠要做驗證。
Resource 與動態資料
除了 Tools,善用 Resources 可以讓你的 Server 更有彈性。Resources 適合用在「讀取」場景,而且支援 URI template,讓 AI 可以動態組合查詢路徑:
server.resource(
"user-profile",
"users://{userId}/profile",
async (uri) => {
const userId = uri.pathname.split("/")[1];
const profile = await fetchUserProfile(userId);
return {
contents: [{
uri: uri.href,
mimeType: "application/json",
text: JSON.stringify(profile),
}],
};
}
);MCP 生態系與實用 Server 推薦
截至 2026 年初,MCP 生態系已經相當豐富了。官方跟社群維護的 Server 涵蓋了常見的開發場景:
- GitHub MCP Server:操作 PR、Issue、Code Review
- PostgreSQL / Supabase Server:直接查詢資料庫
- Slack / Discord Server:讀取跟發送訊息
- File System Server:安全地讀寫本地檔案
- Brave Search Server:讓 AI 能搜尋網頁
如果你在做Agentic RAG 多 Agent 架構的專案,MCP 幾乎是必備的基礎建設。每個 Agent 可以透過不同的 MCP Server 取得它需要的能力,整個系統的可維護性會好非常多。
除錯與開發技巧
最後分享幾個我踩過坑之後學到的經驗:
- 用 MCP Inspector 測試:Anthropic 提供了一個 web-based 的 Inspector 工具,可以直接測試你的 Server 回應,不需要每次都透過 Claude Desktop
- 日誌很重要:stdio 模式下不能用
console.log(會干擾通訊),改用console.error或寫入檔案 - 善用 TypeScript:MCP SDK 的型別定義非常完整,用 TypeScript 開發可以避免很多低級錯誤
- 版本管理:每次更新 Server 的能力描述,記得同步更新 version 號,讓 Client 知道有變動
總結:MCP 是 AI 工具整合的未來
回顧整篇,MCP 的核心價值就是「標準化」。它不是要取代現有的 API 或 Function Calling 機制,而是在上面加一層統一的協定,讓不同的 AI 平台跟工具可以用同一套語言溝通。
如果你正在做 AI Agent 相關的開發,我強烈建議花時間把 MCP 搞熟。特別是 2026 年越來越多企業開始導入 AI Agent,能夠快速建構 MCP Server 的開發者,在市場上絕對會很搶手。
先從官方的 quickstart 跑一遍,再試著把你手邊常用的 API 包成 MCP Server,你會發現整個 AI 應用的開發體驗完全不一樣了。