Bmkg Api — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Bmkg Api (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<a name="english"></a>
Free REST API for Indonesian weather forecasts, earthquake data, weather warnings, and region lookup from BMKG.
🌐 Demo: https://bmkg-restapi.vercel.app
This is a demo/public instance with rate limits (30 requests/minute) to ensure fair usage.
For production use with unlimited requests, please [self-host](#self-hosting).
/docsX-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset on every response# Latest earthquake
curl https://bmkg-restapi.vercel.app/v1/earthquake/latest
# Weather forecast for Pejaten Barat, Pasar Minggu, Jakarta Selatan
curl https://bmkg-restapi.vercel.app/v1/weather/31.74.04.1006
# Current weather
curl https://bmkg-restapi.vercel.app/v1/weather/31.74.04.1006/current
# Active weather warnings
curl https://bmkg-restapi.vercel.app/v1/nowcast
# Search regions
curl https://bmkg-restapi.vercel.app/v1/wilayah/search?q=tebet#### 🌍 Earthquake
| Endpoint | Description |
|---|---|
GET /v1/earthquake/latest | Latest earthquake |
GET /v1/earthquake/recent | Recent earthquakes (M 5.0+) |
GET /v1/earthquake/felt | Felt earthquakes |
GET /v1/earthquake/nearby?lat=&lon=&radius_km= | Nearby earthquakes |
#### 🌤️ Weather
| Endpoint | Description |
|---|---|
GET /v1/weather/{adm4_code} | 3-day forecast for a kelurahan/desa |
GET /v1/weather/{adm4_code}/current | Current weather for a kelurahan/desa |
#### ⚠️ Nowcast (Weather Warnings)
| Endpoint | Description |
|---|---|
GET /v1/nowcast | Active weather warnings by province |
GET /v1/nowcast/{alert_code} | Warning detail with affected area polygons |
GET /v1/nowcast/check?location= | Check warnings for a specific location |
#### 📍 Wilayah (Region)
| Endpoint | Description |
|---|---|
GET /v1/wilayah/provinces | List provinces |
GET /v1/wilayah/districts?province_code= | List districts |
GET /v1/wilayah/subdistricts?district_code= | List subdistricts |
GET /v1/wilayah/villages?subdistrict_code= | List villages |
GET /v1/wilayah/search?q={query} | Search regions |
Full documentation: https://bmkg-restapi.vercel.app/docs
Use BMKG data directly in Claude Desktop, Cursor, VS Code, Windsurf, Zed, and other MCP-compatible AI assistants.
#### Deployment Options
We support two deployment modes:
🔌 Option A: HTTP Transport (No Installation Required)
💻 Option B: Stdio Transport (Local Install)
#### Option A: HTTP Transport (Recommended for Web)
Smithery (smithery.ai) - Easiest:
Manual HTTP Configuration:
For MCP clients that support Streamable HTTP transport:
Claude Code:
claude mcp add --transport http bmkg-api https://mcp-bmkg.dhanypedia.it.com/mcpClaude Desktop (Settings → MCP):
{
"mcpServers": {
"bmkg-api": {
"url": "https://mcp-bmkg.dhanypedia.it.com/mcp"
}
}
}Cursor (Settings → MCP Servers):
bmkg-apihttphttps://mcp-bmkg.dhanypedia.it.com/mcpVS Code (Cline/Roo Code):
{
"mcpServers": {
"bmkg-api": {
"url": "https://mcp-bmkg.dhanypedia.it.com/mcp",
"disabled": false,
"autoApprove": []
}
}
}Windsurf:
https://mcp-bmkg.dhanypedia.it.com/mcp#### Option B: Stdio Transport (Local Installation)
# Via pipx (recommended)
pipx install bmkg-api-mcp
# Via pip
pip install bmkg-api-mcpClaude Desktop:
# Edit config file
nano ~/Library/Application\ Support/Claude/claude_desktop_config.jsonAdd this to your config:
{
"mcpServers": {
"bmkg-api": {
"command": "bmkg-api-mcp"
}
}
}Cursor:
bmkg-api, Type: command, Command: bmkg-api-mcpVS Code (Cline/Roo Code):
{
"mcpServers": {
"bmkg-api": {
"command": "bmkg-api-mcp",
"disabled": false,
"autoApprove": []
}
}
}#### Available Tools (15)
| Category | Tools |
|---|---|
| 🌍 Earthquake | get_latest_earthquake, get_recent_earthquakes, get_felt_earthquakes, get_nearby_earthquakes |
| 🌤️ Weather | get_weather_forecast, get_current_weather |
| ⚠️ Nowcast | get_weather_warnings, check_location_warnings |
| 📍 Region | search_regions, get_provinces, get_districts, get_subdistricts, get_villages |
| 🔧 Utility | get_cache_stats, debug_ping |
#### Example Prompts
Try these natural language queries in your AI assistant:
"Gempa terbaru di Indonesia berapa magnitudenya?"
"Cuaca 3 hari ke depan di Jakarta Selatan?"
"Cari kode wilayah untuk Kelapa Gading"
"Ada peringatan cuaca ekstrem di Yogyakarta?"
"Gempa dengan magnitud di atas 5 derajat minggu ini?"
"Bandung ada gempa dekat-dekat sini?"#### Features
bmkg-api-mcp --debug for verbose logging📖 Full Setup Guide: See MCP_SETUP.md for detailed configuration for all supported IDEs.
#### Option 1: Docker (Recommended)
# Pull from GitHub Container Registry
docker pull ghcr.io/dhanyyudi/bmkg-api:latest
# Or build and run with Docker Compose
git clone https://github.com/dhanyyudi/bmkg-api.git
cd bmkg-api
docker-compose up -d#### Option 2: Local Development
git clone https://github.com/dhanyyudi/bmkg-api.git
cd bmkg-api
make setup
source venv/bin/activate
make dev # starts server on http://localhost:8099#### Option 3: Vercel (Serverless)
Deploy to Vercel with one click — the api/index.py and vercel.json are pre-configured.
See Self-Hosting Guide for detailed instructions.
Available on the landing page for: cURL, JavaScript, Python, Go, PHP, Ruby, and Dart (Flutter).
<a name="bahasa-indonesia"></a>
API REST gratis untuk prakiraan cuaca, data gempa bumi, peringatan cuaca, dan pencarian wilayah Indonesia dari BMKG.
🌐 Demo: https://bmkg-restapi.vercel.app
Ini adalah instance demo/publik dengan batasan rate limit (30 request/menit).
Untuk penggunaan produksi dengan request tanpa batas, silakan [self-host](#self-hosting-1).
/docsX-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset di setiap response# Gempa terbaru
curl https://bmkg-restapi.vercel.app/v1/earthquake/latest
# Prakiraan cuaca Pejaten Barat, Pasar Minggu, Jakarta Selatan
curl https://bmkg-restapi.vercel.app/v1/weather/31.74.04.1006
# Cuaca saat ini
curl https://bmkg-restapi.vercel.app/v1/weather/31.74.04.1006/current
# Peringatan cuaca aktif
curl https://bmkg-restapi.vercel.app/v1/nowcast
# Cari wilayah
curl https://bmkg-restapi.vercel.app/v1/wilayah/search?q=wiradesa#### 🌍 Gempa Bumi
| Endpoint | Deskripsi |
|---|---|
GET /v1/earthquake/latest | Gempa terbaru |
GET /v1/earthquake/recent | Gempa terkini (M 5.0+) |
GET /v1/earthquake/felt | Gempa dirasakan |
GET /v1/earthquake/nearby?lat=&lon=&radius_km= | Gempa terdekat |
#### 🌤️ Cuaca
| Endpoint | Deskripsi |
|---|---|
GET /v1/weather/{adm4_code} | Prakiraan 3 hari |
GET /v1/weather/{adm4_code}/current | Cuaca saat ini |
#### ⚠️ Nowcast (Peringatan Cuaca)
| Endpoint | Deskripsi |
|---|---|
GET /v1/nowcast | Peringatan cuaca aktif per provinsi |
GET /v1/nowcast/{alert_code} | Detail peringatan dengan poligon area |
GET /v1/nowcast/check?location= | Cek peringatan untuk lokasi tertentu |
#### 📍 Wilayah
| Endpoint | Deskripsi |
|---|---|
GET /v1/wilayah/provinces | Daftar provinsi |
GET /v1/wilayah/districts?province_code= | Daftar kabupaten/kota |
GET /v1/wilayah/subdistricts?district_code= | Daftar kecamatan |
GET /v1/wilayah/villages?subdistrict_code= | Daftar desa/kelurahan |
GET /v1/wilayah/search?q={query} | Cari wilayah |
Dokumentasi lengkap: https://bmkg-restapi.vercel.app/docs
Gunakan data BMKG langsung di Claude Desktop, Cursor, VS Code, Windsurf, Zed, dan AI assistants lain yang kompatibel dengan MCP.
#### Instalasi
# Via pipx (direkomendasikan)
pipx install bmkg-api-mcp
# Via pip
pip install bmkg-api-mcp#### Setup Cepat
Claude Desktop:
# Edit file config
nano ~/Library/Application\ Support/Claude/claude_desktop_config.jsonTambahkan ke config:
{
"mcpServers": {
"bmkg-api": {
"command": "bmkg-api-mcp"
}
}
}Cursor:
bmkg-api, Type: command, Command: bmkg-api-mcpVS Code (Cline/Roo Code):
{
"mcpServers": {
"bmkg-api": {
"command": "bmkg-api-mcp",
"disabled": false,
"autoApprove": []
}
}
}#### Tools Tersedia (15)
| Kategori | Tools |
|---|---|
| 🌍 Gempa | get_latest_earthquake, get_recent_earthquakes, get_felt_earthquakes, get_nearby_earthquakes |
| 🌤️ Cuaca | get_weather_forecast, get_current_weather |
| ⚠️ Nowcast | get_weather_warnings, check_location_warnings |
| 📍 Wilayah | search_regions, get_provinces, get_districts, get_subdistricts, get_villages |
| 🔧 Utility | get_cache_stats, debug_ping |
#### Contoh Prompt
Coba query bahasa alami ini di AI assistant Anda:
"Gempa terbaru di Indonesia berapa magnitudenya?"
"Cuaca 3 hari ke depan di Jakarta Selatan?"
"Cari kode wilayah untuk Kelapa Gading"
"Ada peringatan cuaca ekstrem di Yogyakarta?"
"Gempa dengan magnitud di atas 5 derajat minggu ini?"
"Bandung ada gempa dekat-dekat sini?"#### Fitur
bmkg-api-mcp --debug untuk logging detail📖 Panduan Lengkap: Lihat MCP_SETUP.md untuk konfigurasi detail semua IDE yang didukung.
#### Opsi 1: Docker (Direkomendasikan)
# Pull dari GitHub Container Registry
docker pull ghcr.io/dhanyyudi/bmkg-api:latest
# Atau build dan jalankan dengan Docker Compose
git clone https://github.com/dhanyyudi/bmkg-api.git
cd bmkg-api
docker-compose up -d#### Opsi 2: Lokal
git clone https://github.com/dhanyyudi/bmkg-api.git
cd bmkg-api
make setup
source venv/bin/activate
make dev # jalankan server di http://localhost:8099#### Opsi 3: Vercel (Serverless)
Deploy ke Vercel — api/index.py dan vercel.json sudah dikonfigurasi.
Lihat Panduan Self-Hosting untuk detail.
Tersedia di halaman utama untuk: cURL, JavaScript, Python, Go, PHP, Ruby, dan Dart (Flutter).
All data is sourced from BMKG (Badan Meteorologi, Klimatologi, dan Geofisika).
This API is not affiliated with BMKG. All data belongs to BMKG.
MIT License — see LICENSE
Built with ❤️ by [dhanypedia](https://github.com/dhanyyudi)
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.