什麼是 MCP?AI 與工具之間的「通用插座」
用白話看懂 Model Context Protocol:為什麼它正在變成 AI 應用的標準接頭。
📌 本篇文章重點
- MCP(Model Context Protocol)是 AI 應用連結外部工具的開放標準,像「AI 版的 USB-C」。
- 三個核心原語:Tool(工具)、Resource(資源)、Prompt(提示模板)。
- 讓同樣的工具不必為每個 AI 重寫一遍——寫一次,處處可用。
- 這篇會帶你架出一個最小 MCP Server 並在 3 分鐘內被 LLM 呼叫到。
一、為什麼這篇值得看?
過去每個 AI 廠商都自有一套接頭,開發者得為每個平台「各寫一個工具」。MCP 想解決的正是這種碎片化:把工具包成標準協定,任何支援 MCP 的客戶端都能插上就用。
Claude、較新的 Agent 開發框架都開始原生支援 MCP。看懂這三個原語,你就能寫出「到處能插」的 AI 工具。
二、核心概念,3 分鐘搞懂
MCP 分兩邊:Server(提供能力的一方,例如「檔案系統工具」)與Client(呼叫能力的一方,例如 Claude Desktop 或你的 Agent)。中間用 JSON-RPC 通訊。
Agent / Client ←─MCP─→ 你的 MCP Server ──→ 工具(檔案、DB、API)
三個原語:
- Tool :可被 LLM 呼叫的函式(如 create_file)
- Resource :可被讀取的資料(如 get 資料)
- Prompt :可重用的提示模板
💡 直覺
把 MCP 想成「插頭+插座」:Server 是插座,任何 Client 只要長一樣的頭,都能插。你不必再為每家 AI 重寫一遍工具。
三、動手實作:4 步寫出第一個 MCP Server
初始化專案
mkdir my-mcp && cd my-mcp
npm init -y
npm i @modelcontextprotocol/sdk
註冊一個 Tool
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: "hello-tools", version: "1.0" });
server.tool(
"greet",
"對指定的人打招呼",
{ name: z.string().describe("要打招呼的人名") },
async ({ name }) => ({ content: [{ type: "text", text: `哈囉,${name}!` }] }),
);
const transport = new StdioServerTransport();
await server.connect(transport);
測試三秒鐘
用官方測試用戶端直接呼叫工具:
node server.mjs &
npx @modelcontextprotocol/inspector node server.mjs
# 打開 Inspector,輸入 greet(name="WH"),即可看到回覆
接進支援 MCP 的客戶端
{
"mcpServers": {
"hello-tools": {
"command": "node",
"args": ["/abs/path/to/server.mjs"]
}
}
}
四、常見 MCP Server 範例
| Server | 提供能力 | 用途場景 |
|---|---|---|
| filesystem | 讀寫本機檔案 | Agent 整理專案、改設定 |
| github | Repo/Issue/PR 操作 | 開發自動化 |
| sqlite | 查詢資料庫 | 自然語言查資料 |
| slack | 發訊息 | 企業協作自動化 |
五、常見問題(FAQ)
Q1MCP 與 Function Calling 差在哪?
Function Calling 是「某個模型」的呼叫機制;MCP 是「跨模型通用的工具協議」。有了 MCP,換模型不用重寫工具。
Q2Stdio 和 HTTP 傳輸差在哪?
Stdio 走本機子行程,適合桌面工具;HTTP(Streamable HTTP Transport)走網路,適合遠端或伺服器端部署。先學 Stdio 打底即可。
Q3每個 Model 都支援 MCP 嗎?
「懂工具呼叫」是前提,再靠客戶端把 MCP 轉成該模型的工具格式。重點在客戶端(如 Claude Desktop / Agent 框架)支援即可。
總結
MCP 的三原語(Tool / Resource / Prompt)並不難,難的是你先打通「寫一個 Server → 被呼叫」的閉環。這篇的 4 步做完,你就拿到通往整套 AI 工具生態的入場券。