Claude Code プラグイン:MCP ツールが外部機能で Claude Code を拡張する仕組み

Claude Code プラグイン:MCP ツールが外部機能で Claude Code を拡張する仕組み

Claude Code には、従来のマーケットプレイスやワンクリックインストールを備えたプラグインシステムはありません。代わりに、Anthropic が提供するオープンスタンダードである Model Context Protocol (MCP) を使用して、外部ツールを Claude Code セッションにアタッチします。MCP サーバーはプラグインとして機能します。つまり、呼び出し可能なツールを公開し、Claude がそれらを使用するタイミングを決定し、結果が会話にフィードバックされます。このガイドでは拡張モデルについて説明します。コピー可能な CLI と JSON のセットアップについては、Claude MCP 設定ガイド を参照してください。

「Claude Code プラグイン」の実際の意味

開発者が「Claude Code プラグイン」を検索するとき、通常は次の3つのうちいずれかを求めています。Claude Code に外部サービス(GitHub、データベース、Webブラウザ)へのアクセス権を与える方法、コミュニティ構築のツール拡張機能をインストールする方法、または拡張メカニズムの仕組みに関するドキュメントです。

これら3つはすべて MCP にたどり着きます。Anthropic は Claude Code を、独自のプラグインフォーマットではなく、Model Context Protocol を中心に設計しました。つまり:

  • 専用マーケットプレイスはありません:ツールはプラットフォーム固有のレジストリではなく、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 サーバーのインターフェースを構成する3つの要素:

オブジェクト 説明
ツール (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 は、MCP サーバーを Claude Code に登録するコマンドです。一度実行すると、そのサーバーは以降のすべてのセッションで利用可能になります。

# stdio サーバーの基本形式
claude mcp add <サーバー名> -- <コマンド> [引数...]

# HTTP サーバーの基本形式
claude mcp add --transport http <サーバー名> <URL>

claude mcp add コマンドを実行する前の前提条件:

  • Claude Code がインストールされ、PATH が通っていること(claude --version が動作すること)
  • npm ベースのサーバーには Node.js 18 以降
  • Python ベースのサーバーには Python 3.10 以降

Playwright ブラウザプラグインの追加

Playwright MCP サーバーは Claude に実際のブラウザを提供します。URL への移動、要素のクリック、テキストの抽出、スクリーンショットの返却が可能です。これは最初に追加する最も有用なプラグインの1つで、API キーが不要で、プロトコルの機能をすぐに実証できます。

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

登録を確認します:

claude mcp list

その後、セッションを開きます:

playwright を使って https://example.com を開き、ページのタイトルとメインヘッダーを教えてください

Claude はブラウザを起動し、URL に移動し、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 を起動した場合にのみ有効になります。3つのスコープオプションにより、異なる共有モデルが提供されます:

スコープ 有効な場所 設定ファイル 使用するタイミング
local(デフォルト) カレントディレクトリのみ ~/.claude.json 1つのプロジェクト専用の個人開発サーバー
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 リポジトリ、Issue、PR、コード検索
@notionhq/notion-mcp-server Notion ページとデータベースの読み取りと書き込み

AI とコード実行

サーバー 追加される機能
Novita Sandbox MCP サーバー クラウドサンドボックスでの分離された Python/Node 実行
@modelcontextprotocol/server-memory セッションをまたいだ永続的なキー・バリューメモリ

これらは、npm ベースのパッケージには npx、Python パッケージには uvx/pip を使用して claude mcp add でインストールできます。

Claude が実行時にツール呼び出しをルーティングする仕組み

Claude はツールをランダムに呼び出したり、すべてを網羅的に呼び出したりするわけではありません。タスクの各ステップに対してどのツール(もしあれば)が適切かを、ツールの説明のみに基づいて推論します。

高レベルでのルーティングロジック:

  1. セッション開始時に、Claude は登録されたすべてのサーバーにクエリを実行し、ツールカタログを構築します
  2. 各ユーザーメッセージまたはタスクステップに対して、Claude はツールの説明が必要とされるものに一致するかどうかを評価します
  3. 一致する可能性が高い場合、Claude はツールの JSON Schema に基づいて適切な引数で呼び出しを構築します
  4. Claude Code が呼び出しをディスパッチし、結果を待ってから、次のステップの前に組み込みます

1つの結果:ツールの説明は重要です"便利なツール" のような曖昧な説明では、ツールが呼び出されることはありません。ツールが何をするのか、いつ呼び出すべきか、入力と出力はどのようなものかを正確に説明することで、正確で信頼性の高い使用が可能になります。

独自の MCP サーバーを構築していて、登録されているにもかかわらずツールが呼び出されない場合、ほとんどの場合、問題は実装ではなく説明にあります。

Claude は1回のターン内でツール呼び出しを連鎖させることもできます。ファイルを読んでコンテキストを理解し、依存関係を検索し、テストを実行し、出力を確認し、修正を提案する — 各ステップで異なるサーバーの異なるツールを使用します。

サンドボックスでのプラグイン実行

プラグインがコード(Python スクリプト、シェルコマンド、ブラウザ自動化)を実行する場合、ローカルマシンで実行するとリスクが伴います。ファイルシステムアクセスやプロセス生成機能を持つツールは、誤動作したり、不適切なプロンプトを受け取ったりした場合に広範な影響を及ぼす可能性があります。

Novita Agent Sandbox は、ツール実行のために分離されたクラウド環境を提供することで、この問題に対処します。MCP サーバーをローカルで実行する代わりに、サンドボックスインスタンス内にデプロイします。サンドボックスは独自のファイルシステム、ネットワークスコープ、リソース制限を取得します。ツールの実行は、ホストマシンに影響を与えることなく、その境界内で行われます。

Claude の観点からは、統合はまったく同じです。ツールリストは同じように見え、呼び出しも同じように機能します。違いは実行場所のみです。

MCP ツール実行のための Novita Sandbox の主な特徴:

  • 高速起動:インスタンスは平均約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 などの一般的なパッケージがプリインストールされています。詳細なチュートリアルについては、Build a Remote Code Execution MCP Server with Novita Sandbox and mcp-use Library を参照してください。

ツール使用推論のための Novita LLM API の利用

Claude Code は、バックエンドとして設定されているモデルを使用してツール使用推論を処理します。Claude Code を代替プロバイダー経由でルーティングしている場合(コスト、レイテンシ、モデルアクセスの理由による)、ツール呼び出しの推論レイヤーもそのプロバイダー経由でルーティングされます。

Novita LLM API は、https://api.novita.ai/anthropic で Anthropic 互換のエンドポイントを提供します。3つの環境変数で一度設定します:

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": "利用可能なツールをリストアップして、簡単なチェックを実行してください"}],
    tools=[
        {
            "type": "function",
            "function": {
                "name": "list_files",
                "description": "現在の作業ディレクトリ内のファイルをリストアップします。",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "path": {
                            "type": "string",
                            "description": "リストアップするディレクトリパス。"
                        }
                    },
                    "required": ["path"]
                }
            }
        }
    ],
    tool_choice="auto",
)

これは、クローズドモデルとは異なるコストやレイテンシ特性を持つカスタム MCP パイプラインにおいて、オープンウェイトモデルを推論レイヤーとして機能させたい場合に特に有用です。

代替バックボーンとしてのオープンウェイトモデル

MCP を多用する Claude Code ワークフローにおける、あまり評価されていないオプションの1つは、デフォルトの Claude モデルを完全に有能なオープンウェイトの代替モデルに置き換えることです。Qwen3-Coder、MiniMax M2.7、DeepSeek V3.1 などのモデルは、ツール呼び出しの精度とマルチステップ推論に特化してトレーニングされています。一部のベンチマークでは、関数呼び出しタスクにおいてクローズドソースモデルに匹敵するかそれを上回り、コストはわずかです。

大量のエージェントセッション(CI パイプライン、自動コードレビュー、バッチリファクタリング)を実行するチームにとって、コストの違いは重要です。Novita AI は、同じ Anthropic 互換エンドポイントを通じてこれらのモデルへのアクセスを提供するため、切り替えはコードの書き換えではなく、設定変更です。

効果的なツール説明の書き方

Claude Code 用に独自の MCP サーバーを構築する場合、ツールの説明の質が、Claude がツールを効果的に使用するかどうかを決定します。これは、カスタムサーバーに対して最も効果の高い単一の改善点です。

効果的なツール説明は、次の3つの質問に答えます:

  1. ツールは何をするのか? — 抽象的ではなく具体的に
  2. いつ呼び出すべきか? — シナリオまたはトリガー条件
  3. 入力と出力は何か? — Claude が正しい引数を構築するのに十分な情報

同じ search_codebase ツールに対する2つの説明を比較してください:

悪い例: "コードベースを検索します。"

効果的な例: "現在のリポジトリ内のソースファイルから、シンボル、文字列、または正規表現パターンを検索します。関数が定義されている場所を見つけたり、変数のすべての使用箇所を特定したり、特定のモジュールを参照しているファイルを特定する必要がある場合に呼び出します。一致する行と行番号を含むファイルパスのリストを返します。"

2番目の説明は、Claude にツールをいつ呼び出すべきかを伝えており(単に何をするかだけでなく)、より正確でタイムリーな呼び出しを実現します。

その他の実践的なヒント:

  • 変更を加えるツールは明確に示す:ツールがデータベースに書き込んだり、コードをデプロイしたりする場合は、明示的に記述します。Claude は、そのアクションが意図されているという明確な証拠がなければ、ツールを呼び出す際により慎重になります。
  • 戻り値の構造を説明する:ツールが特定の構造を持つ JSON オブジェクトを返す場合は、キーフィールドを説明します。Claude はこれを使用して、次のステップに適切な情報を抽出します。
  • スコープを狭く保つ:任意のシェルコマンドを受け入れる "run_anything" というツールよりも、プロジェクトのテストスイートを実行する "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 コマンドを実行してください。

ツール呼び出しがスキーマ検証エラーで失敗する

Claude はツールの JSON Schema に基づいて引数を構築します。必須フィールドがスキーマにない場合や型が一致しない場合、サーバーは呼び出しを拒否します。inputSchema 定義を確認してください。不完全なスキーマは不完全な呼び出し引数につながります。

claude mcp add コマンドが見つからない

Claude Code をインストールします:npm install -g @anthropic-ai/claude-code、その後 claude --version で確認します。

FAQ

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 の機能を拡張します。

同じ MCP サーバーを Claude Desktop と Claude Code の両方で使用できますか?

はい。サーバーはプロトコルに依存せず、どのホストが接続するかは気にしません。stdio サーバーの場合、Claude Code(claude mcp add 経由)と Claude Desktop(JSON 設定ファイル経由)の両方で同じコマンドを起動できます。HTTP サーバーの場合、URL に到達できる任意のホストが接続できます。

登録できる MCP サーバーの数に制限はありますか?

MCP プロトコルと Claude Code はハードリミットを課していません。実際には、数百のツールを持つ多数のサーバーは、セッションの起動を遅くし(ツール検出は起動時に実行されます)、Claude のツール選択にノイズを追加する可能性があります。アクティブなセットは、特定のセッションで実際に必要なものに集中させてください。

MCP プラグインの追加にセキュリティリスクはありますか?

はい。MCP サーバーは、ジョブを実行するために必要な権限を持つプロセスとして実行されます。ファイルシステムアクセスを持つサーバーはファイルを読み書きでき、シェル実行を持つサーバーは任意のコマンドを実行できます。信頼できるサーバーだけを追加してください。本番環境や共有環境では、サンドボックスセクションで説明されているように、分離された環境でサーバーを実行することを検討してください。

オープンウェイトモデルは MCP ツール呼び出しをサポートしていますか?

はい。Anthropic メッセージ API 形式で関数呼び出しを実装するモデルは、プロバイダーに関係なく Claude Code の MCP レイヤーで動作します。Qwen3-Coder、MiniMax M2.7、DeepSeek V3.1 はすべて構造化ツール呼び出しをサポートしています。ツールディスパッチは Claude Code によって処理されます。モデルは、期待される形式で有効なツール呼び出し命令を返すだけで済みます。


おすすめ記事