Skip to main content
Glama
mirzaakhena

Faraidh MCP Server

by mirzaakhena
README.md
# Faraidh MCP Server

MCP (Model Context Protocol) Server untuk perhitungan Faraidh (Hukum Waris Islam) menggunakan library KalkulatorFaraidh.

## Faraidh Schema Flowchart

Implementasi ini mengikuti skema flowchart faraidh yang komprehensif:

![Faraidh Schema](https://raw.githubusercontent.com/alamrumambi/Faraidh-API/main/faraidh_schema.png)

*Sumber: [Faraidh-API](https://github.com/alamrumambi/Faraidh-API) oleh alamrumambi*

Flowchart di atas menunjukkan alur logika perhitungan faraidh yang mencakup semua skenario dan kasus khusus dalam hukum waris Islam.

## Fitur

### 🏛️ **Perhitungan Faraidh Lengkap**
- Perhitungan bagian faraidh (dhawi al-furud)  
- Perhitungan bagian asabah (residual heirs)
- Penanganan kasus Aul dan Radd
- Validasi sesuai hukum Islam

### 📊 **Tools Available**
1. **tambah-kasus** - Menambahkan kasus faraidh baru
2. **hitung-warisan** - Menghitung pembagian warisan untuk kasus tersimpan
3. **buat-laporan** - Membuat laporan detail pembagian warisan
4. **hitung-langsung** - Perhitungan langsung tanpa menyimpan kasus
5. **laporan-langsung** - Laporan langsung tanpa menyimpan kasus
6. **daftar-kasus** - Melihat daftar semua kasus tersimpan
7. **lihat-kasus** - Melihat detail kasus berdasarkan ID
8. **hapus-kasus** - Menghapus kasus berdasarkan ID
9. **update-kasus** - Mengupdate data kasus yang sudah ada
10. **template-kasus** - Menggunakan template kasus yang disediakan
11. **validasi-data** - Memvalidasi data harta dan ahli waris

### 👥 **Ahli Waris yang Didukung**
- **Pasangan**: Suami, Istri
- **Keturunan**: Anak laki-laki, Anak perempuan, Cucu
- **Orang Tua**: Ayah, Ibu, Kakek, Nenek
- **Saudara**: Kandung, Se-ayah, Se-ibu
- **Kerabat Jauh**: Paman, Keponakan, dll.

### 📋 **Template Kasus**
- `keluargaSederhana` - Kasus keluarga dengan pasangan dan anak
- `hanyaAnakPerempuan` - Kasus hanya dengan anak perempuan
- `tanpaKeturunan` - Kasus tanpa keturunan

## Installation

1. Clone atau copy project ini
2. Install dependencies:
```bash
npm install
```

3. Build project:
```bash
npm run build
```

4. Jalankan server:
```bash
npm start
```

## Development

Untuk development mode:
```bash
npm run dev
```

## Mengintegrasikan dengan MCP config

```json
{
  "mcpServers": {
    "faraidh-mcp": {
      "command": "node",
      "args": [
        "/path/to/faraidh-mcp/dist/index.js"
      ] 
    }
  }
}
```

## Contoh Penggunaan

### 1. Menggunakan Template
```json
{
  "template": "keluargaSederhana"
}
```

### 2. Tambah Kasus Manual
```json
{
  "nama": "Kasus Keluarga Pak Ahmad",
  "deskripsi": "Pak Ahmad meninggal meninggalkan istri dan 2 anak",
  "harta": {
    "totalHarta": 1000000000,
    "hutang": 50000000,
    "biayaPemakaman": 10000000,
    "wasiat": 100000000
  },
  "ahliWaris": {
    "istri": 1,
    "anakLaki": 1,
    "anakPerempuan": 1,
    "ayah": 1,
    "ibu": 1
  }
}
```

### 3. Hitung Langsung
```json
{
  "harta": {
    "totalHarta": 800000000,
    "hutang": 30000000,
    "wasiat": 100000000
  },
  "ahliWaris": {
    "suami": 1,
    "anakPerempuan": 2,
    "ibu": 1
  }
}
```

## Validasi Data

Server akan memvalidasi:
- Total harta harus > 0
- Wasiat tidak boleh > 1/3 total harta  
- Tidak boleh ada suami dan istri bersamaan
- Suami maksimal 1 orang
- Harus ada minimal 1 ahli waris

## Error Handling

Server menggunakan Zod schema untuk validasi input dan memberikan pesan error yang jelas dalam bahasa Indonesia.

## Troubleshooting

- Pastikan file `faraidh-id.js` berada di root folder project
- Jalankan `npm run build` sebelum `npm start`
- Periksa log error untuk debugging

## Lisensi

ISC License

## Kontributor

Dibuat berdasarkan library KalkulatorFaraidh dengan mengikuti skema flowchart perhitungan faraidh yang komprehensif.