jaxa-earth-mcp
Enables interactive access to JAXA's satellite observation data (precipitation, land surface temperature, NDVI, elevation, soil moisture) via Claude, providing tools for point time series, dataset information, and area image generation.
README
jaxa-earth-mcp
JAXA Earth API を Claude Code / Claude Desktop から対話的に扱うための軽量 MCP ラッパー。
個人開発者が作成した再利用可能な MCP(Model Context Protocol)ツールです。
JAXA が公開している衛星観測データ配信サービス JAXA Earth API
の Python パッケージ(jaxa-earth)を薄くラップし、地点の時系列取得・データセット情報照会・
領域画像生成を AI エージェントから呼び出せるようにします。
- 追加の API キー・ユーザー登録・課金は不要(JAXA Earth API は登録不要・無償)
- 依存は最小限(
jaxa-earth/mcp/numpy/requests) - サーバーは標準入出力(stdio)で動作
本リポジトリは JAXA 公式のものではありません。データの権利は JAXA に帰属します (利用上の注意 参照)。
提供ツール
| ツール | 概要 |
|---|---|
list_datasets(keyword?) |
データセットを検索。keyword 省略時は主要データセットを返す。指定時は STAC カタログ全体を ID 部分一致で検索。 |
get_dataset_info(dataset_id) |
分解能・提供期間・単位・出典(citation/DOI)・ライセンス・クレジット表記例・利用上の注意を返す。 |
get_point_timeseries(dataset_id, lat?, lon?, start_date?, end_date?) |
地点の時系列(日付・値の配列+統計)。lat/lon 省略時は新潟県魚沼地域(37.2250, 138.9689)。 |
get_area_image(dataset_id, bbox, date) |
指定領域・日付の PNG を outputs/ に保存し、パス等を返す。 |
実装上の主な挙動(実測で確認済み)
- bbox 自動拡張:
get_point_timeseriesは点まわりの矩形を データセットの分解能 (STAC のje:ppu_max)から動的に算出します。粗い ~5km 級(GSMaP/SMC など)は ±0.3° 程度に広げて地域平均を取り、高分解能(DSM 30m)は点に近い矩形を使います。 固定値ではありません。 - 長期間の自動分割: JAXA Earth API は 1 リクエスト最大 100 日の制約があります。 期間がこれを超える場合、内部で 90 日ごとに分割取得し、結合して 1 本の時系列で返します。
- 静的データの単発取得: 標高(ALOS DSM)のような時間変化しないデータは、
start_date/end_dateを無視して単発取得します。 - 欠測は補間しない: 雲などで観測が欠けた場合、その値は
null(NaN)のまま返します (前後の値でつなぎません)。 - 取得失敗はそのまま返す: 想定外のエラーは握りつぶさず、内容を返します。
対応データセット(主要 5 種)
| 略称 | 内容 | 単位 | 分解能(概算) | 備考 |
|---|---|---|---|---|
| GSMaP | 降水(日次) | mm/hr | 約11km (0.1°) | 値は日平均降水強度。日積算量[mm]=値×24(JAXA GSMaP FAQ Q4)。時系列取得時に derived.total_mm_estimated として自動換算。 |
| GCOM-C LST | 地表面温度(日中・日次) | Kelvin | 約2.8km (1/40°) | 地表面温度であり気温ではない。雲欠測あり。 |
| GCOM-C NDVI | 植生指数(日中・半月) | 無次元 | 約2.8km (1/40°) | 分解能が粗く圃場単位でなく地域傾向。雲欠測あり。 |
| ALOS AW3D30 | 数値表層モデル(標高) | m | 約30m | 静的データ(2024年4月版 / v4.1)。 |
| GCOM-W SMC | 土壌水分量(日中・日次) | %(体積含水率) | 約11km (0.1°) | マイクロ波観測で雲を透過。 |
単位は jaxa-earth が COG メタデータから読む値(cinfo.unit)を実測で確認しています。
keyword 検索で上記以外のデータセット(GCOM-C は 39 種など、全体で 100 以上)も利用できます。
分解能の注記: GCOM-C LST/NDVI の API 配信グリッドは COG の GeoTIFF タグ (
ModelPixelScale=0.025°、90°タイル=3600px)を実測して 1/40°(約2.8km) と確認しました。 一部のデータセットで STAC のcitationに「1/24 deg」等の実グリッドと異なる表記や、descriptionの取り違え(NDVI に「Land surface temperature」と記載)が見られます。 本ツールは分解能をppu_max/COG 実測値から算出しており、get_dataset_infoのresolution.noteにこの不一致を明記します。
セットアップ
前提: Python 3.10 以上、macOS / Linux / Windows。
git clone <this-repo> jaxa-earth-mcp
cd jaxa-earth-mcp
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .
インストール確認:
python -c "import jaxa_earth_mcp, mcp, jaxa.earth; print('OK')"
MCP サーバーの登録
Claude Code(CLI)
claude mcp add jaxa-earth \
--env JAXA_MCP_OUTPUTS="$(pwd)/outputs" \
-- "$(pwd)/.venv/bin/jaxa-earth-mcp"
# 確認(Status: ✔ Connected になれば成功)
claude mcp get jaxa-earth
登録後、Claude Code のプロンプトから自然文で呼び出せます。例:
- 「2026年4月から今日までの魚沼の日次降水量の推移と合計を出して」
- 「魚沼の8月のNDVIとその分解能・注意事項を教えて」
Claude Desktop
設定ファイル(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json、
Windows: %APPDATA%\Claude\claude_desktop_config.json)に以下を追加します。
パスは環境に合わせて絶対パスで記述してください。
{
"mcpServers": {
"jaxa-earth": {
"command": "/absolute/path/to/jaxa-earth-mcp/.venv/bin/jaxa-earth-mcp",
"env": {
"JAXA_MCP_OUTPUTS": "/absolute/path/to/jaxa-earth-mcp/outputs"
}
}
}
}
Windows の command は ...\\.venv\\Scripts\\jaxa-earth-mcp.exe を指定します。
設定後、Claude Desktop を再起動してください。
python -m jaxa_earth_mcp.serverでも起動できます。その場合はcommandに venv のpythonを、argsに["-m", "jaxa_earth_mcp.server"]を指定します。
使い方(ツール詳細)
get_point_timeseries
dataset_id : データセットID(list_datasets で確認)
lat, lon : 省略時は魚沼(37.2250, 138.9689)
start_date : "YYYY-MM-DD"(時系列データで必須)
end_date : "YYYY-MM-DD"(時系列データで必須)
返り値には series({date, value} の配列、欠測は value: null)、stats
(count / missing / mean / min / max)、aggregation(使用した bbox と分解能)、
unit、credit が含まれます。
降水強度[mm/hr]の単純合計は物理的に無意味なため stats に sum は持ちません。
GSMaP(mm/hr)の場合のみ derived に日積算量[mm/day]への換算
(series_mm と total_mm_estimated、換算根拠付き)を返します。
get_area_image
dataset_id : データセットID
bbox : [min_lon, min_lat, max_lon, max_lat]
date : "YYYY-MM-DD"(最も近い観測日を自動選択。静的データでは無視)
outputs/ に PNG を保存し、image_path を返します。
クレジット・ライセンス
- コード: MIT License。
- データ: JAXA Earth 研究データ利用規約に従います。商用利用は同規約適用データで可能です。
各データセットの詳細ライセンスは STAC の
license/providersに定義されています。 - クレジット表記例(
get_dataset_infoが各データセットの表記例を返します):- データ:
Credit: <データセット名> (JAXA)(例:Credit: GSMaP (JAXA)) - API 利用:
Image: Created using the JAXA Earth API
- データ:
出典・規約の一次情報: JAXA Earth API / 利用規約
免責
本リポジトリは個人開発による非公式ツールです。JAXA が提供・保証するものではありません。 データの内容・可用性については JAXA Earth API の提供状況に依存します。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。