SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

SB C&S

MCPって何者?

AI
2025.04.30

皆さんこんにちは。
SB C&Sの佐藤です。
今回はAIエージェントにおける重要な技術要素である「MCP」について、噛み砕いて説明していきます。


MCPとは?

まず「MCP」について、簡単に解説していきます。
MCPとは「Model Context Protocol」の略で、ざっくり説明すると「AIとデータを繋げるための仕組み」です。
AIのモデルは今日まで様々生み出されてきましたが、どれだけ素晴らしいモデルであろうと、取得したいデータが隔離されてしまっている状況ではその真価を発揮できません。

そこで生まれたのがこのMCPです。
分散システムにおいて、異なるモデルやコンポーネント間でコンテキストを効率的に共有し、整合性を保つためのプロトコルとなっており、開発者がデータソースとAI搭載ツールとの間に安全な双方向接続を構築できるようにするOSSです。そのためMCPを使うことにより、APIの仕様に左右されない共通のフォーマットでやり取りを出来るようになります。

AIシステムにおいて各種ツールからのデータ取得(例:オンライン地図サービスでの検索結果取得や、Gitリポジトリの情報取得)は主にAPIによる連携で行われます。例えば、「浜松町駅からポートシティ竹芝までの行き方を教えて」とAIに指示した場合、AIは地図サービスに対して問い合わせを行います。この時のモデルと地図サービスのデータ連携がAPIで行われるという訳です。

しかしAPIの仕様というのは実は複雑で、ツール毎のみならず、問い合わせ種別によっても呼び出す関数や、その関数に渡す変数が変わってきてしまいます。地図サービスでは一例として、以下のような種類があります。

・地図の表示:位置(座標)、縮尺値、中心座標、地図の種類
・ルート検索:開始位置、終了位置、移動手段
※その他にもたくさんありますが、今回は紹介を省略します

AIツールとなるとこれらを毎回条件に合わせて呼び出し定義するというのは、かなり大変です。例えば上記の2つだけの場合でも「質問が地図の表示の場合」と「質問がルート検索の場合」で呼び出す関数が変わってしまいます。Difyのようなツールでも「質問種別」の判別はモデルに任せられても、その後どのような処理を呼び出すかはif文を使用して処理を作成する必要があります。

従来のツールと違い、AIツールでは呼び出し関数の制御はとても難しいです。そうなるとこのようなやり方ではとても制御できないため、MCPが採用されるという訳です。

1Dify.png

【従来の方法における、Difyでの作成例】
「Question Classifier」で質問の分類をGPTに任せていますが、その結果どうするかは人間が手で設定しています。
パターンが増えれば触れるほど面倒です。

各種ツールに連携するにはツール毎に「Server」と呼ばれるコードを書く必要がありますが、すでに公式が作成済みで公開(GitHubのページに遷移します)されているものも多くありますし、追加での自作方法も説明されています。
この「Server」はコード記述の必要はありますが呼び出し元のAIアプリケーションからは離れて独立しているため、「使いまわしや修正が容易」という利点もあります。

また今回はクライアントには一番簡単なClaude Desktopを選択していますが、他のクライアントツールとの連携も可能です。

 ちょっと説明が分かりにくいかもしれませんが、つまるところMCPは「連携ツール呼び出しを共通化してくれる」というわけです。従来の方法だとこのMCP部分を人間がコーディングで対処しなくてはいけなかった訳です。
それ以外にもクライアント起動時に「使えるツールとAPIの一覧」を教えてあげるのもMCPの役割です。

2図解.jpg

※頑張って手書きしたのですが、左右逆の方が流れが分かりやすかったと後から後悔しています


構築方法

始めにざっくりと全体的な作業を説明すると、
・各種ツール等インストール⇒MCPへの追加設定
という流れになります。
それではさっそくそれぞれ見ていきましょう!

①各種ツール等インストール

ClaudeのMCPを実行するにあたり必要なツールやアカウントは以下の通りです。
Anthropicアカウント:「Talk to Claude」ボタン押下でアカウント作成画面遷移可能 
Claudeデスクトップアプリ
Node.js(npxコマンド) ※1
・その他必要に応じて連携したいアプリのアカウント(GitHubの各種Serverの説明に必要な情報は明記されています) ※2

今回それぞれの詳細なインストール方法は省略しますが、各種アプリのアカウント以外は公式サイトリンクを貼っていますのでそちらからお使いのOSに合ったものをダウンロード⇒インストールをしていただければOKです。
その際は必ず最新バージョンをインストールしてくださいね!

※1:npxコマンドはNode.jsと同時にインストールされます
※2:連携させるツールによってはアカウント不要なものもあります

②MCP設定の追加

ここから少しプログラミング的知識を必要としますが、なるべく簡単に説明していきます。

まずはClaude Desktopアプリを立ち上げ、上部メニューから【ファイル】>【設定】と遷移します。

3.jpg

左メニューから「開発者」(英語表記の場合:Development)を選択し、「構成を編集」をクリックします。

4.jpg

設定ファイルが置かれているフォルダが開くので、「claude_desktop_config.json」というファイルを任意のテキストエディタで開き、このファイルに連携したいツールの設定を追加します。追加に関わるコードの書き方は上述の通りGitHubのドキュメントに書かれています。

今回はFilesystemと、GitHub、Git等を追加しました。書き方については下図でご説明しています。ちょっと難しいですが、入れ子式の構造になっていることを意識できれば、後はコピペとちょっとした書き換えでいけるので、是非挑戦してみてください。

5.png

構成ファイルの更新完了後、Claudeを再起動します。
再起動後、Chat欄の右下にハンマーのマークが表示されれば、連携完了です!
(表示まで少し時間がかかる場合があります)

6.png

またこのハンマーをクリックすることで、現在使用可能なAPI一覧が表示されます。
この一覧を見ながら何をしようか考えるのも楽しいです。

7.jpg


使ってみた

今回はGitHubとGit、ローカルファイル操作を可能にするFilesystemを連携したので、以下を試してみましょう。
「MyJavaBlogSite(クローン済みのリポジトリ)のPostControlloer.javaの単体テスト用ソースを作成してmainブランチにコミットして。
 コミットが終わったらテスト項目一覧をテキストにしてC\tmcTestに保存して。」

8.jpg

するとチャット欄に実行している内容や、実行に使用したコードが表示されます。
ローカルにクローン済みのリポジトリを探索し、単体テストコードを作成しているようです。

9.jpg

そして各種認証が必要な場合はこのように確認メッセージが表示されます。「いつアクセスをしたのか、何度アクセスをしたのか」というのがブラックボックスだと少々怖いので、このように明示的に確認が入るのは個人的にとても良いと思いました。
ここではGitでのコミット許可を確認しているようです。許可しましょう。

10.jpg

結果の確認です。まずはGitHubを確認してみましょう。
指定したリポジトリに単体テストコードが追加されています。今回は実行まで行いませんが、内容を確認すると十分なコードが実装されています。

11.jpg

次にローカルフォルダです。Beforeがないので分かり辛くて申し訳ないのですが、何やらファイルが追加されていました。
ファイルの中身はこちらです。ローカルファイル操作まで含め、どうやらすべてが無事終了したようです!12.jpg


まとめと感想

MCPでエージェントを構成してみた、でした。今回は「AIエージェントの仕組み」に近い紹介でしたが、いかがだったでしょうか。

使ってみた感想として、構成部分では専門知識も必要になったり、呼び出しAPIに関する理解がないと難しかったり、クライアントによって実装難易度が違ってきたり、結局呼び出し先APIの契約は必要だったりといった点はありましたが、AIエージェントを理解するためにも一度触ってみる価値はあると思いました。

また1つ1つ設定ファイルに記述する面倒さはありますが、逆にとらえると「どのAPIをどのように許可しているか」ということをホワイトボックス化できます。これはセキュリティ面においてとても重要です。他にも実行時にAPI連携が必要になると、関数毎に確認メッセージが入るのも良いと感じました。
まだまだAIに関するリテラシーやセキュリティに関しての整備が甘い中なので、こういった工夫は必須ですよね。

そして今回のように「必要なものだけ連携していく」ことで、費用を抑える効果もあります。
実際ほとんどOSSの利用だけでOpenAIのDeep Researchのようなことを実現出来たりもしますし、OpenAIのように様々なサービスが同梱されている必要がない場合であればむしろ好都合かもしれません。

またMCPで好きにカスタマイズできるという楽しみもありますね。
今回紹介した以外にも様々なツールがMCP Serverを公開しており、開発側では盛り上がりを見せています。「これとこれを組み合わせてみた!」という実例もSNSを中心に多数上がっているので、皆さんも是非参考にして、自身の業務や日々のタスクにどう活かせるか考えてみてください。

次回はMCPとも深い関わりのある「A2A(Agent 2 Agent)」を紹介していきますので、是非こちらも併せてご覧ください。

開発(DevOps)に関わる情報はこちらから

著者紹介

SB C&S株式会社
ICT事業本部 技術本部 技術統括部 第2技術部 2課
佐藤 梨花

勤怠管理システムの開発(使用言語:Java)に約8年間従事。
現在はエンジニア時の経験を活かしたDevOpsやDX推進のプリセールスとして業務に精励しています。