WindowsでPythonを使用したMCPサーバーの構築方法
はじめに
Model Context Protocol (MCP) は、大規模言語モデル(LLM)の能力を拡張するための新しいプロトコルです。
このプロトコルを実装したMCPサーバーは、LLMとの間で標準化された方法で通信し、外部データへのアクセスやAPIとの連携など新しい機能をLLMに提供します。つまり、MCPサーバーはLLMと外部世界を繋ぐ橋渡し役として機能し、LLMの能力を大幅に拡張します。
この記事では、Windows環境でPythonを使用してMCPサーバーを構築する方法を解説します。
具体的には、天気予報と気象警報を取得できるMCPサーバーを作成し、Claude for Desktopと連携させる方法を紹介します。
このサーバーを通じて、Claudeは天気情報にアクセスできるようになります。
必要な環境
- Windows 10/11
- Python 3.10以上
- MCP Python SDK 1.2.0以上
- Claude for Desktop
1. 環境のセットアップ
まず、Pythonの環境を整えましょう。パッケージマネージャーとしてuv
を使用します。
uvのインストール
PowerShellを管理者権限で開き、以下のコマンドを実行します。
# uvのインストール curl.exe -LsSf https://astral.sh/uv/install.ps1 | powershell -c - # PowerShellを再起動して、uvコマンドが認識されるようにします
プロジェクトの作成
次に、プロジェクトディレクトリを作成し、必要なパッケージをインストールします。
# プロジェクトディレクトリの作成 uv init weather cd weather # 仮想環境の作成と有効化 uv venv .\.venv\Scripts\Activate.ps1 # 依存パッケージのインストール uv add "mcp[cli]" httpx # サーバーファイルの作成 New-Item -Path . -Name "weather.py" -ItemType "file"
2. MCPサーバーの構築
MCPサーバーの実装については、公式ドキュメントに詳細な手順とコード例が記載されています。基本的な構造は以下の通りです。
- FastMCPサーバーの初期化
- APIリクエスト用のヘルパー関数の実装
- ツール(get_alerts、get_forecast)の実装
- サーバーの実行
完全なコード例は公式ドキュメントを参照してください。
3. Claude for Desktopでのテスト
次に、作成したサーバーをClaude for Desktopで使用できるように設定します。
設定ファイルの編集
Claude for Desktopの設定ファイルを編集して、MCPサーバーを登録します。
%APPDATA%\Claude\claude_desktop_config.json
ファイルをテキストエディタで開きます。(存在しない場合は作成)
以下のようにMCPサーバーを設定します。
%APPDATA%\Claude\claude_desktop_config.json
{ "mcpServers":{ "weather":{ "command":"uv", "args":[ "--directory", "C:\\絶対パス\\weather", "run", "weather.py" ] } } }
※ command
フィールドにはuv
実行ファイルへのフルパスが必要な場合があります。
(where uv
コマンドで確認できます)
重要:設定変更の反映について
注意点: Claude for Desktopの設定ファイルを編集した後、変更が反映されない現象が発生することがあります。
問題: 設定ファイル(claude_desktop_config.json)を編集した後、Claude for Desktopを通常の方法(×ボタンなど)で閉じても、アプリケーションが完全に終了せず、バックグラウンドで実行され続けることがあります。この状態では、設定変更が反映されません。
解決方法:
1. 左上のハンバーガーメニュー>ファイル>「終了」を押して、アプリケーションを完全に終了させる
2. その後、Claude for Desktopを再起動する
この手順を踏むことで、設定変更が確実に反映されます。
テスト
Claude for Desktopが正常に起動したら、プロンプト入力欄の右側のハンマーアイコンをクリックして
登録したツールが表示されることを確認します。
試しに「NYの天気」と聞いてみると
Claudeが先ほど実装したMCPサーバー「weather」の「get_alerts」を実行して、現在NYで発令されている注意報の情報を教えてくれました。
4. トラブルシューティング
Claude for Desktopの統合に関する問題
ログの確認
MCPに関連するログは%APPDATA%\Claude\logs
にあります。
# Claudeのログでエラーを確認 Get-Content -Path "$env:APPDATA\Claude\logs\mcp*.log" -Tail 20 -Wait
サーバーが認識されない場合
- 上記の「設定変更の反映について」の手順に従ってClaude for Desktopを完全に再起動
- 設定ファイルの構文を確認
- 絶対パスを使用していることを確認
ツール呼び出しが失敗する場合
- 上記の「設定変更の反映について」の手順に従ってClaude for Desktopを完全に再起動
- ログでエラーを確認
- サーバーが正常に動作することを確認
まとめ
この記事では、Windows環境でPythonを使用してMCPサーバーを構築し、Claude for Desktopと連携させる方法を解説しました。特に、設定変更後にClaude for Desktopを完全に終了・再起動する必要がある点に注意してください。
MCPを使用することで、LLMの能力を大幅に拡張し、外部データやAPIとの連携を可能にすることができます。
今回作成した天気サーバーは単純な例ですが、同じ原則を使用して
さまざまなAPIやデータソースと連携する独自のMCPサーバーを構築できます。
詳細な実装については公式ドキュメントを参照し、ぜひ試してみてください!!