BMKG Gempa & Cuaca について
BMKG Gempa & Cuacaは、BMKGのオープンデータからインドネシアの地震情報と村単位の天気予報を提供するMCPサーバーです。読み取り専用でAPIキーは不要です。回答にはデータ出典が記載されます。
主な機能
- 01最新の地震情報を取得
- 02最近の有感地震とM 5.0以上の地震を一覧表示
- 03村単位の3時間ごとの予報を取得
- 04BMKGの出典と取得時刻を表示
- 05応答を60秒間キャッシュ
活用シーン
- 01インドネシアの最近の地震を確認
- 02地域ごとの報告震度を確認
- 03村の数日先までの天気予報を取得
MCP 対応
地震フィードと村単位の予報を取得する読み取り専用ツールをMCPクライアントに公開します。BMKGの公開エンドポイントからAPIキーなしでデータを取得します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y mcp-bmkgMCP_BMKG_TIMEOUT_MSTimeout per BMKG request in ms (default 10000)MCP_BMKG_CACHE_MSCache lifetime per URL in ms (default 60000)MCP_BMKG_BASE_URLOverride base URL for both BMKG hosts (tests or mirrors)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
4掲載時のツール一覧 · 2 日前に更新
このツールにパラメーターはありません。
詳細
mcp-bmkg
AI アシスタントにBMKG のオープンデータから取得したインドネシアの地震データと村レベルの天気予報を提供するMCP サーバーです。API キーもアカウントも不要で、ファイルは 1 つ、依存関係はゼロです。
例:「今日、インドネシアで強い地震はありましたか?また、明日の午後、ケマヨラン(31.71.03.1001)の天気はどうですか?」
🇮🇩 インドネシア語:[下のセクション](#bahasa-indonesia)をご覧ください。
- Claude Desktop、Claude Code、Cursor、OpenCode、およびローカルの stdio サーバーを実行できるあらゆる MCP クライアントで動作します。
- インドネシア語で回答し、英語のフィールド名を使用した JSON ブロックも含まれます(コードやエージェントで簡単に利用できます)。
- すべての回答は、BMKG のオープンデータ利用規約に従い、**「Sumber: BMKG」**と WIB での取得時刻で終わります。
- リクエストごとに 60 秒のキャッシュと 10 秒のタイムアウトを設定しているため、BMKG の IP あたり毎分 60 リクエストという制限を十分に下回ります。
ツール
| ツール | 返される内容 | 入力 |
|---|---|---|
gempa_terbaru | BMKG が「Gempabumi Terbaru」として公開した最新の地震情報:時刻(WIB + UTC)、マグニチュード、深さ、座標、最寄りの地域、津波の可能性、揺れを感じた地域(MMI)、シェイクマップ画像へのリンク。通常は M 5.0 以上ですが、揺れを感じた小規模な地震にも BMKG はこのフィードを使用します。 | なし |
gempa_dirasakan | 揺れを感じた直近 15 件の地震と、地域ごとの MMI 強度。 | limit(1-15)、min_magnitude |
gempa_m5 | 直近の M 5.0 以上の地震 15 件と、津波の可能性。 | limit(1-15)、min_magnitude |
prakiraan_cuaca | 1 つの kelurahan/desa の最大 3 日間の 3 時間ごとの予報:天気(ID + EN)、気温、湿度、風、雲量、視程。 | adm4(必須。例:31.71.03.1001)、days(1-3) |
すべてのツールは読み取り専用で、無料です。gempa_m5 の JSON の例(短縮版):
{
"dataset": "gempaterkini",
"count": 1,
"earthquakes": [
{ "datetime_utc": "2026-11-10T15:51:37+00:00", "time_local": "22:51:37 WIB", "magnitude": 5.1, "depth_km": 10,
"latitude": -0.93, "longitude": 128.6, "region": "116 km TimurLaut HALMAHERASELATAN-MALUT", "potential": "Tidak berpotensi tsunami" }
],
"source": "BMKG",
"fetched_at_wib": "2026-11-11 23:17:52 WIB"
}
インストール
Node.js 18 以降(node -v)が必要です。npx を使えば、ほかにインストールするものはありません。アプリは npx -y mcp-bmkg を実行します。
Claude Desktop:[Settings]→[Developer]→[Edit Config](claude_desktop_config.json)を開き、Claude Desktop を完全に終了してから再起動します。
{
"mcpServers": {
"bmkg": {
"command": "npx",
"args": ["-y", "mcp-bmkg"]
}
}
}
Claude Code
claude mcp add bmkg -- npx -y mcp-bmkg
すべてのプロジェクトで利用できるようにするには、--scope user を追加します。claude mcp list で確認してください。
Cursor:~/.cursor/mcp.json(すべてのプロジェクト)または .cursor/mcp.json(1 つのプロジェクト)を使います。JSON は Claude Desktop と同じです。
OpenCode:プロジェクト内の opencode.json、または ~/.config/opencode/opencode.json を使います。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"bmkg": {
"type": "local",
"command": ["npx", "-y", "mcp-bmkg"],
"enabled": true
}
}
}
Windows:アプリから npx を起動できない場合は、"command": "cmd" と "args": ["/c", "npx", "-y", "mcp-bmkg"] を使用してください。
ソースから実行する場合:git clone https://github.com/EzkielynaGroup/mcp-bmkg.git を実行し、"command": "node" と "args": ["/full/path/to/mcp-bmkg.mjs"] を使用してください。
設定(任意)
| 変数 | デフォルト | 備考 |
|---|---|---|
MCP_BMKG_TIMEOUT_MS | 10000 | リクエストごとのタイムアウト(1000-120000) |
MCP_BMKG_CACHE_MS | 60000 | URL ごとのキャッシュ期間。0 にするとキャッシュを無効にします |
MCP_BMKG_BASE_URL | 未設定 | テストまたはミラー用に、BMKG の両方のホストで共通のベース URL を指定します。未設定の場合は https://data.bmkg.go.id(地震)および https://api.bmkg.go.id(天気予報)です |
adm4 村コードを調べる
prakiraan_cuaca には、kelurahan/desa の Kemendagri レベル4地域コードが必要です。形式は PP.KK.CC.DDDD(州、県/市、郡、村)です。BMKG の予報ページでは、これらのコードについて Keputusan Menteri Dalam Negeri Nomor 100.1.1-6117 Tahun 2022 を参照し、31.71.03.1001 = Kelurahan Kemayoran, Jakarta Pusat という例を示しています。
このサーバーにはコード検索機能は含まれていません。村は全体で80,000以上あり、BMKG は検索用エンドポイントを公開していないためです。コードを調べる方法は次のとおりです。
- 最も簡単な方法: 同梱サーバー mcp-wilayah-indonesia(
npx -y mcp-wilayah-indonesia、オフライン対応)を追加します。そのcari_wilayahツールで村名を検索するとbmkg_adm4が返されるため、「cuaca besok di Kemayoran」と尋ねると、アシスタントが両方のサーバーを連携して使えます。 - 地域コードに関する Kemendagri の決定(添付資料に、すべての村とそのコードが記載されています)。
- Kemendagri の一覧を再公開している GitHub 上のコミュニティデータセット(「kode wilayah kemendagri」で検索してください)。ライセンスと、どの年の決定に基づいているかを確認してください。
- Statistics Indonesia(BPS)は独自のコードを使用しており、Kemendagri のコードと一致しない場合があります。混同しないでください。
コードが間違っている場合や、BMKG にそのコードの予報がない場合、ツールは推測せず、「Kode wilayah tidak ditemukan」と返します。
データソースと利用条件
すべてのデータは BMKG (Badan Meteorologi, Klimatologi, dan Geofisika) のオープンデータからリアルタイムで取得しています。2026年11月11日に確認済みです。
| データ | エンドポイント | 更新頻度(BMKGによる) |
|---|---|---|
| 最新の地震 | https://data.bmkg.go.id/DataMKG/TEWS/autogempa.json | 発生のたび |
| 最新の M 5.0 以上の地震15件 | https://data.bmkg.go.id/DataMKG/TEWS/gempaterkini.json | 発生のたび |
| 最新の有感地震15件 | https://data.bmkg.go.id/DataMKG/TEWS/gempadirasakan.json | 発生のたび |
| シェイクマップ画像 | https://data.bmkg.go.id/DataMKG/TEWS/<Shakemap> | 地震ごと |
| 村の予報 | https://api.bmkg.go.id/publik/prakiraan-cuaca?adm4=<code> | 1日2回、3時間ごと、3日間 |
利用条件は、data.bmkg.go.id と予報ページに記載されています。ユーザーは BMKG をデータソースとして明記し、そのクレジットをアプリに表示する必要があります。 「Wajib untuk mencantumkan BMKG ... sebagai sumber data dan menampilkannya pada aplikasi/sistem Anda.」 アクセス制限は、IPアドレスあたり毎分60リクエストです。そのため、このサーバーはすべての回答の末尾に「Sumber: BMKG」を付け、レスポンスを60秒間キャッシュします。結果をほかの人に表示する場合も、このクレジットを残してください。
このサーバーは BMKG のデータを再配布しません。リクエスト時にデータを取得します。test/fixtures/ 内の記録済みレスポンス(BMKG データ、2026年11月11日)はオフラインテスト専用で、npm パッケージには含まれません。このプロジェクトは独立しており、BMKG とは提携していません。
BMKG が説明していない項目:予報フィールドの tp。サーバーはこれを precipitation_mm として渡しますが、これは独自の解釈であり、検証されていません。
安全性と制限
- 読み取り専用です。ファイルへの書き込みはなく、キーやアカウントも使用しません。
- リクエストを送信する前に、
adm4をローカルで検証します(00.00.00.0000)。入力が無効な場合、BMKG には送信されません。 - リクエストごとのタイムアウト(デフォルト10秒)、2 MBを超えるレスポンスは拒否され、回答あたりの地震は最大15件、予報行は最大40件です。
- エラーは短いインドネシア語+英語のメッセージで返されます(タイムアウト、レート制限、コードが見つからない、BMKG の停止)。スタックトレースは返しません。
- ログは stderr に出力し、stdout には MCP メッセージのみを出力します。
- 緊急時は、BMKG の公式チャンネルと地域当局の指示に従ってください。このツールは BMKG のデータを中継するだけで、独自の警告は追加しません。
FAQ
インドネシアの地震データを取得できる無料 API はありますか? はい。BMKG は最新の地震、M 5.0 以上の最新 15 件の地震、揺れが観測された最新 15 件の地震を、キー不要の無料 JSON として data.bmkg.go.id で公開しています。このサーバーは、AI アシスタント向けにこれらのフィードをラップします。
Claude や Cursor で村の天気予報を取得するにはどうすればよいですか?
このサーバー(npx -y mcp-bmkg)を追加し、村の Kemendagri adm4 コードを指定して予報を尋ねます。たとえば、「prakiraan cuaca 31.71.03.1001 besok」のように入力します。
BMKG のデータを使う際、BMKG のクレジット表記は必要ですか? はい。BMKG のオープンデータページでは、アプリやシステムにデータソースとして BMKG を表示するよう求めています。このサーバーからのすべての回答には「Sumber: BMKG」が含まれます。
BMKG のデータはどのくらいの頻度で更新されますか? 地震フィードはイベントごとに更新されます。村の予報は、1 日 2 回、3 日分を 3 時間刻みで作成されます。このサーバーは各 URL を 60 秒間キャッシュします。
gempa_terbaru には M 5.0 以上の地震だけが表示されますか?
必ずしもそうではありません。BMKG の「Gempabumi Terbaru」フィードをそのまま反映するため、揺れが観測された場合は、より小さな地震が表示されることがあります。M 5.0 以上の一覧には gempa_m5 を使用してください。
開発
node --test test/
テストでは、BMKG エンドポイントの記録済みフィクスチャを提供するローカルモックに対して、stdio 経由でサーバーを起動します。インターネット接続は不要です。すべてのツールに加え、タイムアウト、レート制限、不正なコード、無効な JSON、キャッシュを網羅しています。
Bahasa Indonesia
BMKG のオープンデータを使った、地震データおよび kelurahan/desa 単位の天気予報向け MCP サーバーです。API キーは不要で、Node.js 18+ があれば利用できます。例:「今日、強い地震はありましたか? それから、明日の昼の Kemayoran(31.71.03.1001)の天気はどうですか?」
ツール
gempa_terbaru:BMKG による最新の地震(WIB/UTC 時刻、マグニチュード、深さ、座標、地域、津波の可能性、揺れが観測された地域、揺れのマップへのリンク)。通常は M 5.0 以上ですが、BMKG は揺れが観測されたより小さな地震にもこのフィードを使用します。gempa_dirasakan:揺れが観測された最新 15 件の地震。MMI スケール付き。オプションはlimit、min_magnitudeです。gempa_m5:M 5.0 以上の最新 15 件の地震。津波の可能性付き。オプションはlimit、min_magnitudeです。prakiraan_cuaca:1 つの kelurahan/desa の、最長 3 日分の 3 時間ごとの予報です。adm4が必須で、days(1~3)はオプションです。
インストール:アプリに npx -y mcp-bmkg を追加します(Claude Desktop、Claude Code、Cursor、OpenCode の設定例は上記を参照)。Windows で npx を直接実行できない場合は、cmd /c npx -y mcp-bmkg を使用してください。
adm4 コード:Kemendagri の第 IV 級行政区画(kelurahan/desa)のコードです。形式は 00.00.00.0000 で、例は 31.71.03.1001(Kemayoran)です。BMKG は Kepmendagri Number 100.1.1-6117 Year 2022 を参照しています。このサーバーにはコード一覧(80,000 を超える desa)は含まれていません。最も簡単な方法は、mcp-wilayah-indonesia(npx -y mcp-wilayah-indonesia、オフライン対応)もインストールすることです。cari_wilayah ツールで名前から desa を検索し、bmkg_adm4 を取得できます。または、Kemendagri の決定文書の付属書や、それを転載したコミュニティのデータセットを検索してください(ライセンスを確認してください)。BPS コードとは異なるため、混同しないでください。
データソースと条件:すべてのデータは BMKG(data.bmkg.go.id および api.bmkg.go.id)から直接取得されます。BMKG は、ユーザーにデータソースとして BMKG を記載し、アプリ内に表示することを求めており、アクセス上限は IP ごとに毎分 60 リクエストです。そのため、各回答の末尾には取得時刻(WIB)とともに「Sumber: BMKG」が付き、回答は 60 秒間キャッシュされます。このプロジェクトは独立したものであり、BMKG とは提携していません。予報の tp フィールドについて、BMKG による説明はありません。これを precipitation_mm として表示しています(未検証)。
制限事項:データの読み取り専用で、ファイルは保存せず、キーも不要です。タイムアウトは 10 秒、キャッシュは 60 秒です。緊急時は、BMKG および現地政府の公式チャネルに従ってください。
Ezkielyna 作。インドネシアの開発者向けの独立した AI API ゲートウェイ(QRIS):ezkielyna.store。
ライセンス
コードはMITライセンスです。データはBMKGに帰属し、BMKGのオープンデータ利用条件に基づいて実行時に取得されます(出典として「BMKG」を明記してください)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。