uazapi-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UAZAPI_TOKEN | No | Token for a single instance, as an alternative to UAZAPI_ADMIN_TOKEN. | |
| UAZAPI_SERVER | Yes | The uazapi server URL, e.g. https://suaempresa.uazapi.com | |
| ELEVENLABS_API_KEY | No | API key for ElevenLabs transcription. Without it, audio is downloaded but not transcribed. | |
| UAZAPI_ADMIN_TOKEN | No | Admin token to list instances and resolve tokens by name. One of UAZAPI_ADMIN_TOKEN or UAZAPI_TOKEN is required. | |
| UAZAPI_MCP_MEDIA_DIR | No | Directory where media files are saved. | ~/.uazapi-mcp/media |
| UAZAPI_DEFAULT_INSTANCE | No | The default instance name used when an API call does not specify an instance. | |
| UAZAPI_MCP_MAX_DOWNLOADS | No | Maximum number of media downloads per call. | 60 |
| UAZAPI_MCP_MAX_MENSAGENS | No | Maximum number of messages to process per call. | 3000 |
| UAZAPI_MCP_MAX_TRANSCRICOES | No | Maximum number of transcriptions per call. | 30 |
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 | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_configA | Mostra o estado da configuração e testa a conexão com o servidor uazapi. Use quando as outras tools falharem: diz o que falta configurar sem revelar segredos. |
| list_instancesA | Lista as instâncias (números de WhatsApp) disponiveis no servidor uazapi. Use para descobrir qual valor passar em |
| list_chatsA | Lista conversas ordenadas pela mais recente. busca: parte do nome do contato/grupo (deixe vazio para as mais recentes). tipo: 'all', 'group' (só grupos) ou 'dm' (só individuais). instance: nome ou número da instância; vazio usa a padrão. |
| list_groupsC | Lista os grupos de que o número participa, com o identificador de cada um. |
| get_messagesA | Lê as mensagens de uma conversa em uma janela de tempo, já com os áudios transcritos. chat: nome do contato/grupo, número (5562...) ou identificador completo. since/until: 'hoje', 'ontem', '3d', '2h', '10/09', '10/09 14:30', '2026-09-10'. Tambem aceita intervalo em since: '10/09..12/09'. Vazio = mais recentes. transcrever_audios: áudios voltam como texto (ElevenLabs Scribe v2). baixar_midias: imagens/vídeos/documentos são gravados em disco e o caminho vem no transcript, pronto para o Read. tipo_mensagem: filtra por tipo, ex 'AudioMessage', 'ImageMessage', 'DocumentMessage'. |
| get_mediaA | Baixa as mídias de uma conversa para disco e devolve os caminhos locais. tipos: 'all', 'audio', 'imagem', 'video' ou 'documento'. Áudios voltam também com a transcrição. Use quando precisar dos arquivos em si; para ler a conversa inteira prefira get_messages. |
| search_messagesB | Procura um termo nas mensagens recentes (a uazapi não busca texto no servidor). chat vazio = varre os chats mais recentes; com chat, busca só nele. |
| get_chat_infoC | Detalhes de um contato ou grupo: identificador, nome, se é grupo, última mensagem. |
| sync_historyA | Pede ao celular o histórico antigo de uma conversa (assincrono). Use só quando get_messages não alcança o período pedido: a uazapi guarda uma janela curta. Exige o celular online. As mensagens aparecem no get_messages depois de alguns segundos/minutos. |
| send_textA | Envia uma mensagem de texto. Exige confirmação em duas etapas. Chame primeiro com confirmar=False: nada é enviado e volta um preview com o destinatario resolvido. MOSTRE esse preview ao usuário e só chame de novo com confirmar=True depois que ele aprovar. |
| send_mediaB | Envia um arquivo local ou URL. Exige confirmação em duas etapas, como send_text. tipo: image, video, document, audio, ptt (áudio de voz) ou sticker. |
| mark_readC | Marca como lidas as últimas mensagens recebidas de uma conversa. |
| reactA | Reage a uma mensagem. emoji vazio remove a reação. |
| transcribe_fileA | Transcreve um arquivo de áudio local (ElevenLabs Scribe v2). Útil para áudios já baixados por get_media ou vindos de outro lugar. |
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 14 tools
Most tools have clearly distinct purposes, but there is some overlap between list_chats with tipo='group' and list_groups, and between get_messages (which can download/transcribe media) and get_media/transcribe_file. The descriptions help clarify the boundaries, so an agent can usually select the right tool.
Nearly every tool follows a clean snake_case verb_noun pattern like list_instances, send_text, and mark_read. The lone exception is 'react', which is a bare verb without an explicit object, making the naming slightly inconsistent.
With 14 tools, the set is well-scoped for a WhatsApp integration: it covers messaging, media, search, reactions, history sync, and configuration without feeling fragmented. Each tool has a functional role that earns its place.
The core WhatsApp workflow is well covered: listing instances/chats/groups, reading and searching messages, sending text/media, reacting, marking read, syncing history, and downloading/transcribing media. Missing group/contact management or message deletion are minor gaps for a chat-focused MCP server.