Skip to main content

MCP 協定入門教學——讓 AI Agent 連接你的開發工具鏈

· 閱讀時間約 11 分鐘
Felo AI
Operations

MCP 協定教學——Model Context Protocol 的運作原理、安裝設定、常見串接場景,讓 Claude Code 連接資料庫、瀏覽器和外部 API。

你跟 Claude Code 說「幫我查一下資料庫裡有多少活躍使用者」,它回你「我沒辦法直接存取你的資料庫,請你手動執行 SQL 查詢後把結果貼給我」。

你跑去 psql 執行查詢、複製結果、貼回來。Claude 分析完,又說「能不能看一下最近 7 天的趨勢?」你再跑一次。

這個來回複製貼上的過程,就是 MCP 要解決的問題。

Model Context Protocol(MCP)是 Anthropic 推出的開放協定,讓 AI agent 能直接串接外部工具和資料來源。裝了 MCP 伺服器之後,Claude Code 可以自己查資料庫、自己操作瀏覽器、自己呼叫 API——不需要你當中間人。


MCP 是什麼?用一個比喻說明

把 AI 想像成一個很厲害的廚師。它能做出各種料理,但它被關在廚房裡,看不到外面的食材倉庫。

沒有 MCP 的時候,你是服務生——跑去倉庫拿食材(查資料庫)、帶回廚房(貼結果)、廚師做菜(AI 分析)、你再跑一趟拿調味料(再查一次)。

有了 MCP,廚房跟倉庫之間開了一扇門。廚師可以自己走過去拿需要的食材。你不用來回跑了。

技術上來說:

  • Host:Claude Code(廚房)
  • MCP Client:Claude Code 內建的 MCP 客戶端(那扇門)
  • MCP Server:你安裝的各種 MCP 伺服器(倉庫)
  • Resources:資料庫、檔案系統、API 等(食材)

運作原理

┌─────────────┐     MCP 協定      ┌─────────────────┐
│ Claude Code │ ◄──────────────► │ MCP 伺服器 │
│ (Host) │ │ (PostgreSQL) │
│ │ JSON-RPC │ │
│ MCP Client │ ◄──────────────► │ Tools + Resources│
└─────────────┘ └─────────────────┘

MCP 使用 JSON-RPC 2.0 協定通訊。每個 MCP 伺服器向 Claude Code 暴露兩種東西:

  • Tools:AI 可以呼叫的函式(例如 query_databasetake_screenshot
  • Resources:AI 可以讀取的資料(例如資料庫 schema、檔案列表)

Claude Code 啟動時連接所有已設定的 MCP 伺服器,知道有哪些工具可用。當你的請求需要用到某個工具時,Claude 會自動呼叫對應的 MCP 伺服器。


安裝與設定

新增 MCP 伺服器

Claude Code 提供 claude mcp add 指令來新增 MCP 伺服器:

# 語法
claude mcp add <伺服器名稱> <啟動指令>

# 範例:新增 PostgreSQL MCP 伺服器
claude mcp add my-db npx @modelcontextprotocol/server-postgres postgresql://localhost:5432/mydb

管理 MCP 伺服器

# 列出所有已設定的 MCP 伺服器
claude mcp list

# 移除一個 MCP 伺服器
claude mcp remove my-db

設定檔位置

MCP 設定存在 ~/.claude/settings.json 裡。你也可以直接編輯這個檔案:

{
"mcpServers": {
"my-db": {
"command": "npx",
"args": ["@modelcontextprotocol/server-postgres", "postgresql://localhost:5432/mydb"]
},
"browser": {
"command": "npx",
"args": ["@playwright/mcp-server"]
}
}
}

5 個實戰串接場景

場景一:資料庫查詢(PostgreSQL MCP)

最常見的場景。讓 Claude Code 直接查詢你的資料庫。

# 安裝
claude mcp add my-db npx @modelcontextprotocol/server-postgres postgresql://localhost:5432/mydb

安裝後你可以這樣用:

> 查一下 users 表有多少活躍使用者(last_login 在 30 天內)
> 列出最近 7 天每天的新註冊人數
> 找出 orders 表中金額最高的 10 筆訂單

Claude 會自動生成 SQL、執行查詢、分析結果。不用你手動跑 psql。

注意:確保連線字串使用唯讀帳號,避免 AI 意外修改資料。

場景二:瀏覽器自動化(Playwright MCP)

讓 Claude Code 操作瀏覽器——截圖、填表單、爬取網頁。

# 安裝
claude mcp add browser npx @playwright/mcp-server

使用範例:

> 打開 http://localhost:3000 截一張圖給我看
> 幫我測試登入流程:輸入帳號 [email protected]、密碼 test123,看看能不能成功登入
> 爬取 https://example.com/pricing 的定價資訊

特別適合前端開發和 E2E 測試。

場景三:檔案系統(Filesystem MCP)

增強 Claude Code 的檔案搜尋和分析能力。

# 安裝
claude mcp add files npx @modelcontextprotocol/server-filesystem /path/to/project

使用範例:

> 找出專案裡所有超過 500 行的檔案
> 分析 src/ 底下的目錄結構,哪些模組之間有循環依賴

場景四:GitHub 整合(GitHub MCP)

讓 Claude Code 直接操作 GitHub——查看 PR、讀取 issue、分析 commit 歷史。

# 安裝(需要 GitHub token)
claude mcp add github npx @modelcontextprotocol/server-github

使用範例:

> 列出這個 repo 最近 10 個 PR
> 看一下 #42 這個 issue 的討論內容
> 分析最近一個月的 commit 頻率

場景五:記憶管理(MemClaw)

MemClaw 本質上也是一個 MCP 應用——它透過 MCP 協定讓 Claude Code 讀寫專案工作區。

# 安裝
export FELO_API_KEY="your-api-key-here"
# 取得 API key:https://felo.ai/settings/api-keys

/plugin marketplace add Felo-Inc/memclaw
/plugin install memclaw@memclaw

安裝後,Claude Code 獲得了持久記憶能力:

> 建立一個叫做 my-project 的工作區
> 載入 my-project 工作區
# 8 秒還原所有專案脈絡——進度、決策、待辦

MemClaw 跟其他 MCP 伺服器的差別在於:它不只是讓 AI 存取外部資料,而是給 AI 一個持久的專案記憶空間。每個專案一個工作區,完全隔離,跨 session 持久保存。

而且 MemClaw 支援跨 agent——OpenClaw 和 Claude Code 共享同一個工作區。

免費開始使用 MemClaw → memclaw.me


自己寫一個 MCP 伺服器

如果現有的 MCP 伺服器不能滿足你的需求,你可以自己寫一個。MCP 是開放協定,任何人都能實作。

以下是一個最簡單的 MCP 伺服器範例(Node.js):

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new Server({
name: "my-custom-server",
version: "1.0.0",
}, {
capabilities: { tools: {} }
});

// 定義一個工具
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "get_weather",
description: "取得指定城市的天氣",
inputSchema: {
type: "object",
properties: {
city: { type: "string", description: "城市名稱" }
},
required: ["city"]
}
}]
}));

// 實作工具邏輯
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "get_weather") {
const city = request.params.arguments.city;
// 這裡呼叫真正的天氣 API
return {
content: [{ type: "text", text: `${city} 目前 25°C,晴天` }]
};
}
});

// 啟動伺服器
const transport = new StdioServerTransport();
await server.connect(transport);

寫好之後,用 claude mcp add 註冊:

claude mcp add weather node /path/to/my-weather-server.js

MCP SDK 支援 TypeScript、Python、Kotlin 等多種語言。詳細文件可以參考 MCP 官方文件


MCP 的安全考量

MCP 伺服器能讓 AI 存取你的資料庫、檔案系統、外部 API。這帶來了安全風險:

最小權限原則

  • 資料庫連線用唯讀帳號
  • 檔案系統 MCP 只開放必要的目錄
  • GitHub MCP 用最小權限的 token

操作確認

Claude Code 預設在呼叫 MCP 工具前會詢問你。不要為了方便把所有 MCP 操作設成自動接受——特別是涉及寫入操作的。

敏感資訊

MCP 伺服器的連線字串(資料庫密碼、API token)存在設定檔裡。確保 ~/.claude/settings.json 的權限設定正確,不要 commit 到 git。

更多安全實踐可以參考 AI 程式開發的資安風險與防護


常見問題

MCP 伺服器會一直跑在背景嗎?

MCP 伺服器在 Claude Code 啟動時自動啟動,Claude Code 關閉時自動停止。不會佔用額外的系統資源。

可以同時裝多個 MCP 伺服器嗎?

可以。你可以同時裝 PostgreSQL、Playwright、MemClaw 等多個 MCP 伺服器。Claude Code 會根據你的請求自動選擇合適的工具。

MCP 跟 API 呼叫有什麼不同?

MCP 是標準化的協定,讓 AI 能自動發現和使用工具。你不需要教 AI 怎麼呼叫某個 API——MCP 伺服器會告訴 AI 有哪些工具可用、每個工具需要什麼參數。

OpenClaw 也支援 MCP 嗎?

支援。MCP 是開放協定,OpenClaw、Gemini CLI 等工具都支援。

MCP 伺服器的效能影響大嗎?

MCP 伺服器是按需呼叫的,不會影響 Claude Code 的基本效能。但如果你的 MCP 伺服器本身很慢(例如查詢大型資料庫),回應時間會受影響。


總結

MCP 讓 AI agent 從「只能聊天」變成「能操作你的開發環境」。資料庫查詢、瀏覽器操作、檔案分析、GitHub 整合、專案記憶——都可以透過 MCP 串接。

從這裡開始:

  1. 選一個你最常手動複製貼上的場景(資料庫查詢?API 測試?)
  2. 安裝對應的 MCP 伺服器
  3. 安裝 MemClaw 讓 AI 擁有持久專案記憶——免費開始

延伸閱讀: