はじめに
このチュートリアルでは、OpenWeatherMap APIを使用して天気情報を提供するClaude Desktop MCPサーバーを作成します。MCPは、AIアシスタントに外部リソースやツールへのアクセスを提供するための新しいプロトコルです。
Claude Desktop MCP で公式が出してるローカルの自作天気APIできた!!!
超しょぼい機能だけど作り方の大枠は体感できたのはデカい!!! https://t.co/qelKrLJvPn pic.twitter.com/PRQpExb6vn— Maki@Sunwood AI Labs. (@hAru_mAki_ch) November 29, 2024
前提条件
- Python 3.12以上
- OpenWeatherMap APIのアカウントとAPIキー
- macOSまたはWindows
- uvツール
環境のセットアップ
Pythonのバージョン確認
python --version # 3.12以上であることを確認
uvツールのインストール
macOSの場合:
brew install uv
uv --version # 0.4.18以上であることを確認
Windowsの場合:
pip install uv
プロジェクトの作成
MCP Project Creatorを使用してプロジェクトを作成
uvx create-mcp-server --path weather_service
cd weather_service
追加の依存関係をインストール
uv add httpx python-dotenv
環境変数の設定
プロジェクトルートに.env
ファイルを作成:
OPENWEATHER_API_KEY=your-api-key-here
サーバーの実装
コードの取得
最小構成のコードはGitHub リポジトリから入手できます。
src/weather_service/server.py
とsrc/weather_service/__init__.py
を上記リポジトリからコピーしてください。
プロジェクト構造
最終的に以下のような構造になります:
weather_service/
├── src/
│ └── weather_service/
│ ├── __init__.py # メインエントリーポイント
│ └── server.py # サーバーの実装
├── pyproject.toml
├── .env # APIキーの設定
└── README.md
Claude Desktopとの連携
設定ファイルの場所
- Windows:
%APPDATA%/Claude/claude_desktop_config.json
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
設定の追加
claude_desktop_config.json
に以下の設定を追加:
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"path/to/your/weather_service", // プロジェクトのパスを指定
"run",
"weather-service"
],
"env": {
"OPENWEATHER_API_KEY": "your-api-key" // OpenWeatherMap APIキー
}
}
}
}
Claudeの再起動
- Claudeを完全に終了
- Claudeを再起動
- 🔌メニューでweatherサーバーが表示されることを確認
動作確認
リソースの確認
Claudeで以下のURIを使用して天気情報にアクセス:
weather://London/current
天気予報の取得
get_forecastツールを使用して天気予報を取得:
{
"city": "Tokyo",
"days": 3
}
トラブルシューティング
デバッグ用のMCP Inspector
MCPサーバーのデバッグにはMCP Inspectorが便利です:
npx @modelcontextprotocol/inspector uv --directory path/to/weather_service run weather-service
Claude Desktop MCP でローカルの自作APIを登録②
なぜか動作がおかしいのでMCP Inspectorでデバッグ
デバッグのレベルが高すぎる感あるが、これは面白い!
API自体の挙動は安定してそう。。。
*Inspectorは初ちゃんと動かした。。。 https://t.co/tx1VSnaTb9 pic.twitter.com/vp7XVK9XgS— Maki@Sunwood AI Labs. (@hAru_mAki_ch) November 29, 2024
参考リンク
このチュートリアルで作成したMCPサーバーは、基本的な天気情報の取得と予報機能を提供します。この基本構成を元に、さらに機能を追加したり、異なるAPIを利用したりしてカスタマイズすることができます。
コメント