kirimi-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KIRIMI_API_KEY | Yes | API key from Kirimi dashboard | |
| KIRIMI_DEVICE_ID | Yes | Default device ID for sending messages | |
| KIRIMI_API_BASE_URL | No | Override API base URL | https://api.kirimi.id |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| send_messageB | Send a WhatsApp text or media message to one recipient through a QR-scan device. This is the normal way to reply to a customer. |
| send_message_fastA | Same as send_message but skips the typing indicator. Use for time-sensitive messages such as OTP. |
| broadcast_messageA | Send the same message to many recipients. Max 1000 numbers per call. The server enforces a minimum 30 second delay between sends, so this returns immediately while delivery continues in the background. |
| send_otpA | Send a one-time password. Pick the method deliberately: "whatsapp" uses the official Kirimi provider and costs Rp 595 per delivered OTP with no setup; "device" sends through your own connected device and is free; "waba_user" sends through your own WhatsApp Business API template and is free. |
| verify_otpB | Check an OTP code the customer received. Returns whether the code is valid. |
| list_devicesA | List every WhatsApp device on this account with its connection status. |
| device_statusA | Get the live connection status of a device. Check this before a broadcast so you do not send to a disconnected device. |
| device_status_enhancedA | Get detailed device status, including today and total message statistics. |
| create_deviceA | Create a new WhatsApp device. Costs the package price from your balance. Get package_id from list_packages. |
| connect_deviceB | Start connecting a device. Returns the QR/session state used to pair WhatsApp. |
| renew_deviceB | Renew a device subscription by buying a package for it. |
| save_contactA | Save one contact. Numbers that already exist are skipped, not overwritten. |
| save_contacts_bulkA | Import up to 1000 contacts in one call. Existing numbers are skipped. |
| get_user_infoA | Get account details: name, balance (saldo), AI quota, device count and message statistics. |
| list_packagesA | List the packages you can buy for a device, with prices. |
| send_waba_templateA | Send an approved WhatsApp template through the official WhatsApp Business API. Business-initiated conversations MUST use a template. Templates cannot be replaced with free text. WABA cannot send to groups and is addressed by waba_id, not device_id. |
| waba_list_conversationsA | List the customers still inside the 24 hour customer service window. These are the numbers you may reply to with free text instead of a template. |
| waba_replyA | Reply with free-form text or media through the official API. Only allowed within 24 hours of the customer's last message — use waba_list_conversations to check first. Outside that window the API rejects it and you must send a template instead. |
| waba_sync_templatesA | Refresh template approval status from Meta for one WABA. Run this before sending a newly created template. Rate limited to 10 syncs per hour. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Several sending tools overlap: send_message and send_message_fast are explicitly the same apart from the typing indicator, and device_status/device_status_enhanced serve similar purposes. Descriptions clarify most boundaries, but an agent could easily pick the wrong path for OTPs or simple status checks.
Most tools follow verb_noun (send_message, create_device, save_contact), but WABA naming is inconsistent: send_waba_template reverses the pattern while waba_sync_templates, waba_list_conversations, and waba_reply use a waba_ prefix. Suffixes like _fast and _enhanced also break the convention.
19 tools is slightly above the ideal 3-15 range, but the server covers distinct areas: device lifecycle, messaging, WABA, OTP, contacts, and account info. A few tools are near-duplicates and could be merged, so the count is reasonable rather than bloated.
The core workflows are present: device creation/connection/renewal, single/broadcast messaging, WABA template and reply flows, OTP send/verify, contacts, and account status. Minor gaps include no device disconnect/delete, no contact listing/deletion, and no template creation/list, but agents can still complete main tasks.