免費

MCP 是什麼:給 Claude Code 接入外部世界

解釋 MCP 工作原理和設定方式,讓 Claude Code 透過 MCP Server 接入資料庫、GitHub、Slack 等外部系統。


Claude Code 預設能做的事有它的邊界:讀寫本地檔案、執行終端指令、呼叫內建工具。但實際專案裡,你常常需要它查資料庫、讀 Notion 文件、搜 Slack 訊息、呼叫內部 API。

MCP 就是解決這個問題的。

MCP 的定位

MCP(Model Context Protocol)是 Anthropic 提出的開放協定,定義了 AI 模型如何與外部工具、資料來源通訊。你可以把它理解成給 Claude Code 裝插件——每個 MCP Server 是一個獨立的服務,暴露一組工具,Claude 可以在會話中直接呼叫。

不同於 Hooks(在 Claude 執行動作時觸發腳本),MCP 是主動擴展 Claude 的能力邊界:你接入什麼,Claude 就能操作什麼。

運作原理

MCP 的架構很簡單:

Claude Code(Client)  ←→  MCP Server  ←→  外部系統
  1. 你在設定裡宣告一個 MCP Server(本地程序或遠端服務)
  2. Claude Code 啟動時連線這個 Server,取得它暴露的工具清單
  3. 會話中 Claude 可以呼叫這些工具,就像呼叫內建的 Read/Write/Bash 一樣
  4. MCP Server 處理請求,回傳結果給 Claude

整個過程對使用者透明。你看到的是 Claude 說「我去查一下資料庫」然後拿到結果,背後是 MCP 在轉發請求。

三類 MCP 能力

MCP Server 可以暴露三種東西:

Tools(工具)
Claude 可以主動呼叫的函式,比如「查詢使用者表」「搜尋文件」「傳送 Slack 訊息」。這是最常用的。

Resources(資源)
結構化資料,可以被 Claude 讀取作為上下文,比如資料庫 schema、API 文件、設定檔。

Prompts(提示模板)
預定義的提示片段,使用者可以直接引用。

實際使用中 90% 的場景都是 Tools。

快速上手:接入一個現成的 MCP Server

以官方的 Filesystem MCP 為例,這個 Server 讓 Claude 可以存取你指定目錄外的檔案系統。

安裝

npm install -g @modelcontextprotocol/server-filesystem

設定

編輯 ~/.claude/settings.json

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/yourname/Documents"
      ]
    }
  }
}

驗證

重啟 Claude Code,輸入:

列出 /Users/yourname/Documents 下的所有 PDF 檔案

如果 Claude 直接給出結果而不是說「我無法存取檔案系統」,代表 MCP 已經生效。

設定結構解析

{
  "mcpServers": {
    "服務名稱": {
      "command": "啟動指令",
      "args": ["參數清單"],
      "env": {
        "API_KEY": "xxx"
      }
    }
  }
}
  • command + args:Claude Code 用這個指令啟動 MCP Server 程序
  • 服務名稱只是本地識別碼,隨意取
  • env 用來傳 API key 等敏感設定,不要寫死在程式碼裡

設定放哪裡

MCP 設定可以放三個位置,按優先順序從低到高:

位置 檔案 適用場景
全域 ~/.claude/settings.json 所有專案都要用的工具
專案級 .claude/settings.json 這個專案專用
本地覆蓋 .claude/settings.local.json 個人設定,不提交 git

對於資料庫連線、內部 API 這類專案專用的 MCP,放專案級設定,連同程式碼一起提交,團隊成員 clone 下來就能用。

現成的 MCP Server 哪裡找

Anthropic 維護了一批官方 MCP Server:

  • @modelcontextprotocol/server-filesystem — 檔案系統存取
  • @modelcontextprotocol/server-github — GitHub 操作(PR、issue、程式碼搜尋)
  • @modelcontextprotocol/server-postgres — PostgreSQL 查詢
  • @modelcontextprotocol/server-slack — Slack 訊息讀寫
  • @modelcontextprotocol/server-google-maps — 地圖與地理資訊

社群也有大量第三方實作,涵蓋 Notion、Linear、Jira、各類資料庫等。

MCP vs Hooks:怎麼選

Hooks MCP
觸發方式 Claude 執行特定動作時 Claude 主動呼叫
用途 攔截/增強現有行為 擴展新能力
典型場景 儲存時格式化、提交前檢查 查資料庫、呼叫外部 API
設定複雜度

兩者互補。Hooks 管「Claude 做事的方式」,MCP 管「Claude 能做什麼事」。

下一步

這篇是 MCP 的概念入門。接下來的文章會涵蓋:

  • 給 Claude Code 接入真實資料庫(PostgreSQL + 真實 schema)
  • 接入內部工具和 API
  • 自己從零撰寫一個 MCP Server

如果你已經有一個想接入的系統,可以先翻 MCP Server 清單,大概率已經有現成實作。