🌤️ Weather Microservice with MCP + UV について
MCPに対応するPython製の天気APIサービスで、依存関係の管理に`uv`、デプロイにDockerを使います。ローカル開発やClaude Desktopとの接続を想定し、シークレットは環境変数または`.env`から読み込みます。
主な機能
- 01ライブリロード対応のMCPサーバー開発
- 02Dockerコンテナでのデプロイ
- 03Claude Desktopとの接続設定
- 04`.env`または環境変数からのシークレット読込
活用シーン
- 01ライブリロードでMCPサービスを開発
- 02Dockerコンテナでサービスを実行
- 03サービスをClaude Desktopに接続
MCP 対応
天気APIをMCPサーバーとして、Claude Desktopを含むMCPクライアントに提供します。READMEには開発、インストール、実行方法が記載されていますが、公開する天気ツールの詳細はありません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🌤️ MCP + UV を使った天気マイクロサービス
Python の依存関係管理に uv、コンテナ化したデプロイに Docker を使用する、軽量な MCP 対応の天気 API サービスです。シームレスなローカル開発、Claude Desktop との連携、スケーラブルなデプロイを実現します。
🚀 特長
- 🧪
uvとmcpを使ったライブリロード対応の高速なローカル開発 - 🐳 本番環境やステージング環境向けにDocker 化
- 🧠 Claude Desktop との連携に対応
- 🔐
.envまたは環境変数からシークレットを安全に読み込みます
⚙️ サーバーの実行
🧪 開発モード(MCP Inspector を使用)
ホットリロードを有効にして、開発モードでサーバーを起動します。
uv run mcp dev server.py
依存関係を実行時に追加します。
uv run mcp dev server.py --with pandas --with numpy
ローカルコードを編集可能な状態でマウントします。
uv run mcp dev server.py --with-editable .
🧠 Claude Desktop との連携
サーバーを Claude Desktop にインストールします。
uv run mcp install server.py
カスタム名を指定します。
uv run mcp install server.py --name "My Analytics Server"
環境変数を渡します。
uv run mcp install server.py -v API_KEY=abc123 -v DB_URL=postgres://...
uv run mcp install server.py -f .env
🔧 直接実行
より細かく制御する場合や、高度なデプロイを行う場合に使用します。
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("My App")
if __name__ == "__main__":
mcp.run()
手動で実行します。
uv run python server.py
# or
uv run mcp run server.py
🐳 Docker のサポート
🔨 イメージのビルド
docker build -t weather-service .
▶️ コンテナの実行
docker run --env-file .env -p 6274:6274 weather-service
📁 プロジェクト構成
.
├── server.py
├── .env
├── pyproject.toml
├── uv.lock
├── Dockerfile
└── README.md
🔒 環境変数
.env ファイルを作成します。
API_KEY=your_api_key_here
DB_URL=your_database_url_here
📦 依存関係の管理
uv を使って依存関係を管理し、同期します。
uv pip install mcp
uv pip install pandas numpy
uv sync # sync dependencies based on uv.lock
📃 ライセンス
MIT License ― 自由に使用でき、責任を持って変更できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。