Claude Code 外掛:MCP 工具如何以外部功能擴展 Claude Code

Claude Code 外掛:MCP 工具如何以外部功能擴展 Claude Code

Claude Code 並不像傳統外掛系統那樣擁有市集和一鍵安裝功能。它使用的是模型上下文協議(Model Context Protocol,MCP),這是由 Anthropic 制定的開放標準,用於在 Claude Code 工作階段中附加外部工具。MCP 伺服器扮演著外掛的角色:它們暴露可呼叫的工具,Claude 會自行判斷何時使用這些工具,執行結果會回饋到對話中。本指南說明這個擴展模型;如需可直接複製的 CLI 和 JSON 設定,請參閱 Claude MCP 配置指南

「Claude Code 外掛」的真正含義

當開發者搜尋「Claude Code 外掛」時,通常會想要以下三件事之一:讓 Claude Code 能存取外部服務(GitHub、資料庫、網頁瀏覽器)、安裝社群建立的工具擴展,或是了解擴展機制的運作方式。

這三者都指向 MCP。Anthropic 圍繞著模型上下文協議設計 Claude Code,而非使用專有的外掛格式。這意味著:

  • 沒有獨立的市集:工具以 MCP 伺服器的形式散佈,而非透過特定平台的註冊表
  • 沒有 API 層級的鎖定:任何開發者都可以建立伺服器並分享
  • 相同的整合介面:Claude Code、Claude Desktop 和其他 Claude 主機都使用相同的協議

實際效果是,Claude Code 的外掛目錄就是 MCP 生態系——任何符合 MCP 規範的伺服器都能與 Claude Code 搭配使用,而針對資料庫、API、瀏覽器、程式碼執行器、檔案系統等用途,已經有數千個伺服器存在。

沒有 claude plugin install 這個指令。對應的指令是 claude mcp add

MCP 伺服器如何作為外掛運作

每個 MCP 伺服器都是一個程序,透過 MCP 協議暴露一組工具。Claude Code 在啟動工作階段時會啟動或連接到已註冊的伺服器,向它們查詢工具列表,然後在對話需要時使用這些工具。

MCP 伺服器的介面由三個部分組成:

物件 說明 範例
工具(Tool) 具有定義輸入和輸出的可呼叫函式 run_pythonsearch_docscreate_issue
資源(Resource) 伺服器作為上下文暴露的唯讀資料 檔案內容、資料庫列、測試固件
提示(Prompt) 與伺服器捆綁的預建指令模板 程式碼審查檢查清單、任務模板

對於大多數 Claude Code 工作流程來說,工具是最重要的部分。當你正在建立更結構化的代理管線時,資源和提示才會派上用場。

關鍵協議流程:

  1. Claude Code 啟動,讀取配置,並啟動已註冊的伺服器
  2. 每個伺服器回應 tools/list 查詢,提供名稱和 JSON Schema 定義
  3. 在工作階段期間,Claude 使用這些定義來決定何時以及如何呼叫每個工具
  4. Claude Code 發送呼叫,伺服器執行並返回結果,Claude 整合結果並繼續處理

伺服器負責執行。Claude 負責判斷何時需要執行。

使用 claude mcp add 安裝你的第一個外掛

claude mcp add 是用來向 Claude Code 註冊 MCP 伺服器的指令。執行一次之後,該伺服器在每次後續的工作階段中都可使用。

# stdio 伺服器的基本形式
claude mcp add <server-name> -- <command> [args...]

# HTTP 伺服器的基本形式
claude mcp add --transport http <server-name> <url>

執行任何 claude mcp add 指令前的先決條件:

  • 已安裝 Claude Code 並在 PATH 中(claude --version 應能正常運作)
  • 針對 npm 型伺服器,需要 Node.js 18 或更新版本
  • 針對 Python 型伺服器,需要 Python 3.10 或更新版本

新增 Playwright 瀏覽器外掛

Playwright MCP 伺服器為 Claude 提供了一個真實的瀏覽器——它可以瀏覽網址、點擊元素、擷取文字並返回螢幕截圖。這是最實用的初始外掛之一,因為它不需要 API 金鑰,並且能立即展示協議的功能。

claude mcp add playwright -- npx -y @playwright/mcp@latest

確認它已註冊:

claude mcp list

然後開啟一個工作階段:

Use playwright to open https://example.com and tell me the page title and main heading

Claude 會啟動瀏覽器,導航到該網址,讀取 DOM,並返回答案——你完全不需要編寫指令碼。

新增資料庫外掛

官方的 SQLite MCP 伺服器讓 Claude 可以直接從對話中查詢和檢查本機 SQLite 資料庫:

claude mcp add sqlite -- uvx mcp-server-sqlite --db-path /path/to/your/database.db

之後,你可以要求 Claude 編寫查詢、解釋結構描述,或直接探索資料,而無需在每個提示中複製貼上結構描述定義。

傳遞環境變數

大多數需要 API 支援的伺服器都需要金鑰。使用 --env 可以在註冊時傳遞金鑰,而無需將它們嵌入指令中:

claude mcp add linear -- npx -y @linear/mcp-server \
  --env LINEAR_API_KEY=your_key_here

這些值會儲存在 Claude Code 的配置中,並在啟動時注入到伺服器程序。

作用域:本機、專案和使用者

預設情況下,claude mcp add 會以 本機(local) 作用域註冊伺服器——只有在從當前目錄啟動 Claude Code 時才會啟用。三種作用域選項提供了不同的共享模式:

作用域 啟用時機 配置檔案 使用時機
local(預設) 僅限當前目錄 ~/.claude.json 個人開發伺服器,僅用於一個專案
project 在此儲存庫內的任何工作階段 專案根目錄下的 .mcp.json 團隊工具——與程式碼一起提交
user 每個 Claude Code 工作階段 ~/.claude.json 下的使用者作用域 總是希望可用的全域工具

新增 --scope project 可以將伺服器定義與你的儲存庫一起提交:

claude mcp add sqlite --scope project -- uvx mcp-server-sqlite --db-path ./dev.db

這會在專案根目錄建立 .mcp.json 檔案,其中包含伺服器定義。在同一儲存庫中執行 Claude Code 的團隊成員會自動獲得相同的可用工具——除了安裝先決條件外,不需要每個開發者進行額外設定。

對於全域適用的使用者作用域工具:

claude mcp add playwright --scope user -- npx -y @playwright/mcp@latest

熱門的 MCP 外掛及其功能

自 Anthropic 發布該協議以來,MCP 生態系已大幅成長。以下是一些有實際使用案例的類別:

開發工具

伺服器 新增功能
@playwright/mcp 瀏覽器自動化——導航、點擊、擷取、螢幕截圖
@modelcontextprotocol/server-git 讀取本機儲存庫的提交、差異、分支、責備資訊
@modelcontextprotocol/server-filesystem 限定範圍的檔案系統存取——在定義路徑內讀取/寫入檔案
mcp-server-sqlite 查詢和檢查 SQLite 資料庫

服務和 API

伺服器 新增功能
@linear/mcp-server 建立、讀取和更新 Linear 議題
@sentry/mcp-server 查詢 Sentry 錯誤和追蹤
@modelcontextprotocol/server-github GitHub 儲存庫、議題、PR 和程式碼搜尋
@notionhq/notion-mcp-server 讀取和寫入 Notion 頁面和資料庫

AI 和程式碼執行

伺服器 新增功能
Novita Sandbox MCP 伺服器 在雲端沙盒中隔離執行 Python/Node
@modelcontextprotocol/server-memory 跨工作階段的持久化鍵值記憶

這些可以透過 claude mcp add 搭配 npx(針對 npm 套件)或 uvx/pip(針對 Python 套件)來安裝。

Claude 如何在執行時路由工具呼叫

Claude 不會隨機或窮舉地呼叫工具。它會根據任務的每個步驟,判斷哪個工具(如果有的話)是合適的,而這完全基於工具的描述。

路由邏輯的高層級流程:

  1. 在工作階段開始時,Claude 查詢所有已註冊的伺服器,並建立一個工具目錄
  2. 對於每個使用者訊息或任務步驟,Claude 評估是否有任何工具描述符合需求
  3. 如果找到看似匹配的工具,Claude 會根據工具 JSON Schema 建構一個帶有適當引數的呼叫
  4. Claude Code 發送呼叫,等待結果,並在下一步之前將其整合

一個後果是:工具描述是關鍵的。像 "useful tool" 這樣模糊的描述會導致工具永遠不會被呼叫。一個能精確說明工具做什麼、何時呼叫它、以及它的輸入和輸出是什麼的描述,則會帶來準確且可靠的使用。

如果你建立了自己的 MCP 伺服器,但工具即使已註冊卻未被呼叫,問題幾乎總是出在描述上——而不是實作。

Claude 也可以在單一輪次中串聯工具呼叫:讀取檔案以了解上下文、搜尋依賴項、執行測試、檢查輸出、並建議修復——每個步驟使用來自不同伺服器的不同工具。

在沙盒中執行外掛執行

當外掛執行程式碼時——Python 腳本、Shell 指令、瀏覽器自動化——在本機機器上執行會帶來風險。一個具有檔案系統存取或程序產生能力的工具,如果行為異常或收到格式錯誤的提示,其攻擊面會很廣。

Novita Agent Sandbox 透過提供用於工具執行的隔離雲端環境來解決這個問題。你不需要在本機執行 MCP 伺服器,而是將它部署在沙盒實例中。沙盒擁有自己的檔案系統、網路範圍和資源限制。工具執行發生在該邊界內,不會接觸到主機。

從 Claude 的角度來看,整合是完全相同的——工具列表看起來一樣,呼叫方式也相同。差異完全在於執行位置。

Novita Sandbox 用於 MCP 工具執行的主要特性:

  • 快速啟動:實例平均在約 200ms 內啟動,保持工具往返延遲低
  • 按秒計費:只需為活躍的執行時間付費,無需為閒置保留付費
  • 隔離的檔案系統:每個沙盒實例都有獨立的工作區,防止跨工作階段的資料洩漏
  • 可配置的網路範圍:控制工具可以存取哪些外部服務

在 MCP 工具處理程式中使用 Novita Sandbox SDK:

pip install novita-sandbox
from novita_sandbox.code_interpreter import Sandbox

def execute_code(code: str, api_key: str) -> dict:
    sandbox = Sandbox.create(
        template="code-interpreter-v1",
        api_key=api_key,
        domain="sandbox.novita.ai",
        timeout=300,
    )
    result = sandbox.run_code(code, language="python")
    sandbox.kill()
    return {
        "output": result.logs,
        "error": result.error,
    }

code-interpreter-v1 模板預先安裝了 pandas、numpy、matplotlib 和其他常見套件。如需完整教學,請參閱使用 Novita Sandbox 和 mcp-use 函式庫建立遠端程式碼執行 MCP 伺服器

使用 Novita LLM API 進行工具使用推理

Claude Code 使用配置為其後端的任何模型來處理工具使用推理。如果你將 Claude Code 透過替代提供商路由——基於成本、延遲或模型存取原因——工具呼叫的推理層也會透過該提供商路由。

Novita LLM APIhttps://api.novita.ai/anthropic 提供了一個與 Anthropic 相容的端點。使用三個環境變數進行一次設定:

export ANTHROPIC_BASE_URL="https://api.novita.ai/anthropic"
export ANTHROPIC_AUTH_TOKEN="your-novita-api-key"
export ANTHROPIC_MODEL="qwen/qwen3-coder-480b-a35b-instruct"
export ANTHROPIC_SMALL_FAST_MODEL="deepseek/deepseek-v4-flash"

透過此設定,Claude Code 的 MCP 工具呼叫可以像以前一樣繼續運作。路由影響的是哪個模型進行推理——而不是工具調度機制,後者仍保留在 Claude Code 層。

工具密集型工作階段的模型選擇:

  • Qwen3-Coder 480B——非常適合長期任務,其中 Claude 需要讀取許多檔案、規劃多步驟序列,並在每個階段呼叫工具。其長上下文處理能力可在複雜工作階段中保持早期工具結果的可存取性。
  • MiniMax M2.7——針對代理工具使用準確性進行了最佳化,專門設計用於減少不正確的工具呼叫,並處理每個步驟都建立在前一個結果之上的多輪序列。
  • DeepSeek V4 Flash——快速且便宜,是 ANTHROPIC_SMALL_FAST_MODEL 的良好選擇。Claude Code 使用這個插槽進行工作階段摘要和上下文壓縮,這兩者都不需要深度推理。

如果你正在建立自己的 MCP 主機(而非使用 Claude Code),Novita LLM API 也在 https://api.novita.ai/v3/openai 提供了一個與 OpenAI 相容的端點,適用於支援函式呼叫的模型:

import openai

client = openai.OpenAI(
    base_url="https://api.novita.ai/v3/openai",
    api_key="your-novita-api-key",
)

response = client.chat.completions.create(
    model="meta-llama/llama-3.3-70b-instruct",
    messages=[{"role": "user", "content": "List available tools and run a quick check"}],
    tools=[
        {
            "type": "function",
            "function": {
                "name": "list_files",
                "description": "List files in the current working directory.",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "path": {
                            "type": "string",
                            "description": "Directory path to list."
                        }
                    },
                    "required": ["path"]
                }
            }
        }
    ],
    tool_choice="auto",
)

這對於以下場景特別有用:你希望一個開放權重模型在自訂 MCP 管線中充當推理層,且具有與封閉模型不同的成本或延遲特性。

開放權重模型作為替代骨幹

對於 MCP 密集型 Claude Code 工作流程,一個未被充分重視的選項是將預設的 Claude 模型完全替換為一個功能強大的開放權重替代方案。像 Qwen3-Coder、MiniMax M2.7 和 DeepSeek V3.1 這樣的模型已針對工具呼叫準確性和多步驟推理進行了專門訓練——在某些基準測試中,它們在函式呼叫任務上與封閉原始碼模型相當甚至更優,而成本卻只有一小部分。

對於執行高容量代理工作階段的團隊——CI 管線、自動化程式碼審查、批次重構——成本差異至關重要。Novita AI 透過相同的 Anthropic 相容端點提供對這些模型的存取,因此切換只需更改配置,無需重寫程式碼。

撰寫有效的工具描述

如果你正在為 Claude Code 建立自己的 MCP 伺服器,工具描述的品質決定了 Claude 是否能有效地使用你的工具。這是你可以為自訂伺服器做的最具槓桿效應的一件事。

一個有效的工具描述應該回答三個問題:

  1. 這個工具是做什麼的?——具體而非抽象
  2. 何時應該呼叫它?——場景或觸發條件
  3. 輸入和輸出是什麼?——足以讓 Claude 建構正確的引數

比較同一個 search_codebase 工具的兩個描述:

不佳"Searches the codebase."

有效"Searches source files in the current repository for a symbol, string, or regex pattern. Call this when you need to find where a function is defined, locate all usages of a variable, or identify which files reference a particular module. Returns a list of file paths with matching lines and line numbers."

第二個描述告訴 Claude 何時呼叫該工具(而不僅僅是它做什麼),這會產生更準確和及時的呼叫。

一些額外的實務建議:

  • 清楚標示會變動的工具:如果工具會寫入資料庫或部署程式碼,請明確說明。Claude 在沒有明確證據表明該操作是預期的情況下,會更謹慎地呼叫它。
  • 解釋回傳形狀:如果工具回傳一個具有特定結構的 JSON 物件,請描述關鍵欄位。Claude 使用這些資訊來為下一步提取正確的資訊。
  • 保持範圍狹窄:一個名為 "run_anything" 且接受任意 shell 指令的工具,比一個執行專案測試套件的 "run_tests" 更難讓 Claude 理解。具有精確描述的狹窄工具比具有模糊描述的廣泛工具效果更好。

常見外掛問題疑難排解

執行 claude mcp add 後工具未出現

在一個新的終端機中檢查伺服器指令是否無錯誤執行。Claude Code 可能會隱藏子程序的 stderr。執行 claude mcp list——如果伺服器顯示超時或錯誤,則是指令本身失敗,而不是配置問題。

工具已註冊但從未被呼叫

工具描述太模糊。重寫它們,指定 Claude 何時應該呼叫該工具以及引數的含義。

npx 在首次執行時卡住

新增 -y 標誌以自動接受安裝提示:npx -y @package/mcp-server。如果沒有它,npx 會等待使用者確認,而 Claude Code 會看到連線超時。

伺服器在新專案中未啟用

你以 local 作用域註冊,並從不同的目錄啟動了 Claude Code。使用 --scope user 重新新增以獲得全域伺服器,或從正確的專案根目錄執行 add 指令。

工具呼叫失敗,出現 schema 驗證錯誤

Claude 根據工具的 JSON Schema 建構引數。如果 schema 中缺少必要欄位或類型不匹配,伺服器會拒絕呼叫。檢查你的 inputSchema 定義——不完整的 schema 會導致不完整的呼叫引數。

找不到 claude mcp add 指令

安裝 Claude Code:npm install -g @anthropic-ai/claude-code,然後使用 claude --version 驗證。

常見問題

Claude Code 有外掛市集嗎?

傳統意義上沒有。Claude Code 使用 MCP 協議,而非平台特定的市集。社群建立的 MCP 伺服器發佈在 npm、PyPI 和 GitHub 上。一些聚合站點維護著精選列表,但沒有官方的 Claude Code 市集可供瀏覽。

什麼是 claude code 外掛文件?

Anthropic 關於 Claude Code MCP 整合的官方文件位於 docs.anthropic.com/claude-code。MCP 規範本身位於 modelcontextprotocol.io。這兩個是查閱權威協議和實作細節的來源。

MCP 伺服器與 Claude Code 外掛有什麼不同?

在 Claude Code 的上下文中,這兩個術語指的是同一件事。當開發者說「Claude Code 外掛」時,他們通常指的是連接到 Claude Code 的 MCP 伺服器。「外掛」這個詞不是 Anthropic 的官方術語,但概念直接對應:安裝一次,在每個工作階段中使用,用新工具擴展 Claude 的功能。

我可以在 Claude Desktop 和 Claude Code 中使用同一個 MCP 伺服器嗎?

可以。該伺服器是協議無關的——它不在乎哪個主機連接。對於 stdio 伺服器,Claude Code(透過 claude mcp add)和 Claude Desktop(透過 JSON 配置檔案)都可以啟動同一個指令。對於 HTTP 伺服器,任何可以連接到該 URL 的主機都可以連接。

我可以註冊多少個 MCP 伺服器?

MCP 協議和 Claude Code 沒有強制限制。實際上,擁有許多帶有數百個工具的伺服器可能會減慢工作階段啟動速度(工具發現會在啟動時執行),並為 Claude 的工具選擇增加噪音。保持活躍的集合集中在給定工作階段實際需要的工具上。

新增 MCP 外掛有安全風險嗎?

有。MCP 伺服器作為程序執行,具有完成其工作所需的任何權限。一個具有檔案系統存取權限的伺服器可以讀取或寫入檔案;一個具有 shell 執行權限的伺服器可以執行任意指令。只新增你信任的伺服器。對於生產或共享環境,請考慮在隔離環境中執行伺服器——請參閱上面的沙盒章節。

開放權重模型支援 MCP 工具呼叫嗎?

支援。在 Anthropic 訊息 API 格式中實作函式呼叫的模型,無論提供商為何,都可以與 Claude Code 的 MCP 層協同工作。Qwen3-Coder、MiniMax M2.7 和 DeepSeek V3.1 都支援結構化工具呼叫。工具調度由 Claude Code 處理;模型只需要以預期格式回傳有效的工具呼叫指令即可。


推薦文章