MCP 讓 Claude 從問答工具變成能直接操作你的系統。

MCP(Model Context Protocol)是 Claude 連接外部工具的標準。資料庫、自架服務、本地工具——只要有 MCP Server,Claude Code 就能直接存取。這篇說明如何安裝和設定。

MCP Server:讓 Claude 連接任何外部工具

MCP 架構圖

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 從問答工具變成能直接動手的關鍵機制:

  1. .claude/settings.json 設定 mcpServers
  2. 指定 command 和 args 啟動對應的 Server
  3. 對話裡直接說要做什麼,Claude 自動呼叫

從 filesystem Server 開始是最好的入門——讓 Claude 直接讀你的專案檔案,不用再複製貼上。


🔗 系列文章

這篇有幫助嗎? MCP 讓 Claude 從問答工具變成能直接操作你的系統。