Skip to main content
Glama
Rashqueee

HRD-PIS MCP Server

by Rashqueee
README.md
# HRD-PIS MCP Server

## 📋 Prasyarat Sistem

Sebelum memulai, pastikan sistem Anda sudah terinstal:

1. **Node.js** (Minimal versi 18)
2. **Git** (Untuk *cloning* repositori)
3. Aplikasi terminal (Command Prompt/PowerShell untuk Windows, atau Terminal bawaan untuk Mac/Linux).
4. **Claude Desktop** (Jika ingin menjalankan tahap integrasi AI).


## 🚀 Langkah 1: Instalasi Proyek

1. Buka terminal Anda dan *clone* repositori ini ke komputer lokal:
   ```bash
   git clone https://github.com/Rashqueee/hrd-pis-mcp.git
   ```

2. Masuk ke dalam direktori proyek:
   ```bash
   cd hrd-pis-mcp
   ```

3. Instal seluruh dependensi yang dibutuhkan (termasuk MCP SDK dan TypeScript):
   ```bash
   npm install
   ```


## 🔑 Langkah 2: Mendapatkan Token Autentikasi API

Server ini membutuhkan **Bearer Token** untuk dapat berkomunikasi dengan *backend* HRD-PIS. Token ini diambil melalui proses otentikasi *Basic* (Base64). Ikuti langkah ini dengan teliti:

**A. Ubah Kredensial ke Base64**
Ubah format `username:password` Anda menjadi format Base64 menggunakan terminal:
* **Pengguna Mac/Linux:**
  ```bash
  echo -n "username_anda:password_anda" | base64
   ```
* **Pengguna Windows (PowerShell):**
   ```powershell
   [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("username_anda:password_anda"))
   ```
*(Catat teks acak hasil perintah di atas, misalnya: `YnVkaXNhbnRvc28...`)*

**B. Tembak API Login**
Jalankan perintah `curl` berikut di terminal untuk melakukan *login*. Pastikan flag `-D -` disertakan agar terminal menampilkan **Response Header**:
```bash
curl -s -D - -X POST \
  https://api-profile-plus.pisdev.my.id/auth/login \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Basic <MASUKKAN_HASIL_BASE64_DI_SINI>"
```

**C. Ambil Token**
Lihat hasil keluaran di terminal. Abaikan pesan *success* di bagian bawah, dan **cari baris ini di bagian atas (Header):**
`authorization: Bearer xxxxx...`
Salin teks tersebut. Ini adalah `HRD_API_TOKEN` Anda.


## 🏗️ Langkah 3: Build Proyek

Karena proyek ini ditulis dengan TypeScript, Anda harus melakukan kompilasi (*build*) menjadi JavaScript sebelum bisa dijalankan.

Jalankan perintah berikut di terminal (berada di dalam folder `hrd-pis-mcp`):

```bash
npm run build
```

*Catatan: Perintah ini akan otomatis menghapus sisa kompilasi lama dan membuat folder `build/` baru yang siap pakai.*


## 🛠️ Langkah 4: Pengujian Lokal (MCP Inspector)

Sebelum dipasang ke Claude Desktop, uji coba *tools* Anda menggunakan MCP Inspector (antarmuka web resmi dari Anthropic).

Jalankan perintah di bawah ini dengan mengganti `<TOKEN_ANDA>` menggunakan token dari Langkah 2:

**Untuk Pengguna Mac/Linux (Bash/Zsh):**

```bash
HRD_BASE_URL="https://api-profile-plus.pisdev.my.id" HRD_API_TOKEN="<TOKEN_ANDA>" npx @modelcontextprotocol/inspector node build/index.js
```

**Untuk Pengguna Windows (PowerShell):**

```powershell
$env:HRD_BASE_URL="https://api-profile-plus.pisdev.my.id"; $env:HRD_API_TOKEN="<TOKEN_ANDA>"; npx @modelcontextprotocol/inspector node build/index.js
```

Setelah perintah berjalan, terminal akan menampilkan tautan (misal: `http://localhost:5173`). Buka tautan tersebut di *browser* Anda untuk melakukan *testing* pada 16 *tools* yang tersedia secara manual.

*(Tekan `Ctrl + C` di terminal untuk mematikan Inspector jika sudah selesai).*


## 🤖 Langkah 5: Pemasangan Permanen di Claude Desktop

Jika pengujian lokal berhasil, pasangkan server ini ke Claude Desktop agar AI bisa menggunakannya secara otonom.

1. **Cari Absolute Path Proyek Anda:**
   Dapatkan alamat direktori lengkap menuju *file* `index.js` hasil *build* Anda.
   * *Contoh Mac:* `/Users/namauser/projects/hrd-pis-mcp/build/index.js`
   * *Contoh Win:* `C:\Users\namauser\projects\hrd-pis-mcp\build\index.js`


2. **Buka File Konfigurasi Claude:**
   * **macOS:** Buka terminal dan jalankan `open ~/Library/Application\ Support/Claude/claude_desktop_config.json`
   * **Windows:** Buka File Explorer dan tuju ke `%APPDATA%\Claude\claude_desktop_config.json`


3. **Masukkan Konfigurasi:**
   Isi *file* JSON tersebut dengan format berikut:
   ```json
   {
     "mcpServers": {
       "hrd-pis": {
         "command": "node",
         "args": [
           "<MASUKKAN_PATH_ABSOLUT_ANDA_DI_SINI>"
         ],
         "env": {
           "HRD_BASE_URL": "https://api-profile-plus.pisdev.my.id",
           "HRD_API_TOKEN": "<MASUKKAN_TOKEN_ANDA_DI_SINI>"
         }
       }
     }
   }
   ```

   ⚠️ **Penting untuk Windows:** Anda **wajib** mengubah garis miring terbalik tunggal (`\`) pada *path* menjadi ganda (`\\`). Contoh: `"C:\\Users\\nama\\projects\\hrd-pis-mcp\\build\\index.js"`.

4. **Restart Claude Desktop:**
   Tutup aplikasi Claude Desktop sepenuhnya (Quit), lalu buka kembali. 

Buka obrolan baru, klik ikon **Tools** (palu) di kolom obrolan, dan Anda sudah bisa mulai memberikan perintah terkait HRD-PIS kepada Claude!

TDQS

B3.2/5.0

Scored across 16 tools

Disambiguation4/5

Tools are clearly differentiated, with attendance-related tools separated by aspect (history, detail, performance, today's status). However, the four attendance tools might cause some ambiguity if descriptions are not carefully read.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern, with 'get_' for reads and 'create_', 'update_', 'delete_', 'cancel_' for writes. Naming is predictable and easy to understand.

Tool Count5/5

16 tools cover the main HR domains (attendance, leave, announcements, todos) without being too many or too few. Each tool serves a clear purpose within the scope.

Completeness3/5

The tool set covers retrieval well but lacks write operations for attendance (e.g., check-in/out) and has no update for submissions (only create and cancel). This leaves notable gaps for common HR workflows.

Maintenance

ActivityStale
ResponsivenessNo issues