你有沒有想過,為什麼 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 能做的事情變多了。幾個安全守則一定要記住:

  1. 最小權限原則:Server 只暴露必要的工具和資料,不要把整個資料庫開放
  2. 審計日誌:記錄 AI 呼叫了哪些工具、傳了什麼參數
  3. 敏感操作加確認:刪除資料、發送訊息等動作,最好設計成需要人工確認
  4. 不要把密碼寫死在程式裡:用環境變數管理敏感資訊

常見問題

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 能把這件事變得多輕鬆。