[AI書房] 第9章 MCP接続サーバー: エージェントを拡張する
Claude Code完全攻略
第3部
第9章 MCP接続サーバー: エージェントを拡張する
金京鎮
導入
土曜日の朝、ケーキを作ることにしました。レシピには卵、小麦粉、フロスティングが必要です。卵は養鶏場で、小麦粉は製粉所で、フロスティングは菓子材料専門店で購入しなければなりません。三つの場所を回り、それぞれの注文方法と決済システムを習得する必要があります。大変です。しかし、近所にスーパーマーケットが一つあればどうでしょうか。
一つの場所で卵も小麦粉もフロスティングも購入できます。注文方法も一つ、決済システムも一つです。MCP接続サーバーはまさにこのスーパーマーケットです。
MCPとは何か:スーパーマーケットの比喩
MCPは「モデル・コンテキスト・プロトコル(Model Context Protocol)」の略称です。エージェントが外部サービスにアクセスする際に使用する標準化された接続方式です。
Gmail を例に挙げてみましょう。Gmail には、メールを送信する機能、受信メールを読む機能、検索する機能、下書きを作成する機能があります。一つのサービスの中に多様なツールが備わっています。Gmail の MCP 接続サーバーを Claude Code に接続すれば、エージェントはこれらのすべてのツールを一度に利用できるようになります。
「メールを送る」ために個別のスクリプトを記述する必要はありません。「検索する」ために API のドキュメントを調べる必要もありません。エージェントが MCP 接続サーバーに接続されていれば、利用可能なツールを自動的に把握し、状況に応じて適切なツールを選択して使用します。
スーパーマーケットの比喩をさらに広げてみましょう。
[図 9-1] 左側は「MCP なし」でエージェントが個別の 3 つの API にそれぞれ接続している様子、右側は「MCP 使用」でエージェントが 1 つの MCP 接続サーバーを通じて複数のツールにアクセスしている様子を示す比較図
MCP の核心は標準化にあります。どのサービスであっても MCP 規格に準拠したサーバーを用意しておけば、Claude Code は同じ方法で接続し、同じ方法でツールを呼び出します。Gmail であれ Firecrawl であれ Google Calendar であれ、接続方法の骨格は共通しています。
Firecrawl MCP 接続サーバーのインストール実習
理論だけではイメージが湧きません。実際に MCP 接続サーバーを一つインストールしてみましょう。Firecrawl はウェブサイトのデータを収集するサービスです。ウェブ情報の収集(スクレイピング)、クロール、検索、スクリーンショットのキャプチャなど、さまざまな機能を提供しています。このサービスの MCP 接続サーバーを Claude Code に接続すれば、エージェントが自由にウェブデータを取得できるようになります。
1 ステップ:Firecrawl API キーの発行
Firecrawl のウェブサイト(firecrawl.dev)にアクセスしてアカウントを作成します。無料プランで始めると、500 クレジットが付与されます。実習には十分な量です。ダッシュボードに入ると API キーが表示されますので、このキーをコピーして保管しておいてください。
2 ステップ:.env ファイルへの API キー保存
プロジェクトのルートに.env ファイルが存在しない場合は作成し、既に存在する場合はそのファイルを開きます。ここに API キーを以下の形式で保存します。
なぜ.env ファイルに保存するのかというと、次の節で詳しく説明しますが、核心を言えば以下の通りです。API キーはパスワードと同様です。会話履歴に直接入力すると、そのキーが読み取り範囲内で平文として残ってしまいます。.env ファイルに保存すれば、エージェントは必要な時にファイルから読み出しますが、会話履歴自体にはキーが露出されません。
3 ステップ:MCP 接続サーバーのインストールコマンド実行
Claude Code に対してインストールを依頼します。Firecrawl の公式ドキュメントには、Claude Code のコマンドライン方式向けのインストールコマンドが記載されています。エージェントには次のように伝えます。
エージェントはコマンドを実行して MCP 接続サーバーをプロジェクトに登録します。インストールが完了したら、.env ファイルに保存された API キーを参照するように設定を完了させます。
ステップ 4: インストールの確認
インストールが完了したら、/context コマンドを入力してみてください。MCP ツール項目に Firecrawl 関連のツールが表示されるはずです。ウェブ情報収集、クロール、検索などのツールがリストに表示されれば、正常に接続されています。
[図 9-2] /context コマンド実行結果のスクリーンショットで、MCP Tools セクションに Firecrawl ツールリストが表示されている様子
この時点から、エージェントは「この URL から求人広告をウェブ情報収集してください」といった自然言語の依頼を受けると、Firecrawl MCP 接続サーバーの適切なツールを自動的に選択して実行します。どのエンドポイントを呼び出すべきか、どのようなパラメータを渡すべきかをユーザーが知る必要はありません。
API キーのセキュリティ:.env ファイルに秘密を保存する理由
Firecrawl のインストール過程で .env ファイルについて言及しました。なぜ API キーをチャットに直接入力してはいけないのか、もう少し深く掘り下げてみましょう。
API キー(API Key)は、外部サービスにアクセスするための認証手段です。パスワードと本質的に同じです。このキーが漏洩すると、誰かがあなたのアカウントでサービスを利用でき、費用が請求される可能性があります。
Claude Code のチャットに API キーを直接貼り付けると、どのようなことが起こるでしょうか?そのキーはチャット履歴の一部となります。一度に読み込める範囲内で平文として存在します。エージェントが Bash コマンドを実行する際、キーを引数として渡すと、実行ログにもキーが残る可能性があります。セキュリティの観点から望ましくありません。
.env ファイルを使用すれば、この問題は緩和されます。キーはあなたのコンピュータ上のファイル内にのみ存在します。エージェントはスクリプト内で os.environ などの方法で環境変数を読み込み、キー自体はチャット履歴に残りません。
さらに、安全装置を一つ追加しましょう。プロジェクトに .gitignore ファイルを作成し、.env をそのリストに追加します。こうすれば、プロジェクトを GitHub などの公開リポジトリにアップロードしても、.env ファイルはアップロードされません。秘密がインターネットに漏洩する事故を防ぐことができます。
この 2 行がセキュリティの基本的な防御線です。
[図 9-3] API キーの安全な管理フローを示すダイアグラム。「.env ファイル → 環境変数として読み込み → スクリプトで参照」の経路と、「チャットウィンドウに直接入力 → コンテキスト記録に露出」の経路を比較
演習中に誤って API キーをチャットウィンドウに入力してしまった場合は、そのキーを直ちにローテーション(交換)することが安全です。サービスダッシュボードで既存のキーを廃棄し、新しいキーを発行して.env ファイルに保存すればよいのです。
MCP によって拡張されるエージェントの行動範囲
Firecrawl を 1 つ接続しただけなのに、エージェントが実行できることの範囲が大幅に広がりました。求人情報サイトから数百件の募集をウェブ情報として収集し、Excel ファイルに整理できます。イエローページから歯科医の連絡先を収集して営業用のリードリストを作成することも可能です。競合他社のウェブサイトを定期的にモニタリングすることもできます。
1 つの MCP 接続サーバーがスーパーマーケット 1 店舗だとすれば、複数の MCP 接続サーバーを接続することは、複数のスーパーマーケット会員権を同時に保有しているようなものです。Gmail MCP 接続サーバーを追加すれば、メールの読み取り、送信、検索が可能になります。Google Calendar MCP 接続サーバーを追加すれば、スケジュールの照会と作成が可能になります。
これらを組み合わせることで、エージェントは「今日受信したメールの中から会議の依頼を探し、カレンダーにスケジュールを追加してください」といった複合的な依頼を処理できるようになります。
[図 9-4] エージェントを中央に置き、Firecrawl、Gmail、Calendar、Notion などの複数の MCP 接続サーバーが放射状に接続されたダイアグラム。各サーバーの隣には、代表的なツールを 2〜3 つ小さなアイコンで表示します。
MCP 接続サーバーを追加するたびに、該当サービスの API キーを.env ファイルに保存し、インストールコマンドを実行するパターンは同じです。一度習得した手順を繰り返すだけです。
ここで注意すべき点があります。MCP 接続サーバーを接続するほど、一度に読み込む範囲において MCP ツール定義が占める割合が大きくなります。前章で扱った/context コマンドで確認すると、MCP Tools 項目のモデルが消費するトークン数が増えていることがわかります。エージェントの手は増えましたが、記憶できるスペースは減ったのです。
不要な MCP 接続サーバーを無秩序に接続すると、肝心な会話内容を収めるスペースが不足する恐れがあります。
MCP 接続サーバーの選定は、プロジェクトの目的に合わせるべきです。競合他社分析を行うプロジェクトに Gmail MCP 接続サーバーが必要とは限りません。メール自動化を行うプロジェクトに Firecrawl が必須であるわけでもありません。必要なものだけを付加することが、最も効率的です。
エージェントに、記憶(一度に読み込める範囲)、指示(claude.md)、そして手(MCP 接続サーバー)を備えさせました。これら三つが調和すれば、エージェントは初めて実務を遂行する準備が整います。今からはこれらのツールを組み合わせ、実際のプロジェクトを構築する過程へと進みます。




