模型上下文協議 (MCP) 是一個開放協議,讓大型語言模型能夠存取外部工具和資料來源。有關 MCP 的更多詳細資訊,請參閱 MCP 文件

使用第三方 MCP 伺服器需自行承擔風險。請確保您信任這些 MCP 伺服器,並在使用與網際網路通訊的 MCP 伺服器時特別小心, 因為這些可能會讓您面臨提示注入風險。

設定 MCP 伺服器

1

新增 MCP stdio 伺服器

# 基本語法
claude mcp add <name> <command> [args...]

# 範例:新增本地伺服器
claude mcp add my-server -e API_KEY=123 -- /path/to/server arg1 arg2
2

新增 MCP SSE 伺服器

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

# 範例:新增 SSE 伺服器
claude mcp add --transport sse sse-server https://example.com/sse-endpoint

# 範例:新增具有自訂標頭的 SSE 伺服器
claude mcp add --transport sse api-server https://api.example.com/mcp -e X-API-Key=your-key
3

新增 MCP HTTP 伺服器

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

# 範例:新增可串流的 HTTP 伺服器
claude mcp add --transport http http-server https://example.com/mcp

# 範例:新增具有驗證標頭的 HTTP 伺服器
claude mcp add --transport http secure-server https://api.example.com/mcp -e Authorization="Bearer your-token"
4

管理您的 MCP 伺服器

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

# 取得特定伺服器的詳細資訊
claude mcp get my-server

# 移除伺服器
claude mcp remove my-server

提示:

  • 使用 -s--scope 旗標來指定設定儲存的位置:
    • local(預設):僅在目前專案中對您可用(在舊版本中稱為 project
    • project:透過 .mcp.json 檔案與專案中的每個人共享
    • user:在所有專案中對您可用(在舊版本中稱為 global
  • 使用 -e--env 旗標設定環境變數(例如,-e KEY=value
  • 使用 MCP_TIMEOUT 環境變數設定 MCP 伺服器啟動逾時(例如,MCP_TIMEOUT=10000 claude 設定 10 秒逾時)
  • 隨時使用 Claude Code 中的 /mcp 指令檢查 MCP 伺服器狀態
  • MCP 遵循用戶端-伺服器架構,其中 Claude Code(用戶端)可以連接到多個專門的伺服器
  • Claude Code 支援 SSE(伺服器傳送事件)和可串流的 HTTP 伺服器以進行即時通訊
  • 使用 /mcp 與需要 OAuth 2.0 驗證的遠端伺服器進行驗證

了解 MCP 伺服器範圍

MCP 伺服器可以在三個不同的範圍層級進行設定,每個層級都有不同的目的來管理伺服器可存取性和共享。了解這些範圍有助於您確定為特定需求設定伺服器的最佳方式。

範圍階層和優先順序

MCP 伺服器設定遵循明確的優先順序階層。當相同名稱的伺服器存在於多個範圍時,系統會優先考慮本地範圍的伺服器,然後是專案範圍的伺服器,最後是使用者範圍的伺服器,以此方式解決衝突。這種設計確保個人設定可以在需要時覆蓋共享設定。

本地範圍

本地範圍的伺服器代表預設設定層級,並儲存在您的專案特定使用者設定中。這些伺服器對您保持私有,只有在目前專案目錄中工作時才能存取。此範圍適用於個人開發伺服器、實驗性設定或包含不應共享的敏感憑證的伺服器。

# 新增本地範圍的伺服器(預設)
claude mcp add my-private-server /path/to/server

# 明確指定本地範圍
claude mcp add my-private-server -s local /path/to/server

專案範圍

專案範圍的伺服器透過將設定儲存在專案根目錄的 .mcp.json 檔案中來實現團隊協作。此檔案設計為可檢入版本控制,確保所有團隊成員都能存取相同的 MCP 工具和服務。當您新增專案範圍的伺服器時,Claude Code 會自動建立或更新此檔案,並使用適當的設定結構。

# 新增專案範圍的伺服器
claude mcp add shared-server -s project /path/to/server

產生的 .mcp.json 檔案遵循標準化格式:

{
  "mcpServers": {
    "shared-server": {
      "command": "/path/to/server",
      "args": [],
      "env": {}
    }
  }
}

基於安全考量,Claude Code 在使用來自 .mcp.json 檔案的專案範圍伺服器之前會提示批准。如果您需要重設這些批准選擇,請使用 claude mcp reset-project-choices 指令。

使用者範圍

使用者範圍的伺服器提供跨專案可存取性,使它們在您機器上的所有專案中都可用,同時對您的使用者帳戶保持私有。此範圍適用於個人實用程式伺服器、開發工具或您在不同專案中經常使用的服務。

# 新增使用者伺服器
claude mcp add my-user-server -s user /path/to/server

選擇正確的範圍

根據以下條件選擇您的範圍:

  • 本地範圍:個人伺服器、實驗性設定或特定於一個專案的敏感憑證
  • 專案範圍:團隊共享的伺服器、專案特定工具或協作所需的服務
  • 使用者範圍:多個專案中需要的個人實用程式、開發工具或經常使用的服務

與遠端 MCP 伺服器進行驗證

許多遠端 MCP 伺服器需要驗證。Claude Code 支援 OAuth 2.0 驗證流程,以安全地連接到這些伺服器。

1

新增需要驗證的遠端伺服器

# 新增需要 OAuth 的 SSE 或 HTTP 伺服器
claude mcp add --transport sse github-server https://api.github.com/mcp
2

使用 /mcp 指令進行驗證

在 Claude Code 中,使用 /mcp 指令來管理驗證:

> /mcp

這會開啟一個互動式選單,您可以:

  • 檢視所有伺服器的連接狀態
  • 與需要 OAuth 的伺服器進行驗證
  • 清除現有驗證
  • 檢視伺服器功能
3

完成 OAuth 流程

當您為伺服器選擇「驗證」時:

  1. 您的瀏覽器會自動開啟到 OAuth 提供者
  2. 在瀏覽器中完成驗證
  3. Claude Code 接收並安全地儲存存取權杖
  4. 伺服器連接變為活躍狀態

提示:

  • 驗證權杖會安全地儲存並自動重新整理
  • /mcp 選單中使用「清除驗證」來撤銷存取權限
  • 如果您的瀏覽器沒有自動開啟,請複製提供的 URL
  • OAuth 驗證適用於 SSE 和 HTTP 傳輸

連接到 Postgres MCP 伺服器

假設您想要讓 Claude 對 PostgreSQL 資料庫具有唯讀存取權限,以進行查詢和架構檢查。

1

新增 Postgres MCP 伺服器

claude mcp add postgres-server /path/to/postgres-mcp-server --connection-string "postgresql://user:pass@localhost:5432/mydb"
2

使用 Claude 查詢您的資料庫

> describe the schema of our users table
> what are the most recent orders in the system?
> show me the relationship between customers and invoices

提示:

  • Postgres MCP 伺服器為了安全提供唯讀存取權限
  • Claude 可以幫助您探索資料庫結構並執行分析查詢
  • 您可以使用此功能快速了解不熟悉專案中的資料庫架構
  • 確保您的連接字串使用具有最低必要權限的適當憑證

從 JSON 設定新增 MCP 伺服器

假設您有一個單一 MCP 伺服器的 JSON 設定,您想要將其新增到 Claude Code。

1

從 JSON 新增 MCP 伺服器

# 基本語法
claude mcp add-json <name> '<json>'

# 範例:使用 JSON 設定新增 stdio 伺服器
claude mcp add-json weather-api '{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'
2

驗證伺服器已新增

claude mcp get weather-api

提示:

  • 確保 JSON 在您的 shell 中正確跳脫
  • JSON 必須符合 MCP 伺服器設定架構
  • 您可以使用 -s global 將伺服器新增到您的全域設定而不是專案特定設定

從 Claude Desktop 匯入 MCP 伺服器

假設您已經在 Claude Desktop 中設定了 MCP 伺服器,並希望在 Claude Code 中使用相同的伺服器,而無需手動重新設定它們。

1

從 Claude Desktop 匯入伺服器

# 基本語法 
claude mcp add-from-claude-desktop 
2

選擇要匯入的伺服器

執行指令後,您會看到一個互動式對話框,讓您選擇要匯入的伺服器。

3

驗證伺服器已匯入

claude mcp list 

提示:

  • 此功能僅適用於 macOS 和 Windows 子系統 Linux (WSL)
  • 它會從這些平台上的標準位置讀取 Claude Desktop 設定檔
  • 使用 -s global 旗標將伺服器新增到您的全域設定
  • 匯入的伺服器將具有與 Claude Desktop 中相同的名稱
  • 如果已存在相同名稱的伺服器,它們將獲得數字後綴(例如,server_1

將 Claude Code 用作 MCP 伺服器

假設您想要將 Claude Code 本身用作其他應用程式可以連接的 MCP 伺服器,為它們提供 Claude 的工具和功能。

1

將 Claude 啟動為 MCP 伺服器

# 基本語法
claude mcp serve
2

從其他應用程式連接

您可以從任何 MCP 用戶端連接到 Claude Code MCP 伺服器,例如 Claude Desktop。如果您使用 Claude Desktop,您可以使用此設定新增 Claude Code MCP 伺服器:

{
  "command": "claude",
  "args": ["mcp", "serve"],
  "env": {}
}

提示:

  • 伺服器提供對 Claude 工具的存取權限,如 View、Edit、LS 等
  • 在 Claude Desktop 中,嘗試要求 Claude 讀取目錄中的檔案、進行編輯等
  • 請注意,此 MCP 伺服器只是將 Claude Code 的工具公開給您的 MCP 用戶端,因此您自己的用戶端負責為個別工具呼叫實作使用者確認

使用 MCP 資源

MCP 伺服器可以公開資源,您可以使用 @ 提及來參考這些資源,類似於您參考檔案的方式。

參考 MCP 資源

1

列出可用資源

在您的提示中輸入 @ 以查看來自所有已連接 MCP 伺服器的可用資源。資源會與檔案一起出現在自動完成選單中。

2

參考特定資源

使用格式 @server:protocol://resource/path 來參考資源:

> Can you analyze @github:issue://123 and suggest a fix?
> Please review the API documentation at @docs:file://api/authentication
3

多個資源參考

您可以在單一提示中參考多個資源:

> Compare @postgres:schema://users with @docs:file://database/user-model

提示:

  • 資源在被參考時會自動擷取並作為附件包含
  • 資源路徑在 @ 提及自動完成中可進行模糊搜尋
  • 當伺服器支援時,Claude Code 會自動提供工具來列出和讀取 MCP 資源
  • 資源可以包含 MCP 伺服器提供的任何類型內容(文字、JSON、結構化資料等)

將 MCP 提示用作斜線指令

MCP 伺服器可以公開提示,這些提示在 Claude Code 中會變成可用的斜線指令。

執行 MCP 提示

1

發現可用提示

輸入 / 以查看所有可用指令,包括來自 MCP 伺服器的指令。MCP 提示以格式 /mcp__servername__promptname 出現。

2

執行不帶參數的提示

> /mcp__github__list_prs
3

執行帶參數的提示

許多提示接受參數。在指令後以空格分隔傳遞它們:

> /mcp__github__pr_review 456
> /mcp__jira__create_issue "Bug in login flow" high

提示:

  • MCP 提示會從已連接的伺服器動態發現
  • 參數會根據提示定義的參數進行解析
  • 提示結果會直接注入到對話中
  • 伺服器和提示名稱會正規化(空格變成底線)