Asaas MCP Server
Provides tools for creating and managing Pix charges, generating dynamic QR codes and Copia e Cola keys, checking Pix payment status, and handling refunds through the Asaas payment gateway.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Asaas MCP ServerCrie uma cobrança Pix de R$ 150 para o cliente cus_000005931980"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Asaas MCP Server 🚀
Servidor Model Context Protocol (MCP) para integração completa com a API v3 do Asaas (gateway brasileiro de pagamentos e Pix).
Permite que assistentes de IA (como Google Antigravity, Claude Desktop, Cursor, etc.) consultem, criem e gerenciem cobranças Pix, Boletos, Cartão de Crédito, Assinaturas, Subcontas, Webhooks e Split de Pagamentos.
🛠️ Ferramentas Disponíveis (15 Tools)
💳 1. Cobranças & Pix
create_payment: Cria uma cobrança (Pix, Boleto, Cartão de Crédito) com suporte completo a Split de Pagamentos e parcelamento.get_payment: Consulta dados e status atualizado de qualquer cobrança (PENDING,RECEIVED,CONFIRMED,OVERDUE, etc.).list_payments: Lista cobranças com paginação oficial (offsetelimit) e filtros por status, cliente, data e identificadores.create_pix_qr: Gera o QR Code dinâmico em base64 e a chave Copia e Cola Pix da cobrança.get_pix_status: Consulta direta do status e conciliação de uma cobrança Pix.refund_payment: Realiza estorno total ou parcial de pagamentos.simulate_payment: Simula o recebimento de uma cobrança (ideal para testes no ambiente Sandbox).
👥 2. Clientes
create_customer: Cadastra clientes com dados completos (CPF/CNPJ, e-mail, telefone para WhatsApp/SMS, endereço).list_customers: Pesquisa e lista clientes cadastrados com paginação (offset/limit) e filtros.
🔁 3. Assinaturas & Recorrência
create_subscription: Cria planos ou mensalidades recorrentes (WEEKLY,MONTHLY,YEARLY, etc.) com suporte a Split por mensalidade.list_subscriptions: Lista assinaturas ativas, inativas e expiradas.cancel_subscription: Cancela uma assinatura recorrente no Asaas.
🔀 4. Split de Pagamentos, Subcontas & Conta
get_wallet_id: Retorna owalletIdda conta autenticada (necessário para receber repasses em Splits).get_account_status: Consulta a situação cadastral, bancária e de aprovação da conta.create_subaccount: Cria subcontas filhas no Asaas para onboarding de parceiros em marketplaces.configure_webhook: Configura endpoints de webhook para receber notificações (PAYMENT_RECEIVED,PAYMENT_SPLIT_DONE, etc.).
Related MCP server: Vaultix MCP Server
⚙️ Variáveis de Ambiente
Variável | Obrigatória | Padrão | Descrição |
| Sim (para chamadas) | — | Chave de API gerada no painel do Asaas (Produção ou Sandbox). |
| Não |
| Defina como |
| Não | — | Sobrescreve a URL base da API (ex: proxies ou mocks internos). |
Nota: O servidor MCP inicializa com sucesso mesmo sem a
ASAAS_API_KEYconfigurada no boot. A validação é feita sob demanda (lazy), retornando uma mensagem clara quando uma ferramenta for executada sem a chave.
🔀 Como Utilizar o Split de Pagamentos
O Split permite distribuir automaticamente o valor de uma venda entre carteiras do Asaas:
{
"customer": "cus_000005931980",
"billingType": "PIX",
"value": 200.00,
"dueDate": "2026-10-31",
"description": "Serviço com repasse de comissão",
"split": [
{
"walletId": "3b7c89a1-1234-5678-90ab-cdef12345678",
"percentualValue": 15.0,
"description": "Comissão do afiliado (15%)"
},
{
"walletId": "7f8e12c3-1234-5678-90ab-cdef12345678",
"fixedValue": 25.00,
"description": "Taxa fixa do parceiro"
}
]
}walletId: ID da carteira de destino (obtido via ferramentaget_wallet_id). Não envie owalletIdda própria conta emissora.percentualValue: Percentual calculado sobre o valor líquido (netValue) após descontadas as taxas do Asaas.totalFixedValue: Para cobranças parceladas, divide o valor fixo total igualmente entre todas as parcelas.
🚀 Como Configurar no Google Antigravity
Adicione o servidor nas configurações de MCP do Antigravity (ex: antigravity.json ou painel de configurações de MCP):
{
"mcpServers": {
"asaas": {
"command": "node",
"args": ["d:/Downloads/asaas-mcp-main/asaas-mcp-main/dist/index.js"],
"env": {
"ASAAS_ENVIRONMENT": "sandbox",
"ASAAS_API_KEY": "${env:ASAAS_API_KEY}"
}
}
}
}Ou usando npx tsx diretamente no código-fonte para desenvolvimento:
{
"mcpServers": {
"asaas": {
"command": "npx",
"args": ["-y", "tsx", "d:/Downloads/asaas-mcp-main/asaas-mcp-main/src/index.ts"],
"env": {
"ASAAS_ENVIRONMENT": "sandbox"
}
}
}
}🧪 Testes & Build
# Executar suíte de testes unitários com Vitest
npm test
# Compilar código TypeScript para dist/
npm run build📄 Licença
MIT
Available Tools
16 toolscancel_subscriptionC
Cancela uma assinatura recorrente no Asaas
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | Yes | Identificador único da assinatura no Asaas (ex: sub_0123456789) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for a destructive mutation. It does not disclose whether cancellation is permanent, whether it takes effect immediately or at period end, what happens to pending charges, or what permissions are required. A single sentence is far too thin for an irreversible write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is concise and easy to scan; the limitation is under-specification rather than bloat, which this dimension does not penalize heavily.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a cancellation tool with no annotations and no output schema, the description leaves critical context unstated: irreversibility, timing of effect, and return value. It gives the agent no basis to warn the user or confirm intent before invoking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter has a clear description with an example format, so the schema does the work and the description need not add parameter detail. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Cancela uma assinatura recorrente') and names the platform, so the agent knows this cancels a subscription rather than creates or lists one. It does not differentiate itself from siblings like create_subscription or list_subscriptions beyond the verb, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus list_subscriptions or create_subscription, no stated prerequisites, and no mention of when cancellation is inappropriate (e.g. already-cancelled subscriptions). The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_webhookC
Configura ou atualiza um endpoint de Webhook para receber notificações de pagamentos e splits
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL HTTPS do seu endpoint que receberá as notificações do Asaas | |
| name | Yes | Nome descritivo da fila de Webhook | |
| Yes | E-mail para receber alertas caso a fila seja interrompida | ||
| events | No | Lista de eventos a escutar (ex: ['PAYMENT_RECEIVED', 'PAYMENT_CONFIRMED', 'PAYMENT_OVERDUE', 'PAYMENT_SPLIT_DONE', 'PAYMENT_REFUNDED']) | |
| enabled | No | Se o webhook está ativo | |
| sendType | No | Modo de disparo dos eventos (SEQUENTIALLY ou NON_SEQUENTIALLY) | SEQUENTIALLY |
| authToken | No | Token de autenticação enviado no header asaas-access-token para validação de segurança | |
| apiVersion | No | Versão da API do webhook (padrão: 3) | |
| interrupted | No | Se a fila está pausada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, and it says nothing about mutation semantics (create vs. update, whether unspecified fields are cleared), authentication requirements, or consequences of disabling/interrupting a queue. The 'or updates' wording hints at upsert behavior but never clarifies it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, correctly leading with the action and the resource. It is efficient, though it errs toward under-specification rather than over-verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nine-parameter mutation tool with no annotations and no output schema, one sentence is incomplete: nothing describes the effect of the call, failure behavior, or what happens to a previously configured endpoint. The rich schema covers parameters, but the behavioral layer an agent needs for a write operation is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all nine parameters are already self-documented with examples and defaults. The description adds no parameter meaning beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('Configura ou atualiza um endpoint de Webhook') and adds the scope of what it receives ('notificações de pagamentos e splits'). It is the only webhook tool among the siblings, so no differentiation is needed, but it leaves the create-vs-update semantic ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no indication of whether it creates a new endpoint or overwrites an existing one, and no prerequisites. The agent must infer intent entirely from the name and the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_customerB
Cadastra um novo cliente no Asaas com dados completos (CPF/CNPJ, e-mail, telefone e endereço)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nome completo ou Razão Social do cliente | |
| No | E-mail do cliente | ||
| phone | No | Telefone fixo do cliente com DDD | |
| address | No | Logradouro do cliente | |
| cpfCnpj | Yes | CPF ou CNPJ do cliente (somente números ou formatado) | |
| province | No | Bairro | |
| complement | No | Complemento do endereço | |
| postalCode | No | CEP do endereço do cliente | |
| mobilePhone | No | Telefone celular do cliente com DDD (usado para notificações via WhatsApp/SMS) | |
| addressNumber | No | Número do endereço | |
| externalReference | No | Identificador do cliente no seu sistema | |
| notificationDisabled | No | Desabilitar envio de notificações automáticas por e-mail/SMS pelo Asaas |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden, and it discloses almost nothing: no mention of duplicate-CPF handling, idempotency, authentication needs, or that creating a customer can trigger automatic e-mail/SMS/WhatsApp notifications unless notificationDisabled is set. It only signals that this is a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the essential verb/resource leads. It is arguably too terse for a 12-parameter mutation, but there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter write tool with no annotations and no output schema, the description omits what is returned, whether notifications fire by default, and how duplicate tax IDs are handled. It is not sufficient on its own for an agent to call this confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema and the baseline is 3. The description's field list (CPF/CNPJ, e-mail, telefone, endereço) merely echoes the schema and adds no format or constraint detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Cadastra') and resource ('novo cliente no Asaas') and enumerates the data categories it accepts (CPF/CNPJ, e-mail, telefone, endereço). It does not reference any sibling tool, but no sibling overlaps enough to require disambiguation, so this is clear though not maximally differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent infers it should call this when a new customer must be registered in Asaas. There is no statement of prerequisites (e.g., account requirement, CPF/CNPJ uniqueness) or when to prefer create_subaccount or other creation tools instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_paymentC
Cria uma cobrança (Pix, Boleto, Cartão de Crédito) com suporte a Split de Pagamentos e parcelamento
| Name | Required | Description | Default |
|---|---|---|---|
| split | No | Configuração de Split de Pagamento para divisão de valores entre carteiras | |
| value | Yes | Valor da cobrança em Reais | |
| dueDate | Yes | Data de vencimento da cobrança (formato YYYY-MM-DD) | |
| customer | Yes | Identificador único do cliente no Asaas (ex: cus_000005931980) | |
| billingType | Yes | Forma de pagamento (BOLETO, CREDIT_CARD, PIX, UNDEFINED) | |
| description | No | Descrição detalhada da cobrança | |
| postalService | No | Definir se a cobrança deve ser enviada via Correios | |
| installmentCount | No | Número de parcelas (para pagamentos parcelados) | |
| installmentValue | No | Valor de cada parcela (opcional, calculado automaticamente se omitido) | |
| externalReference | No | Identificador da cobrança no seu sistema (para conciliação) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says nothing about authentication/API key requirements, idempotency, whether the charge is immediately emitted to the customer (e.g. postalService mailing, Pix QR generation), or what side effects follow creation — significant gaps for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though the brevity is partly because so little behavioral context is offered rather than because everything needed was said.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation tool with no annotations and no output schema, the description is thin. It omits side effects, required account state, and any hint about the returned resource (payment ID), leaving an agent under-informed before invoking a write call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 10 parameters including nested split fields and enums. The description adds only the high-level mention of split/parcelamento, which the schema already conveys, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Cria') and resource ('cobrança'), and enumerates the supported payment methods plus two notable features (Split, parcelamento). It is clearly distinguishable from siblings like refund_payment or simulate_payment, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus simulate_payment (dry-run) or create_subscription (recurring). No prerequisites or preconditions are stated, leaving the agent to infer the context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pix_qrC
Gera o QR Code dinâmico e o código Copia e Cola Pix para uma cobrança
| Name | Required | Description | Default |
|---|---|---|---|
| payment_id | Yes | Identificador único da cobrança no Asaas |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It hints at dynamism ('dinâmico', implying regenerable/changing codes) but says nothing about idempotency, whether calling it mutates the charge, whether previously generated codes are invalidated, or any permission requirements. This is a meaningful gap for a generation/mutation-style tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence that names both outputs, with no wasted words. It is efficient, though it is arguably too terse to be fully useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations exist, so the description should explain what comes back (QR image vs. payload string, Copia e Cola string) and any re-generation semantics. As written it names the outputs but leaves the agent without the behavioral detail needed to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is exactly one parameter and the schema documents it at 100% coverage, so the baseline is 3. The description adds no extra meaning about payment_id (e.g., where to obtain it or what charges qualify) beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Gera) and concrete resources (QR Code dinâmico e código Copia e Cola Pix) scoped to a cobrança, so the agent knows it produces payment artifacts. It does not name the sibling get_pix_status or otherwise distinguish itself from the other Pix-related tool, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus get_pix_status or whether it is meant to be called once per charge. The only implied condition is that it acts on an existing cobrança, which the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_subaccountB
Cria uma subconta filha no Asaas (ideal para marketplaces e divisão de splits com parceiros)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nome completo do responsável ou Razão Social | |
| Yes | E-mail único de acesso da subconta | ||
| phone | No | Telefone fixo | |
| address | Yes | Logradouro | |
| cpfCnpj | Yes | CPF ou CNPJ da subconta | |
| province | Yes | Bairro | |
| complement | No | Complemento | |
| postalCode | Yes | CEP | |
| companyType | No | Tipo de empresa (se for pessoa jurídica) | |
| incomeValue | No | Faturamento ou renda mensal estimada | |
| mobilePhone | Yes | Telefone celular com DDD | |
| addressNumber | Yes | Número |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it delivers very little. It discloses the parent-child relationship but says nothing about required permissions, whether the subaccount creation is immediate or subject to approval, what happens on duplicate e-mail, or what the created subaccount yields (e.g., a wallet/account id).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with verb and resource first and the use-case qualifier second; nothing is redundant. It is tight, though arguably too terse given the tool's 12-parameter, 8-required surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter creation tool with no annotations and no output schema, the description omits the concrete return value (the subaccount identifier/wallet needed for later split configuration) and any operational caveats. An agent can identify the tool but learns little about the consequences of invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all 12 parameters are documented in the schema with Portuguese labels, so the baseline of 3 applies. The description adds no syntax, format, or constraint information beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Cria uma subconta filha no Asaas') and adds the distinguishing use case of marketplaces/splits, which separates it from the generic create_customer sibling. It is clear, though it never names or contrasts the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'ideal para marketplaces e divisão de splits com parceiros' implies when the tool is appropriate, giving useful context. However, there is no explicit when-not guidance, no prerequisites (e.g., that a parent account must exist), and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_subscriptionC
Cria uma assinatura/mensalidade recorrente (com suporte a Split recorrente)
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | No | Frequência de cobrança da assinatura (padrão: MONTHLY) | MONTHLY |
| split | No | Configuração de Split de Pagamento aplicada a cada mensalidade da assinatura | |
| value | Yes | Valor de cada recorrência da assinatura | |
| endDate | No | Data limite para o encerramento automático da assinatura | |
| customer | Yes | Identificador do cliente no Asaas (ex: cus_000005931980) | |
| billingType | Yes | Forma de pagamento da assinatura | |
| description | No | Descrição do plano ou serviço recorrente | |
| maxPayments | No | Número máximo de cobranças a serem geradas antes de encerrar | |
| nextDueDate | Yes | Data da primeira cobrança (formato YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not state whether creating a subscription requires specific permissions, whether it triggers immediate charges or webhooks, what happens on failures, or any side effects like recurring billing setup. The only behavioral hint is 'recorrente', which is already implied by the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant or filler content. Every word earns its place, and the mention of Split is a precise additional detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, 4 required, no output schema, and no annotations, the description is far too sparse. It fails to explain return values, error conditions, or how the subscription behaves after creation. For a complex, mutating tool in a payments context, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all 9 parameters clearly documented in the input schema. The description adds no parameter-level detail beyond what the schema provides (e.g., it doesn't explain the required fields or the nested Split configuration). The baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: creating a recurring subscription/monthly fee, with the added note about recurring Split support. It clearly distinguishes from siblings like create_payment (one-off) and cancel_subscription, though it doesn't explicitly name those alternatives. The parenthetical about Split is a useful scoping detail lacking in the schema's top-level description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as create_payment or simulate_payment, nor any prerequisites (e.g., customer must already exist). The description implies usage by naming the resource but does not articulate when it is appropriate or inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_statusB
Consulta o status cadastral e situação de aprovação da conta no Asaas
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it does not state that this is a read-only, side-effect-free operation, nor whether authentication/API-key scoping is required. It hints at the returned subject matter (registration status, approval situation) but discloses no behavioral constraints beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with no filler, and the key concept (account status/approval) is front-loaded. It is appropriately sized for a zero-parameter read tool, though it is perhaps too terse to be maximally useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, no-annotation tool with no output schema, the description should at least sketch what the status response covers and note that it is a safe read. It names the two concepts queried but leaves the response shape and safety profile unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case per the rubric. The empty schema leaves nothing further to document or clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Consulta') and a clearly scoped resource: the account's registration status and approval situation. It is distinct from all siblings (payments, customers, PIX, subscriptions), though it does not explicitly name those siblings to reinforce the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, no prerequisites, and no alternatives named. The intended usage (checking whether the Asaas account is approved/active before transacting) is only implied by the resource name, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_paymentC
Consulta os detalhes e o status atualizado de uma cobrança pelo ID
| Name | Required | Description | Default |
|---|---|---|---|
| payment_id | Yes | Identificador único da cobrança no Asaas (ex: pay_081234567890) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It implies a read operation and hints that the status is 'atualizado' (live/current), but says nothing about authentication requirements, error cases, or whether data is fetched remotely versus cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the key scope (details + updated status + by ID) front-loaded and no wasted words. It is efficient, though it could carry a bit more useful detail without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description is adequate but thin: it indicates details and status are returned, which compensates slightly for the missing output schema, but leaves auth, error, and freshness behavior unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single payment_id parameter is fully documented in the schema with a format example (pay_081234567890). The description only restates 'pelo ID', adding no syntax or meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (consulta) and resource (detalhes e status de uma cobrança pelo ID), making clear this is a single-record lookup rather than a list or creation call. It does not explicitly name how it differs from siblings like get_pix_status or list_payments, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, prerequisites, or alternatives. An agent can infer it is for fetching one charge by ID, but nothing tells it when to prefer this over list_payments or how it relates to get_pix_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pix_statusB
Verifica o status de pagamento de uma cobrança Pix
| Name | Required | Description | Default |
|---|---|---|---|
| payment_id | Yes | Identificador da cobrança Pix no Asaas |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Verifica' implies a read, but it discloses nothing about whether the status is live vs cached, polling expectations, authorization needs, or rate limits for a payment-status endpoint that agents typically poll.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with zero waste. Nothing is padded or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read with full schema coverage, the description is minimally sufficient, but with no output schema it gives no hint about the returned status values, which an agent polling Pix status would benefit from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single payment_id parameter, so the schema fully documents it. The description adds no format or sourcing detail beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Verifica o status de pagamento de uma cobrança Pix'. This is clear and narrower than the sibling get_payment, but it never explicitly names or distinguishes itself from get_payment, leaving mild ambiguity about which one returns status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no reference to alternatives like get_payment or list_payments. The agent must infer usage purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallet_idA
Obtém o walletId da conta Asaas autenticada (necessário para configurar repasses de Split)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden, but this is a zero-parameter read, so the risk surface is small. It implies the account is authenticated and that a walletId is returned, but does not state auth prerequisites or error behavior if the account lacks a wallet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the core action first and the use case in a compact parenthetical. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial zero-param lookup with no output schema, the description suffices: it says what it fetches and why. Minor gap is that the return shape (a bare ID string) is only implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the schema has no semantics to convey. The baseline of 4 applies; the description correctly frames the tool as self-contained on the authenticated account.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource: it retrieves the walletId of the authenticated Asaas account. This is clearly distinguishable from sibling tools like get_account_status or get_pix_status. Lacks only explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical states the concrete purpose: it is needed to configure Split payouts. This gives the agent a clear context for when to call it, though it offers no exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_customersB
Lista e pesquisa clientes cadastrados com paginação (offset/limit)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filtrar por nome do cliente | |
| No | Filtrar por e-mail do cliente | ||
| limit | No | Número máximo de clientes retornados por página (máximo 100, padrão: 25) | |
| offset | No | Elemento inicial da consulta (deslocamento para paginação oficial Asaas, padrão: 0) | |
| cpfCnpj | No | Filtrar por CPF ou CNPJ | |
| externalReference | No | Filtrar pelo identificador externo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. "Lista e pesquisa" implies a non-mutating read, and the pagination mention is useful, but it says nothing about auth/permission requirements, rate limits, default page behavior, or return shape for a 6-parameter list endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It is efficient, though extremely terse given the parameters and lack of annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter list endpoint with no output schema, the description is thin: it does not indicate the response structure, default ordering, or how filters combine. The rich schema compensates for parameter documentation but the description leaves gaps an agent would want filled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters including the offset/limit defaults and maximum. The description's offset/limit reference adds nothing beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair ("Lista e pesquisa" / lists and searches) plus the resource ("clientes cadastrados") and notes pagination scope. An agent can tell it retrieves/filters customers, but the description does not name or distinguish any sibling (e.g. create_customer, list_payments).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives named, and no conditions for choosing this over create_customer or list_payments. The only hint of usage is the parenthetical pagination note, which comes from the schema anyway.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_paymentsB
Lista cobranças com paginação oficial (offset/limit) e filtros por status, cliente e vencimento
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Número máximo de elementos retornados por página (máximo 100, padrão: 25) | |
| offset | No | Elemento inicial da consulta (deslocamento para paginação oficial Asaas, padrão: 0) | |
| status | No | Filtrar por status da cobrança | |
| customer | No | Filtrar cobranças por ID do cliente | |
| dueDate_ge | No | Filtrar cobranças com vencimento maior ou igual a YYYY-MM-DD | |
| dueDate_le | No | Filtrar cobranças com vencimento menor ou igual a YYYY-MM-DD | |
| billingType | No | Filtrar por forma de pagamento | |
| externalReference | No | Filtrar pelo seu identificador externo de cobrança |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose a meaningful behavioral trait – pagination via offset/limit ('paginação oficial') – and implies a read-only listing operation, but it omits auth requirements, default ordering, result size behavior, and any rate-limit context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the operation, the pagination mechanism, and the filter axes with zero filler. Nothing can be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, unannotated, no-output-schema tool, the description is thin: it never touches return shape, ordering, or result completeness. The rich input schema compensates for the parameter side, but the behavioral surface remains underdescribed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly (limits, defaults, date formats, enums). The description adds only a coarse summary of filters and doesn't mention billingType or externalReference, so it earns the baseline 3 rather than more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lista cobranças') plus the operation's shape (pagination with offset/limit and filters). It does not distinguish itself from the sibling get_payment, which is also payment-retrieval, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description enumerates filter dimensions, which hints at when the tool is useful, but gives no explicit guidance on when to use list_payments versus get_payment or simulate_payment, and no prerequisites or exclusions. Only implied usage is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subscriptionsC
Lista as assinaturas ativas e inativas com filtros e paginação
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Número máximo de assinaturas retornadas por página | |
| offset | No | Elemento inicial da consulta (deslocamento para paginação) | |
| status | No | Filtrar por status da assinatura | |
| customer | No | Filtrar por ID do cliente | |
| billingType | No | Filtrar por forma de pagamento |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says only that filters and pagination exist, without stating that the call is non-destructive/read-only, what the pagination defaults or caps are, or what the response contains. For a list tool with zero annotation coverage this leaves real gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with no padding, front-loading the action and resource. It is arguably too terse rather than too long, so it is efficient but under-delivers rather than wastes words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is the only place to convey return shape and safety, and it does not. Five optional parameters are covered by the schema, so the tool is callable, but an agent gets no sense of what a response looks like or how results are ordered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (limit, offset, status, customer, billingType) are already documented in the schema; the description only restates 'filtros e paginação'. Baseline 3 applies since the schema does the heavy lifting and the description adds nothing further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Lista') and resource ('assinaturas') plus scope ('ativas e inativas'), so the agent knows this is a read/list operation. However, it never distinguishes itself from the closely related siblings create_subscription and cancel_subscription, which is the main differentiator an agent needs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no reference to alternatives such as get_payment/list_payments or create_subscription. The agent must infer usage purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refund_paymentC
Realiza o estorno total ou parcial de uma cobrança recebida
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | Valor parcial a estornar (se omitido, estorna o valor total) | |
| payment_id | Yes | Identificador único da cobrança no Asaas | |
| description | No | Motivo ou justificativa do estorno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It implies a destructive, irreversible money movement but says nothing about authorization requirements, reversibility, timing/settlement effects, or what happens to the original charge — significant gaps for a refund operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It states the action and its two modes compactly, though it could carry more context at the same length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive financial mutation with no annotations and no output schema, the description is thin — it omits side effects, partial-refund validation behavior, and error conditions the agent needs to call it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so value, payment_id, and description are fully documented in the schema. The description adds only the total-vs-partial distinction, which is already implied by the optional 'value' parameter; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource (estorno = refund) and distinguishes two modes: total and partial. It is clearly separate from siblings like create_payment or cancel_subscription, though it doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this tool versus alternatives, nor any prerequisite (e.g., the charge must already be received/settled). The word 'recebida' (received) implies a precondition but is never framed as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_paymentA
Simula a confirmação de recebimento de uma cobrança (útil para testes em Sandbox)
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | Valor pago (opcional) | |
| payment_id | Yes | Identificador único da cobrança no Asaas | |
| paymentDate | No | Data do recebimento (formato YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does contribute real behavioral context by flagging the sandbox/test scope, but it omits whether this mutates real payment state, whether it is reversible or idempotent, and any permission requirements — significant gaps for a state-changing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. The purpose and the practical context arrive together, and nothing redundant is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with no annotations and no output schema, the description is minimally adequate: it conveys purpose and sandbox scope but leaves side effects, reversibility, and return behavior unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the three parameters (payment_id, value, paymentDate) is already documented in the schema. The description adds no syntax, format, or defaulting detail beyond that, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: simulating receipt confirmation of a charge (cobrança). An agent can tell it apart from read-only siblings like get_payment, but it never contrasts itself with the nearby write siblings (create_payment, refund_payment), so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical "útil para testes em Sandbox" gives an implied usage context, which is genuinely useful. However, it stops short of when-not guidance: whether this should never be called in production, and how it relates to refund_payment or create_payment, is not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
16 tool updates
v1.0.0- First observed
cancel_subscription - First observed
configure_webhook - First observed
create_customer - First observed
create_payment - First observed
create_pix_qr - First observed
create_subaccount - First observed
create_subscription - First observed
get_account_status - First observed
get_payment - First observed
get_pix_status - First observed
get_wallet_id - First observed
list_customers - First observed
list_payments - First observed
list_subscriptions - First observed
refund_payment - First observed
simulate_payment
TDQS
Scored across 16 tools
Most tools target distinct resources and actions, but get_pix_status and get_payment overlap in checking payment status, and create_pix_qr could be confused with create_payment for Pix charges. Descriptions help clarify, but minor ambiguity remains.
All tools follow a consistent snake_case verb_noun pattern (e.g., create_customer, list_payments, get_pix_status, cancel_subscription). No mixed conventions or vague naming.
16 tools is slightly above the ideal 3-15 range, but reasonable for a payment platform covering customers, payments, subscriptions, subaccounts, and webhooks. Each tool earns its place, though some consolidation could be possible.
Core create/read operations exist for payments and customers, but notable gaps include no update or delete for customers, no get/update for subscriptions, no list/get/update for subaccounts, and no list/delete for webhooks. These omissions could hinder full lifecycle management.
Maintenance
Related MCP Connectors
Digital account and billing on Asaas with the full official REST API v3 (api.asaas.com), balance, ch
Issue registered Brazilian bank slips (boleto) and Pix charges on PagHiper with the official API. Cr
Brazil payments for AI agents — Pix, cards, boleto via Mercado Pago. Never holds funds.
Approval layer for AI agent payments: rules, budgets, human approvals. Sandbox, test credentials.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables integration with Abacate Pay API for managing payments, customers, and billing through AI assistants. Supports multi-tenancy, PIX QR codes, discount coupons, and payment simulation with secure per-request API key authentication.11 npm5MIT
- FlicenseBqualityNot gradedmaintenanceEnables Claude to interact with the Vaultix Payment API for managing charges, customers, refunds, payment links, payouts, and balance transactions. Supports Brazilian payment methods including PIX, card, and boleto payments.32-
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to interact with Conta Azul Financial APIs to manage accounts, balances, and transactions through natural language. It features specialized tools for tracking cash flow, processing payables and receivables, and generating comprehensive financial reports.-
- FlicenseAqualityDmaintenanceEnables AI assistants to interact with Brazilian electronic invoices (NF-e, NFC-e, NFS-e) via Nuvem Fiscal API, including CNPJ lookup, invoice issuance, cancellation, and PDF generation.161-