satudata-ngawi
# MCP Satu Data Ngawi
MCP (Model Context Protocol) Server untuk mengakses data dari Portal Satu Data Kabupaten Ngawi.
## š Portal Sumber Data
- **Website**: https://satudata.ngawikab.go.id
- **API Base**: https://apidata.kabngawi.id/api/guest
## š¦ Instalasi
### 1. Clone/Download Repository
```bash
git clone <repository-url>
cd mcp-satudata-ngawi
```
### 2. Install Dependencies
```bash
npm install
```
### 3. Build Project
```bash
npm run build
```
## š§ Konfigurasi untuk Claude Desktop
Tambahkan konfigurasi berikut ke file `claude_desktop_config.json`:
### Windows
Lokasi: `%APPDATA%\Claude\claude_desktop_config.json`
### macOS
Lokasi: `~/Library/Application Support/Claude/claude_desktop_config.json`
### Linux
Lokasi: `~/.config/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"satudata-ngawi": {
"command": "node",
"args": ["/path/to/mcp-satudata-ngawi/dist/index.js"]
}
}
}
```
Atau jika menggunakan `npx`:
```json
{
"mcpServers": {
"satudata-ngawi": {
"command": "npx",
"args": ["-y", "/path/to/mcp-satudata-ngawi"]
}
}
}
```
## š ļø Tools yang Tersedia
### 1. `get_kategori_sektoral`
Mendapatkan daftar kategori sektoral/sektor data.
**Parameters:**
- `page` (number, optional): Nomor halaman (default: 1)
- `per_page` (number, optional): Jumlah data per halaman (default: 100)
**Contoh Penggunaan:**
```
Tampilkan semua kategori data di Satu Data Ngawi
```
### 2. `get_organisasi`
Mendapatkan daftar organisasi/OPD (Organisasi Perangkat Daerah).
**Parameters:**
- `page` (number, optional): Nomor halaman
- `per_page` (number, optional): Jumlah data per halaman
- `q` (string, optional): Kata kunci pencarian
**Contoh Penggunaan:**
```
Cari organisasi dengan nama "Dinas Kesehatan" di Ngawi
```
### 3. `get_data_sektoral`
Mendapatkan daftar data sektoral/dataset.
**Parameters:**
- `page` (number, optional): Nomor halaman
- `per_page` (number, optional): Jumlah data per halaman
- `q` (string, optional): Kata kunci pencarian
- `kategori_id` (number, optional): Filter berdasarkan ID kategori
- `organisasi_id` (number, optional): Filter berdasarkan ID organisasi
**Contoh Penggunaan:**
```
Tampilkan data sektoral tentang pertanian di Ngawi
```
### 4. `get_detail_data`
Mendapatkan detail lengkap dari sebuah data sektoral.
**Parameters:**
- `id` (number, required): ID data sektoral
**Contoh Penggunaan:**
```
Lihat detail data dengan ID 123
```
### 5. `search_data`
Mencari data berdasarkan kata kunci.
**Parameters:**
- `keyword` (string, required): Kata kunci pencarian
- `limit` (number, optional): Jumlah hasil maksimal (default: 10)
**Contoh Penggunaan:**
```
Cari data tentang "kemiskinan" di Satu Data Ngawi
```
### 6. `get_statistics`
Mendapatkan ringkasan statistik portal.
**Parameters:** Tidak ada
**Contoh Penggunaan:**
```
Berapa total dataset yang ada di Satu Data Ngawi?
```
## š Resources
### `satudata://kategori`
Daftar lengkap kategori sektoral dalam format JSON.
## š Contoh Percakapan dengan Claude
```
User: Apa saja kategori data yang tersedia di Satu Data Ngawi?
Claude: [Menggunakan get_kategori_sektoral]
Berikut kategori data yang tersedia:
1. Pertanian
2. Peternakan
3. Pendidikan
4. Kesehatan
... dst
User: Cari data tentang kesehatan
Claude: [Menggunakan search_data dengan keyword "kesehatan"]
Ditemukan beberapa dataset tentang kesehatan:
1. Jumlah Puskesmas per Kecamatan
2. Data Imunisasi Anak
... dst
User: Lihat detail data nomor 1
Claude: [Menggunakan get_detail_data dengan ID yang sesuai]
Detail Data:
- Judul: Jumlah Puskesmas per Kecamatan
- Tahun: 2023
- Sumber: Dinas Kesehatan
... dst
```
## šļø Struktur Project
```
mcp-satudata-ngawi/
āāā src/
ā āāā index.ts # Source code utama
āāā dist/
ā āāā index.js # Compiled JavaScript
āāā package.json
āāā tsconfig.json
āāā README.md
```
## š API Endpoints yang Digunakan
| Endpoint | Deskripsi |
|----------|-----------|
| `/kategori-sektoral` | Daftar kategori/sektor data |
| `/organisasi` | Daftar OPD/instansi |
| `/data-sektoral` | Daftar dataset |
| `/data-sektoral/{id}` | Detail dataset |
## š¤ Kontribusi
Silakan buat issue atau pull request jika menemukan bug atau ingin menambahkan fitur.
## š Lisensi
MIT License
## š Credits
- Portal Satu Data Kabupaten Ngawi
- Anthropic MCP SDK
TDQS
Scored across 6 tools
Each tool targets a distinct aspect of the portal: categories, organizations, datasets, dataset details, search, and statistics. The descriptions clearly differentiate them even where overlap might occur (e.g., search vs. filtered list).
All tools follow a consistent verb_noun pattern. Most use 'get_', and 'search_data' fits the same style. No mixed conventions or vague names.
Six tools is well-scoped for a read-only open data portal. Each tool serves a clear purpose without redundancy or bloat, making the set easy to navigate.
The tool set covers all core read operations for the domain: browsing by category/organization, listing datasets, fetching full detail, searching, and portal statistics. No obvious gaps for a public data portal API.