Search / ai.kontato/kontato
kontato
R2· OAuth, onceGive your AI agents a WhatsApp number and a voice: they message you and call you.
v1.1.0 · active · website · descriptor JSON · versions
Search / ai.kontato/kontato
R2· OAuth, onceGive your AI agents a WhatsApp number and a voice: they message you and call you.
v1.1.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"kontato": {
"type": "http",
"url": "https://api.kontato.ai/mcp"
}
}
}claude mcp add --transport http kontato https://api.kontato.ai/mcp[mcp_servers.kontato]
url = "https://api.kontato.ai/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"kontato": {
"type": "remote",
"url": "https://api.kontato.ai/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"kontato": {
"type": "http",
"url": "https://api.kontato.ai/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=kontato&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmtvbnRhdG8uYWkvbWNwIn0%3D"
}{
"servers": {
"kontato": {
"type": "http",
"url": "https://api.kontato.ai/mcp"
}
}
}{
"mcpServers": {
"kontato": {
"httpUrl": "https://api.kontato.ai/mcp"
}
}
}extensions:
"kontato":
enabled: true
name: "kontato"
type: streamable_http
uri: "https://api.kontato.ai/mcp"
timeout: 300
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prmProtected Resource Metadata (RFC 9728) publishedauth.as_metadataauthorization server metadata reachableauth.cimdonly Dynamic Client Registration, deprecated in 2026-07-28 in favour of CIMDauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations13 of 13 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_schedules (destructiveHint, idempotentHint); schedule (idempotentHint); cancel_schedule (idempotentHint); …tools.token_costabout 3,342 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes13 tool changes in 30 daysstability.rug_pull9 tools kept their name but changed most of their description in 30 days; review before trusting themdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagelist_recipientsaddedLists the numbers this account may message besides the owner, with their status ("authorized" or "pending").
authorize_recipientaddedAsks 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).
get_calladdedReturns 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.
calladdedPlaces 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).
statuschangeddescription, input schemameaning changedMostra o estado da conta Kontato: ativa ou nao, numero-ponte, e os schedules (rotinas) ja registrados. Use para honrar a regra turn-based: antes de dizer que algo sera entregue "todo dia", confirme aqui se existe um schedule ativo.
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.
list_messageschangeddescription, input schemameaning changedLista o historico de mensagens do numero-ponte (recebidas e enviadas), mais recentes primeiro. Use para decidir a quem responder com `reply`.
Lists the message history of the bridge number (received and sent), newest first. Use it to decide whom to answer with `reply`.
replychangeddescription, input schemameaning changedResponde a um numero especifico que mandou mensagem para o numero-ponte. Igual a `send`, mas "to" e OBRIGATORIO. Responder a quem te escreveu (reply-ratio alto) e mais seguro que cold outbound.
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.
sendchangeddescription, input schemameaning changedEnvia uma mensagem de WhatsApp pelo numero-ponte do Kontato. CASO SEGURO: se OMITIR "to", entrega no WhatsApp do PROPRIO DONO (self-notification). JANELA DE 24H: e resolvida AUTOMATICAMENTE pelo servidor — mande so "message"; se a janela do WhatsApp estiver fechada, o Kontato embrulha o texto num template aprovado e entrega mesmo assim (a resposta volta com via="template"). NAO pergunte ao dono sobre janela nem sobre template; nunca peca para ele "mandar oi" antes. REGRA TURN-BASED: voce nao executa trabalho no futuro; se pedirem algo recorrente ("todo dia me manda X"), faca a entrega de HOJE agora e oriente a registrar um schedule, nunca prometa entrega futura.
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.
cancel_schedulechangeddescription, input schemameaning changedCancela uma entrega agendada pelo seu schedule_id (obtido em `list_schedules` ou `schedule`).
Cancels a scheduled delivery by its schedule_id (from `list_schedules` or `schedule`).
list_scheduleschangeddescription, input schemameaning changedLista as entregas agendadas (recorrentes/unicas) desta conta, com proximo disparo.
Lists the scheduled deliveries (recurring or one-time) of this account, with the next run.
Showing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-100% +updated-16d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://api.kontato.ai/mcp streamable-http | oauth2 AS: https://api.kontato.ai | yes | 100% | 194 ms | – | 2026-10-20 |
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). |
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). |
cancel_scheduledestructive | Cancels a scheduled delivery by its schedule_id (from `list_schedules` or `schedule`). |
get_callread-only | 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. |
list_messagesread-only | Lists the message history of the bridge number (received and sent), newest first. Use it to decide whom to answer with `reply`. |
list_recipientsread-only | Lists the numbers this account may message besides the owner, with their status ("authorized" or "pending"). |
list_schedulesread-only | Lists the scheduled deliveries (recurring or one-time) of this account, with the next run. |
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). |
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. |
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"). |
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. |
statusread-only | 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. |
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). |
Schemas: list_tools.
{
"name": "ai.kontato/kontato",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://api.kontato.ai/mcp",
"type": "streamable-http"
}
],
"version": "1.1.0",
"websiteUrl": "https://kontato.ai",
"description": "Give your AI agents a WhatsApp number and a voice: they message you and call you."
}