Skip to main content
Glama
README.md4.11 kB
# Weather MCP Server Model Context Protocol (MCP) サーバーの実装プロジェクトです。天気情報を提供するツールを実装します。 ## 参考ドキュメント - [Building MCP Servers](https://modelcontextprotocol.io/docs/develop/build-server) - [公式サンプルコード](https://github.com/modelcontextprotocol/quickstart-resources/tree/main/weather-server-python) ## システム要件 - Python 3.10以上 - uv (Pythonパッケージマネージャー) ## セットアップ ```bash # 仮想環境の作成とアクティベート uv venv source .venv/bin/activate # 依存関係のインストール uv add "mcp[cli]" httpx ``` ## 実行方法 ```bash uv run main.py ``` ## 提供するツール | ツール名 | 説明 | |---------|------| | `get_alerts` | 米国の州の気象警報を取得 | | `get_forecast` | 緯度・経度から天気予報を取得 | ## Claude for Desktop への統合 `~/Library/Application Support/Claude/claude_desktop_config.json` を編集: ```json { "mcpServers": { "weather": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/weather", "run", "main.py" ] } } } ``` ## 処理の流れ (What's happening under the hood) Claude for Desktopでの質問から回答までの流れ: ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Claude Desktop │ │ MCP Server │ │ External API │ │ (Client) │ │ (weather) │ │ (weather.gov) │ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │ │ │ │ 1. ユーザーが質問 │ │ │ 「サクラメントの天気は?」 │ │ │ │ │ 2. Claudeが利用可能な │ │ │ ツールを分析 │ │ │ │ │ │ 3. ツール実行リクエスト│ │ │ (JSON-RPC over STDIO)│ │ │──────────────────────>│ │ │ │ 4. 外部API呼び出し │ │ │──────────────────────>│ │ │ │ │ │ 5. APIレスポンス │ │ │<──────────────────────│ │ 6. ツール実行結果 │ │ │<──────────────────────│ │ │ │ │ │ 7. Claudeが結果を解釈 │ │ │ して自然言語で回答 │ │ │ │ │ ``` ### ポイント - **自動起動**: Claude Desktopが設定に基づいてMCPサーバープロセスを起動・管理 - **ツール検出**: クライアントがサーバーの `tools/list` を呼び出して利用可能なツールを取得 - **STDIO通信**: 標準入出力を介してJSON-RPCメッセージをやり取り - **非同期実行**: API呼び出しなどのI/O操作を効率的に処理 ## 注意事項 - STDIOベースのサーバーでは `print()` を使用しないこと(JSON-RPCメッセージが破損する) - ログ出力には `logging` モジュールを使用する

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Kohei-Suzuki22/weather_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server