Skip to main content
Glama
adityafba

satudata-ngawi

by adityafba
README.md
# 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

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

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).

Naming Consistency5/5

All tools follow a consistent verb_noun pattern. Most use 'get_', and 'search_data' fits the same style. No mixed conventions or vague names.

Tool Count5/5

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.

Completeness5/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues