Dureach menyediakan 14 tool MCP bernama dureach.<action>. Setiap tool memvalidasi field yang tidak dikenal secara ketat: field tambahan mengembalikan kesalahan validasi. Gunakan batas persis di bawah ini; nilai di luar rentang mengembalikan invalid_arguments.
Tool apa saja yang tersedia?
| Tool | Risiko | Cakupan yang diperlukan | Tujuan |
|---|---|---|---|
dureach.workspace.context | R0 | workspace:read | Mengembalikan ID ruang kerja, nama, peran pemanggil, dan cakupan yang diberikan. |
dureach.workspace.capabilities | R0 | workspace:read | Mencantumkan tindakan yang tersedia bagi koneksi ini. |
dureach.companies.search | R1 | companies:read | Mencari catatan perusahaan berdasarkan kata kunci. |
dureach.companies.read | R1 | companies:read | Membaca satu perusahaan berdasarkan UUID. |
dureach.trade.search | R1 | trade:read | Mencari catatan aktivitas perdagangan. |
dureach.trade.query | R1 | trade:read | Menjalankan kueri SQL hanya-baca terhadap tampilan pengiriman. |
dureach.contacts.search | R1 | contacts:read | Mencari catatan kontak berdasarkan kata kunci. |
dureach.contacts.query | R1 | contacts:read | Menjalankan kueri SQL hanya-baca terhadap tampilan kontak. |
dureach.leads.list | R1 | leads:read | Mencantumkan prospek ruang kerja dengan penomoran halaman. |
dureach.leads.create | R2 | leads:create | Membuat prospek; mendukung dry_run dan idempotency_key. |
dureach.campaigns.list | R1 | campaigns:read | Mencantumkan kampanye dengan penomoran halaman. |
dureach.campaigns.draft | R2 | campaigns:create | Menyusun draf kampanye; mendukung dry_run dan idempotency_key. |
dureach.email.send | R3 | emails:send | Mengirim melalui kebijakan permanen yang ditinjau pemilik; memerlukan policy_id aktif, serta mendukung pratinjau dry_run dan kunci idempotensi. |
dureach.sms.send | R3 | sms:send | Mengirim melalui kebijakan permanen yang ditinjau pemilik; aturan yang sama dengan pengiriman email. |
Gunakan tools/list untuk melihat alat yang tersedia bagi koneksi Anda. Ketersediaan bergantung pada izin yang diberikan dan akses ruang kerja. Mulai dengan izin baca; minta administrator meninjau akses yang belum tersedia alih-alih meminta izin luas.
Argumen apa yang diterima setiap tool?
workspace.context dan workspace.capabilities
Tanpa argumen. Kirim {}.
{"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {"name": "dureach.workspace.capabilities", "arguments": {}}}companies.search
| Kolom | Jenis | Batasan | Bawaan |
|---|---|---|---|
query | string | 1–200 karakter, tidak boleh kosong | wajib |
page | integer | 1–20 | 1 |
limit | integer | 1–50 | 25 |
{"query": "industrial valves", "page": 1, "limit": 10}companies.read
| Kolom | Jenis | Detail |
|---|---|---|
company_id | UUID | wajib |
ID yang tidak dikenal mengembalikan company_not_found.
trade.search
| Kolom | Jenis | Batasan | Bawaan |
|---|---|---|---|
query | string | 3–100 karakter | wajib |
dataset | enum | all, imports, exports, shipments | all |
page | integer | 1–20 | 1 |
limit | integer | 1–50 | 25 |
contacts.search
| Kolom | Jenis | Batasan | Bawaan |
|---|---|---|---|
query | string | 3–100 karakter | wajib |
page | integer | 1–40 | 1 |
limit | integer | 1–25 | 25 |
Kueri pendek di bawah 3 karakter mengembalikan kesalahan validasi. Gunakan contacts.query ketika pencarian kata kunci tidak cukup selektif.
contacts.query dan trade.query
| Kolom | Jenis | Batasan | Bawaan |
|---|---|---|---|
sql | string | maksimal 16 KiB UTF-8, tata bahasa hanya-baca | wajib |
page | integer | 1–20 | 1 |
limit | integer | 1–50 | 25 |
Jangan sertakan LIMIT/OFFSET SQL; gunakan page/limit. Halaman 2 dan seterusnya memerlukan ORDER BY. Detail tata bahasa ada di Pembaca SQL MCP.
leads.list dan campaigns.list
| Kolom | Jenis | Batasan | Bawaan |
|---|---|---|---|
page | integer | 1–20 | 1 |
limit | integer | 1–50 | 25 |
leads.create
| Kolom | Jenis | Detail |
|---|---|---|
email | wajib, maksimal 254 karakter | |
first_name | string | opsional, maksimal 255 karakter |
last_name | string | opsional, maksimal 255 karakter |
company_name | string | opsional, maksimal 255 karakter |
idempotency_key | UUID | Wajib untuk penulisan atau pengiriman nyata; gunakan UUID yang sama saat mencoba tindakan yang sama dengan argumen tetap. |
dry_run | boolean | opsional, bawaan false; true hanya menampilkan pratinjau tanpa menulis data |
campaigns.draft
| Kolom | Jenis | Detail |
|---|---|---|
name | string | wajib, maksimal 255 karakter |
idempotency_key | UUID | Wajib untuk penulisan atau pengiriman nyata; gunakan UUID yang sama saat mencoba tindakan yang sama dengan argumen tetap. |
dry_run | boolean | opsional, bawaan false |
email.send dan sms.send
| Kolom | Jenis | Detail |
|---|---|---|
policy_id | UUID | wajib; kebijakan pengiriman permanen yang mengotorisasi pengiriman |
recipient | string | wajib, maksimal 255 karakter |
idempotency_key | UUID | Wajib untuk penulisan atau pengiriman nyata; gunakan UUID yang sama saat mencoba tindakan yang sama dengan argumen tetap. |
dry_run | boolean | opsional, bawaan false |
Pengiriman tanpa kebijakan aktif mengembalikan policy_not_found atau policy_not_authorized. Kegagalan anggaran, supresi, dan kuota mengembalikan policy_budget_exceeded, policy_daily_cap_exceeded, recipient_suppressed, recipient_already_attempted, atau send_quota_exceeded. Jangan pernah mengulangi pengiriman dengan kunci idempotensi baru; gunakan kembali kunci asli.
Bagaimana bentuk hasil dan kesalahan?
Keberhasilan mengembalikan satu item teks berisi JSON ditambah objek structuredContent yang sesuai dan divalidasi terhadap kontrak output tool. Hasil yang lebih besar dari 1 MiB mengembalikan result_too_large dan bukan data sebagian.
Kegagalan mengembalikan isError: true:
{"error": {"code": "invalid_arguments", "details": {"field": "limit"}},
"request_id": "REQ_ID"}Kode umum: unknown_action (gunakan nama dari tabel dengan awalan dureach.), invalid_arguments, scope_required, plan_capability_required, quota_exceeded (dengan limit_type, reset_at, retry_after), company_not_found, policy_not_found, policy_not_authorized, result_too_large, action_internal_error.