
Official MCP RegistryListed
ai.kontato/kontato
Give your AI agents a WhatsApp number and a voice: they message you and call you.
First seen 2 Oct 2026. Evidence as of 7 Oct 2026.
13
Tools
From an anonymous probe
1
Source listings
Each with its own history
23
Recorded changes
Since first seen
Tools
| Tool | Description | Behaviour |
|---|---|---|
| authorize_recipient | Asks a phone number for permission to receive messages from this account. By default an account only messages its OWNER; any other number must be authorized: Kontato sends an invite on WhatsApp and the person must reply SIM (yes). Until then, `send`/`reply` to that number are refused. Use it once per person (e.g. a colleague who should get alerts). | Changes data |
| call | Places a phone call to the account OWNER (the person who verified their number), spoken by Kontato's voice assistant on your behalf. Use it when something deserves the owner's attention now, or when you need a decision and they are away from the screen. Modes: "notify" reads a message and asks if they have any instruction; "ask" asks a question (up to 4 options) and confirms the answer; "conversation" is a brainstorm of up to 10 minutes and returns a structured summary (decisions, requirements, open questions, next steps). The call is ASYNC: this tool returns a call_id immediately; then call `get_call` every ~10 seconds until state is "finished". Calls only go to the owner's verified number (never to third parties) and there is a daily limit. Write `message` in the owner's language; the call is spoken in `language` (default pt-BR). | Changes data |
| cancel_schedule | Cancels a scheduled delivery by its schedule_id (from `list_schedules` or `schedule`). | Destructive |
| get_call | Returns the state of a call placed with `call`. While running, state is "queued", "ringing", "in_progress" or "processing". When state is "finished", read: outcome ("answered", "no_instruction", "decide_later", "completed", "voicemail", "no_answer", "busy", "interrupted", "timed_out"), answer (what the owner said, in one sentence), chosen_option (ask mode), summary (conversation mode) and transcript. Act on the answer after the call; the voice assistant never executes anything. | Read-only |
| list_messages | Lists the message history of the bridge number (received and sent), newest first. Use it to decide whom to answer with `reply`. | Read-only |
| list_recipients | Lists the numbers this account may message besides the owner, with their status ("authorized" or "pending"). | Read-only |
| list_schedules | Lists the scheduled deliveries (recurring or one-time) of this account, with the next run. | Read-only |
| provision | ACTIVATES the Kontato account for the given phone: creates it only if it does not exist yet; if it exists, reuses the SAME account (calling it with an existing account is normal and expected: it works like a login). IDEMPOTENT BY PHONE: safe to call again in any session or after a restart (the user never has to handle an api_key). If the response has verification_required=false (number already verified), do NOT ask for an OTP: call `send` or `call` directly. Pass owner_phone (international format, digits only, e.g. 5511999998888) to enable the safe self-notification case: you deliver to the owner's own WhatsApp and phone. Returns whatsapp_bridge_number (Kontato's shared number that sends, never the owner's personal number). | Changes data |
| reply | Replies to a specific number that messaged the bridge number. Same as `send`, but "to" is REQUIRED. Replying to whoever wrote to you is safer than cold outbound. | Changes data |
| schedule | Registers a recurring or one-time delivery in the Kontato scheduler. At the scheduled time, Kontato runs the `prompt` as a full agent (with web search) and delivers the result to the owner's WhatsApp. USE THIS for "send me X every day": you do not need to stay online or promise future work; the scheduler fires on its own. The `prompt` must be self-contained (e.g. "Find today's top financial market news and deliver a short summary"). | Changes data |
| send | Sends a WhatsApp message through Kontato's bridge number. SAFE CASE: if you OMIT "to", it is delivered to the OWNER's own WhatsApp (self-notification). Other numbers must be AUTHORIZED first with `authorize_recipient` (the person replies SIM/yes on WhatsApp); otherwise the send is refused with recipient_not_authorized. 24-HOUR WINDOW: handled AUTOMATICALLY by the server; just send "message". If the WhatsApp window is closed, Kontato wraps the text in an approved template and delivers it anyway (the response comes back with via="template"). Do NOT ask the owner about the window or templates; never ask them to "say hi" first. TURN-BASED RULE: you do not run work in the future; if asked for something recurring ("send me X every day"), deliver TODAY's now and register a `schedule`; never promise a future delivery. | Changes data |
| status | Shows the Kontato account state: active or not, bridge number, and the schedules already registered. Use it to honor the turn-based rule: before saying something will be delivered "every day", confirm here that an active schedule exists. | Read-only |
| verify_number | Confirms the owner number with the 6-digit OTP that arrived on their WhatsApp after `provision`. REQUIRED before sending, scheduling or calling: until verified, `send`/`reply`/`schedule`/`call` return 403 owner_not_verified. If the code expired or failed too many times, call again after requesting a new one (resend). | Changes data |
Change history
- verify_number: input schema changed
- verify_number: description changed (+"Confirms the owner number with the 6-digit" +"that arrived on their" +"after")
- status: input schema changed
- status: description changed (+"Shows the Kontato account state: active or not, bridge number, and the" +"already registered." +"it to honor the turn-based rule: before saying something will be delivered "every day", confirm here that an active")
- send: input schema changed
- send: description changed (+"Sends a" +"message through Kontato's bridge number. SAFE CASE: if you OMIT" +"it is delivered to the OWNER's own")
- schedule: input schema changed (+channel)
- schedule: description changed (+"Registers a recurring or one-time delivery in the Kontato scheduler. At the scheduled time," +"runs the" +"as a full agent (with web search) and delivers the result to the owner's WhatsApp.")
- reply: input schema changed
- reply: description changed (+"Replies to" +"specific number that messaged the bridge number. Same as" +"but")
- provision: input schema changed
- provision: description changed (+"ACTIVATES the" +"account for the given phone: creates it only if it does not exist yet; if it exists, reuses the SAME account (calling it with an existing account is normal and expected: it works like" +"IDEMPOTENT BY PHONE: safe to call again in any session or after")
- list_schedules: input schema changed
- list_schedules: description changed (+"Lists the scheduled deliveries (recurring or one-time) of this account, with the next run." -"Lista as entregas agendadas (recorrentes/unicas) desta conta, com proximo disparo.")
- list_recipients: tool added
- list_messages: input schema changed
- list_messages: description changed (+"Lists the message history of the bridge number (received and sent), newest first." +"it to decide whom to answer with" -"Lista o historico de mensagens do numero-ponte (recebidas e enviadas), mais recentes primeiro.")
- get_call: tool added
- cancel_schedule: input schema changed
- cancel_schedule: description changed (+"Cancels a scheduled delivery by its" +"(from" +"or")
- call: tool added
- authorize_recipient: tool added
- Description changed (registry)
| Source | Listing | First seen | Last seen | Versions |
|---|---|---|---|---|
| Official MCP Registry | ai.kontato/kontato | 2 Oct 2026 | 7 Oct 2026 | 2 |