🚀 🌊 NOAA Tides & Currents MCP Server
このプロジェクトは、MCPを通じてNOAAの海洋および大気データへの高速アクセスを提供します。潮汐、潮流、天気、天文学、気候データなど、様々なデータを一元的に取得できます。
🚀 クイックスタート
⚡ NPXによるインストール (推奨)
npx @ryancardin/noaa-tides-currents-mcp-server
npx noaa-mcp
🔌 トランスポートモード
STDIOモード (デフォルト - MCPプロトコル)
npx @ryancardin/noaa-tides-currents-mcp-server
npx noaa-mcp
HTTPストリーム可能モード (Web統合)
npx @ryancardin/noaa-tides-currents-mcp-server --http
npx @ryancardin/noaa-tides-currents-mcp-server --http --port 8080
npx noaa-mcp --http --port 8080
curl http://localhost:3000/sse
🎯 Claude Desktopとの統合
Smitheryを介してClaude Desktopに直接インストールします。
npx -y @smithery/cli install @RyanCardin15/tidesandcurrents --client claude
🔧 手動での開発セットアップ
git clone https://github.com/RyanCardin15/NOAA-Tides-And-Currents-MCP.git
cd NOAA-Tides-And-Currents-MCP
npm install && npm run build
npm start
npx fastmcp dev dist/index.js
✨ 主な機能
- 🌊 25以上の専用ツール - 基本的な潮汐データから高度な気候予測まで
- ⚡ 超高速 - FastMCPをベースに構築され、最適なパフォーマンスを実現
- 🎯 ゼロコンフィグ - Claude Desktopでそのまま使用可能
- 🌍 包括的なデータ - 水位、潮流、天気、月相、太陽データなど
- 📊 気候研究に最適 - 海面水位トレンド、洪水予測、極端事象など
- 🚀 NPX対応 - 1つのコマンドでインストールと実行が可能
🛠️ 利用可能なツール
🌊 水データツール (6つのツール)
水位と潮汐
get_water_levels
- リアルタイムおよび過去の水位データ
get_tide_predictions
- 干満予測と連続データ
get_currents
- リアルタイムおよび過去の潮流測定値
get_current_predictions
- 潮流速度と方向の予測
get_meteorological_data
- 風、気温、水温、気圧などの気象データ
測定局情報
get_stations
- 監視局の検索と一覧表示
get_station_details
- 測定局の詳細なメタデータと機能
🔬 気候と研究ツール (9つのツール)
海面水位分析
get_sea_level_trends
- 長期的な海面水位上昇トレンドと速度
get_extreme_water_levels
- 極端事象の統計分析
高潮洪水分析
get_high_tide_flooding_daily
-毎日の洪水イベント数
get_high_tide_flooding_monthly
- 月次の洪水パターン
get_high_tide_flooding_seasonal
- 季節的な洪水分析
get_high_tide_flooding_annual
- 年次の洪水トレンド
get_high_tide_flooding_projections
- 将来の洪水リスクシナリオ
get_high_tide_flooding_likelihoods
- 毎日の洪水確率
過去の極値
get_top_ten_water_levels
- 記録上の最高/最低水位
🌙 天文学ツール (7つのツール)
月相計算
get_moon_phase
- 現在の月相と月の照度
get_moon_phases_range
- 指定日付範囲の月相
get_next_moon_phase
- 次の新月/満月/半月を検索
太陽計算
get_sun_times
- 日の出、日の入り、明け方、薄暮の時間
get_sun_times_range
- 指定日付範囲の太陽時間
get_sun_position
- リアルタイムの太陽の方位角と仰角
get_next_sun_event
- 次の日の出、日の入り、または太陽正午
⚙️ 設定ツール (1つのツール)
APIパラメータ
get_parameter_definitions
- すべてのAPIパラメータの有効な値
💻 使用例
🌊 現在の潮汐状況を取得
get_water_levels station="8443970" date="latest"
get_tide_predictions station="8723214" begin_date="today" end_date="today" interval="hilo"
🌀 ハリケーン対策
get_extreme_water_levels station="8518750" units="english"
get_high_tide_flooding_likelihoods station="8518750" date="2024-12-16" threshold="minor"
🔬 気候研究
get_sea_level_trends station="8518750" affiliation="US"
get_high_tide_flooding_projections station="8518750" scenario="intermediate" decade="2050s"
🌙 天文学と航海
get_moon_phase date="2024-12-15" latitude="42.3601" longitude="-71.0589"
get_sun_times date="2024-12-15" latitude="25.7617" longitude="-80.1918" timezone="America/New_York"
🎣 釣りとレクリエーション
get_current_predictions station="ACT0446" date="today" interval="MAX_SLACK"
get_meteorological_data station="8443970" product="wind" date="today"
🏗️ 高度な使用法
🔧 開発とテスト
npm run dev
npm run dev:http
npm start
npm run start:http
npm run start:http:3001
npm run start:http:8080
npx fastmcp inspect dist/index.js
🌐 HTTPストリーム統合
HTTPモードで実行すると、サーバーは /sse
でServer-Sent Events (SSE) を提供します。
npx @ryancardin/noaa-tides-currents-mcp-server --http --port 3000
curl -N http://localhost:3000/sse
fetch('http://localhost:3000/sse')
.then(response => response.body.getReader())
.then(reader => {
// ストリーミングMCPレスポンスを処理
});
HTTPモードの使用例:
- 🌐 Webアプリケーション - React、Vue、Angularアプリとの統合
- 📱 モバイルアプリ - モバイルアプリからのRESTライクなアクセス
- 🔗 APIゲートウェイ - ロードバランサーやAPIゲートウェイを介したプロキシ
- 🧪 テスト - 簡単なcurlベースのテストとデバッグ
📊 データ形式とエクスポート
すべてのツールは複数の出力形式をサポートしています。
- JSON (デフォルト) - プログラムでの使用に最適
- XML - レガシーシステムとの統合
- CSV - 直接スプレッドシートにインポート可能
🌍 グローバルな測定局カバレッジ
- 13,000以上の測定局 世界中
- リアルタイムデータ - NOAAのCO - OPSネットワークから
- 過去の記録 - 数十年にわたるデータ
- グローバルな潮汐予測と潮流予報
🚦 APIエンドポイント
このサーバーは3つのNOAA APIと統合されています。
API |
目的 |
ベースURL |
Data API |
リアルタイムの観測データと予測 |
api.tidesandcurrents.noaa.gov/api/prod/ |
Metadata API |
測定局情報と機能 |
api.tidesandcurrents.noaa.gov/mdapi/prod/ |
Derived Products API |
気候分析と研究データ |
api.tidesandcurrents.noaa.gov/dpapi/prod/ |
🔧 技術詳細
アーキテクチャ
- 🚀 FastMCPフレームワーク - 高性能なMCPサーバー
- 📝 TypeScript - 完全な型安全性とIntelliSense
- 🔧 Zodバリデーション - ランタイムでのパラメータバリデーション
- ⚡ Axios HTTPクライアント - 信頼性の高いAPI通信
- 🌙 SunCalc統合 - 正確な天文学計算
トランスポートオプション
- 📡 STDIOトランスポート - デスクトップクライアント向けの標準的なMCPプロトコル
- 🌐 HTTPストリームトランスポート - Web統合に適したServer - Sent Events
- 🔄 デュアルモード対応 - コマンドラインフラグでトランスポートを切り替え可能
システム要件
- Node.js 18以上
- NPM 8以上
- MCPクライアント (Claude Desktopなど)
パッケージサイズ
- 📦 バンドル済み: 43.9 KB
- 📂 インストール後: 286.2 KB
- ⚡ロード時間: 100ms未満
🐛 トラブルシューティング
一般的な問題と解決策
サーバーが起動しない場合
node --version
npm run build
APIエラー
- 無効な測定局ID -
get_stations
を使用して有効な測定局を検索してください
- 日付形式の問題 - YYYYMMDDまたはMM/DD/YYYY形式を使用してください
- レート制限 - NOAA APIには使用制限があります。リクエストを分散させてください
MCP接続問題
- Claude DesktopのMCP設定が正しく構成されていることを確認してください
- サーバーバイナリに実行権限があることを確認してください:
chmod +x dist/index.js
📈 ロードマップ
- [ ] 🌊 リアルタイムアラート - 潮汐/天気アラートのWebhookサポート
- [ ] 📱 モバイルSDK - React Nativeとの統合
- [ ] 🗺️ GIS統合 - シェイプファイルとKMLのエクスポート
- [ ] 🤖 AIインサイト - 自動パターン認識
- [ ] ⚡ GraphQL API - 最新のクエリインターフェース
- [ ] 🌐 多言語対応 - I18nサポート
🤝 コントリビューション
コントリビューションを大歓迎します!始めるには以下の手順に従ってください。
- 🍴 リポジトリをフォークします
- 🌿 新しいブランチを作成します (
git checkout -b amazing-feature
)
- 💻 改良点をコーディングします
- ✅
npm test
でテストします
- 📤 プルリクエストを送信します
開発コマンド
npm run build
npm run dev
npm run test
npm run format
📄 ライセンス
MITライセンス - 詳細は LICENSE ファイルを参照してください。
Ryan Cardinによって愛情を込めて作成されました。
🔗 リンクとリソース
**⭐ このリポジトリが役に立ったらスターをつけてください!**
NOAAのオープン海洋データへの取り組みによって可能になりました。🌊