Weather MCP Server
Weather MCP Server
AWS Cognito OAuth 2.1 Bearerトークン認証で保護された、リアルタイムの気象データを提供するModel Context Protocolサーバーです。
完全なMCP認可仕様 (2025-11-25)を実装しています:
RFC 9728 — 保護されたリソースメタデータ (PRM) の検出
RFC 6750 — Bearerトークンの使用
RFC 7591 — Cognitoにブリッジされた動的クライアント登録 (DCR)
アーキテクチャ
Client / AI Agent
│
├─ GET /.well-known/oauth-protected-resource → discover auth server
├─ POST /register → dynamic client registration (optional)
├─ POST Cognito /oauth2/token → exchange credentials for JWT
└─ POST /mcp Authorization: Bearer <token> → call MCP tools気象データはOpen-Meteoから取得されます(無料、APIキー不要)。
Related MCP server: MCP Authentication Example
プロジェクト構造
weather-mcp/
├── weather_mcp/
│ ├── __init__.py
│ ├── config.py # Env var loading (COGNITO_REGION/USER_POOL_ID/DOMAIN_PREFIX, SERVER_URL)
│ ├── auth.py # JWT validation, middleware, PRM + DCR handlers
│ ├── tools.py # MCP instance + weather tools
│ └── main.py # Starlette app factory + uvicorn entrypoint
├── infra/
│ └── cognito.yaml # CloudFormation — Cognito User Pool, IAM role
├── docs/
│ └── deploy-ecs-express.md # ECS Express Mode deployment guide
├── pyproject.toml
├── Dockerfile
├── .env.example
└── README.md前提条件
Python 3.13+ および uv
CLIが設定されたAWSアカウント (
aws configure)Docker (オプション、コンテナ化されたデプロイ用)
クイックスタート
1 — AWS Cognitoのデプロイ
aws cloudformation deploy \
--template-file infra/cognito.yaml \
--stack-name weather-mcp \
--region us-east-1 \
--capabilities CAPABILITY_NAMED_IAM出力値を取得します:
aws cloudformation describe-stacks \
--stack-name weather-mcp \
--query "Stacks[0].Outputs" \
--output table2 — 環境設定
cp .env.example .env
# Fill in COGNITO_REGION, COGNITO_USER_POOL_ID, COGNITO_DOMAIN_PREFIX from CloudFormation Outputs3 — 実行
ローカル環境:
uv sync
uv run python -m weather_mcp.mainDocker:
docker build -t weather-mcp:local .
docker run --env-file .env -p 8000:8000 weather-mcp:localサーバーは http://0.0.0.0:8000 で起動します。
AWS ECS Expressモードへのデプロイ:
完全なガイドについてはdocs/deploy-ecs-express.mdを参照してください。イメージのビルド、ECRへのプッシュ、自動スケーリングを備えたパブリックHTTPSサービスの作成を行います。
APIエンドポイント
エンドポイント | 認証 | 説明 |
| なし | ヘルスチェック |
| なし | RFC 9728 検出ドキュメント |
| なし | RFC 7591 動的クライアント登録 |
| Bearerトークン | MCPツール (ストリーミング可能なHTTP) |
MCPツール
ツール | 説明 |
| 緯度/経度による任意の場所の現在の天気 |
使用方法
動的クライアント登録 (事前設定不要)
# 1. Register a new client
curl -s -X POST http://localhost:8000/register \
-H "Content-Type: application/json" \
-d '{"client_name":"my-agent","grant_types":["client_credentials"],"scope":"weather-mcp/read"}'
# 2. Get a token
curl -s -X POST https://weather-mcp-auth.auth.us-east-1.amazoncognito.com/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=<CLIENT_ID>&client_secret=<CLIENT_SECRET>&scope=weather-mcp/read"
# 3. Call MCP
curl -s -X POST http://localhost:8000/mcp \
-H "Authorization: Bearer <TOKEN>" \
-H "Accept: application/json, text/event-stream" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'環境変数
変数 | 説明 |
| AWSリージョン (例: |
| CognitoユーザープールID |
| ホストされたUIのドメインプレフィックス |
| このサーバーのパブリックURL (デフォルト: |
認証の仕組み
トークンなしで
/mcpにリクエストが到着 → サーバーは401と/.well-known/oauth-protected-resourceを指すWWW-Authenticateヘッダーで応答します。クライアントは検出ドキュメントを取得して、Cognito認可サーバーを見つけます。
クライアントはCognitoからJWTアクセストークンを取得します (
client_credentialsまたは動的クライアント登録経由)。クライアントは後続のリクエストに
Authorization: Bearer <token>を含めます。ミドルウェアはCognitoのJWKSエンドポイントに対してJWT署名を検証します (RS256、1時間キャッシュ)。
注意事項
MCPサーバーはDNSリバインディング保護を無効にして (
host="0.0.0.0")0.0.0.0:8000にバインドします。これは、Hostヘッダーがlocalhostではなくパブリックドメインであるロードバランサー (例: ECS Express Mode ALB) の背後で実行する場合に必要です。ECS Expressモードにデプロイする場合、イメージはダイジェストで固定されます。更新方法についてはデプロイガイドを参照してください。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceEnables real-time weather data streaming through a secure MCP server. Features authentication using Descope and can be deployed to Fly.io for remote access.21
- FlicenseNot gradedqualityDmaintenanceDemonstrates OAuth2/OIDC authentication for MCP servers using Asgardeo, with JWT validation and a sample weather tool to showcase secured API access.
- FlicenseNot gradedqualityDmaintenanceProvides weather information from the National Weather Service API with full MCP OAuth 2.1 compliance, including weather alerts and forecasts for US locations through secure Azure AD authentication.27
- AlicenseNot gradedqualityCmaintenanceDemonstrates how to secure an MCP server with OAuth 2.1 using AWS Cognito, with support for dynamic client registration and client ID metadata documents.68MIT
Related MCP Connectors
NOAA and ECMWF weather forecast MCP for discovery, validation, and GribStream OAuth queries.
Open-Meteo MCP — weather forecast + historical reanalysis + sister APIs
OpenWeather MCP — wraps the OpenWeatherMap API (openweathermap.org)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/sauravkumar329/weather-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server