MCP Server:讓 Claude 連接任何外部工具
Claude 的能力預設受限於它自己的知識和你給的資訊。MCP(Model Context Protocol) 打破這個限制——讓 Claude 直接連接外部工具:讀取你的資料庫、操作本地檔案系統、呼叫 API,甚至控制瀏覽器。
MCP 是 Anthropic 制定的開放標準,任何人都可以寫 MCP Server。這篇說明如何在 Claude Code 裡安裝和使用 MCP。
MCP 的運作原理
MCP Server 是一個跑在本地(或遠端)的程式,負責代理 Claude 和外部系統的溝通:
Claude Code ←→ MCP Server ←→ 外部工具(資料庫、API、檔案系統...)
Claude Code 透過標準化的 MCP 協議和 Server 溝通。MCP Server 收到請求後,執行對應操作,把結果回傳給 Claude。
這個設計讓 Claude 不需要知道每個服務的 API 細節,只需要說「幫我查資料庫裡的 X」,MCP Server 負責實際執行。
常用 MCP Servers
社群有大量現成的 MCP Server,最常用的幾個:
| Server | 功能 |
|---|---|
@modelcontextprotocol/server-filesystem |
讀寫本地檔案系統 |
@modelcontextprotocol/server-github |
操作 GitHub repo、PR、issue |
@modelcontextprotocol/server-postgres |
查詢 PostgreSQL 資料庫 |
@modelcontextprotocol/server-sqlite |
操作 SQLite 資料庫 |
@modelcontextprotocol/server-brave-search |
透過 Brave Search API 搜尋網路 |
@modelcontextprotocol/server-puppeteer |
控制 Chrome 瀏覽器 |
@modelcontextprotocol/server-slack |
操作 Slack workspace |
mcp-server-cloudflare |
操作 Cloudflare 服務 |
完整清單:github.com/modelcontextprotocol/servers
安裝和設定
設定檔位置
MCP Server 設定在 Claude Code 的設定檔裡:
- 全域:
~/.claude/settings.json(所有專案都能用) - 專案:
.claude/settings.json(只對當前專案有效)
基本設定格式
{
"mcpServers": {
"server-name": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-name"],
"env": {
"ENV_VAR": "value"
}
}
}
}
範例:設定 Filesystem Server
允許 Claude Code 讀寫指定目錄:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/daniel/projects",
"/Users/daniel/documents"
]
}
}
}
設定後,Claude Code 可以直接讀取這些目錄的檔案,不需要你複製貼上內容。
範例:設定 GitHub Server
需要先到 GitHub 建立 Personal Access Token(Settings → Developer settings → Personal access tokens):
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
}
}
範例:設定 PostgreSQL Server
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://user:password@localhost/mydb"
]
}
}
}
確認 MCP Server 運作
啟動 Claude Code 後,輸入:
/mcp
會列出所有已設定的 MCP Server 和它們的狀態。如果 Server 沒有正常啟動,這裡會顯示錯誤。
使用 MCP Server
設定完成後,在 Claude Code 對話裡直接說你要做什麼,Claude 會自動呼叫對應的 MCP Server:
幫我查資料庫裡 users 表有多少筆資料
讀取 ~/projects/blog/README.md 的內容
去 GitHub 看一下我最近有哪些 open PR
你不需要指定要用哪個 MCP Server,Claude 會根據任務選擇合適的工具。
撰寫自訂 MCP Server
如果現成的 Server 不符合需求,可以自己寫。MCP Server 支援 Node.js 和 Python。
最簡單的 Node.js MCP Server
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server(
{ name: "my-server", version: "1.0.0" },
{ capabilities: { tools: {} } }
);
// 定義工具清單
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "get_data",
description: "從自訂來源取得資料",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "查詢條件" }
}
}
}]
}));
// 實作工具
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "get_data") {
const query = request.params.arguments.query;
// 在這裡實作你的邏輯
return { content: [{ type: "text", text: `查詢結果:${query}` }] };
}
});
const transport = new StdioServerTransport();
await server.connect(transport);
完整 MCP SDK 文件:modelcontextprotocol.io
安全注意事項
MCP Server 讓 Claude 有了操作外部系統的能力,要留意幾點:
最小權限原則:Filesystem Server 只給需要的目錄,不要開放整個硬碟。資料庫 Server 給唯讀帳號,除非確定要寫入。
API Key 管理:設定檔裡的 API Key 和密碼不要提交到 git。用環境變數或 .gitignore 排除設定檔。
確認操作:Claude Code 預設會在執行有副作用的操作(修改檔案、寫資料庫)前請你確認。不要關掉這個確認機制。
MCP vs Integrations:怎麼選
| MCP Server | Integrations | |
|---|---|---|
| 設定難度 | 需要設定 JSON | 幾步 OAuth 完成 |
| 服務範圍 | 任何服務(只要有 Server) | 官方支援清單 |
| 適合 | 自架服務、資料庫、自訂需求 | GitHub、Notion、Google Workspace |
| 維護 | 自己負責 | Anthropic 官方 |
主流服務優先用 Integrations,沒有的才考慮 MCP。
常見問題
Q:MCP Server 需要一直保持運行嗎? 不需要。Claude Code 在需要時會自動啟動 MCP Server(根據設定的 command),對話結束後停止。
Q:MCP Server 可以遠端運行嗎? 可以。除了 stdio(本地)模式,MCP 也支援 SSE(Server-Sent Events)模式,允許遠端 Server:
{
"mcpServers": {
"remote": {
"url": "https://my-mcp-server.example.com/sse"
}
}
}
Q:一個專案可以設定多個 MCP Server 嗎? 可以,設定多個 key 就行,Claude 會根據任務選擇合適的 Server。
小結
MCP 是讓 Claude 從問答工具變成能直接動手的關鍵機制:
- 在
.claude/settings.json設定mcpServers - 指定 command 和 args 啟動對應的 Server
- 對話裡直接說要做什麼,Claude 自動呼叫
從 filesystem Server 開始是最好的入門——讓 Claude 直接讀你的專案檔案,不用再複製貼上。
🔗 系列文章
- Claude Code 實戰:CLI 安裝、開發流程、多步驟任務
- Claude Integrations:官方內建連接 GitHub、Notion 等服務
- Claude Code Skills:安裝與自訂技能擴充
- Claude Code 三種模式總覽:Chat / Cowork / Code 怎麼選