こんにちは!デジタルイノベーション部の櫻井です。
この記事ではAIエージェントで使われている最新技術、MCPについて紹介をしていきます。記事の後半ではpythonを用いた簡単なMCPの実装例も紹介しています。
まず、MCPの根幹となる技術、AIエージェントについて紹介します。AIエージェントとはAIが自動で計画を考え、実行を繰り返し、ユーザとやり取りをすることで目的を達成する技術です。人間で例えるなら、自動でタスクを行なってくれる秘書みたいな存在です。
例えば、下図のようにユーザが「沖縄の旅行プランを作って!」とAIエージェントに命令した場合、AIエージェントは以下のように
AIエージェントは、この2(計画)と3(実行)のサイクルを何度も繰り返して情報を集め、最終的に最適な旅行プランとしてまとめてユーザーに提案します。
MCP(Model Context Protocol)とは、AIモデルと複数の外部サービスを、USBハブのように簡単に連携させることができる技術です。一度MCPと各サービスを連携させておけば、AIモデルはMCPに接続するだけで、全てのサービスと連携可能になります。
AIモデルと各サービスを直接繋げる従来手法と比べると、モデルの変更やサービス追加に応じて、連携コードの実装にかかるコストや連携の手間を減らすことができます。
このようにMCPを用いることで、AIエージェントをより効率よく開発することができます。
ここからは実際にMCPを実装していきたいと思います。
まずは、実装を行うための準備として、環境構築をしていきます。
Claude DesktopはLLMの一つであるClaudeを扱えるアプリケーションです。無料版でもアプリ上で簡単に自身で作成したMCPと連携することが可能です。
以下のサイトから自身のOSにあったClaude Desktopをダウンロードしてください。
※最初の起動時にアカウント登録をする必要があります
デスクトップでクロードを使う
今回の実装ではプログラミング言語であるPythonを用いてMCPを構築していきます。
Pythonを扱うために、以下のリンクからOSに合ったPythonのインストーラをダウンロードして、インストールしてください。
※今回扱うPython環境は3.10.0です
Python 3.10.0
インストールが完了したら、MCPを実装するフォルダを作成し、フォルダ内で以下のコマンドを実行してください。
※Windows の場合は全てのコマンドにpy -m
を最初につけてください
MCPを実装するプロジェクトフォルダの作成
# uvのインストール
pip install uv
# プロジェクトフォルダの作成
uv init mcp-server
上記のコマンドを実行するとmcp-server
フォルダが作成され以下のディレクトリ構成になります。
.
└── mcp-server
├── main.py
├── pyproject.toml
├── README.md
└── uv.lock
続いてmcp-server
内でMCPを実装するためのcli(ツールキット)とPythonライブラリをインストールします。
# mcp-serverフォルダに移動
cd mcp-server
# ツールキットのインストール
uv add "mcp[cli]"
# Pythonライブラリのインストール
pip install fastmcp
最後にmcp-server
内にserver.py
を作成してください。
以上でMCPを実装するための環境構築は完了です。
では、MCPの実装を行なっていきます。今回は間違った足し算の結果を返すツールを実行するMCPを実装します。
※このツールは実用性を目的としたものではありませんが、正しい計算結果との差を確認することでMCPの動作を理解しやすくなるよう、この仕様にしています。
実装コードは以下のようになっています
from fastmcp import FastMCP
# サーバ名
mcp = FastMCP("Demo‑MCP")
# ツールの定義
@mcp.tool
def add_fool(a: int, b: int) -> int:
"""頭を悪くして2つの整数を加算して返す"""
return a + b + 100
if __name__ == "__main__":
# ファイル実行時にサーバを起動
# transport='stdio' は標準入出力を使用することを意味
mcp.run(transport='stdio')
ここからは実装コードについて上から順に解説していきます。
from fastmcp import FastMCP
この箇所ではPythonでMCPを扱うためのライブラリFastMCPを読み込んでいます。
# サーバ名
mcp = FastMCP("Demo‑MCP")
この箇所ではMCPを起動するサーバ名を設定し、MCPを起動するためのクラスインスタンスを定義しています。
# ツールの定義
@mcp.tool
def add_fool(a: int, b: int) -> int:
"""頭を悪くして2つの整数を加算して返す""" # この箇所がツールの説明としてLLMに送信される
return a + b + 100
ここではMCPで扱うツールを作成しています。
関数の上部に@mcp.tool
とデコレータを設定すると、設定した関数をMCPのツールとして使用できます。
また、関数に説明文を加えると、MCPツールの説明としてLLMに送信されます。
今回の実装例では
ツール名:add_fool
ツールの説明:頭を悪くして2つの整数を加算して返す
としてLLMに送信されます。
ツールは何個でも作ることができるので、実装例以外のツールを作成する場合は
@mcp.tool
def <関数名>(<引数>):
"""関数の説明"""
実行内容...
このように追加することができます。
if __name__ == "__main__":
# ファイル実行時にサーバを起動
# transport='stdio' は標準入出力を使用することを意味
mcp.run(transport='stdio')
最後にこの箇所ではPythonファイルの起動時にMCPサーバを起動するようになっています。
今回の実装ではClaude Desktopを利用するため、transport='stdio'
でjson形式による標準入力を行うようにしています。
では4. MCPの実装
で作成したMCPを実際にClaude Desktopと連携して、動かしてみましょう。
まず、実装したMCPをClaude Desktopに繋げるための設定を行います。
Claude Desktopの設定から開発者モードを開いてください。開くと以下の画面が出力されます。
開発者画面を開くと設定を編集というボタンがあるので、クリックをしてください。クリックをすると、claude_desktop_config.json
が保存されているフォルダが出力されるので、claude_desktop_config.json
ファイルを以下のように変更してください。
Macの場合
{
"mcpServers": {
"MCP": {
"command": "python",
"args": [
"<MCPを実装したフォルダの絶対パス>/mcp-server/server.py"
]
}
}
}
Windowsの場合
{
"mcpServers": {
"MCP": {
"command": "py",
"args": [
"<MCPを実装したフォルダの絶対パス>/mcp-server/server.py"
]
}
}
}
変更後、Claude Desktopを再起動し、チャット画面のツールバーを表示すると以下のようにMCPという名前のツールが追加されています。
また、MCPの箇所をクリックすると、以下のようにMCP内に登録されたツールが表示され、Claudeの回答時に使用するかを選択することができます。
ではClaudeにプロンプトを送信して、MCPが使われているか確認してみましょう。
以下のように「1+1の答えは?」と入力すると、MCPが間違った答えを出力して、その結果を用いてClaudeが回答しています。
以上がMCPの実装内容になります。
今回の実装例をベースにデータベースのからの情報取得など、ツールを追加することができます。様々なツールを追加して、自分だけのMCPを作ってみましょう!
この章ではMCPの活用例について2つ、紹介していきます。
MCPを導入することでLLMを通して会議のスケジュール調整を自動化することができます。
例えば、Googleカレンダーと連携するMCPをAIと連携することで、LLMを通して会議の空き状況の確認や、スケジュールの調整ができます。 GoogleカレンダーのMCPは以下のリンクに導入方法が記載されています。
google-calendar-mcp
MCPを導入することでLLMを通して簡単にデータ分析ができます。
例えば、Googleがデータ分析に特化したMCPである、BigQueryをオープンソースとして提供しています。AIと連携することで、SQLによる検索やメタデータの検索など、LLMを通してデータ分析が可能になります。
BigQueryは以下のリンクに導入方法が記載されています。
MCP ツールボックスを使用して IDE を BigQuery に接続する
このように様々な用途に対するMCPがオープンソースとして公開されているため、拡張機能のようにAIと連携することで、自分好みのAIエージェントが作成もできます。
特にClaude Desktopと連携する場合は、5章で動かしたように、jsonファイルに記述を加えるだけで連携が可能なため、簡単にMCPの導入ができます。
この記事ではMCPについて紹介とPythonでの実装例を紹介しました。実装を通して、MCPの仕組みや、どのように動作するかを体感していただけたのではないでしょうか?
改めて、MCPとはAIモデルと複数の外部サービスを簡単に連携するサービスです。
今回実装で扱ったPython以外にも、TypeScriptのような他の言語での開発環境やSDKが作成されています。
また、作成したMCPをオープンソースにすることができ、簡単に外部サービスと連携できることから、MCPを使用するユーザーや企業が今後さらに拡大される可能性があり、ますます注目度が高い技術となっています。