MCP server
10 tool, transport stdio dan HTTP, config untuk Claude dan Cursor.
Apa ini
Server MCP Dampingin (dampingin v0.1.0) membungkus REST API menjadi 10 tool. Setiap tool memanggil endpoint /v1 dengan API key kamu, jadi scope, batas budget, rate limit, dan persetujuan organisasi berlaku sama persis. Nama tool dan argumen memakai bahasa Indonesia.
Tools
| Tool | Endpoint | Argumen | Catatan |
|---|---|---|---|
| daftar_layanan | GET /v1/services | (tanpa argumen) | Katalog dengan harga agent, SLA, intake. Read-only |
| detail_layanan | GET /v1/services/{code} | code: string | Satu layanan dan field intake-nya. Read-only |
| buat_order | POST /v1/orders | layanan: string, intake: Record<string, string>, max_budget?: int > 0, callback_url?: url, idempotency_key?: string | Buat order Instant Matter dari deposit |
| status_order | GET /v1/orders/{id} | order_id: string | Status, pesan praktisi, hasil. Read-only |
| kirim_pesan | POST /v1/orders/{id}/messages | order_id: string, pesan: string (min 1) | Balas permintaan data praktisi |
| terima_hasil | POST /v1/orders/{id}/accept | order_id: string | Terima hasil, escrow dilepas |
| ajukan_kasus | POST /v1/cases | nama_kontak, email_kontak (email), cerita (min 30), telepon_kontak?, bidang?, urgensi?, budget? | Kasus custom ke papan kasus |
| status_kasus | GET /v1/cases/{id} | case_id: string | Status kasus dan penawaran. Read-only |
| pilih_penawaran | POST /v1/cases/{id}/select | case_id: string, bid_id: string | Pilih penawaran, invoice dibuat |
| saldo | GET /v1/balance | (tanpa argumen) | Deposit dan batas budget key. Read-only |
buat_order meneruskan layanan sebagai service dan idempotency_key sebagai header Idempotency-Key.ajukan_kasus memetakan nama_kontak, email_kontak, telepon_kontak, cerita, bidang, urgensi, budget ke contact_name, contact_email, contact_phone, story, area, urgency, budget_range.
Transport HTTP (remote)
- Endpoint:
https://mcp.dampingin.dev.arsana.cloud/mcp. Streamable HTTP, stateless, respons JSON (tanpa sesi). - Hanya
POST /mcp. Method lain:405. Path lain:404.GET /healthmengembalikan{"ok":true}. - Wajib
Authorization: Bearer <API key>. Tanpa header:401. Key diteruskan apa adanya ke REST API, jadi key yang salah terlihat sebagai error toolHTTP 401. - Self-host:
npm -w @dampingin/mcp run start, port dariMCP_PORT(default 3300), tujuan API dariDAMPINGIN_API_URL.
claude mcp add --transport http dampingin https://mcp.dampingin.dev.arsana.cloud/mcp \
--header "Authorization: Bearer $DAMPINGIN_API_KEY"Transport stdio (lokal)
Paket @dampingin/mcp belum dipublikasikan ke npm, jadi mode stdio dijalankan dari salinan repo Dampingin (services/mcp). Variabel lingkungan:
| Variabel | Wajib | Default |
|---|---|---|
| DAMPINGIN_API_KEY | Ya | Proses keluar kalau kosong |
| DAMPINGIN_API_URL | Tidak | http://api.localhost:3100 (pengembangan lokal). Isi dengan URL API produksi |
# dari root repo Dampingin (server MCP belum dipublikasikan ke npm)
claude mcp add dampingin \
-e DAMPINGIN_API_KEY=$DAMPINGIN_API_KEY \
-e DAMPINGIN_API_URL=https://api.dampingin.dev.arsana.cloud \
-- npx tsx /path/ke/dampingin/services/mcp/src/stdio.tsConfig per klien
Claude Desktop
Tambahkan ke claude_desktop_config.json (mode stdio), lalu restart aplikasi:
{
"mcpServers": {
"dampingin": {
"command": "npx",
"args": ["tsx", "/path/ke/dampingin/services/mcp/src/stdio.ts"],
"env": {
"DAMPINGIN_API_KEY": "dk_live_xxxxxx.rahasia",
"DAMPINGIN_API_URL": "https://api.dampingin.dev.arsana.cloud"
}
}
}
}Claude Code (file proyek)
Simpan di .mcp.json di root proyek. Nilai ${DAMPINGIN_API_KEY} dibaca dari environment, jadi key tidak masuk repo:
{
"mcpServers": {
"dampingin": {
"type": "http",
"url": "https://mcp.dampingin.dev.arsana.cloud/mcp",
"headers": { "Authorization": "Bearer ${DAMPINGIN_API_KEY}" }
}
}
}Cursor
Di ~/.cursor/mcp.json (global) atau .cursor/mcp.json (proyek):
{
"mcpServers": {
"dampingin": {
"url": "https://mcp.dampingin.dev.arsana.cloud/mcp",
"headers": { "Authorization": "Bearer dk_live_xxxxxx.rahasia" }
}
}
}Penting
Hasil dan error tool
Setiap tool mengembalikan satu konten teks berisi JSON respons API. Kalau API membalas non-2xx, hasil tool ditandai isError: true dan teksnya diawali HTTP <status> lalu JSON error (lihat Errors). API tidak terjangkau: kode API_UNREACHABLE.
Petunjuk untuk agent
Tempel aturan seperti ini di system prompt agent yang memakai tool Dampingin:
- Pakai daftar_layanan / detail_layanan sebelum buat_order. Isi semua field intake yang required.
- Selalu isi max_budget dan idempotency_key saat buat_order.
- Kalau status menunggu_bayar: beri tahu pengguna bahwa admin organisasi harus menyetujui.
- Kalau butuh_input_klien: tanyakan ke pengguna, lalu kirim_pesan. Jangan mengarang data.
- Jangan terima_hasil sebelum pengguna melihat hasilnya.
- Tidak ada layanan yang cocok: ajukan_kasus. Jangan menjanjikan hasil perkara.
- Jawaban AI bukan nasihat hukum; pekerjaan hukum dikerjakan dan ditandatangani praktisi.