MCP-Weather
Provides weather information using the Japan Meteorological Agency API. No authentication required.
MCP-Weather
気象庁APIを使用した天気情報取得MCPサーバー(OAuth 2.0認証付き)
概要
mcp-weatherは、気象庁の天気予報API(livedoor 天気互換)を使用して、日本各地の天気情報を取得するMCPサーバーです。OAuth 2.0認証を使用したセキュアなアクセス制御により、Cloudflare Workersでリモートサーバーとしてデプロイ可能です。
特徴
- OAuth 2.0認証: セキュアなアクセス制御とトークンベース認証
- 豊富な気象データ: 天気概況、降水確率、風速情報を提供
- 全国対応: 主要都市の天気データを取得可能
- リモート対応: Cloudflare Workersにデプロイしてリモートサーバーとして利用可能
- モバイル対応: 標準的なOAuthフローでモバイルアプリからも利用可能
利用できるツール
1. get_weather_overview
指定した都市の天気概況を取得します。
- 発表時刻
- 天気概況文
- 今日・明日・明後日の天気予報
- 詳細な天気情報
2. get_precipitation_probability
指定した都市の降水確率を取得します。
- 時間帯別(0-6時、6-12時、12-18時、18-24時)の降水確率
- 今日・明日・明後日の予報
3. get_wind_speed
指定した都市の風速情報を取得します。
- 風向・風速の詳細情報
- 今日・明日・明後日の予報
対応都市
札幌、青森、盛岡、仙台、秋田、山形、福島、水戸、宇都宮、前橋、さいたま、千葉、東京、横浜、新潟、富山、金沢、福井、甲府、長野、岐阜、静岡、名古屋、津、大津、京都、大阪、神戸、奈良、和歌山、鳥取、松江、岡山、広島、山口、徳島、高松、松山、高知、福岡、佐賀、長崎、熊本、大分、宮崎、鹿児島、那覇
セットアップ
利用方法の選択
このMCPサーバーは2つの利用方法をサポートしています:
利用方法 | 特徴 | 認証 | 設定の複雑さ |
---|---|---|---|
ローカルMCPサーバー | 高速、プライバシー保護、信頼性 | 不要 | 簡単 |
リモートMCPサーバー | 最新機能、スケーラビリティ | OAuth 2.0 | 中程度 |
方法A: ローカルMCPサーバー(推奨・簡単)
認証不要でシンプルに利用できます。
1. 依存関係のインストール
npm install
2. ローカルMCPサーバーをビルド
npm run build:local
3. Cursorのmcp.jsonに設定
{
"mcp-weather-local": {
"command": "node",
"args": ["/path/to/MCP-Weather/dist/server/local/index.js"]
}
}
4. 使用開始
Cursorを再起動して、「東京の天気を教えて」と入力してください。
方法B: リモートMCPサーバー(OAuth認証)
方法1: 自動トークン更新(推奨)
# プロジェクトディレクトリで実行
node src/utils/update-token.cjs
方法2: 手動設定
- OAuth認証トークンの取得
node src/utils/get-token.cjs
-
トークンを手動で更新
src/client/mcp-weather-remote.cjs
のACCESS_TOKEN
を更新
-
Cursorのmcp.jsonに設定
{
"mcp-weather-remote": {
"command": "node",
"args": ["/path/to/MCP-Weather/src/client/mcp-weather-remote.cjs"]
}
}
環境変数を使用する場合
export MCP_WEATHER_TOKEN="your-token-here"
トラブルシューティング
ローカルMCPサーバーの問題
- 依存関係のインストール確認
npm install
- TypeScriptの直接実行
npm run dev:local
リモートMCPサーバーの問題
- デバッグ版を使用
{
"mcp-weather-remote-debug": {
"command": "node",
"args": ["/path/to/MCP-Weather/src/client/mcp-weather-debug.cjs"]
}
}
- トークンの期限切れ
node src/utils/update-token.cjs
- Cursorのログを確認
- Cursor > View > Output > MCP
ファイル構成
MCP-Weather/
├── src/
│ ├── server/ # サーバーサイド実装
│ │ ├── local/ # ローカルサーバー
│ │ │ └── index.ts # ローカルMCPサーバー
│ │ └── remote/ # リモートサーバー
│ │ ├── worker.ts # Cloudflare Workers実装
│ │ └── auth.ts # OAuth認証サービス
│ ├── client/ # クライアントサイド実装
│ │ ├── mcp-weather-remote.cjs # メインのMCPクライアント
│ │ └── mcp-weather-debug.cjs # デバッグ版
│ └── utils/ # ユーティリティ
│ ├── get-token.cjs # トークン取得スクリプト
│ └── update-token.cjs # トークン自動更新スクリプト
├── dist/ # ビルド出力
│ └── server/
│ ├── local/ # ローカルサーバーのビルド出力
│ └── remote/ # リモートサーバーのビルド出力
├── node_modules/ # 依存関係
├── package.json # プロジェクト設定
├── package-lock.json # 依存関係のロック
├── tsconfig.json # TypeScript設定(リモート用)
├── tsconfig.local.json # TypeScript設定(ローカル用)
├── wrangler.toml # Cloudflare Workers設定
└── README.md
開発者向けセットアップ
依存関係のインストール
npm install
ローカルMCPサーバーの開発
# ローカルサーバーのビルド
npm run build:local
# ローカルサーバーの開発モード
npm run dev:local
# ローカルサーバーの型チェック
npm run type-check:local
Cloudflare Workersへのデプロイ
- Wranglerのインストール(未インストールの場合)
npm install -g wrangler
- Cloudflareアカウントへのログイン
npx wrangler login
- KVストレージの作成 OAuth認証データを保存するためのKVネームスペースを作成します:
# 本番環境用
npx wrangler kv:namespace create "OAUTH_KV"
# 開発環境用
npx wrangler kv:namespace create "OAUTH_KV" --preview
-
wrangler.toml
のKV IDを更新 作成したKVネームスペースのIDをwrangler.toml
に設定してください。 -
デプロイ
# ビルド
npm run build
# デプロイ
npx wrangler deploy
ローカル開発
# 開発モードで起動
npx wrangler dev
# ビルド
npm run build
使用方法
ローカルMCPサーバーでの利用
- 設定完了後、Cursorを再起動
- 天気情報の取得
- Cursorで「東京の天気を教えて」と入力
- 自動的に適切なツールが呼び出されます
リモートMCPサーバーでの利用
- トークンの取得と設定
node src/utils/update-token.cjs
- 天気情報の取得
- Cursorで「東京の天気を教えて」と入力
- 自動的に適切なツールが呼び出されます
デモ認証情報(リモートMCPサーバー用)
開発・テスト用のデモ認証情報:
- ユーザー名: demo
- パスワード: demo123
※ローカルMCPサーバーを使用する場合は認証不要です。
モバイルアプリ開発者向け
OAuth 2.0 APIエンドポイント
- クライアント作成:
POST /oauth/client
- 認証開始:
GET /oauth/authorize
- トークン取得:
POST /oauth/token
- MCP API:
POST /
(Bearer認証)
対応プラットフォーム
- iOS: SFSafariViewController, ASWebAuthenticationSession
- Android: Chrome Custom Tabs, WebView
- React Native: react-native-app-auth
- Flutter: flutter_appauth
詳細な実装例は、プロジェクトのサーバー側コード(src/
)を参照してください。
データソース
本サーバーは「天気予報 API(livedoor 天気互換)」(https://weather.tsukumijima.net/)を使用しています。 このAPIは気象庁が配信している天気予報データをJSON形式で提供しています。
セキュリティ
OAuth 2.0認証
- 認証コード: 10分間の有効期限
- アクセストークン: 1時間の有効期限
- PKCE対応: モバイルアプリでのセキュアな認証
本番環境での設定
本番環境では以下の点にご注意ください:
- クライアントシークレット: 安全に管理し、公開しないでください
- リダイレクトURI: 信頼できるドメインのみを設定してください
- アクセストークン: 適切に保護し、HTTPSでのみ送信してください
注意事項
- APIのレスポンスが予期しないデータになった場合、エラーが発生する可能性があります
- 気象庁HPのAPI構造が変更された場合、サービスが停止する可能性があります
- 連続したAPIアクセスは避け、適切な間隔を空けてご利用ください
- OAuth認証のトークンは適切に管理し、第三者に漏洩しないよう注意してください
Related Servers
Sitecore MCP server
MCP server for work with Sitecore
Weather MCP Server
Provides real-time weather alerts and detailed forecasts for US locations using the National Weather Service API.
Hyteria MCP
A server for looking up the daily menu at the Hyteria (B1) restaurant.
Euroleague Live
Provides club information and advanced player statistics for Euroleague and Eurocup basketball from the Euroleague API.
BSC MultiSend MCP
Perform bulk BNB and BEP20 token transfers on the BNB Smart Chain (BSC).
Scenario Word
A server for the scenario-word MCP, built with the mcp-framework.
mcp-dice
Rolls dice using standard notation (e.g., 1d20) and returns individual rolls and their sum.
Time MCP Server
Provides time-related functions such as current time queries, timezone conversions, and time difference calculations.
Fewsats
Enable AI Agents to purchase anything in a secure way using Fewsats
Video Still Capture MCP
An MCP server for accessing and controlling webcams using OpenCV.