Skip to main content
Glama

mcp-gempa-bmkg

Contoh MCP server sederhana dengan Python. Server ini mengambil info gempa dari data terbuka BMKG, lalu bisa dipakai di Claude Desktop dan Antigravity.

Repo ini pendamping video "Bikin MCP Server Sendiri dari Nol" di kanal Tips Unix.

⚠️ Hanya untuk belajar, bukan sistem peringatan dini resmi. Untuk info gempa dan tsunami resmi, pakai kanal resmi BMKG, misalnya aplikasi InfoBMKG atau https://www.bmkg.go.id.

Isi server

Jenis

Nama

Fungsi

Tool

gempa_terkini

Gempa terbaru (satu kejadian), lengkap dengan keterangan potensi tsunami dari BMKG

Tool

gempa_dirasakan

Daftar gempa yang dirasakan warga (maks. 15 terbaru), bisa difilter min_magnitudo

Resource

gempa://sumber

Keterangan sumber data

Prompt

ringkas_untuk_keluarga

Template ringkasan gempa yang tenang untuk grup keluarga

Semuanya ada di satu file, server.py, dan memakai SDK resmi mcp versi 2 (MCPServer).

Related MCP server: TMD Earthquake MCP Server

Syarat

  • Python 3.11 atau lebih baru

  • uv

  • Node.js, hanya untuk MCP Inspector (mcp dev)

Install

git clone https://github.com/<akun-kamu>/mcp-gempa-bmkg.git
cd mcp-gempa-bmkg
uv sync

Kalau mau membangun dari nol seperti di video:

uv init mcp-gempa-bmkg
cd mcp-gempa-bmkg
uv add "mcp[cli]" httpx

Lalu buat server.py. httpx harus ditambahkan sendiri karena tidak ikut terpasang bersama mcp versi 2.

Catatan: uv init versi baru juga membuat folder src/. Folder itu tidak dipakai di proyek ini dan boleh dihapus.

Uji dengan MCP Inspector

uv run mcp dev server.py

Inspector terbuka di browser. Klik Connect, lalu coba tab Tools, Resources, dan Prompts.

Sambungkan ke aplikasi AI

Ketiga aplikasi memakai entri yang sama. Ganti /PATH/LENGKAP/mcp-gempa-bmkg dengan path lengkap folder proyek. Di Windows, tulis path dengan \\, misalnya C:\\Users\\kamu\\mcp-gempa-bmkg.

{
  "mcpServers": {
    "gempa-bmkg": {
      "command": "uv",
      "args": ["--directory", "/PATH/LENGKAP/mcp-gempa-bmkg", "run", "server.py"]
    }
  }
}

Claude Desktop

Buka Settings → Developer → Edit Config. File config ada di:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Tambahkan entri di atas, simpan, lalu keluar penuh dari Claude Desktop dan buka lagi.

Antigravity CLI (agy) dan aplikasi Antigravity

Keduanya memakai file config global yang sama: ~/.gemini/config/mcp_config.json.

  • Dari aplikasi Antigravity: menu … di panel agent → MCP Servers → Manage MCP Servers → View raw config.

  • Dari Antigravity CLI: edit file di atas, jalankan ulang agy, lalu ketik /mcp untuk melihat status server.

Gemini CLI

Gemini CLI tidak lagi melayani akun Google gratis sejak 18 Juni 2026 (penggantinya Antigravity CLI). Kalau kamu masih memakainya dengan API key atau lisensi enterprise, tambahkan entri yang sama di ~/.gemini/settings.json.

3 kesalahan paling umum

  1. Memakai print(). Lewat stdio, stdout khusus untuk pesan JSON-RPC, jadi print() biasa bisa memutus koneksi. Pakai logging, yang menulis ke stderr, atau print(..., file=sys.stderr).

  2. Path relatif di config. Aplikasi AI tidak tahu folder proyekmu. Tulis path lengkap ke folder proyek. Kalau uv tidak ditemukan, tulis juga path lengkap ke uv (cek dengan which uv di macOS/Linux atau where uv di Windows).

  3. Lupa restart. Setelah config diubah, keluar penuh dari aplikasinya (bukan sekadar menutup jendela), lalu buka lagi.

Sumber data

Data gempa: BMKG (Badan Meteorologi, Klimatologi, dan Geofisika), https://data.bmkg.go.id. Sesuai ketentuan BMKG, cantumkan BMKG sebagai sumber data dan tampilkan di aplikasi atau sistemmu.

Lisensi

MIT "# MCP-SERVER"

Available Tools

2 tools
gempa_dirasakanB

Daftar gempa yang dirasakan warga (maks. 15 terbaru), bisa difilter magnitudo minimum.

Inputs: min_magnitudo. Returns: result

gempa_terkiniB

Gempa terbaru (satu kejadian) di Indonesia, dari data BMKG.

Inputs: no named parameters. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 2 tools

    Disambiguation4/5

    The two tools have mostly distinct purposes: one returns the single latest earthquake event, while the other returns a list of felt earthquakes with an optional magnitude filter. There is some conceptual overlap because both expose recent earthquake data, but the descriptions make the boundary reasonably clear.

    Naming Consistency5/5

    Both names follow a consistent Indonesian snake_case pattern using the common prefix gempa_ followed by a descriptive qualifier. The convention is predictable and readable.

    Tool Count3/5

    Two tools is thin for an earthquake information server; it covers only the latest event and a short felt-earthquake list. While each tool earns its place, the surface feels under-scoped rather than comfortably complete.

    Completeness3/5

    The server covers two common recent-earthquake use cases but lacks obvious operations such as fetching earthquake details by event ID, searching historical events, filtering by region/date, or accessing tsunami-related information. These are notable gaps for an agent needing broader BMKG earthquake data.

    Related MCP Connectors

    Related MCP Servers