Token导航 LogoToken导航

MCP Server · 地图位置

BMKG MCP Server

一个提供印度尼西亚地震数据、天气预报和天气预警的非官方气象数据服务。

stdio官方来源来源级核验工具 9
气象数据PythonClaudeClaude Desktop

快速开始

作者 / 组织
revomkg
提供方
revomkg

工具数量

9

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

2 个

MCP World

选型结论

BMKG MCP Server 属于地图位置类 MCP Server,公开资料标注 9 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

地图位置

传输方式

stdio

认证方式

无需认证

部署方式

支持远程部署

安装与配置

安装命令

pip install httpx xmltodict mcp

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 9 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

BMKG MCP Server (Unofficial)

Server MCP (Model Context Protocol) untuk mengakses data dari BMKG (Badan Meteorologi, Klimatologi, dan Geofisika Indonesia). Server ini menyediakan akses mudah ke data gempa bumi, prakiraan cuaca, dan peringatan dini cuaca untuk seluruh wilayah Indonesia.

✨ Fitur

🌍 Data Gempa Bumi

  • Gempa Terkini: Info gempa bumi terbaru dengan shakemap
  • 15 Gempa M 5.0+: Daftar gempa berkekuatan 5.0 atau lebih
  • 15 Gempa Dirasakan: Daftar gempa yang dirasakan masyarakat

☁️ Prakiraan Cuaca

  • Prakiraan 3 Hari: Data lengkap hingga level kelurahan/desa
  • Update Per 3 Jam: 8 forecast per hari (total ±24 forecast)
  • Data Lengkap: Suhu, kelembaban, angin, tutupan awan, jarak pandang

⚠️ Peringatan Dini Cuaca

  • Nowcast: Peringatan cuaca ekstrem aktif di seluruh Indonesia
  • Berbasis CAP: Mengikuti standar Common Alerting Protocol
  • Level Kecamatan: Detail wilayah terdampak hingga kecamatan
  • Bilingual: Tersedia dalam Bahasa Indonesia dan English

🗺️ Pencarian Kode Wilayah

  • Database Lokal: 91,220+ wilayah dari provinsi hingga desa
  • Pencarian Fleksibel: Cari berdasarkan nama di semua level
  • Hierarki Lengkap: Tampilan struktur provinsi > kabupaten > kecamatan > desa

📦 Instalasi

Prasyarat

  • Python 3.8 atau lebih baru
  • uv (package manager) atau pip

Langkah Instalasi

  1. Clone repository
git clone https://github.com/revomkg/bmkg-mcp.git
cd bmkg-mcp
  1. Install dependencies

Menggunakan uv (disarankan):

uv sync

Atau menggunakan pip:

pip install httpx xmltodict mcp
  1. Pastikan file base.csv ada

File base.csv berisi database kode wilayah Indonesia. Pastikan file ini ada di direktori yang sama dengan bmkg-server.py.

🚀 Penggunaan

Konfigurasi di Claude Desktop

Tambahkan konfigurasi berikut ke file claude_desktop_config.json:

Lokasi file konfigurasi:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Isi konfigurasi:

{
  "mcpServers": {
    "bmkg": {
      "command": "python",
      "args": ["/path/to/bmkg-mcp/bmkg-server.py"]
    }
  }
}

Atau dengan uv:

{
  "mcpServers": {
    "bmkg": {
      "command": "uv",
      "args": ["run", "/path/to/bmkg-mcp/bmkg-server.py"]
    }
  }
}

🔧 Tools yang Tersedia

1. get_latest_earthquake()

Mendapatkan informasi gempa bumi terkini dengan shakemap.

Return:

  • Waktu kejadian
  • Magnitudo
  • Kedalaman
  • Lokasi
  • Potensi tsunami
  • URL shakemap

2. get_significant_earthquakes()

Daftar 15 gempa bumi terkini dengan magnitudo 5.0+.

Return:

  • Array of earthquakes dengan detail lengkap
  • Potensi tsunami untuk setiap gempa

3. get_felt_earthquakes()

Daftar 15 gempa bumi yang dirasakan masyarakat.

Return:

  • Array of earthquakes
  • Info daerah yang merasakan

4. search_location_code(location_name, admin_level)

Mencari kode wilayah berdasarkan nama lokasi.

Parameters:

  • location_name (string): Nama lokasi yang dicari
  • admin_level (string, optional): Filter level administratif

- "all" - Semua level (default) - "province" / "provinsi" - Provinsi - "regency" / "kabkota" - Kabupaten/Kota - "district" / "kecamatan" - Kecamatan - "village" / "desa" - Kelurahan/Desa

Contoh:

search_location_code("Pandak", "village")
# Returns: 33.02.07.2005 - Pandak di Jawa Tengah > Banyumas > Sumpiuh

5. get_villages_in_district(district_code)

Mendapatkan semua kelurahan/desa dalam kecamatan tertentu.

Parameters:

  • district_code (string): Kode kecamatan (contoh: "33.02.07")

Return:

  • Daftar lengkap kelurahan/desa dengan kode siap pakai

6. get_weather_forecast(kode_wilayah)

Prakiraan cuaca 3 hari untuk wilayah tertentu.

Parameters:

  • kode_wilayah (string): Kode wilayah level desa (4 segmen)

Return:

  • Prakiraan 3 hari dengan 8 forecast per hari
  • Suhu, kelembaban, cuaca, angin, tutupan awan, jarak pandang
  • Total ±24 forecast points

Contoh:

get_weather_forecast("33.02.07.2005")  # Pandak, Sumpiuh, Banyumas

7. get_weather_alerts(language)

Daftar peringatan dini cuaca aktif di Indonesia.

Parameters:

  • language (string, optional): "id" atau "en" (default: "id")

Return:

  • RSS feed peringatan cuaca aktif
  • Link ke detail CAP tiap provinsi

8. get_weather_alert_detail(cap_code, language)

Detail peringatan dini cuaca untuk provinsi tertentu.

Parameters:

  • cap_code (string): Kode CAP dari link di weather alerts
  • language (string, optional): "id" atau "en" (default: "id")

Return:

  • Detail lengkap CAP
  • Wilayah kecamatan terdampak
  • Waktu berlaku dan berakhir
  • Tingkat bahaya (severity, urgency, certainty)

9. search_weather_alerts_by_kecamatan(kecamatan, language)

Mencari peringatan dini untuk kecamatan tertentu.

Parameters:

  • kecamatan (string): Nama kecamatan
  • language (string, optional): "id" atau "en" (default: "id")

Return:

  • Peringatan yang mempengaruhi kecamatan tersebut
  • Detail wilayah terdampak

💡 Contoh Penggunaan

Mencari Cuaca untuk Lokasi Tertentu

User: "Bagaimana cuaca di Pandak, Sumpiuh?"

Claude akan:

  1. Memanggil search_location_code("Pandak", "village")
  2. Menemukan kode: 33.02.07.2005
  3. Memanggil get_weather_forecast("33.02.07.2005")
  4. Menampilkan prakiraan 3 hari lengkap

Cek Gempa Terkini

User: "Ada gempa apa hari ini?"

Claude akan:

  1. Memanggil get_latest_earthquake()
  2. Menampilkan info gempa terkini + shakemap
  3. Bisa memanggil get_significant_earthquakes() untuk daftar lengkap

Cek Peringatan Cuaca di Daerah Saya

User: "Ada peringatan cuaca untuk Jagakarsa?"

Claude akan:

  1. Memanggil search_weather_alerts_by_kecamatan("Jagakarsa")
  2. Menampilkan peringatan aktif (jika ada)
  3. Detail tingkat bahaya dan waktu berlaku

📊 Sumber Data

Data yang digunakan server ini berasal dari:

  • BMKG (data.bmkg.go.id): Data gempa bumi dan cuaca resmi
  • BMKG API (api.bmkg.go.id): API prakiraan cuaca dan peringatan dini
  • Kode Wilayah: Database lokal berdasarkan Keputusan Mendagri No. 100.1.1-6117 Tahun 2022

🔒 Batasan Akses

Sesuai dokumentasi BMKG:

  • Prakiraan Cuaca: 60 permintaan per menit per IP
  • Peringatan Dini: 60 permintaan per menit per IP

Gunakan dengan bijak untuk menghindari rate limiting.

🤝 Kontribusi

Kontribusi selalu diterima! Silakan:

  1. Fork repository ini
  2. Buat branch baru (git checkout -b feature/fitur-baru)
  3. Commit perubahan (git commit -am 'Tambah fitur baru')
  4. Push ke branch (git push origin feature/fitur-baru)
  5. Buat Pull Request

📝 Lisensi

Proyek ini dilisensikan di bawah MIT License.

Proyek ini adalah *unofficial* dan tidak berafiliasi dengan BMKG. Data yang digunakan berasal dari sumber publik BMKG.

⚠️ Disclaimer

Server ini dibuat untuk memudahkan akses data BMKG melalui Model Context Protocol. Pengguna bertanggung jawab untuk mematuhi syarat dan ketentuan penggunaan data dari BMKG.

🙏 Credits

  • Data gempa dan cuaca dari BMKG
  • Database kode wilayah berdasarkan Keputusan Mendagri
  • Menggunakan FastMCP untuk MCP server

📧 Kontak

Untuk pertanyaan, saran, atau laporan bug, silakan buat issue di repository ini.


⭐ Jika proyek ini bermanfaat, berikan bintang di GitHub!

工具与能力

工具数量

9

资源数量

0

提示词数量

0

能力标签

气象数据Python本地部署地震数据天气预警区域代码查询API服务

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

地址与坐标转换

把地址转成经纬度,或按坐标反查位置。

路线与距离

算行程时间、规划多点路线。

天气与出行

查天气和预警,按条件安排行程。

选择建议

值得选的地方

  • 只提供 9 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在地图位置场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
BMKG MCP Server

MCP World · 本页

9stdio有2 个2026-05-17
Baidu Maps

MCP World

10stdio有1 个2026-05-17
MCP Server C2f246e3

MCP World

20stdio有1 个2026-05-17
OpenStreetMap MCP Server

MCP.so

12stdio有3 个2026-05-17
Google Maps (google-maps-aa2563d3)

MCP World

7未说明未标注1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

BMKG MCP Server 怎么安装?

公开资料给出的安装命令是 pip install httpx xmltodict mcp,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

BMKG MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

BMKG MCP Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

BMKG MCP Server 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

BMKG MCP Server 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP