Skip to main content
Glama
ZuckPay

zuckpay-mcp

Official
by ZuckPay

Servidor MCP oficial da ZuckPay — crie cobranças PIX, SPEI (México) e PayPal, acompanhe vendas no cartão (Stripe e cartão nacional), consulte transações e saldo, e gerencie sua conta (produtos, cursos, assinaturas, infrações, indique&ganhe e mais) direto do seu assistente de IA (Claude Code, Claude Desktop, Cursor e qualquer cliente MCP).

  • Node puro — funciona com npx/node, sem Bun nem build extra.

  • Seguro por padrão — credenciais só via variáveis de ambiente, máscara de segredos em toda saída, saque desabilitado por padrão, dados de cartão jamais trafegam pela IA.

  • 2 dependências de runtime@modelcontextprotocol/sdk e zod.

Tools

Pagamentos

Tool

O que faz

createPixCharge

Cria cobrança PIX (copia-e-cola + QR Code + checkout hospedado). Suporta idempotência, split, webhook e UTMs

getTransactionStatus

Consulta status por transactionId ou pelo seu external_id_client (PIX, SPEI e cartão)

createSpeiCashin

Cria cobrança SPEI em MXN e retorna a CLABE de 18 dígitos (México)

createPayPalOrder

Cria ordem PayPal em 25 moedas e retorna o link de aprovação

capturePayPalOrder

Captura a ordem depois que o pagador aprova

getCardGateways

Mostra os gateways de cartão da conta — Stripe (internacional) e cartão nacional (BRL) — com as chaves públicas

listTransactions

Lista as transações da conta com filtros (status, tipo, método, período) e paginação por cursor

getBalance

Saldos da conta (disponível, bloqueado em liberação, total) e limites de saque

createPixWithdraw

⚠️ Saque PIX — só existe com ZUCKPAY_ENABLE_WITHDRAW=true (veja Segurança)

Sua conta (somente leitura)

Tudo escopado à conta autenticada — uma chave de seller nunca enxerga dado de outro seller, e dados de comprador (nome, e-mail, CPF, telefone) chegam sempre mascarados (jo***@gmail.com, 123.***.***-**).

Tool

O que faz

getSalesToday

Resumo das vendas de hoje: total pago, quantidade, ticket médio, breakdown por método e pendentes

listProducts

Lista seus produtos (nome, preço, status, moeda, métodos de pagamento habilitados)

getProduct

Detalha um produto pelo id

listCourses

Lista seus cursos (área de membros): módulos, aulas e nº de alunos matriculados

listSubscriptions

Assinaturas da conta: produto, status (ativa/cancelada/inativa/pendente), valor, periodicidade

listInfractions

Chargebacks e pedidos de reembolso (Infrações e MED), com status e prazos

getReferralStats

Seu Indique & Ganhe: total de indicados, comissões pendentes/liberadas e histórico

getStore

Sua loja (vitrine): nome, slug, template, status de publicação e domínio

listAcquirerRoutes

Rotas de adquirente disponíveis pra sua conta, com taxa de conversão — as mesmas do painel

listPaymentLinks

Seus links de pagamento (valor, método, views, status)

listIntegrationKeys

Metadados das suas chaves de API (nome, domínio, criação) — nunca o client_secret

listWebhooks

Webhooks configurados na conta (URL, eventos, produtos, status)

Criar/editar/apagar qualquer coisa por aqui não existe ainda — escrita é a próxima fase, sempre atrás de confirmação explícita. Ações sensíveis (revelar/rotacionar chave, excluir produto, publicar loja) ficam só no painel, por design.

Extras: resource zuckpay://docs/api (referência da API + validação do webhook assinado) e prompt criar-cobranca-pix.

Related MCP server: @formacv/mcp

Instalação

Gere suas credenciais no painel ZuckPay em Desenvolvedores → Credenciais API.

Claude Code

claude mcp add zuckpay \
  -e ZUCKPAY_CLIENT_ID=seu_client_id \
  -e ZUCKPAY_CLIENT_SECRET=seu_client_secret \
  -- npx -y zuckpay-mcp

Claude Desktop / Cursor

claude_desktop_config.json (ou .cursor/mcp.json):

{
  "mcpServers": {
    "zuckpay": {
      "command": "npx",
      "args": ["-y", "zuckpay-mcp"],
      "env": {
        "ZUCKPAY_CLIENT_ID": "seu_client_id",
        "ZUCKPAY_CLIENT_SECRET": "seu_client_secret"
      }
    }
  }
}

Variáveis de ambiente

Variável

Obrigatória

Descrição

ZUCKPAY_CLIENT_ID

Client ID da integração

ZUCKPAY_CLIENT_SECRET

Client Secret da integração

ZUCKPAY_ENABLE_WITHDRAW

true habilita a tool de saque (padrão: desabilitada)

ZUCKPAY_BASE_URL

Override da base da API (somente https://; padrão https://www.zuckpay.com.br/conta)

Exemplos de uso

"Cria uma cobrança PIX de R$ 97,00 pro cliente João Silva, CPF 123.456.789-01, joao@email.com, (11) 99999-8888, com ID externo PEDIDO-4512"

"Qual o status da transação do pedido PEDIDO-4512?"

"Cria uma ordem PayPal de US$ 50 pro comprador Mike Ross, mike@email.com"

"Lista minhas vendas de cartão pagas neste mês e diz quanto ainda está em liberação"

"Quanto eu vendi hoje? Divide por método de pagamento"

"Tenho algum chargeback ou pedido de reembolso aberto?"

"Como tá meu Indique & Ganhe? Quanto tenho de comissão pra liberar?"

"Lista minhas assinaturas ativas e me diz qual produto tem mais assinantes"

Cartão: como o MCP se encaixa

O MCP acompanha as vendas de cartão, mas não cria cobrança de cartão — e isso é proposital (veja Segurança):

O que você quer fazer

Como fazer

Cobrar no cartão

Checkout hospedado ou link de pagamento da ZuckPay — o dado do cartão nunca passa pela IA

Ver os gateways de cartão da conta

getCardGateways — Stripe (internacional) e cartão nacional (BRL), com as chaves públicas de tokenização

Conferir se uma venda de cartão foi paga

getTransactionStatus com o transactionId ou o seu external_id_client

Listar as vendas de cartão de um período

listTransactions com payment_method: credit_card

Ver quanto de cartão ainda está em liberação

getBalance — o saldo bloqueado inclui vendas de cartão aguardando o prazo da conta (ex.: D+8); PIX libera em D+0

Por que o MCP não cobra cartão? PCI DSS: número e CVV jamais devem trafegar pelo contexto de um LLM. A tokenização acontece no navegador do pagador, dentro do checkout hospedado — e o MCP entra depois, para consultar status, listar vendas e conferir o saldo.

Segurança

  • Credenciais: aceitas SOMENTE via variáveis de ambiente — nunca por argumento de linha de comando (vazaria na lista de processos) nem por parâmetro de tool. A autenticação vai apenas no header Authorization: Basic, jamais no corpo JSON.

  • Máscara de segredos: toda string que sai do processo (resultado de tool, erro, log em stderr) passa por um redactor que mascara o client_id, o client_secret e a forma base64 de ambos.

  • Saque é opt-in duplo: a tool createPixWithdraw nem sequer é registrada sem ZUCKPAY_ENABLE_WITHDRAW=true; com ela, o schema ainda exige confirm: true e instrui o modelo a confirmar valor, chave e tipo com o usuário humano antes de chamar. Limites: R$ 50,00 a R$ 20.000,00 por saque, e o gateway valida o saldo disponível do vendedor antes de executar.

  • Cartão: a cobrança direta de cartão não existe neste MCP por design — PAN/CVV nunca devem passar pelo contexto de um LLM (PCI DSS). Só as chaves públicas são expostas; a cobrança acontece no checkout hospedado.

  • Sem retry em dinheiro: requisições POST nunca são repetidas automaticamente; somente GET /pix/status retenta uma única vez, e apenas em falha de rede.

  • PII do comprador em barreira dupla: o servidor já devolve nome/e-mail/CPF/telefone mascarados; ainda assim, as tools de conta varrem cada resposta atrás de PII crua (assertNoRawPii) e falham em vez de vazar se o backend algum dia regredir. Campos como refund_token são bloqueados por nome.

  • Validação estrita: toda entrada passa por schemas zod .strict() (campos desconhecidos são rejeitados) antes de qualquer chamada; o corpo enviado à API é montado campo a campo (allowlist).

  • Encontrou uma vulnerabilidade? Veja SECURITY.md.

Webhook assinado (recomendado)

Ao informar urlnoty, seu endpoint recebe o postback de confirmação. Contas com webhook secret recebem os headers:

X-ZuckPay-Timestamp: <unix_ts>
X-ZuckPay-Signature: t=<unix_ts>,v1=<hex>

onde v1 = HMAC-SHA256("<unix_ts>.<body_cru>", secret). Valide sempre sobre o body cru e rejeite timestamps velhos (ex.: > 5 min). Exemplo completo em Node.js e PHP no resource zuckpay://docs/api.

Modo HTTP hospedado (multi-tenant)

Além do stdio, o servidor tem um modo Streamable HTTP stateless pensado para hospedagem (ex.: mcp.zuckpay.com.br): cada seller conecta o próprio cliente MCP na URL e autentica com a própria credencial, sem instalar nada.

npm run build && npm run start:http   # POST /mcp + GET /healthz na porta $PORT (padrão 8080)
  • Autenticação por request: Authorization: Basic base64(client_id:client_secret). Nada de credencial em URL/query, e nenhuma credencial é logada.

  • Stateless de verdade: nenhum estado entre requests → escala horizontal sem sticky session.

  • Endurecimento embutido: rate limit por IP (429 + Retry-After), body máx. 256 KB, timeouts anti-slowloris, X-Content-Type-Options: nosniff, sem CORS.

  • A tool de saque não é exposta no modo hospedado, a menos que o operador do serviço suba com ZUCKPAY_ENABLE_WITHDRAW=true (não recomendado em multi-tenant).

Cliente (ex.: Claude Code):

claude mcp add --transport http zuckpay https://mcp.zuckpay.com.br/mcp \
  --header "Authorization: Basic $(printf 'seu_client_id:seu_client_secret' | base64)"

Variáveis do serviço HTTP: PORT (padrão 8080), MCP_TRUST_PROXY=true (atrás de proxy/Railway), MCP_RATE_LIMIT_PER_MINUTE (padrão 60).

Deploy com Docker: docker build -t zuckpay-mcp . && docker run -p 8080:8080 zuckpay-mcp — imagem alpine com usuário non-root e HEALTHCHECK. Para Railway, o railway.toml já aponta o Dockerfile e o healthcheck.

Desenvolvimento

npm ci
npm run lint && npm run typecheck && npm test
npm run build          # gera dist/index.js (stdio) e dist/http.js (HTTP)
npm run inspector      # debug com o MCP Inspector

Licença

MIT

Available Tools

20 tools
capturePayPalOrderCapturar ordem PayPalA
Idempotent

Captura (efetiva) uma ordem PayPal já aprovada pelo pagador. Chame somente depois que o pagador abriu o link de aprovação e concluiu o fluxo no PayPal. A captura é idempotente do lado do PayPal.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderIdYesID da ordem PayPal retornado por createPayPalOrder

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=false, idempotentHint=true, destructiveHint=false. The description adds that capture is effective after approval and that it is idempotent on PayPal's side, reinforcing these traits. No contradictions, and adds context about required flow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no wasted words. The first states purpose, the second gives usage condition and idempotency. Efficiently front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description covers when to call and idempotency. Could mention the effect on the order or expected return, but it is reasonably complete for this low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with orderId described as the ID returned by createPayPalOrder. The description does not add additional meaning to the parameter beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (capture) and resource (PayPal order already approved). It distinguishes from the sibling createPayPalOrder by specifying it is for already approved orders, providing specific verb+resource+scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states to call only after the payer has opened the approval link and completed the PayPal flow, providing clear context. Also notes idempotency, implying safe retries. Lacks explicit when-not or alternatives, but the condition is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createPayPalOrderCriar ordem PayPalA

Cria uma ordem de pagamento no PayPal via ZuckPay e retorna o link de aprovação para o pagador. Suporta 25 moedas (padrão: BRL). Após o pagador aprovar, use capturePayPalOrder para efetivar.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeYesNome completo do pagador
emailYesE-mail do pagador
valorYesValor da ordem na moeda escolhida (padrão: BRL)
urlnotyNoURL https do seu sistema que receberá o postback quando a ordem for capturada
currencyNoMoeda ISO 4217 (padrão: BRL)
descricaoNoDescrição/motivo do pagamento (até 127 caracteres)
cancel_urlNoURL https para onde o pagador volta se cancelar
return_urlNoURL https para onde o pagador volta após aprovar
external_id_clientNoID externo do seu sistema (ex: ORDER-123). Garante idempotência: repetir o mesmo ID retorna a mesma cobrança pendente.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only and not destructive. Description adds that it returns an approval link and that a subsequent capture step is required. It does not elaborate on side effects, persistence, or rate limits, adding only marginal value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences front-load the main purpose and return value, followed by currency support and next step. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters and no output schema, the description covers the essential two-step flow and mentions the approval link. It could benefit from describing the return structure more explicitly, but overall it is sufficiently complete for a simple payment creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The overall description adds context about currency default (BRL) and the purpose of the return link, but does not explain parameter semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it creates a PayPal order and returns an approval link, specifying integration via ZuckPay. It distinguishes from the sibling capturePayPalOrder by indicating the next step after approval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions when to use (to create an order) and directs to capturePayPalOrder after approval. Does not explicitly state when not to use, but the presence of sibling tools for other payment methods (e.g., createPixCharge, createSpeiCashin) implies context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createPixChargeCriar cobrança PIXB

Cria uma cobrança PIX na ZuckPay e retorna o código copia-e-cola, a imagem do QR Code e o link de checkout hospedado. Suporta idempotência (external_id_client), split de receita entre contas, webhook de confirmação (urlnoty) e parâmetros de rastreio (UTMs). Valor em reais com até 2 casas decimais.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpfYesCPF do pagador (11 dígitos; pontuação é removida automaticamente)
fbcNoParâmetro de rastreio fbc (opcional)
fbpNoParâmetro de rastreio fbp (opcional)
sckNoParâmetro de rastreio sck (opcional)
srcNoParâmetro de rastreio src (opcional)
nomeYesNome completo do pagador
emailYesE-mail do pagador
gclidNoParâmetro de rastreio gclid (opcional)
kclidNoParâmetro de rastreio kclid (opcional)
valorYesValor da cobrança em reais (ex: 49.90). Atenção: algumas adquirentes exigem mínimo de R$ 10,00 — a API recusa se for o caso.
fbclidNoParâmetro de rastreio fbclid (opcional)
gbraidNoParâmetro de rastreio gbraid (opcional)
splitsNoDivisão de receita entre contas ZuckPay (2 a 10 recebedores; soma dos percentuais = 100). Calculada sobre o valor líquido.
ttclidNoParâmetro de rastreio ttclid (opcional)
wbraidNoParâmetro de rastreio wbraid (opcional)
urlnotyNoURL https do seu sistema que receberá o postback (webhook) quando o pagamento for confirmado
click_idNoParâmetro de rastreio click_id (opcional)
telefoneYesTelefone do pagador com DDD (ex: 11999998888)
utm_termNoParâmetro de rastreio utm_term (opcional)
descricaoNoDescrição/motivo do pagamento (até 255 caracteres)
product_idNoID de um produto cadastrado na conta ZuckPay (vincula a transação ao produto)
utm_mediumNoParâmetro de rastreio utm_medium (opcional)
utm_sourceNoParâmetro de rastreio utm_source (opcional)
utm_contentNoParâmetro de rastreio utm_content (opcional)
utm_campaignNoParâmetro de rastreio utm_campaign (opcional)
external_id_clientNoID externo do seu sistema (ex: ORDER-123). Garante idempotência: repetir o mesmo ID retorna a mesma cobrança pendente.

TDQS

B3.2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description claims idempotency support via external_id_client, but annotation 'idempotentHint' is false, creating a contradiction. No other contradictions found, but this is a serious inconsistency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single, front-loaded sentence that efficiently conveys the tool's purpose and key features. It is concise but could be broken into multiple sentences for better readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description partially explains what it returns (code, QR, link) but does not detail the response structure or mention required fields. It covers major features but leaves gaps for a complex tool with 26 parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 parameters. The description adds minimal extra context (e.g., 'Valor em reais com até 2 casas decimais') but does not significantly enhance understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (cria) and resource (cobrança PIX), and specifies the outputs (copia-e-cola, QR code, link de checkout). It clearly distinguishes this as the PIX creation tool among siblings like createSpeiCashin and createPayPalOrder.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for PIX payments but does not explicitly say when to use this tool versus alternatives. It lacks guidance on when not to use it or which sibling tools to prefer in specific contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createSpeiCashinCriar cobrança SPEI (México)A

Cria uma cobrança SPEI em pesos mexicanos (MXN) e retorna a CLABE de 18 dígitos para o pagador transferir de qualquer banco do México. Requer conta ZuckPay com SPEI habilitado. Documento do pagador: RFC ou CURP.

ParametersJSON Schema
NameRequiredDescriptionDefault
nomeYesNome completo do pagador mexicano
emailYesE-mail do pagador
valorYesValor em pesos mexicanos (MXN), mínimo MX$ 5,00. Atenção: a adquirente XPAG exige mínimo de MX$ 20,00 — a API recusa se for o caso.
documentoYesRFC (12–13 caracteres) ou CURP (18 caracteres) do pagador

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation (readOnlyHint=false) and the description confirms it creates a charge and returns a CLABE. It adds the XPAG minimum caveat for the 'valor' parameter, but could further disclose synchronous behavior or post-creation steps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences front-load the core purpose and output, then quickly cover requirements and document details with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameter structure and no output schema, the description adequately covers creation, output, and requirements. It could mention how to use the returned CLABE, but overall is fairly complete for a straightforward creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds minor semantic value by clarifying document types (RFC or CURP) and the XPAG minimum for 'valor', but largely reiterates schema information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Cria uma cobrança SPEI'), the currency (MXN), and the output (18-digit CLABE), distinguishing it from siblings like createPixCharge or createPayPalOrder which target other payment systems.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies prerequisites ('Requer conta ZuckPay com SPEI habilitado') and acceptable documents (RFC or CURP), but does not explicitly direct when to use this tool versus alternatives, although the sibling list provides implicit context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getBalanceConsultar saldo da contaA
Read-only

Consulta os saldos da conta ZuckPay autenticada: disponível para saque, bloqueado (em liberação — PIX libera em D+0; cartão segue o prazo da conta, ex.: D+8) e total, além dos limites e taxa de saque vigentes. Somente leitura, sem parâmetros.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint; the description adds valuable detail about which balances are returned (available, blocked with release timing, total) and that limits/rates are included. This goes beyond annotations to inform the agent of output contents and meaning.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the main action. However, it packs many details (three balance types, two release explanations, limits, rates) which could be slightly overwhelming. Still, it is concise overall and contains no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description fully explains the return information (available, blocked with release specifics, total, limits, rates). It also confirms read-only and no parameters, leaving no ambiguity for a parameterless tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and 100% schema coverage, the description simply confirms 'sem parâmetros'. Per guidelines, baseline for 0 params is 4; the description does not add extra semantic detail beyond stating there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states the tool checks balances of the authenticated ZuckPay account, listing specific components (available, blocked, total) and additional info (limits, rates). The verb 'consulta' and resource 'saldos' are clear. No sibling tool duplicates this purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description notes the tool is read-only and has no parameters, implying it is used solely for balance inquiry. While it doesn't explicitly contrast with siblings, the lack of similar balance tools makes the usage context clear. A higher score would require explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCardGatewaysListar gateways de cartão (chaves públicas)A
Read-only

Lista os gateways de cartão disponíveis na conta ZuckPay (Stripe internacional e/ou cartão nacional BRL) com suas chaves públicas (publishable keys). Somente leitura — a cobrança direta de cartão não é exposta via MCP por segurança (PCI); use o checkout hospedado da ZuckPay.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds value by explaining the security reason for not exposing card charging and specifying that it returns public keys (publishable keys). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence in Portuguese. It includes the core purpose, the type of data returned, and an important security note. Every word serves a purpose, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains what the tool returns (list of gateways with publishable keys). It also provides context about the account and security. For a simple listing tool with no parameters, the description is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the description does not need to explain them. The baseline for 0 parameters is 4, and the description appropriately mentions the account context (ZuckPay) implicitly. No additional parameter info is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists available card gateways with their publishable keys, specifying the scope (ZuckPay account) and types (Stripe international and/or national BRL card). It distinguishes itself from siblings by being a read-only listing tool, not involved in charging or creating payments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the tool is read-only and advises against using it for direct card charging due to PCI security; it directs users to use ZuckPay's hosted checkout instead. This provides clear when-to-use and when-not-to-use guidance, with a named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getProductDetalhar produtoA
Read-only

Retorna os detalhes de um produto específico da conta ZuckPay autenticada, pelo ID. Somente leitura.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID numérico do produto

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds context about the authenticated account scope and explicitly states 'Somente leitura' (read-only), which is consistent. No contradictions. It could mention behavior when ID is not found, but given annotations, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no wasted words. It efficiently conveys the tool's purpose and constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one parameter and no output schema, the description is complete. It covers what the tool does, input, and read-only nature. The annotations complement well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a good description of the 'id' parameter. The description adds no additional parameter meaning beyond 'pelo ID', so it meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retorna os detalhes'), specific resource ('produto específico da conta ZuckPay autenticada'), and method (by ID). It distinguishes from siblings like listProducts which lists all products.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for fetching a single product's details by ID. It does not explicitly mention when not to use or alternatives, but the sibling listProducts provides a clear alternative for listing. Could be improved by stating that this tool is for individual item retrieval.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getReferralStatsIndique e GanheA
Read-only

Estatísticas do programa Indique&Ganhe do seller autenticado: total de indicados, comissões (total/pendente/liberada), lista de indicados e histórico de comissões. Somente leitura, escopado estritamente ao próprio seller — nunca retorna ranking ou dado de outros sellers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds critical behavioral context: strict scoping to the authenticated seller, exclusion of ranking and other sellers' data, and a detailed list of returned fields (total referrals, commissions by status, list, history). This goes beyond what annotations provide and helps the agent understand the exact nature of the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the tool's purpose, output fields, and constraints. It is front-loaded with key information and contains no redundant or unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no inputs and no output schema, so the description must compensate. It fully covers the output by listing the major categories (total, commissions, list of referrers, history) and the scope constraints. This is sufficient for an agent to understand what the tool returns without needing an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so schema coverage is 100%. The description does not need to add parameter information; the baseline score of 4 applies. The description does not mention any inputs, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns referral program statistics for the authenticated seller, listing specific data (totals, commissions breakdown, list of referrers, history). It also distinguishes itself from sibling tools by explicitly stating it is read-only and scoped only to the own seller, never returning ranking or other sellers' data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is read-only and restricted to the own seller. It explicitly states what it does NOT do (never returns ranking or other sellers' data), which helps an agent avoid misuse. However, it does not name specific alternative tools for cases where other sellers' data or rankings are needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getSalesTodayVendas de hojeA
Read-only

Resumo agregado das vendas do dia (horário de Brasília) da conta ZuckPay autenticada: total pago, contagem, ticket médio, breakdown por método de pagamento e total pendente. Somente leitura, não retorna transações individuais nem dado de comprador.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint and openWorldHint. The description adds specificity: read-only nature, timezone (Brasília), and that it returns only aggregate data. This adds value beyond annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose, includes key details, and avoids redundancy. Every word contributes clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description covers the return fields explicitly (total pago, contagem, ticket médio, breakdown, total pendente). It lacks explanation of the exact structure or format, but the listed fields provide sufficient context for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema coverage is 100%. The description explains what the tool returns, fulfilling the need for parameter semantics since there are none to describe.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides an aggregate summary of daily sales (Brasília time) for the authenticated ZuckPay account, specifying included metrics (total paid, count, average ticket, payment method breakdown, pending total) and explicitly excluding individual transactions and buyer data. This distinguishes it from sibling tools like listTransactions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for a quick daily sales overview and explicitly states what it does not return (individual transactions or buyer data), guiding the agent to alternatives. However, it does not explicitly name those alternatives, leaving some inference needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getStoreDetalhar lojaA
Read-only

Retorna os dados da loja (storefront) da conta ZuckPay autenticada: nome, status, slug, domínio, descrição e redes sociais. Somente leitura — não retorna código customizado nem config de pagamento.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and openWorldHint. The description adds that it is read-only ('Somente leitura') and explicitly lists what is not returned (código customizado, config de pagamento), providing behavioral transparency beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The first sentence states the purpose and returned fields; the second adds exclusions. All information is front-loaded and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description bears the burden. It lists return fields and scope (authenticated account). While it omits error conditions, for a simple read-only tool this is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters (schema coverage 100% baseline 4). The description adds meaning by listing the returned data fields, which the input schema cannot convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the verb 'retorna' and resource 'dados da loja' along with a list of specific fields (nome, status, slug, domínio, descrição, redes sociais). It clearly distinguishes from siblings by stating it returns store data, while no other sibling tool does the same.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the tool is for the authenticated ZuckPay account, implying contextual use. However, it does not explicitly state when to use it vs alternatives, but there are no close sibling alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getTransactionStatusConsultar status de transaçãoA
Read-only

Consulta o status de uma transação ZuckPay (PIX, SPEI ou cartão) pelo transactionId OU pelo external_id_client do seu sistema (exatamente um dos dois). Status possíveis: PENDING, PAID, FAILED, EXPIRADO.

ParametersJSON Schema
NameRequiredDescriptionDefault
transactionIdNoID da transação retornado pela ZuckPay na criação da cobrança
externalIdClientNoID externo do SEU sistema informado na criação (external_id_client)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the tool is clearly non-destructive. Description adds value by listing possible statuses and the ID constraint, complementing annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences; first covers purpose and constraints, second enumerates statuses. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description lists possible statuses, giving the agent an expectation. For a simple status check, this is adequate. Could mention other potential return fields, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The description adds the crucial constraint that exactly one parameter must be provided, which is not in the schema constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb ('Consulta'), resource ('status de transação'), and identifiers (transactionId or externalIdClient). It distinguishes from siblings like listTransactions by being a specific lookup tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the constraint that exactly one of the two IDs must be provided. However, no explicit mention of when not to use or alternative tools for listing all transactions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listAcquirerRoutesListar rotas de adquirenteA
Read-only

Lista as rotas de adquirente disponíveis para a conta ZuckPay autenticada (PSP, domínio de checkout, taxa de conversão recente), já filtradas por bloqueios/modo configurados na conta. Somente leitura — nunca retorna credenciais de adquirente.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds value beyond annotations by stating it never returns credentials, is filtered by account config, and lists specific fields. Annotations already indicate readOnly and openWorld, but description enriches with behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with verb and resource. Every sentence provides essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, description fully explains what the tool returns (PSP, domain, rate) and what it doesn't (credentials). For a simple list tool, this is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. Description does not need to add parameter info; baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists acquirer routes for the authenticated account, specifying data types (PSP, checkout domain, conversion rate) and filtering. It distinguishes from siblings like getCardGateways by focusing on route availability and read-only nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides context for when to use (to see available routes for the account) but does not explicitly mention when not to use or alternative tools. However, the filtering and read-only hints give clear usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listCoursesListar cursosA
Read-only

Lista os cursos (Meus Cursos / área de membros) dos quais o seller é dono na conta ZuckPay autenticada, com contagem de módulos/aulas/alunos. Somente leitura — não retorna dados de alunos matriculados.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoQuantidade de cursos por página (1 a 100; padrão 50)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, openWorldHint), the description adds that the tool is read-only and does not return enrolled student data. It provides context about the data it does return (counts). This is useful behavioral information not captured in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences. The first sentence front-loads the main purpose and scope, and the second adds a critical limitation. No redundant or excessive text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one optional parameter, no output schema), the description covers the essential aspects: what is listed, ownership, counts, and exclusions. It could mention pagination or sorting behavior, but the open world hint suggests more data exists, which is not clarified. Still, it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the limit parameter (range, default). The description does not add new meaning to parameters, but the schema coverage is 100%, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists courses owned by the seller in the authenticated account, includes counts of modules/lessons/students, and explicitly excludes student enrollment data. It distinguishes itself from sibling tools like listProducts or listSubscriptions by specifying the resource type and scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing courses but does not provide explicit guidance on when to use this tool versus alternatives. No when-not-to-use or alternative recommendations are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listInfractionsListar infrações e MEDA
Read-only

Lista chargebacks e pedidos de reembolso (Infrações e MED) da conta ZuckPay autenticada. Somente leitura. Documento e e-mail do comprador vêm sempre mascarados; nunca retorna o token de reembolso nem campos internos da triagem por IA.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFiltra por tipo: chargebacks, refund_requests, ou all (ambos, padrão)
limitNoQuantidade por lista (1 a 50; padrão 20)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description confirms this with 'Somente leitura'. It adds specific behavioral details: buyer document and email are always masked, and the token and internal AI triage fields are never returned. This goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two short sentences that convey all essential information without any fluff. It is front-loaded with the main action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, and the description does not detail the return structure or fields. It mentions data that is masked or withheld but lacks full completeness regarding what is returned. For a listing tool, this is a moderate gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add any additional parameter semantics beyond what is already in the input schema; it merely restates the parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The tool name and description clearly indicate it lists chargebacks and refund requests (infractions and MED) from the authenticated ZuckPay account. This distinguishes it from sibling tools like 'listTransactions' and 'getSalesToday', which handle different data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the tool is read-only and lists specific infractions, but does not explicitly compare it to alternatives or provide when-to-use guidance. Usage is implied by the tool's specific function.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listIntegrationKeysListar chaves de integraçãoA
Read-only

Lista os metadados das chaves de integração (API keys) da conta ZuckPay autenticada: nome, domínio, client_id e data de criação. Somente leitura — NUNCA retorna o client_secret. Não existe tool para revelar, criar, rotacionar ou apagar chaves via MCP.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, openWorldHint), the description adds that it never returns client_secret and lists the specific fields returned, enriching behavioral understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that conveys all critical information efficiently without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list tool without output schema, the description provides complete context: input (none), output (specified fields), behavior (read-only, no secret), and tool ecosystem (no key management tools).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With no parameters, the description adds meaning by detailing the output fields (nome, domínio, client_id, data de criação), compensating for absence of output schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists metadata of integration keys (name, domain, client_id, creation date) and explicitly distinguishes from any tool that would reveal secrets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It specifies the tool is read-only, never returns client_secret, and states that no MCP tool exists for revealing, creating, rotating, or deleting keys, providing explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listProductsListar produtosA
Read-only

Lista os produtos cadastrados na conta ZuckPay autenticada (nome, preço, status, tipo). Somente leitura — não cria, edita nem exclui produtos.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoQuantidade de produtos por página (1 a 100; padrão 50)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond annotations by specifying the exact fields returned (name, price, status, type) and the scope (authenticated ZuckPay account). Annotations already provide readOnlyHint and openWorldHint, but the description offers concrete output context without contradicting any annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, front-loaded with purpose and key details. Every word adds value: first sentence lists the resource and returned fields, second sentence clarifies read-only nature. No wasted content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter, the description covers purpose, scope, read-only nature, and output fields. However, it does not explicitly explain pagination behavior (e.g., that 'limit' controls page size) or mention that multiple pages may exist. The schema covers the parameter, but a brief note on pagination would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the 'limit' parameter fully described in the schema (min, max, default). The description does not mention the parameter, but since the schema already provides complete semantics, the description adds no extra parameter meaning. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists registered products from the authenticated ZuckPay account, specifying the included fields (name, price, status, type). It distinguishes itself from the sibling 'getProduct' which likely retrieves a single product, though not explicitly. The read-only clarification further differentiates it from write tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates read-only use for listing products, which implies when to use it, but it does not provide explicit guidance on when not to use it or alternatives (e.g., 'getProduct' for single product). Usage context is implied rather than clearly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listSubscriptionsListar assinaturasA
Read-only

Lista as assinaturas (recorrências) da conta ZuckPay autenticada: produto, status (ativa/cancelada/inativa/pendente), valor, periodicidade e dados do assinante (mascarados). Somente leitura.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoQuantidade por página (1 a 50; padrão 20)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description discloses the read-only nature (matches readOnlyHint annotation) and adds specific behavior: subscriber data is masked. Provides more context than annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence effectively conveys purpose, resource, and returned fields. Could be slightly more structured (e.g., bullet points), but it is concise without being terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with one optional parameter and no output schema, the description covers the returned data and read-only nature. Annotations provide open world hint, making it sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter (limit) has 100% schema coverage with a clear description in the schema. The tool description adds no additional parameter information, so baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool lists subscriptions (recurrences) with specific fields (product, status, value, periodicity, masked subscriber data) and identifies the account context (autenticada ZuckPay). Differentiates from siblings like listTransactions and listProducts by resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description does not explicitly state when to use or when not to use. It implies read-only usage with 'Somente leitura' but lacks guidance on alternatives or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listTransactionsListar transaçõesA
Read-only

Lista as transações da conta ZuckPay autenticada (vendas e saques), da mais recente para a mais antiga, com filtros por status, tipo, método de pagamento, ID externo e período (datas no horário de Brasília). Paginada por cursor: traga uma página por vez (padrão 20, máx 50) e use pagination.next_cursor para avançar — NÃO tente carregar tudo de uma vez.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFiltra por tipo: DEPOSIT (vendas/cobranças) ou WITHDRAW (saques)
limitNoQuantidade por página (1 a 50; padrão 20)
cursorNoCursor opaco retornado em pagination.next_cursor da página anterior
statusNoFiltra por status da transação (ex: PAID, PENDING)
date_toNoData final (YYYY-MM-DD, horário de Brasília, inclusive)
date_fromNoData inicial (YYYY-MM-DD, horário de Brasília, inclusive)
payment_methodNoFiltra por método de pagamento
external_id_clientNoFiltra pelo ID externo do SEU sistema (external_id_client)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds significant behavioral context: ordering (newest first), pagination via cursor with limits, timezone (Brasília), and a strong warning against bulk loading. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is relatively concise (one long sentence) and front-loaded with the core purpose. It efficiently packs ordering, filters, pagination, cursor, timezone, and a warning. Slight improvement possible by breaking into shorter sentences or bullet points, but it remains clear and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters, no required params, 100% schema coverage, no output schema, and 18 sibling tools, the description covers all essential usage aspects: what is listed, ordering, all filter dimensions, pagination mechanics, timezone, and explicit guidance against loading all data at once. Highly complete for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions. The tool description restates the filtering capability (status, type, payment method, external ID, period) but does not add new semantic meaning beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool lists transactions (vendas e saques) from the authenticated ZuckPay account, ordered newest to oldest, with multiple filters. Differentiates from sibling tools like getSalesToday or getTransactionStatus by listing all transactions with pagination and extensive filtering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use cursor pagination, load one page at a time, and not attempt to load all at once. Provides clear usage context (filters, timezone). However, does not explicitly state when to prefer this over sibling tools like getSalesToday (specific focus) or getTransactionStatus (single transaction). A short 'when-to-use' would improve differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listWebhooksListar webhooksA
Read-only

Lista os webhooks configurados na conta ZuckPay autenticada (nome, URL, eventos, status). Somente leitura — criação/exclusão de webhook não está disponível via MCP nesta fase.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint and openWorldHint. The description adds useful context that webhook creation/deletion is not available via MCP at this phase, enhancing behavioral understanding beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no redundant words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description completely covers purpose, scope, limitations, and read-only nature. No gaps for a simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters, so description does not need to add meaning. Baseline score of 4 applies per rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists webhooks configured on the authenticated ZuckPay account, specifying included fields (name, URL, events, status). It differentiates from siblings by noting read-only nature and lack of create/delete capability.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states it is read-only and that creation/deletion is not available, telling the agent when not to use it. Provides clear context but does not name specific alternative tools.

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.

  1. 20 tool updatesv0.3.0
    • First observedcapturePayPalOrder
    • First observedcreatePayPalOrder
    • First observedcreatePixCharge
    • First observedcreateSpeiCashin
    • First observedgetBalance
    • First observedgetCardGateways
    • First observedgetProduct
    • First observedgetReferralStats
    • First observedgetSalesToday
    • First observedgetStore
    • First observedgetTransactionStatus
    • First observedlistAcquirerRoutes
    • First observedlistCourses
    • First observedlistInfractions
    • First observedlistIntegrationKeys
    • First observedlistPaymentLinks
    • First observedlistProducts
    • First observedlistSubscriptions
    • First observedlistTransactions
    • First observedlistWebhooks

TDQS

A3.9/5.0

Scored across 20 tools

Disambiguation5/5

Each tool targets a distinct resource or action (e.g., sales aggregates vs. individual transactions; different charge creation tools for PIX, SPEI, PayPal; separate list/get for products, courses, subscriptions, etc.). There is no ambiguity or overlap in purpose.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in camelCase (e.g., getSalesToday, createPixCharge, listTransactions). The verb always precedes the noun, with no mixing of conventions.

Tool Count4/5

20 tools cover a broad range of payment platform features. While slightly above the typical optimal range (3-15), the scope justifies the count. No tools are redundant; each serves a clear purpose.

Completeness2/5

The tool set is heavily read-only: most resources (products, courses, subscriptions, payment links, webhooks, etc.) lack create/update/delete operations. Only charges (PIX, SPEI, PayPal) can be created. This leaves significant gaps for common workflows like creating a product or managing subscriptions.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers