MCP-Weather

MCP-Weather

Enables retrieval of weather information for major cities across Japan using the Japan Meteorological Agency API. Supports weather overviews, precipitation probability, and wind speed data with both local and remote OAuth 2.0 authenticated deployment options.

Category
访问服务器

README

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: 手動設定

  1. OAuth認証トークンの取得
node src/utils/get-token.cjs
  1. トークンを手動で更新

    • src/client/mcp-weather-remote.cjsACCESS_TOKENを更新
  2. 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サーバーの問題

  1. 依存関係のインストール確認
npm install
  1. TypeScriptの直接実行
npm run dev:local

リモートMCPサーバーの問題

  1. デバッグ版を使用
{
  "mcp-weather-remote-debug": {
    "command": "node",
    "args": ["/path/to/MCP-Weather/src/client/mcp-weather-debug.cjs"]
  }
}
  1. トークンの期限切れ
node src/utils/update-token.cjs
  1. 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へのデプロイ

  1. Wranglerのインストール(未インストールの場合)
npm install -g wrangler
  1. Cloudflareアカウントへのログイン
npx wrangler login
  1. KVストレージの作成 OAuth認証データを保存するためのKVネームスペースを作成します:
# 本番環境用
npx wrangler kv:namespace create "OAUTH_KV"
# 開発環境用
npx wrangler kv:namespace create "OAUTH_KV" --preview
  1. wrangler.tomlのKV IDを更新 作成したKVネームスペースのIDをwrangler.tomlに設定してください。

  2. デプロイ

# ビルド
npm run build

# デプロイ
npx wrangler deploy

ローカル開発

# 開発モードで起動
npx wrangler dev

# ビルド
npm run build

使用方法

ローカルMCPサーバーでの利用

  1. 設定完了後、Cursorを再起動
  2. 天気情報の取得
    • Cursorで「東京の天気を教えて」と入力
    • 自動的に適切なツールが呼び出されます

リモートMCPサーバーでの利用

  1. トークンの取得と設定
node src/utils/update-token.cjs
  1. 天気情報の取得
    • 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対応: モバイルアプリでのセキュアな認証

本番環境での設定

本番環境では以下の点にご注意ください:

  1. クライアントシークレット: 安全に管理し、公開しないでください
  2. リダイレクトURI: 信頼できるドメインのみを設定してください
  3. アクセストークン: 適切に保護し、HTTPSでのみ送信してください

注意事項

  • APIのレスポンスが予期しないデータになった場合、エラーが発生する可能性があります
  • 気象庁HPのAPI構造が変更された場合、サービスが停止する可能性があります
  • 連続したAPIアクセスは避け、適切な間隔を空けてご利用ください
  • OAuth認証のトークンは適切に管理し、第三者に漏洩しないよう注意してください

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选