Claude Code プラグイン:MCP ツールで外部機能を拡張する方法

Claude Code プラグイン:MCP ツールで外部機能を拡張する方法

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つの要素で構成されます。

オブジェクト 説明
ツール 定義された入力と出力を持つ呼び出し可能な関数 run_pythonsearch_docscreate_issue
リソース サーバーがコンテキストとして公開する読み取り専用データ ファイルの内容、データベースの行、テストフィクスチャ
プロンプト サーバーにバンドルされた事前構築済みの指示テンプレート コードレビューチェックリスト、タスクテンプレート

ほとんどの 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 はサーバーを ローカル スコープで登録します。これは、現在のディレクトリから 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 ローカルリポジトリからのコミット、差分、ブランチ、 blame の読み取り
@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 セッションをまたいだ永続的なキーバリューメモリ

これらは、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 ワークフローで見過ごされがちな選択肢は、デフォルトの 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 プラグインドキュメントはどこにありますか?

Claude Code の MCP 統合に関する Anthropic の公式ドキュメントは docs.anthropic.com/claude-code にあります。MCP 仕様自体は modelcontextprotocol.io にあります。これらが、公式のプロトコルと実装の詳細を参照するための2つの情報源です。

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 が処理し、モデルは期待される形式で有効なツール呼び出し命令を返すだけで済みます。


おすすめ記事