はじめに
Pythonを用いてMCP(Model Context Protocol)サーバーを構築する方法についてまとめます。
生成AIやチャットシステムの業務活用が進む中、MCPサーバーを自社で設計・運用し、独自ツールや機能と連携させることは、開発・運用現場での重要なテーマとなっています。
本記事では、仮想環境(venv)の活用からMCP Inspectorによる検証まで、導入時に押さえるべきポイントを網羅的に整理します。
使用環境
構築・動作確認に利用した主な環境は以下の通りです。
-
OS
Windows -
Python
3.13.2(venvによる仮想環境) -
MCP SDK
MCP version 1.12.0 -
MCP Inspector
@modelcontextprotocol/inspector(npx経由で利用) -
ターミナル
git-bash
MCPサーバーの構築と基本動作確認
仮想環境の作成、必要パッケージのインストール、MCPサーバー用コードの実装、サーバーの起動、およびInspectorを使った初期動作確認までの流れを解説します。
仮想環境作成と必要パッケージのインストール
仮想環境を作成
Pythonの仮想環境を利用することで、プロジェクトごとの依存関係を分離しやすくなり、運用保守が容易になります。
なお、仮想環境の名称は任意ですが、ここでは例としてmcp_envとします。
python -m venv mcp_env
仮想環境の有効化
source mcp_env/Scripts/activate
MCPサーバーのインストール
仮想環境を有効化した状態で、MCPサーバー構築に必要なパッケージをインストールします。
基本的には mcp[cli] のみで足ります。
pip install "mcp[cli]"
サーバー実装例
ここでは、PythonのFastMCPクラスを使い、加算と減算の簡単なツールを備えたMCPサーバーの最小構成例を示します。
from mcp.server.fastmcp import FastMCP
# MCPサーバーのインスタンス作成
mcp = FastMCP("Example MCP Server")
# 加算ツールの登録
@mcp.tool()
def add(a: int, b: int) -> int:
"""2つの整数を加算して返す"""
return a + b
# 減算ツールの登録
@mcp.tool()
def subtract(a: int, b: int) -> int:
"""2つの整数を減算して返す"""
return a - b
# サーバーの起動
if __name__ == "__main__":
mcp.run(transport="stdio")
ポイント
- @mcp.tool() デコレータを付けることで関数がMCPのツールとして登録されます
- 今回は標準入出力(stdio)を使った通信を指定しています
サーバーの起動と基本テスト
MCPサーバー用のPythonスクリプト(例:server.py)が用意できたら、以下のコマンドでサーバーを起動します。
python server.py
エラーが表示されずに起動すれば、サーバーの初期立ち上げは完了です。
サーバーを終了しても構いません。
server.py は、仮想環境(例:mcp_env)と同じ階層のプロジェクト直下に配置してください
MCP InspectorによるGUI検証
MCP Inspectorは、MCPサーバーの動作確認やAPI動作・ツールレスポンスの確認を行うための公式GUIツールです。プログラミング不要で、ブラウザから視覚的に各ツールの挙動検証が行えます。
MCP Inspectorを起動
ターミナルで次のコマンドを入力します。
npx @modelcontextprotocol/inspector
起動後、次のようなメッセージが表示され、ブラウザが起動します。
(mcp_env) % npx @modelcontextprotocol/inspector
Starting MCP inspector...
⚙️ Proxy server listening on localhost:6277
🔑 Session token: 8645d9771799901ade3ef45cd8db775e88843df61c414d0f949dd2cfe651942f
Use this token to authenticate requests or set DANGEROUSLY_OMIT_AUTH=true to disable auth
🚀 MCP Inspector is up and running at:
http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=8645d9771799901ade3ef45cd8db775e88843df61c414d0f949dd2cfe651942f
🌐 Opening browser...
接続情報を指定
- Transport Type(接続方式):STDIO
- Command:python
- Args:server.py
- Command欄には、Pythonインタープリタ(通常は python )を指定
- Args欄には、作成したMCPサーバースクリプト(例:server.py)を指定
すべての必要な項目を入力・選択してから「Connect」ボタンを押下します。
接続がうまくいくと、
GUI上からMCPサーバーに登録された各ツールを確認・実行することができます。
Inspectorでのツール動作確認手順
「Tools」タブを選択
Inspector画面中央上部のメニューから「Tools」タブをクリックします。
「List Tools」をクリック
「List Tools」ボタンを押すと、サーバーに登録されているツール(例:add、subtractなど)が一覧表示されます。
ツールを選択
一覧から実行したいツール(例:add)をクリックします。
すると、画面右側にそのツールの詳細情報と入力フォームが表示されます。
入力値の設定
ツールの説明や必要な入力項目(例:a, b)が自動で表示されるので、フォームに任意の値(例:a=5, b=7)を入力します。
ツールの実行
「Run Tool」ボタンを押してツールを実行します。
レスポンスの確認
ツールがサーバーで実行された結果(例:{"result": 12} など)が、画面下部や右側に表示されます。
もしエラーが発生した場合も、そのメッセージや詳細が同じ画面上で確認できます。
まとめ
本記事では、Python製MCPサーバーをSTDIO方式で構築し、MCP Inspectorを使ってツールの動作確認を行う基本的な手順を解説しました。
仮想環境の準備から、サンプルサーバーの実装、Inspectorによるツール疎通チェックまで、一連の流れを実践的に整理しています。
この手順を踏むことで、独自ツールのAPI化やローカル検証がスムーズに行えるようになります。
STDIO方式やInspectorによるテストは、MCPの基礎理解やプロトタイプ開発の段階で非常に有効です。
今後は、より実践的な運用や他クライアント(例:Claude Desktop)との連携など、応用シナリオにも展開できます。

