mcp-bmkg
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
mcp-bmkg
An MCP server that gives your AI assistant Indonesian earthquake data and village-level weather forecasts from BMKG open data. No API key, no account, one file, zero dependencies.
Example: "Was there a strong earthquake in Indonesia today? And what's the weather in Kemayoran (31.71.03.1001) tomorrow afternoon?"
🇮🇩 Bahasa Indonesia: lihat bagian di bawah.
Works in Claude Desktop, Claude Code, Cursor, OpenCode and any MCP client that runs local stdio servers.
Answers in Indonesian, with a JSON block that uses English field names (easy for code and agents).
Every answer ends with "Sumber: BMKG" and the fetch time in WIB, as BMKG's open data terms require.
60-second cache and a 10-second timeout per request, so it stays well inside BMKG's limit of 60 requests per minute per IP.
Tools
Tool | What it returns | Input |
| The latest earthquake BMKG published as "Gempabumi Terbaru": time (WIB + UTC), magnitude, depth, coordinates, nearest region, tsunami potential, felt areas (MMI) and the shakemap image link. Usually M 5.0+, but BMKG also uses this feed for smaller quakes that were felt. | none |
| The 15 most recent felt earthquakes, with MMI intensity per area. |
|
| The 15 most recent M 5.0+ earthquakes, with tsunami potential. |
|
| 3-hourly forecast for one kelurahan/desa for up to 3 days: weather (ID + EN), temperature, humidity, wind, cloud cover, visibility. |
|
All tools are read-only and free. Example JSON (shortened) from gempa_m5:
{
"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"
}Related MCP server: geo-agent
Install
Requires Node.js 18+ (node -v). With npx there is nothing else to install: your app runs npx -y mcp-bmkg.
Claude Desktop: Settings → Developer → Edit Config (claude_desktop_config.json), then fully quit and reopen Claude Desktop.
{
"mcpServers": {
"bmkg": {
"command": "npx",
"args": ["-y", "mcp-bmkg"]
}
}
}Claude Code
claude mcp add bmkg -- npx -y mcp-bmkgAdd --scope user to make it available in every project. Check with claude mcp list.
Cursor: ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project), same JSON as Claude Desktop.
OpenCode: opencode.json in the project, or ~/.config/opencode/opencode.json.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"bmkg": {
"type": "local",
"command": ["npx", "-y", "mcp-bmkg"],
"enabled": true
}
}
}Windows: if the app cannot start npx, use "command": "cmd" with "args": ["/c", "npx", "-y", "mcp-bmkg"].
From source: git clone https://github.com/EzkielynaGroup/mcp-bmkg.git, then use "command": "node" with "args": ["/full/path/to/mcp-bmkg.mjs"].
Configuration (optional)
Variable | Default | Notes |
|
| timeout per request (1000-120000) |
|
| cache lifetime per URL; |
| unset | one base URL for both BMKG hosts, for tests or a mirror. Unset = |
Finding the adm4 village code
prakiraan_cuaca needs the Kemendagri level-4 region code of a kelurahan/desa, written PP.KK.CC.DDDD (province, regency/city, district, village). BMKG's forecast page refers to Keputusan Menteri Dalam Negeri Nomor 100.1.1-6117 Tahun 2022 for these codes and gives the example 31.71.03.1001 = Kelurahan Kemayoran, Jakarta Pusat.
This server does not bundle a code lookup: the full list has more than 80,000 villages, and BMKG does not publish a search endpoint for it. Ways to find a code:
Easiest: add the companion server mcp-wilayah-indonesia (
npx -y mcp-wilayah-indonesia, offline). Itscari_wilayahtool finds a village by name and returnsbmkg_adm4, so you can ask "cuaca besok di Kemayoran" and the assistant chains both servers.The Kemendagri decision on region codes (the attachment lists every village with its code).
Community datasets on GitHub that republish the Kemendagri list (search "kode wilayah kemendagri"). Check their license and which decision year they follow.
Statistics Indonesia (BPS) uses its own codes, which do not always match Kemendagri codes. Do not mix them.
If a code is wrong or BMKG has no forecast for it, the tool says so ("Kode wilayah tidak ditemukan") instead of guessing.
Data source and terms
All data comes live from BMKG (Badan Meteorologi, Klimatologi, dan Geofisika) open data, checked on 11 Nov 2026:
Data | Endpoint | Updated (per BMKG) |
Latest earthquake |
| on every event |
15 latest M 5.0+ |
| on every event |
15 latest felt |
| on every event |
Shakemap image |
| per event |
Village forecast |
| twice a day, 3-hourly, 3 days |
Terms, from data.bmkg.go.id and its forecast page: users must credit BMKG as the data source and show that credit in their app: "Wajib untuk mencantumkan BMKG ... sebagai sumber data dan menampilkannya pada aplikasi/sistem Anda." The access limit is 60 requests per minute per IP. This server therefore ends every answer with "Sumber: BMKG" and caches responses for 60 seconds. If you show results to other people, keep that credit.
This server does not redistribute BMKG data; it fetches it at request time. The recorded responses in test/fixtures/ (BMKG data, 11 Nov 2026) are used only by the offline tests and are not part of the npm package. This project is independent and is not affiliated with BMKG.
Not documented by BMKG: the forecast field tp. The server passes it on as precipitation_mm, which is our reading of it (unverified).
Safety and limits
Read-only. No files are written, no key or account is used.
adm4is validated locally (00.00.00.0000) before any request; invalid input never reaches BMKG.Timeout per request (default 10 s), responses over 2 MB are rejected, at most 15 quakes and 40 forecast rows per answer.
Errors come back as short Indonesian + English messages (timeout, rate limit, code not found, BMKG down), never as stack traces.
Logs go to stderr; stdout carries only MCP messages.
For emergencies, follow BMKG's own channels and your local authorities. This tool relays BMKG data and adds no warnings of its own.
FAQ
Is there a free API for Indonesian earthquake data? Yes. BMKG publishes the latest quake, the 15 latest M 5.0+ quakes and the 15 latest felt quakes as free JSON at data.bmkg.go.id, with no key. This server wraps those feeds for AI assistants.
How do I get BMKG weather forecasts by village in Claude or Cursor?
Add this server (npx -y mcp-bmkg) and ask for the forecast with the village's Kemendagri adm4 code, for example "prakiraan cuaca 31.71.03.1001 besok".
Do I need to credit BMKG when I use its data? Yes. BMKG's open data pages require users to show BMKG as the data source in their app or system. Every answer from this server includes "Sumber: BMKG".
How often is BMKG data updated? Earthquake feeds update on every event; village forecasts are produced twice a day in 3-hour steps for 3 days. This server caches each URL for 60 seconds.
Does gempa_terbaru only show M 5.0+ earthquakes?
Not always. It mirrors BMKG's "Gempabumi Terbaru" feed, which can show a smaller quake when it was felt. Use gempa_m5 for the M 5.0+ list.
Development
node --test test/The tests spawn the server over stdio against a local mock of the BMKG endpoints serving recorded fixtures: no internet needed. They cover every tool plus timeouts, rate limits, bad codes, invalid JSON and caching.
Bahasa Indonesia
Server MCP untuk data gempabumi dan prakiraan cuaca per kelurahan/desa dari data terbuka BMKG. Tanpa API key, cukup Node.js 18+. Contoh: "Ada gempa kuat hari ini? Lalu bagaimana cuaca di Kemayoran (31.71.03.1001) besok siang?"
Tools
gempa_terbaru: gempa terbaru versi BMKG (waktu WIB/UTC, magnitudo, kedalaman, koordinat, wilayah, potensi tsunami, wilayah yang merasakan, link peta guncangan). Biasanya M 5.0+, tetapi BMKG juga memakai feed ini untuk gempa lebih kecil yang dirasakan.gempa_dirasakan: 15 gempa terakhir yang dirasakan, dengan skala MMI. Opsilimit,min_magnitude.gempa_m5: 15 gempa terakhir M 5.0+, dengan potensi tsunami. Opsilimit,min_magnitude.prakiraan_cuaca: prakiraan per 3 jam hingga 3 hari untuk satu kelurahan/desa. Wajibadm4, opsidays(1-3).
Pasang: tambahkan npx -y mcp-bmkg ke aplikasi Anda (contoh konfigurasi Claude Desktop, Claude Code, Cursor, OpenCode ada di atas). Di Windows gunakan cmd /c npx -y mcp-bmkg bila npx tidak bisa dijalankan langsung.
Kode adm4: kode wilayah Kemendagri tingkat IV (kelurahan/desa), format 00.00.00.0000, contoh 31.71.03.1001 (Kemayoran). BMKG merujuk Kepmendagri Nomor 100.1.1-6117 Tahun 2022. Server ini tidak menyertakan daftar kode (lebih dari 80.000 desa). Cara termudah: pasang juga mcp-wilayah-indonesia (npx -y mcp-wilayah-indonesia, offline); alat cari_wilayah mencari desa dari namanya dan memberi bmkg_adm4. Atau cari di lampiran keputusan Kemendagri atau dataset komunitas yang menyalinnya (periksa lisensinya). Kode BPS berbeda, jangan dicampur.
Sumber dan ketentuan: semua data diambil langsung dari BMKG (data.bmkg.go.id dan api.bmkg.go.id). BMKG mewajibkan pengguna mencantumkan BMKG sebagai sumber data dan menampilkannya di aplikasi, dengan batas akses 60 permintaan per menit per IP. Karena itu setiap jawaban berakhir dengan "Sumber: BMKG" beserta waktu pengambilan (WIB), dan jawaban di-cache 60 detik. Proyek ini independen dan tidak berafiliasi dengan BMKG. Field tp pada prakiraan tidak dijelaskan oleh BMKG; kami menampilkannya sebagai precipitation_mm (belum terverifikasi).
Batasan: hanya membaca data, tidak menyimpan file, tanpa key. Timeout 10 detik, cache 60 detik. Untuk keadaan darurat, ikuti kanal BMKG dan pemerintah daerah setempat.
Made by Ezkielyna, an independent AI API gateway for Indonesian developers (QRIS): ezkielyna.store.
License
MIT for the code. Data belongs to BMKG and is fetched at runtime under BMKG's open data terms (credit "BMKG" as the source).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
US weather & geo for AI agents: forecasts, alerts, earthquakes, elevation, geocoding. No keys.
US weather & geo for AI agents: forecasts, alerts, earthquakes, elevation, geocoding. No keys.
Indonesian news + FX history to 10 yrs, crypto/IDR, quakes, holidays. $0.05/call, licences $19-700
Climate and disaster risk for any place or property: flood risk, heat waves, storms and hurricanes, wildfires, earthquakes, sea level rise and 7-day weather risk. Is it safe to go there? Ask about any city, address or coordinates and get this week's weather risk (heat, cold, wind, heavy rain, snow), wildfires, earthquakes, floods and cyclones happening nearby right now, long-term exposure to 2050 and 2080 (flood depth, sea level rise, extreme heat, drought, water stress) and the country's disaster-risk profile and rank among 194 countries. Also compares and ranks countries by risk for ESG and insurance research, and in Claude and other MCP Apps hosts shows an interactive map of the place right in the chat. Every value cites its source: INFORM, ND-GAIN, World Bank, CMIP6, ERA5, IPCC AR6, WRI Aqueduct, GDACS, NASA FIRMS, OpenAQ, ECCC GDPS. Remote, free, no API key, read-only.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn unofficial MCP server that provides access to Indonesia's BMKG data, including real-time earthquake reports, village-level weather forecasts, and extreme weather alerts. It enables users to search for location codes and retrieve detailed meteorological and geophysical information through natural language.9MIT
- FlicenseAqualityDmaintenanceExposes live earth-science data (e.g., earthquakes from USGS) as tools for MCP-compatible AI agents, enabling them to fetch and reason about real-time geophysical events.1-
- AlicenseNot gradedqualityCmaintenanceEnables access to a wide range of Indonesian public data and services without requiring accounts or API keys, including weather, earthquakes, addresses, postal codes, news, prayer schedules, Quran, gold prices, and more.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to query official New Zealand geohazard monitoring data from GeoNet/GNS Science, including recent earthquakes filtered by Modified Mercalli Intensity, detailed single-quake records, and current Volcanic Alert Levels with hazards and aviation colour codes for monitored volcanoes. Runs keyless over a hosted gateway URL or locally via npx as a stdio server.476 npmMIT