JAKARTA, INDONESIAPAPAN KASUS BUKA

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

ToolEndpointArgumenCatatan
daftar_layananGET /v1/services(tanpa argumen)Katalog dengan harga agent, SLA, intake. Read-only
detail_layananGET /v1/services/{code}code: stringSatu layanan dan field intake-nya. Read-only
buat_orderPOST /v1/orderslayanan: string, intake: Record<string, string>, max_budget?: int > 0, callback_url?: url, idempotency_key?: stringBuat order Instant Matter dari deposit
status_orderGET /v1/orders/{id}order_id: stringStatus, pesan praktisi, hasil. Read-only
kirim_pesanPOST /v1/orders/{id}/messagesorder_id: string, pesan: string (min 1)Balas permintaan data praktisi
terima_hasilPOST /v1/orders/{id}/acceptorder_id: stringTerima hasil, escrow dilepas
ajukan_kasusPOST /v1/casesnama_kontak, email_kontak (email), cerita (min 30), telepon_kontak?, bidang?, urgensi?, budget?Kasus custom ke papan kasus
status_kasusGET /v1/cases/{id}case_id: stringStatus kasus dan penawaran. Read-only
pilih_penawaranPOST /v1/cases/{id}/selectcase_id: string, bid_id: stringPilih penawaran, invoice dibuat
saldoGET /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.com/mcp. Streamable HTTP, stateless, respons JSON (tanpa sesi).
  • Hanya POST /mcp. Method lain: 405. Path lain: 404. GET /health mengembalikan {"ok":true}.
  • Wajib Authorization: Bearer <API key>. Tanpa header: 401. Key diteruskan apa adanya ke REST API, jadi key yang salah terlihat sebagai error tool HTTP 401.
  • Self-host: npm -w @dampingin/mcp run start, port dari MCP_PORT (default 3300), tujuan API dari DAMPINGIN_API_URL.
Claude Code
claude mcp add --transport http dampingin https://mcp.dampingin.com/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:

VariabelWajibDefault
DAMPINGIN_API_KEYYaProses keluar kalau kosong
DAMPINGIN_API_URLTidakhttp://api.localhost:3100 (pengembangan lokal). Isi dengan URL API produksi
Claude Code
# 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.com \
  -- npx tsx /path/ke/dampingin/services/mcp/src/stdio.ts

Config per klien

Claude Desktop

Tambahkan ke claude_desktop_config.json (mode stdio), lalu restart aplikasi:

claude_desktop_config.json
{
  "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.com"
      }
    }
  }
}

Claude Code (file proyek)

Simpan di .mcp.json di root proyek. Nilai ${DAMPINGIN_API_KEY} dibaca dari environment, jadi key tidak masuk repo:

.mcp.json
{
  "mcpServers": {
    "dampingin": {
      "type": "http",
      "url": "https://mcp.dampingin.com/mcp",
      "headers": { "Authorization": "Bearer ${DAMPINGIN_API_KEY}" }
    }
  }
}

Cursor

Di ~/.cursor/mcp.json (global) atau .cursor/mcp.json (proyek):

{
  "mcpServers": {
    "dampingin": {
      "url": "https://mcp.dampingin.com/mcp",
      "headers": { "Authorization": "Bearer dk_live_xxxxxx.rahasia" }
    }
  }
}

Penting

File config berisi key tertulis langsung. Jangan commit file itu; pakai variabel lingkungan kalau klien mendukung.

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:

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