CoreCode部落格

用法

Claude Code MCP 配置教程:新增、共享和排查 MCP 伺服器

釋出於 · 最後核對

MCP(Model Context Protocol)是連線 AI 工具的開源標準,MCP 伺服器能讓 Claude Code 直接讀寫你的工具、資料庫和 API,不用再把資料複製進對話。這一頁是新增 MCP 伺服器的操作步驟:三種連線方式各用哪條命令、配置存在哪裡、怎麼和團隊共享、怎麼認證、出錯了看什麼。內容按 Anthropic 的 Connect Claude Code to tools via MCP 中文整理,2026 年 10 月 30 日對照原文核對。

要點
  • 新增伺服器用 claude mcp add:遠端伺服器優先用 --transport http,本機程式用 stdio,SSE 已棄用。
  • 配置預設寫在 local 作用域(~/.claude.json,只對當前專案、只對你自己生效);要和團隊共享,加 --scope project,配置會寫進專案根目錄的 .mcp.json。
  • claude mcp list、claude mcp get <name>、claude mcp remove <name> 管理伺服器,Claude Code 裡的 /mcp 檢視狀態並完成 OAuth 登入。
  • 連線前先確認你信任這個伺服器:會抓取外部內容的伺服器可能帶來提示詞注入風險。

MCP 是什麼,什麼時候該接

MCP 伺服器讓 Claude Code 能訪問你的工具、資料庫和 API。當你發現自己在把另一個工具裡的資料(比如工單系統或監控面板)複製進對話時,就適合接一個伺服器:接上之後,Claude 可以直接讀取、操作那個系統,不用再依賴你貼過來的內容。

安全提醒:連線任何伺服器之前,先確認你信任它。會抓取外部內容的伺服器可能讓你暴露在提示詞注入風險下。

三種連線方式怎麼新增

所有方式都用 claude mcp add。先看伺服器給的是什麼:一個 https:// 地址是遠端伺服器,一條 npx 之類的啟動命令是跑在你本機的伺服器。

方式適用說明
HTTP遠端伺服器推薦。對雲服務支援最廣。
SSE只提供 SSE 端點的遠端伺服器已棄用,有 HTTP 就用 HTTP。
stdio本機程式適合需要直接訪問系統或自定義指令碼的工具。

遠端 HTTP 伺服器

# 基本寫法
claude mcp add --transport http <name> <url>

# 官方示例:連線 Notion
claude mcp add --transport http notion https://mcp.notion.com/mcp

# 帶 Bearer token 的示例
claude mcp add --transport http secure-api https://api.example.com/mcp \
  --header "Authorization: Bearer your-token"

在 JSON 裡配置時,type 欄位可以寫 streamable-http,它是 http 的別名。有 url 卻沒有 type 的條目是配置錯誤,因為 Claude Code 會把沒有 type 的條目當成 stdio 伺服器,並跳過它。

遠端 SSE 伺服器

SSE(Server-Sent Events)傳輸已棄用,有 HTTP 的地方請用 HTTP。有些服務仍然只提供 SSE 端點:這時仍然用上面的 claude mcp add --transport http <name> <url>,Claude Code 會先嚐試 HTTP,伺服器不接受時自動切到 SSE。這個自動切換需要 Claude Code v2.1.265 或更高版本。更早的版本,或想直接用 SSE,傳 --transport sse:

# 基本寫法
claude mcp add --transport sse <name> <url>

# 官方示例:連線 Asana
claude mcp add --transport sse asana https://mcp.asana.com/sse

# 帶認證 header 的示例
claude mcp add --transport sse private-api https://api.company.com/sse \
  --header "X-API-Key: your-key-here"

本地 stdio 伺服器

stdio 伺服器作為本地程式執行在你的機器上。

# 基本寫法
claude mcp add [options] <name> -- <command> [args...]

# 官方示例:新增 Airtable 伺服器
claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
  -- npx -y airtable-mcp-server

從別的客戶端的安裝說明改寫

伺服器的安裝說明可能是為 Claude Desktop、Cursor 或其他 MCP 客戶端寫的,沒有 claude mcp add 命令。這時在說明裡找一個 URL、一條啟動命令或一段 JSON:

claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'

用 add-json 時,沒有 type 的 url 條目要先補上 "type": "http"、"type": "sse" 或 "type": "ws"。WebSocket 伺服器只能用 .mcp.json 或 claude mcp add-json 配置,claude mcp add --transport 不接受 ws。伺服器名只能包含字母、數字、連字元和下劃線。

作用域:配置存在哪裡

MCP 伺服器有三個作用域,決定它在哪些專案里載入,以及配置是否和團隊共享。用 -s 或 --scope 選擇,預設是 local。

作用域在哪裡載入和團隊共享存放位置
local(預設)只在當前專案否~/.claude.json
project只在當前專案是,透過版本控制專案根目錄的 .mcp.json
user你的所有專案否~/.claude.json
# local 作用域(預設)
claude mcp add --transport http stripe --scope local https://mcp.stripe.com

# project 作用域
claude mcp add --transport http shared-server --scope project https://example.com/mcp

# user 作用域
claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic

local 作用域的伺服器存在 ~/.claude.json 裡該專案路徑下,不會出現在你的其他專案裡,適合個人開發伺服器、實驗性配置,以及帶憑據、不想進版本控制的伺服器。注意,這裡的 “local” 和一般設定裡的 .claude/settings.local.json 不是一回事。

同一個伺服器在多個地方定義時,Claude Code 只連一次,用優先順序最高的那份,整條配置原樣採用,不會跨作用域合併欄位。優先順序從高到低:local、project、user、外掛提供的伺服器、claude.ai 聯結器。

用 .mcp.json 和團隊共享

project 作用域把配置存進專案根目錄的 .mcp.json。新增 project 作用域的伺服器時,Claude Code 會自動建立或更新這個檔案。把它提交進版本控制,團隊裡每個人都會得到同樣的 MCP 工具。

{
  "mcpServers": {
    "shared-server": {
      "type": "http",
      "url": "https://example.com/mcp"
    }
  }
}

出於安全考慮,互動工作階段在使用 .mcp.json 裡的伺服器之前會先請你批准。想重置這些批准的選擇,執行 claude mcp reset-project-choices。

在 .mcp.json 裡用環境變數

.mcp.json 支援環境變數展開,團隊可以共享同一份配置,而每臺機器上不同的路徑和 API key 這類敏感值留在各自的環境裡。可以在伺服器的 command、args、env、url 或 headers 裡引用:

{
  "mcpServers": {
    "api-server": {
      "type": "http",
      "url": "${API_BASE_URL:-https://api.example.com}/mcp",
      "headers": {
        "Authorization": "Bearer ${API_KEY}"
      }
    }
  }
}

引用的變數沒設定又沒有預設值時,配置仍會載入,Claude Code 在 claude mcp list 裡給出缺少變數的警告,並按字面使用未展開的 ${VAR}。在遠端伺服器的 url 和 headers 裡,ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN 這類憑據變數會被讀成空值,不會展開。要給伺服器這類憑據,先把它複製到一個自己命名的變數裡,再引用這個變數。

檢視、檢查和刪除伺服器

# 列出所有已配置的伺服器
claude mcp list

# 檢視某個伺服器的詳情
claude mcp get notion

# 刪除伺服器
claude mcp remove notion

# (在 Claude Code 裡)檢視伺服器狀態
/mcp

claude mcp add 成功時會列印一行 Added ...,表示配置已寫入;它不驗證憑據,所以填一個佔位的 token 也會透過,但之後連線會失敗。要確認 Claude Code 真的連上了,執行 claude mcp get <name>,或在 Claude Code 裡執行 /mcp,看那個伺服器那一行有沒有對勾。

claude mcp list 在每個伺服器旁邊顯示健康狀態:

狀態含義
✔ Connected已連線
! Needs authentication需要認證,見下一節
✘ Failed to connect連線失敗;claude mcp list 會在狀態行附上失敗詳情,claude mcp get <name> 把它顯示在 Issue: 一行
⏸ Pending approval (run claude to approve).mcp.json 裡的伺服器還沒批准,在互動模式下執行 claude 來稽核並批准

刪除遠端伺服器時,Claude Code 會同時刪掉它為該伺服器儲存的 OAuth 令牌和客戶端註冊,但不會去授權伺服器上吊銷令牌。如果授權伺服器支援吊銷,先在 shell 裡執行 claude mcp logout <name>,再執行 claude mcp remove <name>。

想暫時停用而不刪除配置,在 /mcp 面板裡把伺服器關掉,Claude Code 就不再連線它,配置保留。

遠端伺服器的認證

很多雲端 MCP 伺服器需要認證,Claude Code 支援 OAuth 2.0。伺服器返回 401 Unauthorized 或 403 Forbidden 時,Claude Code 會把它標成需要認證。

claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

然後在 Claude Code 裡執行 /mcp,按瀏覽器裡的步驟登入。

不想進工作階段,可以直接在 shell 裡登入:

claude mcp login sentry

清除已儲存的憑據用 claude mcp logout <name>。在 SSH 工作階段或沒有顯示伺服器的 Linux 上,claude mcp login 檢測到沒有本地瀏覽器,會列印授權 URL 而不是去開啟瀏覽器:在你本機開啟這個 URL,再把瀏覽器位址列裡完整的重定向 URL 貼上回提示處,這一步需要互動終端,所以用 ssh -t 連線。加 --no-browser 可以強制使用 URL 提示。

如果你給伺服器配置了 headers.Authorization 而伺服器拒絕了它,Claude Code 會報連線失敗,不會退回到 OAuth。檢查令牌對這個 MCP 端點是否有效,或者刪掉這個 header 改走 OAuth 流程。claude -p 和 Agent SDK 執行裡沒有 /mcp 面板,需要先在互動工作階段裡(或用 claude mcp login <name>)完成登入。

超時和輸出限制

export MAX_MCP_OUTPUT_TOKENS=50000
claude

警告閾值是固定的。成功的文字結果超過 50,000 個字元時,無論這個變數設多少,都會被儲存到檔案裡(除非伺服器自己調高了該工具的上限)。

常見問題排查

現象原因和處理
報 has a "url" but no "type"JSON 條目有 url 沒有 type,會被當成 stdio 並跳過。補上 "type": "http"(或 "sse" / "ws")。
stdio 伺服器的引數被當成 Claude 的選項漏了 --。把伺服器的完整命令放在 -- 後面。
--env 把伺服器名吃掉了在 --env 和伺服器名之間放一個別的選項,比如 --transport stdio。
⏸ Pending approval專案裡 .mcp.json 的伺服器還沒批准。執行 claude,在互動模式裡稽核並批准;批准選擇想重來,執行 claude mcp reset-project-choices。
✘ Failed to connect用 claude mcp get <name> 看 Issue: 一行裡的 HTTP 狀態碼或錯誤文字。claude mcp add 不校驗憑據,401 通常說明 token 不對。
! Needs authentication執行 /mcp,或在 shell 裡執行 claude mcp login <name>。
claude mcp list 提示空白字元的警告常見原因是貼上 token 時帶進了結尾的換行。Claude Code 會警告,例如 Leading or trailing whitespace in: headers.Authorization。它不會替你去掉空白,直接編輯配置刪掉。
同名伺服器在多個作用域裡端點不同claude mcp list 和 /mcp 會警告。保留想要的那個,用 claude mcp remove <name> --scope <scope> 刪掉其餘的。
某個伺服器一斷開就失效在互動工作階段裡,在 /mcp 中該伺服器的選單選 Reconnect;想重試所有失敗的伺服器,執行 /mcp reconnect all(需要 v2.1.284 或更高版本)。

常見問題

新增時該選 HTTP 還是 SSE?

選 HTTP。HTTP 是推薦的方式,SSE 已棄用。只提供 SSE 端點的服務,用同樣的 --transport http 命令新增也行,Claude Code 會在伺服器不接受 HTTP 時切到 SSE(需要 v2.1.265 或更高版本);更早的版本傳 --transport sse。

local、project、user 三個作用域怎麼選?

只給自己用、或者帶憑據不想進版本控制的,用 local(預設);想讓團隊裡每個人都有,用 project,配置寫進專案根目錄的 .mcp.json 並提交;自己在所有專案裡都要用的,用 user。同名伺服器同時存在時,local 優先於 project,project 優先於 user。

透過中轉使用 Claude Code,在哪裡配置?

本頁只講 MCP 伺服器本身的配置,Anthropic 的文件沒有講中轉。透過中轉使用 Claude Code 的接入方法見 Claude Code 接入。

來源