mcp-karyawan
by michaeltio
README.md
# Karyawan MCP Demo
Server [Model Context Protocol (MCP)](https://modelcontextprotocol.io) sederhana untuk demo — menyediakan operasi CRUD (Create, Read, Update, Delete) data karyawan yang bisa dipanggil langsung oleh Claude (Claude Code maupun Claude Desktop) sebagai *tools*.
Data disimpan **in-memory** (array JavaScript), jadi hanya untuk keperluan belajar/demo — data akan hilang setiap kali server di-restart.
## Fungsinya apa?
Server ini mengekspos 5 tools MCP yang bisa dipanggil Claude untuk mengelola data karyawan tanpa perlu database:
| Tool | Deskripsi | Input |
|---|---|---|
| `list_karyawan` | Ambil semua data karyawan | - |
| `get_karyawan` | Ambil satu karyawan berdasarkan `id` | `id` (number) |
| `create_karyawan` | Tambah karyawan baru | `nama`, `posisi`, `divisi`, `gaji` |
| `update_karyawan` | Ubah data karyawan (field yang tidak diisi tidak berubah) | `id`, `nama?`, `posisi?`, `divisi?`, `gaji?` |
| `delete_karyawan` | Hapus karyawan berdasarkan `id` | `id` (number) |
Setiap karyawan punya field: `id` (number, auto-increment), `nama`, `posisi`, `divisi`, `gaji`.
## File utama
- `src/index.ts` — satu-satunya file source. Berisi definisi data karyawan (seed data) dan registrasi 5 tools MCP di atas, lalu menjalankan server lewat stdio transport.
- `package.json` — dependency utama: [`@modelcontextprotocol/server`](https://www.npmjs.com/package/@modelcontextprotocol/server) dan `zod` (untuk validasi input tool).
## Instalasi
### Requirement
- [Node.js](https://nodejs.org) versi 20+ (disarankan v22/v24 karena bisa langsung menjalankan file `.ts` tanpa build/transpile terpisah).
### 1. Clone repo
```bash
git clone <url-repo-ini>
cd mcp-demo
```
### 2. Install dependency
```bash
npm install
```
### 3. Coba jalankan manual (opsional, untuk memastikan server jalan)
```bash
node src/index.ts
```
Jika muncul log `weather MCP server running on stdio` di terminal, server sudah berjalan dan menunggu koneksi lewat stdio. Tekan `Ctrl+C` untuk berhenti.
## Menghubungkan ke Claude Code
Jalankan perintah berikut dari root project ini (ganti path sesuai lokasi clone di komputer kamu):
```bash
claude mcp add karyawan-mcp-demo -- node ./src/index.ts
```
Cek apakah server sudah terdaftar:
```bash
claude mcp list
```
Setelah itu, tools `list_karyawan`, `get_karyawan`, `create_karyawan`, `update_karyawan`, dan `delete_karyawan` bisa langsung dipanggil Claude Code di sesi chat kamu.
## Menghubungkan ke Claude Desktop
1. Buka file konfigurasi MCP milik Claude Desktop (buat file/folder-nya kalau belum ada):
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
2. Tambahkan entry berikut ke bagian `mcpServers` (sesuaikan path `src/index.ts` dengan lokasi clone repo di komputermu):
```json
{
"mcpServers": {
"karyawan-mcp-demo": {
"command": "node",
"args": ["/path/ke/mcp-demo/src/index.ts"]
}
}
}
```
3. Simpan file, lalu **restart Claude Desktop** sepenuhnya (keluar dari aplikasi, buka lagi).
4. Buka chat baru, cek ikon "tools"/MCP di Claude Desktop — server `karyawan-mcp-demo` beserta 5 tools-nya seharusnya sudah muncul dan siap dipakai.
## Contoh pemakaian
Setelah terhubung, tinggal minta ke Claude, misalnya:
- "Tampilkan semua karyawan"
- "Tambah karyawan baru bernama Sarah Mitchell, posisi Backend Engineer, divisi Engineering, gaji 15000000"
- "Update gaji karyawan dengan id `...` jadi 16000000"
- "Hapus karyawan dengan id `...`"
Claude akan otomatis memanggil tool MCP yang sesuai.
TDQS
A3.7/5.0
Scored across 5 tools
Disambiguation5/5
Each tool targets a distinct CRUD operation on the same 'karyawan' resource, with no overlap. The actions (list, get, update, delete, create) are clearly differentiated.
Naming Consistency5/5
All tools follow a consistent verb_noun pattern in snake_case (e.g., list_karyawan, create_karyawan), with no deviations or mixed conventions.
Tool Count5/5
5 tools provide a complete CRUD surface for a single resource, which is an appropriate and well-scoped set for a simple employee data management server.
Completeness5/5
The tool set covers all basic CRUD operations: create, read (both list and get), update, and delete. No obvious gaps for the stated purpose of managing karyawan data.
Maintenance
ActivityStale
ResponsivenessNo issues