Server MCP untuk Asisten AI
Hubungkan Claude Code, Cursor, VS Code, Windsurf, n8n, atau klien lain lewat mcp-remote — memakai kunci API, tanpa login.
Apa itu server MCP#
MCP (Model Context Protocol) membuat asisten AI — Claude Code, Cursor, VS Code, Windsurf, atau agen n8n — bisa memakai fitur CSWA.AI sebagai alat: membaca chat yang belum dibalas, mencari kontak, mengirim pesan, membuat broadcast, sampai melihat pesanan dan analitik. Alamat server: https://mcp.cswa.ai (cadangan: https://cswa.ai/api/mcp).
Yang Anda butuhkan
- Paket berlangganan aktif dan nomor WhatsApp terhubung.
- Kunci API dari Integrasi › API & Webhook (masuk HANYA dengan kunci di header — tanpa login atau OAuth).
1. Siapkan kunci API#
Langkah 1: Buat kunci khusus MCP
Di API & Webhook klik Buat kunci, beri nama mis. "Claude laptop", dan centang izin seperlunya. Alat yang muncul di asisten AI mengikuti izin ini — untuk asisten yang hanya membaca, cukup
pesan:bacadankontak:baca.Langkah 2: Coba dulu dengan kunci test
Kunci test menjalankan semua pemeriksaan tanpa mengirim apa pun ke pelanggan dan tanpa mengubah data — aman untuk mencoba alur kirim pesan, broadcast, dan Inbox.
2. Claude Code#
Jalankan di terminal (ganti KUNCI_API_ANDA), lalu ketik /mcp di Claude Code untuk memastikan statusnya tersambung:
claude mcp add --transport http cswa https://mcp.cswa.ai \
--header "Authorization: Bearer KUNCI_API_ANDA"Cursor#
Buka Settings › MCP › Add new global MCP server, atau tempel ke ~/.cursor/mcp.json:
{
"mcpServers": {
"cswa": {
"url": "https://mcp.cswa.ai",
"headers": {
"Authorization": "Bearer KUNCI_API_ANDA"
}
}
}
}VS Code#
Tempel ke .vscode/mcp.json di proyek, lalu klik Start di atas nama server. Mode Agent di Copilot Chat akan menampilkan alatnya.
{
"servers": {
"cswa": {
"type": "http",
"url": "https://mcp.cswa.ai",
"headers": {
"Authorization": "Bearer KUNCI_API_ANDA"
}
}
}
}Windsurf#
Tempel ke ~/.codeium/windsurf/mcp_config.json, lalu klik Refresh di panel MCP Cascade.
{
"mcpServers": {
"cswa": {
"serverUrl": "https://mcp.cswa.ai",
"headers": {
"Authorization": "Bearer KUNCI_API_ANDA"
}
}
}
}n8n#
Langkah 1: Tambah node MCP Client Tool
Di workflow dengan node AI Agent, tambah tool MCP Client Tool.
Langkah 2: Isi alamat & header
MCP Client ToolNode: MCP Client Tool (atau MCP Client) Endpoint: https://mcp.cswa.ai Server Transport: HTTP Streamable Authentication: Header Auth Name: Authorization Value: Bearer KUNCI_API_ANDALangkah 3: Pilih alat
Pilih Tools to Include › Selected dan centang alat yang dipakai agen (mis. cari_percakapan, baca_percakapan, kirim_pesan).
Klien lain (mcp-remote)#
Klien yang hanya menerima server lokal (mis. Claude Desktop) bisa memakai jembatan mcp-remote — butuh Node.js 18+ di komputer:
{
"mcpServers": {
"cswa": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.cswa.ai",
"--header",
"Authorization:Bearer KUNCI_API_ANDA"
]
}
}
}npx -y mcp-remote https://mcp.cswa.ai --header "Authorization:Bearer KUNCI_API_ANDA"Daftar alat#
daftar_kanal | Nomor WhatsApp (Device & API Official) Profil ini, status koneksi, dan kuota pesan baru harian. Izin: pesan:baca. |
|---|---|
cari_percakapan | Cari chat WhatsApp: belum dibalas, sudah dibalas, butuh CS, per kanal, atau per kata (nama/nomor). Izin: pesan:baca. |
baca_percakapan | Riwayat pesan satu percakapan (terbaru dulu). Izin: pesan:baca. |
ringkas_chat_hari_ini | Angka chat hari ini (zona waktu bisnis Profil) dan daftar percakapan yang masih menunggu balasan. Izin: pesan:baca. |
cari_kontak | Cari kontak WhatsApp per nama/nomor atau tag. Izin: kontak:baca. |
ubah_tag_kontak | Tambah dan/atau lepas tag satu kontak. Izin: kontak:tulis. |
kirim_pesan | Kirim SATU pesan teks ke satu kontak. Panggilan pertama hanya PRATINJAU (aturan WhatsApp diperiksa); kirim sungguhan dengan memanggil ulang isian yang sama + konfirmasi: true + token_pratinjau. Selalu tunjukkan pratinjau ke pengguna dan minta persetujuannya dulu. Izin: pesan:kirim. |
buat_broadcast | Broadcast ke tag kontak atau daftar nomor. WAJIB pratinjau: panggilan pertama mengembalikan jumlah penerima, isi, dan perkiraan waktu + token_pratinjau; broadcast baru dibuat bila dipanggil ulang dengan isian sama + konfirmasi: true + token yang sama. Minta persetujuan pengguna dulu. Izin: broadcast:kelola. |
tugaskan_percakapan | Tugaskan percakapan ke anggota tim (user_id) atau lepas penugasan (null). Izin: inbox:kelola. |
tutup_percakapan | Tandai percakapan selesai, atau buka lagi. Izin: inbox:kelola. |
atur_ai_agent | Jeda AI Agent (CS ambil alih), lanjutkan AI, atau serahkan percakapan ke CS manusia. Izin: ai:kelola. |
laporan_broadcast | Progres & hasil satu broadcast, atau 10 broadcast terbaru. Izin: broadcast:kelola. |
analitik_whatsapp | Angka WhatsApp yang sama dengan halaman Analitik (pesan masuk, broadcast, respons, tiket, CSAT, pesanan). Izin: analitik:baca. |
daftar_pesanan | Pesanan Inbox › Penjualan & halaman toko, bisa disaring status/percakapan/kata. Izin: pesanan:baca. |
status_pesanan | Detail satu pesanan: item, total, status bayar, pengiriman & resi. Izin: pesanan:baca. |
Pratinjau, konfirmasi & batas#
kirim_pesandanbuat_broadcastselalu mengembalikan PRATINJAU dulu (penerima, isi, perkiraan waktu) besertatoken_pratinjau. Baru dijalankan bila asisten memanggil ulang dengan isian sama,konfirmasi: true, dan token itu (berlaku 10 menit, sekali pakai).- Batas lewat MCP: 30 permintaan/menit per kunci, 20 pesan/jam (WhatsApp Device), 60 pesan/jam (API Official), 5 broadcast/hari dan maks 1.000 penerima per broadcast. Volume lebih besar: pakai REST API atau dasbor.
- Isi chat pelanggan diapit penanda
⟦DATA_PELANGGAN⟧— asisten diminta memperlakukannya sebagai data, bukan perintah, sehingga pesan pelanggan seperti "abaikan instruksi sebelumnya" tidak dijalankan. - Pesan yang dikirim tercatat di Inbox sebagai "MCP · nama kunci"; semua panggilan tampil di tab Log.
- Cabut kunci di dasbor → asisten langsung tidak bisa masuk lagi.
Masalah umum#
| 401 / tidak tersambung | Header Authorization belum benar. Format: Authorization: Bearer <kunci> (tanpa tanda kutip tambahan). |
|---|---|
| Alat tidak muncul | Kunci tidak punya izin untuk alat itu, atau fiturnya tidak termasuk paket. Ubah izin kunci di dasbor lalu muat ulang server di klien. |
| 403 mode_test_saja | Profil masih masa coba: pakai kunci test. |
| batas_permintaan | Batas MCP tercapai — tunggu sesuai pesan, atau pakai REST API untuk volume besar. |
| 405 pada GET | Normal: server ini memakai POST dengan respons JSON (tanpa aliran SSE). |