Skip to main content
Glama
Garu-Pagamentos

garu-mcp

Official

@garuhq/mcp

npm version License: MIT

An MCP server for the Garu payment platform. Create charges, manage customers, and discover products — directly from any MCP client like Claude Desktop, Cursor, or Claude Code.

Features

  • PIX Charges — Create instant PIX charges with auto-generated QR codes for Brazilian real-time payments.

  • Boleto Charges — Generate boleto bancário payment slips.

  • Charge Management — List, retrieve, and refund charges (full or partial).

  • Products — List your seller's products and look them up by UUID — the same UUID accepted by the charge tools.

  • Customers — Create, list, get, update, and remove customers linked to your seller account.

Related MCP server: bepaid-mcp

Setup

Create a Garu account and get your API key at garu.com.br.

Usage

Claude Code

claude mcp add garu -e GARU_API_KEY=sk_live_xxx -- npx -y --package=@garuhq/mcp@latest garu-mcp

Cursor

Open the command palette and choose "Cursor Settings" > "MCP" > "Add new global MCP server".

{
  "mcpServers": {
    "garu": {
      "command": "npx",
      "args": ["-y", "--package=@garuhq/mcp@latest", "garu-mcp"],
      "env": {
        "GARU_API_KEY": "sk_live_xxx"
      }
    }
  }
}

Windsurf

Add to .windsurf/mcp.json:

{
  "mcpServers": {
    "garu": {
      "command": "npx",
      "args": ["-y", "--package=@garuhq/mcp@latest", "garu-mcp"],
      "env": {
        "GARU_API_KEY": "sk_live_xxx"
      }
    }
  }
}

VS Code

Add to .vscode/mcp.json:

{
  "mcpServers": {
    "garu": {
      "command": "npx",
      "args": ["-y", "--package=@garuhq/mcp@latest", "garu-mcp"],
      "env": {
        "GARU_API_KEY": "sk_live_xxx"
      }
    }
  }
}

Claude Desktop

Open Claude Desktop settings > "Developer" tab > "Edit Config".

{
  "mcpServers": {
    "garu": {
      "command": "npx",
      "args": ["-y", "--package=@garuhq/mcp@latest", "garu-mcp"],
      "env": {
        "GARU_API_KEY": "sk_live_xxx"
      }
    }
  }
}

Codex

codex mcp add garu --env GARU_API_KEY=sk_live_xxx -- npx -y --package=@garuhq/mcp@latest garu-mcp

Tools

Products (5 tools)

Tool

Description

list_products

List your seller's products with pagination and search. Each product carries the pixAutomatic flag

get_product

Get a single product by UUID — the identifier accepted by the charge tools. pixAutomatic enables Pix Automático on the public subscription checkout

get_product_portal_config

Read per-product portal customization (B2B2C). Returns null if unset — product falls back to seller-level config

set_product_portal_config

Upsert with merge: only fields provided are written. Pass null on a field to inherit from seller

clear_product_portal_config

Remove the per-product config; product falls back to seller-level config

Portal-config tools accept productId as either the product UUID (preferred — same id returned by list_products) or the legacy numeric id. UUID support added in Garu v0.10.0.

Use list_products to discover the UUID you'll pass to create_pix_charge or create_boleto_charge.

Per-product portal config is the B2B2C primitive: SaaS that models professionals/coaches/instructors as Products under one Seller can give each one custom branding (businessName, primaryColor, logoUrl) and policies on the customer payment page + /minha-area portal — all without fragmenting the seller's accounting.

Charges (5 tools)

Tool

Description

create_pix_charge

Create a PIX charge with QR code

create_boleto_charge

Create a boleto bancário charge

list_charges

List charges with pagination and filters

get_charge

Get charge details by uuid (includes status)

refund_charge

Refund a charge (full or partial, amount in reais)

cancel_charge

Cancel an unpaid charge by uuid

Customers (6 tools)

Tool

Description

create_customer

Create a customer linked to your seller account

list_customers

List customers with search and pagination

get_customer

Get customer details by uuid

update_customer

Update customer information

delete_customer

Remove customer from your seller account

set_customer_billing_email_override

Override the billing-email used for that customer

Scheduled charges (13 tools)

Bill an existing customer on a future date — one-time or recurring with card tokenization or Pix Automático (BACEN auto-debit recurring Pix; recurring + productId only).

Tool

Description

create_scheduled_charge

Schedule a future charge. type='recurring' enables silent-charge of saved card on cycle 2+. methods accepts pix_automatic (Pix Automático — recurring + productId only). Optional maxRecoveryDays (1–365) caps how long past dueDate the recovery sweep keeps auto-billing a missed charge (default 14)

list_scheduled_charges

Paginated list with filters by status, type, due-date range, customer

get_scheduled_charge

Detail bundle: charge + event timeline + linked transactions

mark_paid_scheduled_charge

Mark a cycle paid (off-Garu reconciliation)

charge_now_scheduled_charge

Force-bill the current cycle now instead of waiting for the due date (same dispatch as the daily cron). Idempotent — reports already_sent rather than re-charging

postpone_scheduled_charge

Move next due date forward

pause_scheduled_charge / resume_scheduled_charge

Suspend / re-enable a series

cancel_recurrence_scheduled_charge

Hard-stop future cycles (recurring only)

cancel_at_period_end_scheduled_charge

Stripe-style soft-cancel; reversible

change_scheduled_charge_payment_method

Swap the saved card

clear_scheduled_charge_payment_method

Remove saved card; future cycles email-with-link

list_scheduled_charge_attempts

Per-attempt billing log (v0.8.2). Each row carries the canonical failureCode for declines — use this to debug recurring billing failures without joining Transactions

Resources

  • garu://docs/quickstart — Getting started guide

  • garu://docs/openapi — Link to the OpenAPI spec

Environment Variables

  • GARU_API_KEY — Your Garu API key (required). Get yours at garu.com.br.

Local Development

  1. Clone and build:

git clone https://github.com/Garu-Pagamentos/garu-mcp.git
npm install
npm run build
  1. To use the local build, replace the npx command with the path to your local build:

Claude Code:

claude mcp add garu -e GARU_API_KEY=sk_live_xxx -- node /absolute/path/to/garu-mcp/dist/index.js

Cursor / VS Code / Windsurf / Claude Desktop:

{
  "mcpServers": {
    "garu": {
      "command": "node",
      "args": ["/absolute/path/to/garu-mcp/dist/index.js"],
      "env": {
        "GARU_API_KEY": "sk_live_xxx"
      }
    }
  }
}
  1. Run tests:

npm test

License

MIT

Available Tools

37 tools
cancel_chargeB

Cancel an unpaid charge by its uuid.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesCharge uuid to cancel

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It only says 'Cancel,' implying a mutation, but does not disclose side effects (e.g., irreversibility), required permissions, or idempotency. The behavior is minimally implied but not explicitly stated.

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, concise sentence with no superfluous words. It front-loads the purpose and is efficiently structured.

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 the simple tool (one parameter, no output schema), the description covers the basic action. However, it lacks behavioral and usage context, which would be helpful for a cancellation operation. It is minimally 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 has 100% coverage with a clear description for the 'uuid' parameter. The description merely restates that the charge is canceled via its uuid, adding no new semantics beyond the schema. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Cancel'), the target ('unpaid charge'), and the identifier ('uuid'). It distinguishes the tool from siblings like 'refund_charge' (for paid charges) and 'list_charges' (for listing), though it does not explicitly contrast them.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., refund_charge) or when not to use it. No context about prerequisites, constraints, or preconditions like requiring the charge to be unpaid.

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

cancel_recurrence_scheduled_chargeA

Stop future cycles for a recurring scheduled charge. The currently in-flight cycle (if any) remains active until paid, postponed, or marked-paid; only after that resolves does the series flip to recurrence_canceled. Final — use a new series to restart. Recurring-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesScheduled charge ID
reasonNoFree-form reason for the audit log

TDQS

A4.1/5.0
Behavior4/5

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

Discloses key behaviors: in-flight cycle continues, series flips to recurrence_canceled after resolution, and tool is recurring-only. Without annotations, this provides valuable behavioral context beyond the schema.

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-loaded with main action. No wasted words; every sentence adds value.

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?

Covers core behavior but lacks error conditions, prerequisites (e.g., charge must be recurring and not already canceled), and return value (no output schema). Adequate but not fully comprehensive.

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 descriptions for both id and reason. Description adds no additional semantic detail beyond what the schema already provides, so 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?

Description clearly states verb (stop future cycles) and resource (recurring scheduled charge). The phrase 'Final — use a new series to restart' and 'Recurring-only' distinguishes it from siblings like pause_scheduled_charge or set_cancel_at_period_end.

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?

Explains that in-flight cycle remains active until resolved, providing timing context. The 'Final' remark implies permanent cancellation, but does not explicitly compare to alternatives like pause_scheduled_charge or set_cancel_at_period_end.

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

change_scheduled_charge_payment_methodA

Swap the saved card on a recurring series. The new PaymentMethod must belong to the same customerId. Future cycles silent-charge the new card; the in-flight cycle is not retroactively rebound.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesScheduled charge ID
paymentMethodIdYesPaymentMethod id to bind. Must belong to the same customerId.

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description fully covers behavioral traits: it describes the swap action, the customerId constraint, and the differential treatment of future vs. in-flight cycles entirely. No contradictions present.

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 two sentences long, front-loaded with the primary action, and every sentence adds value. No unnecessary words or repetition.

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 tool with two parameters and no output schema, the description fully covers what the tool does, its constraints, and its effect on different cycles. No gaps are evident.

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?

The description adds meaning beyond the input schema by explaining the overall action ('swap') and the behavioral effects on future and current cycles. While the schema covers the parameters adequately, the description provides context that is not present in 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 explicitly states 'Swap the saved card on a recurring series', using a specific verb and resource that clearly distinguishes it from sibling tools like 'clear_scheduled_charge_payment_method' which removes the payment method.

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 on when to use the tool by specifying constraints ('must belong to the same customerId') and behavioral effects on future and in-flight cycles. However, it does not explicitly contrast with alternative sibling tools.

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

charge_now_scheduled_chargeA

Force-bill the current cycle right now instead of waiting for its due date. Runs the same dispatch the daily billing cron would: customer email/notification + outbound webhook + timeline event. Allowed only from a billable status (scheduled / due_today); a recurring series must also have an open cycle (otherwise the gateway returns 400). IDEMPOTENT — NOT a re-charge: if this cycle's d-day was already dispatched it reports outcome 'already_sent' and does nothing, so retries are safe and never double-bill. Read the returned outcome ('dispatched' | 'already_sent' | 'not_sent' | 'failed'), the optional reason (e.g. no_email, no_saved_payment_method, card_expired, or a gateway decline code), and the pt-BR message to decide what to tell the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesScheduled charge ID

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description fully discloses behavioral traits: idempotency (not a re-charge), outcome 'already_sent' prevents double-billing, and the actions performed (email, webhook, timeline event). It also lists possible outcomes and reasons, providing complete transparency.

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 front-loaded with the main action and each sentence adds value. While it is dense, it is not overly verbose for the amount of information conveyed. A slight trim could improve conciseness, but it remains efficient.

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 thoroughly explains the return values (outcome, reason, message), prerequisites (billable status), and side effects. It covers all necessary context for an agent to use the tool 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?

The schema covers 100% of parameters with a description for 'id'. The tool description does not add additional meaning beyond what the schema provides, hence 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 tool force-bills the current cycle immediately, using specific verbs ('force-bill') and resource ('current cycle'). It distinguishes from sibling tools like postpone_scheduled_charge and pause_scheduled_charge by highlighting its unique function of immediate billing.

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 explicitly states allowed statuses ('scheduled / due_today') and the requirement for an open cycle in recurring series. It also explains when it does nothing (if already dispatched) and that retries are safe. However, it does not explicitly mention when not to use it or provide alternative tools, but the conditions are clear.

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

clear_product_portal_configA

Remove the per-product portal customization. The product falls back to the seller-level portal config. Returns { removed: true } when a row was deleted, { removed: false } when there was nothing to remove.

ParametersJSON Schema
NameRequiredDescriptionDefault
productIdYesProduct identifier — accepts the UUID (preferred — same id returned by list_products and webhook payloads) or the legacy positive integer id. UUID support added in Garu v0.10.0.

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description takes on the full burden. It explains that the product falls back to seller-level config, and specifies the return values for both deletion and no-op cases. This adequately discloses the tool's behavior.

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 short, front-loaded sentences. Every sentence adds value with no redundant or extraneous information. Excellent conciseness.

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 that there is only one parameter, no output schema, and no annotations, the description covers the core operation, fallback behavior, and return values. It lacks explicit mention of error conditions or permissions, but is mostly complete for a simple deletion 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?

There is only one parameter (productId), and the schema description already covers its accepted formats (UUID or legacy integer) with 100% coverage. The tool description does not add additional meaning beyond what the schema provides, so a 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 verb 'Remove' and the resource 'per-product portal customization', and explains the fallback behavior. This distinguishes it from sibling tools like get_product_portal_config and set_product_portal_config.

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 the tool is used to reset customization, but it does not explicitly state when to use it versus alternatives, nor mention when not to use it. No exclusions or context are provided.

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

clear_scheduled_charge_payment_methodA

Clear the saved card on a recurring series. Future cycles fall back to the email-with-link flow so the customer can re-enter card details or pay via PIX/Boleto.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesScheduled charge ID

TDQS

A3.7/5.0
Behavior3/5

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

Without annotations, the description carries the burden. It discloses a key behavioral effect (future cycles fall back to email-link flow), but omits expected side effects, permission requirements, or reversibility. Reasonable but not exhaustive.

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 core action and consequence are presented upfront. Ideal length for a simple tool.

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 and simple input, the description adequately explains the tool's purpose and fallout. However, it lacks detail on response format or error handling, which would be expected for a mutation 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 coverage, the description adds no further detail about the 'id' parameter beyond what the schema already provides. It correctly implies which entity is affected but does not enrich parameter semantics.

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 verb 'clear' and the resource 'saved card on a recurring series'. It distinguishes from sibling tools like 'change_scheduled_charge_payment_method' by focusing on removal vs modification.

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 removing a saved card to allow fallback flows, but does not explicitly state when to use vs alternatives (e.g., 'change_scheduled_charge_payment_method'), nor does it mention prerequisites or contraindications.

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

create_boleto_chargeB

Create a boleto bancario charge. Returns a bank slip line for payment.

ParametersJSON Schema
NameRequiredDescriptionDefault
customerYes
productIdYesProduct UUID
additionalInfoNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It states that a bank slip line is returned but fails to disclose whether the charge is immediately created, how payment confirmation works, authentication needs, or error scenarios. For a creation tool, these gaps are significant.

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 very concise at two sentences. However, it omits important context about parameters and behavior, making it less valuable than it could be while still being brief.

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?

With no output schema and minimal annotations, the description provides only the barest outline. It explains the return value but not how to use the return or handle errors. For a tool with 3 parameters and a nested object, completeness is lacking.

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

Parameters2/5

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

Schema coverage is only 33%, and the description adds no parameter guidance beyond what the schema provides. Many fields in the nested customer object lack descriptions, and the tool's purpose does not explain how parameters like productId or additionalInfo affect the charge.

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 identifies the tool as creating a boleto bancario charge and distinguishes it from siblings like create_pix_charge or scheduled charge operations. The verb 'create' and resource 'boleto bancario charge' are specific.

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?

No explicit guidance on when to use this tool versus alternatives. While the name and description imply it's for boleto payments, there is no mention of prerequisites, exclusions, or comparison to similar tools like create_pix_charge or scheduled charges.

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

create_customerC

Create a customer and link to the current seller.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
nameYesCustomer full name
emailYesCustomer email
phoneYesPhone with area code, 10-11 digits
stateNo2-letter state code, e.g. SP
numberNo
streetNo
zipCodeNoZIP code, 8 digits
documentYesCPF (11 digits) or CNPJ (14 digits)
complementNo
personTypeYesPerson type
neighborhoodNo

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states creation and linking, but omits side effects, authentication needs, idempotency, or error behavior. The lack of detail is a significant gap for a tool with 12 parameters.

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

Conciseness3/5

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

The description is very concise (one sentence), but it lacks structure and fails to provide necessary context. While brevity is positive, it sacrifices completeness.

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

Completeness1/5

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

Given the tool's complexity (12 parameters, no output schema, no annotations), the description is severely incomplete. It does not explain return format, validation rules, error handling, or relationship with other objects (e.g., seller context). The agent would lack critical information for correct invocation.

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

Parameters2/5

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

Schema description coverage is 58%, meaning some parameters already have descriptions. However, the tool description adds no additional semantic meaning, such as interdependencies, format constraints beyond the schema, or which parameters are required. It does not compensate for the 42% of parameters lacking schema descriptions.

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

Purpose4/5

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

The description clearly states the action (create) and the resource (customer), and adds the context of linking to the current seller. This distinguishes it from siblings like update_customer or get_customer, though the seller linking is not further explained.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as update_customer or list_customers. The description does not mention prerequisites or scenarios where creation is appropriate.

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

create_pix_chargeA

Create a PIX charge. Returns a QR code for the customer to pay.

ParametersJSON Schema
NameRequiredDescriptionDefault
customerYes
productIdYesProduct UUID
additionalInfoNoFree-form metadata

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It mentions that a QR code is returned, but it does not disclose side effects (e.g., idempotency, rate limits, required authentication), or any destructive potential inherent in creating a charge. The description is insufficient for a tool with no 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: two sentences that state the purpose and key output. It is front-loaded and contains no filler. Every word is meaningful and earns its place, making it easy for an AI agent to quickly understand the tool's function.

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?

No output schema is provided, so the description must explain the return value. It mentions the QR code but does not describe the overall charge object returned (e.g., charge ID, status). Given the tool creates a charge, additional details about the response structure would improve completeness, but the description covers the primary output.

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 schema description coverage at 67%, the baseline is 3. The description adds no information about parameters beyond what the schema already provides. It does not explain the purpose of productId or customer, nor does it clarify the structure of the customer object. The schema covers most parameter details, so the description does not detract but also does not add value.

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 verb 'Create' and the resource 'PIX charge', which immediately distinguishes it from sibling tools like create_boleto_charge that create a different payment method. It also specifies that it returns a QR code, adding valuable context about the tool's outcome.

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 does not explicitly state when to use this tool versus alternatives like create_boleto_charge. It implies usage when a PIX charge is desired, but lacks guidance on prerequisites or situations where this tool should not be used. The name and context provide some differentiation, but explicit guidelines are missing.

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

create_productA

Create a product for the authenticated seller. Returns the created product, whose UUID is the same identifier accepted by create_pix_charge / create_boleto_charge. value is in decimal BRL / reais (e.g. 29.90), NOT centavos. Setting pixAutomatic: true exposes Pix Automático (BACEN auto-debit recurring Pix) on the subscription checkout. Pass idempotencyKey to make a retry across process restarts safe — the backend returns the original product instead of creating a duplicate.

ParametersJSON Schema
NameRequiredDescriptionDefault
pixNoOffer PIX at checkout.
nameYesProduct name (required).
tagsNoFree-form tags.
imageNoHTTPS URL of the product cover image.
valueNoPrice in decimal BRL / reais (e.g. R$29,90 → 29.90) — NOT centavos. Products store the price in reais, the same as the API and dashboard.
boletoNoOffer Boleto at checkout.
returnUrlNoURL the buyer returns to after a successful payment.
unitLabelNoPer-unit label shown on the checkout (e.g. 'seat').
creditCardNoOffer credit card at checkout.
descriptionNoProduct description.
installmentsNoMax number of installments offered on credit card.
pixAutomaticNoWhen true, exposes Pix Automático (BACEN auto-debit recurring Pix) on the subscription checkout. Only the subscription checkout mode reads it.
idempotencyKeyNoIdempotency key for safe retries. Defaults to a generated UUIDv4.
isSubscriptionNoMark the product as a subscription (recurring).
subscriptionTypeNoSubscription cadence label (e.g. 'monthly').
returnUrlButtonTextNoLabel for the return-URL button on the success page.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description explains key behaviors: the product UUID is reused by other charges, value is in decimal BRL, pixAutomatic only affects subscription checkouts, and idempotency key ensures safe retries. It does not mention permissions or error handling.

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 dense paragraph but is front-loaded with purpose and efficiently conveys key points. It could benefit from slight restructuring (e.g., bullet points for clarity), but every sentence adds value.

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 16 parameters (all documented in schema) and no output schema, the description covers critical behavioral details like value units and idempotency. It does not describe return structure or error conditions, but these are secondary to the main purpose.

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 coverage is 100%, so the description adds value by explaining the value unit (decimal BRL), the subscription-specific use of pixAutomatic, and the retry safety of idempotencyKey, which are not obvious from schema descriptions alone.

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 'Create a product for the authenticated seller', specifying the action and target. It distinguishes from siblings like create_pix_charge and create_boleto_charge by focusing on product creation.

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 for when to use the tool, including value format, idempotency, and pixAutomatic behavior. However, it does not explicitly state when NOT to use it or list alternative tools for similar tasks.

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

create_scheduled_chargeA

Schedule a future charge for an existing customer. Use list_customers first to find the customerId. type='one_time' is the simple case (PIX/Boleto). type='recurring' takes a recurrence config and silent-charges the saved card on every cycle past the first. Card method is recurring-only and requires productId. Pix Automático (methods: ['pix_automatic']) is BACEN auto-debit recurring Pix — the customer authorizes once and later cycles debit silently; it is recurring-only and requires productId. Optional trialDays (1..365, recurring-only) rebases cycle 1 to today + N days and emits customer.trial_started immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesSchedule type. 'recurring' requires a recurrence block; 'one_time' must omit it.
amountYesDecimal BRL (e.g. 297.50). Always pass decimals, never centavos.
dueDateYesYYYY-MM-DD in São Paulo time. Must be today or future.
methodsYesPayment methods to offer. 'card' is recurring-only and requires productId. 'pix_automatic' is Pix Automático (BACEN auto-debit recurring Pix): the customer authorizes once, then later cycles debit silently — only valid when type='recurring' and productId is set.
metadataNoFree-form JSON. Stored as JSONB; not interpreted by Garu.
productIdNoRequired when methods includes 'card' or 'pix_automatic'. Optional otherwise.
trialDaysNoFree-trial duration in days (1..365). Recurring-only. When set, cycle 1 is rebased to today + N days and customer.trial_started fires immediately.
customerIdYesCustomer ID (must already be linked to the seller)
recurrenceNoCadence for type='recurring'. endsAfter and endsOn are mutually exclusive.
descriptionNoFree-form text shown on the customer email and payment page
maxRecoveryDaysNoMax days past dueDate the daily recovery sweep will still auto-bill a missed charge (1..365). Omit for the system default (14).
externalReferenceNoSeller-controlled identifier (deduping, reconciliation).

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description must cover behavioral traits. It explains mutation (schedules charge), silent charges for recurring, trialDays rebasing cycle, and recovery sweep. Lacks mention of webhook events or idempotency but is sufficient.

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?

Long but information-dense description. Front-loaded with purpose. Could benefit from bullet points or clearer separation of scenarios, but remains effective and avoids redundancy.

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?

With 12 parameters, complex logic (recurring vs one_time, multiple methods), and no output schema, description covers many nuances (trialDays, recovery, silent charges). Does not explicitly mention return value, but sufficiently complete for agent invocation.

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 coverage is 100% (baseline 3). Description adds value by linking methods to type (e.g., 'pix_automatic' is recurring-only), explaining trialDays behavior, and clarifying productId requirement. Goes beyond 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?

Description explicitly states 'Schedule a future charge for an existing customer' with clear differentiation between one_time and recurring types, and references sibling tool list_customers.

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?

Provides guidance to use list_customers first, explains when each payment method (pix, boleto, card, pix_automatic) is appropriate, and clarifies constraints like 'Card method is recurring-only'. Does not explicitly enumerate when not to use but context is clear.

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

delete_customerA

Remove a customer from the current seller. Does not delete the customer globally.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCustomer ID to remove

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the deletion is scoped to the current seller, which is key. However, it lacks details on side effects (e.g., impact on associated data), reversibility, or prerequisites. The minimal disclosure is adequate for a simple action but could be more comprehensive.

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, zero waste. The key point is front-loaded and the clarification is in the second sentence. Every word earns its place.

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 (single parameter, no output schema), the description provides the essential scope distinction. It could mention irreversibility or effect on related data, but for a straightforward deletion tool, 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 schema already describes the 'id' parameter as 'Customer ID to remove' (100% coverage). The description adds no additional meaning beyond the schema, so it is neither deficient nor additive.

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 ('Remove a customer') and resource ('from the current seller'), distinguishing it from a global delete. This provides a specific and unambiguous 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?

The description implies that this tool should be used for local removal only and not for global deletion. While it provides useful context, it does not explicitly state when not to use it or mention alternatives, but the inference is clear given the sibling tools.

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

get_chargeA

Get details of a specific charge by its uuid.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesCharge uuid

TDQS

A3.5/5.0
Behavior3/5

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

The description indicates a read-only operation (get details), but with no annotations, it does not provide additional behavioral context such as authentication requirements, rate limits, or what 'details' include. It is adequate for a simple retrieval but lacks depth.

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 clear sentence with no unnecessary words. It is front-loaded with the purpose and fits within a line.

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 the tool is a simple retrieval with one parameter and no output schema, the description is minimally adequate. It does not specify return fields, error handling, or pagination, leaving some gaps for an agent to infer.

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 uuid described as 'Charge uuid'. The description adds 'by its uuid', which is redundant with the schema. No additional parameter semantics are provided, 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 tool retrieves details of a specific charge by its uuid, with a specific verb (get) and resource (charge). It distinguishes from sibling tools like list_charges (lists multiple), cancel_charge (cancels), and refund_charge (refunds).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like list_charges or other charge retrieval tools. The description implies it's for a single charge by UUID but does not explain when to prefer it over others.

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

get_customerA

Get details of a specific customer by numeric ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCustomer ID

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description must carry behavioral disclosure. States it returns 'details' but doesn't mention side effects (none expected) or specific behaviors like idempotency or caching. Adequate for a simple read, but not rich.

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?

Single sentence with no unnecessary words. Front-loaded with verb and resource. Every word adds value.

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

Completeness2/5

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

No output schema, yet description doesn't explain what 'details' are returned. For a get tool, knowing the structure or field list is helpful. Other get tools in siblings might have similar gaps, but this tool could benefit from a brief summary of response fields.

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 one parameter. Description adds that ID is 'numeric', aligning with schema type number. No additional meaning beyond schema. 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?

Description clearly states verb 'Get', resource 'details of a specific customer', and key constraint 'by numeric ID'. It distinguishes from siblings like list_customers (multiple customers) and update_customer (update operation).

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?

No explicit when-to-use or when-not-to-use guidance. Implies usage for fetching a known customer by ID, but lacks comparison with alternatives like list_customers or update_customer. Context signals show many customer-related tools; description could mention when to use this vs others.

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

get_integration_setupA

Return the steps and dashboard URLs an agent needs to integrate an application with Garu: where to create an API key, where to register a webhook endpoint, and how to verify webhook signatures with the SDK. Garu does not expose programmatic endpoints for these — both have to be done in the dashboard at https://garu.com.br/configuracoes/desenvolvedores. Call this whenever the user asks how to wire up Garu in their app, set up the API key, or receive webhooks.

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?

No annotations provided, but the description discloses key behavioral traits: Garu has no programmatic endpoints for these actions, so the tool only returns instructions and URLs. It also mentions the SDK for signature verification.

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 concise yet comprehensive, with every sentence providing value. It front-loads the purpose and includes usage guidance without unnecessary detail.

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 is complete. It covers the tool's purpose, usage context, and limitations, making it fully self-contained 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% (since there are none). The description adds meaningful context about what the tool returns, fulfilling the baseline expectation.

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 what the tool does: return integration steps and dashboard URLs for setting up API keys, webhooks, and signature verification. It distinguishes itself from sibling tools that deal with charges and customers.

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 specifies when to call this tool: 'whenever the user asks how to wire up Garu in their app, set up the API key, or receive webhooks.' No alternative tools are mentioned, but the context is clear.

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

get_productA

Get details of a specific product by UUID. Use this to inspect a product before creating a charge. The pixAutomatic boolean indicates whether Pix Automático (BACEN auto-debit recurring Pix) is enabled on the public subscription checkout for this product.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesProduct UUID

TDQS

A4.2/5.0
Behavior3/5

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

No annotations present, so description carries full burden. Describes the operation as retrieving details and explains the 'pixAutomatic' field, but does not explicitly state that it is a read-only operation or discuss any side effects, permissions, or rate limits.

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 purpose, the second provides usage guidance and a notable field explanation. Well front-loaded and efficient.

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 low complexity (one parameter, no output schema), the description adequately covers purpose, usage context, and a key field. Could briefly mention the return type (product object) but is otherwise complete for a simple retrieval 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?

Schema has 100% coverage for the single uuid parameter. The description adds meaningful context by explaining the purpose ('inspect before charge') and describing the 'pixAutomatic' boolean, which goes beyond the schema's brief 'Product UUID' description.

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 'Get details of a specific product by UUID', providing a specific verb ('get') and resource ('product'). Distinguishes from siblings like list_products and get_product_portal_config by focusing on a single product retrieval.

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 advises using this tool before creating a charge, giving a concrete use case. Does not explicitly mention when not to use it or alternatives, but the context is clear.

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

get_product_portal_configA

Get the per-product portal customization (business name, logo, primary color, cancellation policy, custom welcome / success / cancellation messages). Returns null when no per-product config exists — the product falls back to the seller-level portal config. Used by B2B2C platforms that model their professionals/coaches as Products under a single seller.

ParametersJSON Schema
NameRequiredDescriptionDefault
productIdYesProduct identifier — accepts the UUID (preferred — same id returned by list_products and webhook payloads) or the legacy positive integer id. UUID support added in Garu v0.10.0.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description must bear full responsibility. It discloses the null return and fallback behavior, which is the key behavioral trait. For a simple read operation, this is sufficient. No side effects or authorization needs are mentioned, but that is typical for getters.

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: first states what the tool retrieves, second explains null behavior and use case. No filler, every sentence adds value. Well 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 single parameter with thorough schema documentation, the description adequately covers the null return and context. Lacks explanation for invalid IDs or error scenarios, but for a simple getter this is acceptable.

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 detailed description of the productId parameter (UUID vs legacy, version info). The description adds no additional meaning beyond what the schema provides, so 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?

The description clearly states 'Get the per-product portal customization' and lists specific fields (business name, logo, etc.). It distinguishes from siblings like set_product_portal_config and clear_product_portal_config by being the retrieval counterpart. The B2B2C use case is mentioned, making the purpose unambiguous.

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 explains the null return behavior and fallback to seller-level config, giving context on when to expect values. It also notes the intended audience (B2B2C platforms). However, it does not explicitly state when not to use this tool or suggest alternatives, but the context implies it's the primary getter.

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

get_scheduled_chargeA

Get a scheduled charge by ID, bundled with its event timeline and any linked Garu transactions. The response shape is { charge, events, transactions }. Unit caveat: charge.amount is decimal BRL (e.g. 297.50) but transactions[].value is centavos (BRL × 100, e.g. 29750). Convert before comparing.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesScheduled charge ID, e.g. sch_abc123

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description fully carries the burden. It discloses the response shape and a crucial unit conversion caveat (charge.amount in BRL decimal vs transactions[].value in centavos), aiding correct interpretation.

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 efficient sentences: the first states purpose and response shape, the second provides a critical unit caveat. No redundant 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 the simple tool (one param, no output schema), the description covers purpose, response structure, and an important unit conversion. It could mention possible error conditions, but for a read operation this is sufficient.

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 the schema already describes 'id' as a string. The description adds an example ('sch_abc123') but no additional meaning beyond that.

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 (Get), the resource (a scheduled charge by ID), and specifies the response includes event timeline and linked Garu transactions, distinguishing it from siblings like list_scheduled_charges.

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 retrieving a single scheduled charge with full details, but does not explicitly state when not to use it or provide direct comparisons to sibling tools.

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

get_webhook_eventA

Fetch one webhook event by numeric id. Returns the full payload, the embedded endpoint snapshot, the most recent response status/body, and the retry schedule. Use this to drill into why a delivery is failing.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWebhook event id

TDQS

A4/5.0
Behavior3/5

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 discloses the returned data (payload, snapshot, response, retry schedule) but does not mention behavior details like error handling, required permissions, or idempotency. For a simple read operation, the description is adequate but not rich.

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 two sentences with zero waste: the first states the action and returns, the second provides a clear usage case. It is 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?

For a single-parameter fetch tool without output schema, the description lists all expected return components (payload, snapshot, response, retry schedule). The sibling context (list and retry) supports its role. Some missing context like pagination or error states, but overall complete enough.

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% (only one parameter 'id' with description). The description adds minimal value beyond 'by numeric id,' not elaborating on the id's meaning or format. Baseline 3 is appropriate as the schema already documents the parameter sufficiently.

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 starts with 'Fetch one webhook event by numeric id,' providing a specific verb and resource. It further details the return values (full payload, endpoint snapshot, response status/body, retry schedule), clearly distinguishing it from sibling tools like list_webhook_events (list) and retry_webhook_event (retry).

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 ends with 'Use this to drill into why a delivery is failing,' explicitly stating when to use the tool (investigating delivery failures). However, it does not mention when not to use it or explicitly compare to alternatives, though the sibling list suggests retry_webhook_event as a follow-up.

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

list_chargesA

List charges for the authenticated seller with pagination and filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, default 1
limitNoItems per page, default 20
searchNoSearch by customer name, email, or document
statusNoFilter by status: pending, authorized, paid, failed, refunded, etc.
productIdNoFilter by product UUID
paymentMethodNoFilter: pix, boleto, creditCard

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description bears full responsibility. It states pagination and filters but does not disclose read-only behavior, performance implications, or authentication requirements beyond 'authenticated seller'.

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, well-structured sentence that is front-loaded and contains no extraneous information. Every word contributes to understanding.

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 6 parameters, no output schema, and no annotations, the description omits details about return format, sorting, or pagination metadata. It provides a basic understanding but leaves operational gaps.

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 covers all 6 parameters with descriptions (100% coverage). The description adds no new meaning beyond the phrase 'pagination and filters,' which summarizes existing schema details.

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 specifies the action (list), resource (charges), and scope (authenticated seller with pagination and filters). It effectively distinguishes from sibling tools like get_charge or create_charge.

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 charges but provides no explicit guidance on when to use this tool versus alternatives such as list_scheduled_charges or list_customers. No exclusion criteria are given.

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

list_customersA

List customers for the authenticated seller with pagination, search, and an optional 'overdue' filter that surfaces customers with at least one overdue scheduled charge.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, default 1
limitNoItems per page, default 20
searchNoSearch by name, email, or document
statusNoFilter to customers with at least one overdue scheduled charge.

TDQS

A4/5.0
Behavior4/5

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 discloses pagination, search, and the overdue filter, which are key behavioral traits. It implies read-only operation, which is consistent. However, it omits details like default sorting or output structure.

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 front-loads the action and includes all key aspects (pagination, search, overdue filter) without any redundant or 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?

Given the lack of annotations and output schema, the description adequately covers the tool's purpose and key features. It is sufficiently complete for a simple listing tool with well-documented schema parameters, but could benefit from mentioning output format or ordering.

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% (all 4 parameters are described in the schema). The description reinforces these features but does not add semantic meaning beyond what is already in the schema, justifying the baseline score of 3.

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 verb 'List' and the resource 'customers' for the authenticated seller, and highlights the key features: pagination, search, and an optional 'overdue' filter. This is specific and distinguishes from sibling tools like get_customer.

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 customers with optional filters, but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or when-not conditions.

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

list_productsA

List products for the authenticated seller with pagination and search. The UUID returned for each product is the same identifier accepted by create_pix_charge and create_boleto_charge. Each product also carries a pixAutomatic boolean — when true, Pix Automático (BACEN auto-debit recurring Pix) is offered on the public subscription checkout.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabNoDeprecated — ignored by the v1 API. list returns the authenticated seller's own products.
pageNoPage number, default 1
limitNoItems per page, default 20
searchNoSearch by product name

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description should disclose behavioral traits. It implies a read-only operation but does not explicitly state it. It adds useful context about UUID and pixAutomatic, but omits side effects or limits.

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 efficient sentences, no wasted words. First sentence captures main purpose; second adds valuable return context.

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 4 simple parameters, no output schema, and no nested objects, the description is sufficiently complete. It explains pagination and search, and adds context about UUID and pixAutomatic.

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 coverage is 100%, so baseline is 3. The description adds extra meaning beyond the schema by explaining that the returned UUID is used in charge creation and that pixAutomatic indicates Pix Automático availability.

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

Purpose4/5

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

The description clearly states the tool lists products for the authenticated seller, with pagination and search. It identifies the verb and resource, but does not explicitly differentiate from other product-related sibling tools like get_product or create_product.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It mentions UUIDs used by create_pix_charge and create_boleto_charge, but not when to prefer list_products over get_product or list_charges.

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

list_scheduled_charge_attemptsA

Per-attempt billing log for a scheduled charge series (SPEC §4.2). One row per logical billing event: cycle 1 interactive charge, every silent-charge attempt, every retry cron retry, every manual mark-paid. Each row carries the canonical Garu failureCode for declines, the gateway raw code for forensics, and a snapshot of the card last4 / brand even after the PaymentMethod is deleted (LGPD survival). Use this to audit why a recurring series fell behind.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesScheduled charge ID (the series id)
pageNoDefault 1
limitNoDefault 20, max 100
cycleNumberNoFilter to a single cycle. Default returns attempts across all cycles.

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses key behaviors: each row carries 'canonical Garu failureCode', 'gateway raw code', and 'snapshot of the card last4 / brand even after the PaymentMethod is deleted (LGPD survival)'. This reveals data retention beyond deletion, which is critical. No contradictions.

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 concise (3-4 sentences) and front-loaded with the core purpose. Each sentence adds value, covering what the tool is, what each row contains, and usage. No unnecessary words.

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?

Despite having no output schema, the description lists key fields (failureCode, gateway raw code, last4/brand) that will be returned. However, it lacks information on pagination behavior or default ordering, which would be helpful for a list tool. The description is adequate but not fully 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?

Schema coverage is 100%, so baseline is 3. The description does not add significant semantics beyond the schema; it mentions filtering by cycle but does not elaborate on id, page, or limit. The value added is minimal.

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 specifies the tool as a 'per-attempt billing log for a scheduled charge series' and lists the types of events recorded (cycle charges, silent-charge attempts, retries, manual mark-paid). This clearly distinguishes it from sibling tools like 'list_scheduled_charges' which list series, not attempts.

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 'Use this to audit why a recurring series fell behind,' providing clear context for when to use the tool. It does not explicitly list when not to use it or compare to alternatives, but the purpose is well-defined and the usage guidance is sufficient.

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

list_scheduled_chargesA

List scheduled charges for the authenticated seller, with pagination and filters. Pass status as a single value or an array. Use search to match against the linked customer's name, email, or document.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, default 1
typeNoFilter by schedule type
dueToNoYYYY-MM-DD upper bound for dueDate
limitNoItems per page, default 20
searchNoFree-text search across customer name, email, or document
statusNoFilter by status. Single value or array. Common values: scheduled, due_today, overdue, paid, paused.
dueFromNoYYYY-MM-DD lower bound for dueDate
customerIdNoFilter by a single customer ID

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It implicitly indicates a read operation by saying 'list', but does not explicitly state it is read-only, nor mention authentication or rate limits. It adds some context about search capabilities but omits safety guarantees.

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 two sentences long, front-loaded with the core purpose, and every sentence adds value. No unnecessary words or fluff.

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 list tool with no output schema, the description covers the main functionality (pagination, filters, search) and parameters are fully documented in the schema. It could mention the response structure (e.g., contains array of scheduled charges) but 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?

Schema description coverage is 100%, so baseline is 3. The description repeats information already in the schema (e.g., status can be array, search matches customer fields) but adds no new semantic meaning beyond what the schema 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?

The description clearly states the verb 'list' and the resource 'scheduled charges for the authenticated seller', with filters and pagination. This distinguishes it from sibling list tools like list_charges or list_customers.

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 provides some usage hints (pass status as array, use search for customer fields) but does not explicitly compare to alternative tools or state when not to use this tool. It lacks explicit when-to-use guidance relative to siblings.

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

list_webhook_eventsA

List webhook events for the authenticated seller. Filter by delivery status (pending, success, failed), by Garu event type (e.g. 'transaction.payment.paid'), and/or by the destination endpoint id. Use this to audit deliveries — the canonical 'did my customer's endpoint actually receive event X?' workflow. Newest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, default 1
limitNoItems per page, default 50
statusNoFilter by delivery state. 'pending' = queued/awaiting retry; 'success' = endpoint returned 2xx; 'failed' = retries exhausted.
event_typeNoFilter by Garu event type, e.g. 'transaction.payment.paid' or 'scheduled_charge.cycle_failed'.
endpoint_idNoFilter by destination endpoint id

TDQS

A4.3/5.0
Behavior4/5

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

Since no annotations are provided, the description carries full burden. It discloses ordering ('Newest first') and explains filter options (status meanings, event type examples). Missing details on rate limits or pagination beyond order, but sufficient for common use.

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 sentences: action+resource, filter options, use case+ordering. No unnecessary words, front-loaded with essential information.

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?

No output schema, so description should explain return values. It does not describe what fields are returned or pagination details beyond ordering. Adequate but lacks return structure.

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 coverage is 100% (all parameters have descriptions). The description adds context by explaining the audit purpose and giving examples (e.g., event type 'transaction.payment.paid'). This adds value beyond the schema alone.

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 verb (list) and resource (webhook events) for the authenticated seller. Distinguishes from siblings like get_webhook_event (single) and retry/resend webhook event (actions).

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?

Provides explicit use case: 'audit deliveries — the canonical 'did my customer's endpoint actually receive event X?' workflow.' Lists available filters, implying when to use each. However, no explicit exclusion criteria for when not to use.

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

mark_paid_scheduled_chargeA

Manually mark a scheduled charge as paid (e.g. customer paid via bank transfer outside Garu). For one-time: omit cycleNumber, allowed from due_today / overdue. For recurring: pass cycleNumber, allowed from cycle status due_today / overdue / failed; future cycles continue.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesScheduled charge ID
cycleNumberNoCycle to mark paid. REQUIRED for recurring schedules; omit for one-time.
paymentDateYesYYYY-MM-DD in São Paulo time. Must be today or past.
externalReferenceNoBank reference, internal ID, or any stable string for reconciliation.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses allowed statuses and that future cycles continue, but does not mention side effects, reversibility, or webhook implications. Adequate but could be more explicit.

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 action and context. Every word earns its place; no fluff. Highly efficient.

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 complexity (one-time vs recurring, status conditions, 4 parameters), the description covers essentials for tool selection. No output schema needed due to simple nature. Could mention reversibility 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 coverage is 100%, and description adds value by explaining when cycleNumber is required vs. omitted, and paymentDate format constraint. ExternalReference is clarified. Adds nuance beyond 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?

Description clearly states 'Manually mark a scheduled charge as paid' and differentiates between one-time and recurring usage, with specific conditions. This verb+resource+scope is precise and distinguishes from sibling tools.

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 explicit scenarios: for one-time (omit cycleNumber) and recurring (pass cycleNumber) and allowed statuses (due_today, overdue, failed). It lacks alternative tool mentions but context is clear enough for agent decision.

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

pause_scheduled_chargeA

Pause a scheduled charge. No reminders fire while paused. Allowed from scheduled / due_today / overdue. Use resume_scheduled_charge to bring it back.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesScheduled charge ID
reasonNoFree-form reason for the audit log

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description adequately discloses behavioral consequences (suppression of reminders, status constraints). Lacks details on permissions or idempotency, but covers core traits.

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-loaded with the core action, each sentence adding valuable context without redundancy.

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 mutation without output schema, the description covers key aspects: action, effects, allowed states, and reversal. Could mention if it's idempotent or returns state.

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. Description adds no extra meaning for parameters 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?

The description clearly states the verb and resource ('Pause a scheduled charge') and distinguishes from siblings by mentioning 'resume_scheduled_charge' as the undo action.

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?

Explicitly states when to use ('Allowed from scheduled / due_today / overdue'), what happens ('No reminders fire while paused'), and directs to the alternative tool for resuming.

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

postpone_scheduled_chargeA

Postpone a scheduled charge to a new due date. Allowed from scheduled / due_today / overdue / paused. Clears any pending dunning so the customer gets a fresh reminder on the new date.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesScheduled charge ID
reasonNoFree-form reason for the audit log
newDueDateYesYYYY-MM-DD in São Paulo time. Must be today or future.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses that the tool clears pending dunning and triggers a fresh reminder on the new date, which are behavioral side effects. It does not mention authorization requirements or reversibility, but the disclosed actions are relevant.

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 two sentences, front-loads the primary action, and contains no fluff. Every sentence adds value: one for the core operation and one for behavioral context.

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 and three parameters. The description covers the allowed input statuses and a side effect (dunning clear). It lacks information about return values or error handling, but for a simple mutation tool, it is reasonably 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?

Schema coverage is 100%, with descriptions for all three parameters (id, reason, newDueDate). The description does not add extra meaning beyond the schema, so a 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 verb 'postpone' and the resource 'scheduled charge' to a new due date. It explicitly lists allowed statuses (scheduled, due_today, overdue, paused), distinguishing it from sibling tools like pause, resume, mark_paid, etc.

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 specifies when this tool is applicable (allowed statuses) and mentions it clears pending dunning, but does not explicitly state when not to use it or provide direct alternatives. However, the siblings list gives implicit guidance.

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

refund_chargeA

Refund a charge fully or partially. Amount is in BRL / reais (e.g. 10.50 for R$10,50). For a Pix Automatico charge the refund is asynchronous: the charge returns as refund_pending and only reaches refunded once the transfer settles.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesCharge uuid to refund
amountNoPartial refund amount in BRL / reais (e.g. 10.50). Omit for full refund.
reasonNoReason for the refund

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses asynchronous behavior for Pix Automatico and currency formatting, but lacks permissions, side effects, or failure modes.

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 sentences, each essential: purpose, currency format, and special async behavior. No fluff, perfectly front-loaded.

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?

Adequate for a simple tool: covers purpose, currency, and async edge case. However, no mention of return value or error scenarios, which would improve completeness given no 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?

Schema coverage is 100%, but description adds value by clarifying currency format (e.g., 10.50 for R$10,50) and that omitting amount means full refund, enhancing the schema's brief descriptions.

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 'Refund a charge fully or partially' with a specific verb and resource. It distinguishes from sibling tools like cancel_charge by focusing on refunds.

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?

Implied usage through purpose, but no explicit guidance on when to refund vs cancel or alternative tools. The asynchronous note for Pix Automatico provides context but no direct comparison.

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

resend_webhook_eventA

Re-deliver a webhook event by id, audit-trail preserving. Inserts a fresh event (new numeric id) that points back at the source via manualResendOf, then dispatches that clone — the original row is left untouched, so its prior response status/body stays on the record. Works on any status (success, failed, pending). Returns the clone event; the returned id is the new event's id, NOT the source. The customer's webhook handler will see Idempotency-Key: resend_ on the delivery, and can distinguish a resend from the original by that prefix or by the payload's manualResendOf field. Prefer this over retry_webhook_event when a customer reports a missed or unprocessed event, or during a backfill — you want the original delivery outcome to remain on the record.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWebhook event id of the source event to clone and resend

TDQS

A4.8/5.0
Behavior5/5

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

No annotations provided, but description thoroughly discloses behavior: inserts clone, points to source, dispatches, leaves original untouched, returns clone's id, and Idempotency-Key details.

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 informative but slightly long; front-loaded with purpose and usage. Every sentence adds value, but could be tightened slightly.

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 or annotations, the description fully explains return value, effect on original, and Idempotency-Key. Complete for a single-parameter 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?

Parameter id is described in schema; description adds value by clarifying that the returned id is the clone's id, not the source's. Schema coverage 100%, baseline 3, with added context.

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's purpose: 'Re-deliver a webhook event by id, audit-trail preserving.' It distinguishes from sibling retry_webhook_event by specifying when to prefer this tool.

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?

Explicit when-to-use guidance: 'Prefer this over retry_webhook_event when a customer reports a missed or unprocessed event, or during a backfill.' Also notes it works on any status.

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

resume_scheduled_chargeA

Resume a paused scheduled charge. Only valid from paused.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesScheduled charge ID

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses the precondition ('only valid from paused') but no other behavioral traits like side effects, authentication needs, or rate limits. Adequate for a simple resumption action.

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?

Very concise: two short sentences that front-load the purpose and precondition. Every word adds value 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 the tool's simplicity (1 parameter, no output schema), the description covers the essential information: what it does and when it's valid. No gaps.

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 has 100% coverage with one parameter 'id' described as 'Scheduled charge ID'. Description adds no extra meaning beyond the schema, so 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 action 'Resume' and the resource 'scheduled charge', with a specific precondition 'Only valid from `paused`'. This distinguishes it well from sibling tools like `pause_scheduled_charge`.

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 says the tool is only valid when the scheduled charge is in the `paused` state, providing clear context for use. Does not explicitly mention alternatives or when not to use, but the precondition is sufficient.

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

retry_webhook_eventA

Re-deliver a webhook event by id. Resets it to 'pending' in place, clears the retry schedule, and triggers an immediate delivery attempt. Works on any status (success, failed, pending). For most cases prefer resend_webhook_event, which preserves the original event's audit trail by cloning instead of mutating — retry overwrites the historical response status/body on the source row. Kept for callers that explicitly want the legacy in-place semantics.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWebhook event id

TDQS

A4.7/5.0
Behavior5/5

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

No annotations provided, so description carries full burden. It discloses: resets status to pending, clears retry schedule, triggers immediate attempt, works on any status, and overwrites historical response data. This is highly transparent about the destructive side effect.

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 sentences, each serving a purpose: action, behavior details, and usage comparison. Front-loaded with main action, no fluff.

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?

Tool has one parameter, no output schema, and no annotations. Description fully covers the action, consequences, and alternatives. Nothing missing for an agent to understand when and how to use it.

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 single integer 'id' parameter described as 'Webhook event id'. Description does not add extra semantics beyond the schema, but none are needed. 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?

Description clearly states the tool re-delivers a webhook event by id, resetting it to pending and triggering immediate delivery. It distinguishes from the sibling resend_webhook_event by noting the in-place mutation behavior.

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?

Explicitly provides guidance: prefer resend_webhook_event for most cases, keep retry_webhook_event for legacy in-place semantics. Clearly states when to use and when not to.

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

set_cancel_at_period_end_scheduled_chargeA

Toggle Stripe-style soft cancel on a recurring series. With enabled=true, the cycle generator stops emitting new cycles after the next paid cycle (the in-flight cycle still bills + can be paid). Reversible by passing enabled=false. Mutually exclusive with recurrence.endsAfter and recurrence.endsOn.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesScheduled charge ID
enabledYestrue enables soft-cancel (series ends after the next paid cycle); false clears the flag.

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, description fully explains behavior: enabled=true stops cycle generator after next paid cycle while in-flight cycle continues; enabled=false reverses it. It also notes the mutation is reversible and not destructive, providing complete transparency.

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: purpose, behavior, constraint. Front-loaded with key action, no unnecessary words. Every sentence earns its place.

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 the simple toggle logic, 100% schema coverage, and no output schema, the description is complete. It explains what, when, how, and constraints, leaving no ambiguity for an AI agent to misuse the 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 covers 100% of parameters with descriptions. Description adds context by explaining the effect of enabled in terms of cycle generation after next paid cycle, which is not in schema. Slightly redundant but adds value.

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 uses specific verb 'Toggle' and resource 'soft cancel on a recurring series', clearly distinguishing from hard cancel siblings like cancel_recurrence_scheduled_charge. It explains the exact behavior and mutual exclusivity with other recurrence options.

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?

Explicitly states when to use (to stop new cycles after next paid cycle), that it's reversible, and that it's mutually exclusive with recurrence.endsAfter and endsOn, giving clear guidance and alternatives.

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

set_customer_billing_email_overrideA

Set or clear the per-seller billing email override for a customer. The override is sticky: it takes precedence over the per-seller last-used email and the global customer.email for outbound seller-to-customer emails, and is never auto-overwritten by subsequent payments. Pass null to clear and fall back to the last-used email. Use this when the customer asks for a specific billing address (e.g. financeiro@empresa.com.br) different from the email they used at checkout.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCustomer ID
billingEmailOverrideYesEmail to set as the override, or null to clear the override.

TDQS

A4.4/5.0
Behavior4/5

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

The description reveals key behavioral traits: the override is sticky, takes precedence over other emails, and is never auto-overwritten. No annotations were provided, so this information is valuable. It does not mention side effects or permissions, but the behavior is well-explained.

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 concise with 4 sentences, each adding value. The first sentence states the main purpose, followed by behavioral details and usage guidance. 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 the tool's simplicity, no output schema, and 2 parameters, the description covers the essential aspects. It provides usage context and behavioral details, making it complete for an agent to decide and invoke correctly.

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?

The input schema has 100% coverage, describing both parameters. The description adds value by explaining the effect of 'null' and providing a practical example (financeiro@empresa.com.br), which goes 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 the tool sets or clears a per-seller billing email override for a customer, specifying its sticky behavior and precedence. This clearly distinguishes it from other tools, as no sibling tools have a similar 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?

The description explicitly says to use this when the customer requests a specific billing email different from their checkout email. It does not explicitly state when not to use or provide alternatives, but the context is clear.

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

set_product_portal_configB

Create or merge the per-product portal customization. Both this tool and PATCH have the same merge semantics: only fields you provide are written; unspecified fields keep their persisted value. Use clear_product_portal_config (DELETE) to reset everything. Each Boolean / string field can be passed as null to inherit from the seller-level config.

ParametersJSON Schema
NameRequiredDescriptionDefault
logoUrlNoHTTPS URL of the logo image.
productIdYesProduct identifier — accepts the UUID (preferred — same id returned by list_products and webhook payloads) or the legacy positive integer id. UUID support added in Garu v0.10.0.
businessNameNoDisplay name shown on the hosted payment page header.
primaryColorNoPrimary brand color in hex (e.g. '#257264').
allowApplyCouponsNo
allowViewInvoicesNo
customWelcomeTextNo
requireCancelReasonNo
customSuccessMessageNo
cancelAtPeriodEndOnlyNo
sendCancellationEmailNo
allowUpdateBillingInfoNo
allowCancelSubscriptionNo
allowUpdatePaymentMethodNo
customCancellationMessageNo
sendPaymentMethodUpdatedEmailNo

TDQS

B3.4/5.0
Behavior3/5

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 discloses merge semantics and null inheritance, but does not cover error handling, idempotency, permissions, or side effects like webhook triggers. The behavior is partially transparent.

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 short (two sentences plus a third about null) and front-loaded with the core purpose. It is efficient with no wasted words, though the mention of PATCH semantics could be integrated more smoothly.

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 the high complexity (16 parameters, no output schema, no annotations), the description explains merge semantics and the null pattern. However, it omits return value, error conditions, and an overview of the config fields, leaving room for improvement.

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

Parameters2/5

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

Schema description coverage is only 25%. The description adds that each Boolean/string field can be null to inherit from seller-level config, which is valuable. However, it does not list or describe the many undocumented parameters (e.g., allowApplyCoupons, customWelcomeText), leaving a significant gap.

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

Purpose4/5

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

The description clearly states 'Create or merge the per-product portal customization,' specifying the verb and resource. It distinguishes from siblings like clear_product_portal_config and get_product_portal_config, though it doesn't explicitly differentiate from update_product.

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 explains merge semantics, note that unspecified fields persist, and recommends clear_product_portal_config to reset. It also notes null inherits from seller-level config. However, it does not explicitly state when to create vs merge or mention alternatives like update_product.

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

update_customerC

Update a customer's information for the current seller.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCustomer ID
cityNo
nameNo
emailNo
phoneNoPhone with area code
stateNo2-letter state code
numberNo
streetNo
zipCodeNo
documentNoCPF (11 digits) or CNPJ (14 digits)
complementNo
personTypeNo
neighborhoodNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral traits. It fails to disclose whether updates are partial or full replacements, idempotency, required permissions, or any side effects. The description is too vague.

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 short sentence (7 words), which is efficient. However, its brevity may sacrifice necessary detail for a tool with many parameters and no annotations. It still earns a high score for conciseness.

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

Completeness2/5

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

Given the tool's complexity (13 parameters, no output schema, no annotations), the description is insufficient. It does not clarify update semantics, return values, error handling, or how it relates to sibling tools. The context is incomplete.

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

Parameters2/5

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

Schema description coverage is only 31%, but the tool description adds no parameter-level insight. It does not explain the meaning or usage of any of the 13 parameters beyond what the schema provides, failing to compensate for the low 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 ('Update'), the resource ('customer's information'), and the scope ('for the current seller'). It effectively distinguishes from sibling tools like 'create_customer' and 'delete_customer'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., when to update vs. create, or prerequisites like existing customer). The description does not mention any conditions or exclusions.

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

update_productA

Update an existing product (partial PATCH — only the fields you provide are written; everything else keeps its persisted value). value is in decimal BRL / reais (e.g. 29.90), NOT centavos. Setting pixAutomatic: true exposes Pix Automático (BACEN auto-debit recurring Pix) on the subscription checkout. At least one write field is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pixNoOffer PIX at checkout.
nameNoProduct name.
tagsNoFree-form tags.
imageNoHTTPS URL of the product cover image.
valueNoPrice in decimal BRL / reais (e.g. R$29,90 → 29.90) — NOT centavos. Products store the price in reais, the same as the API and dashboard.
boletoNoOffer Boleto at checkout.
productIdYesProduct identifier — accepts the UUID (preferred — same id returned by list_products and webhook payloads) or the legacy positive integer id. UUID support added in Garu v0.10.0.
returnUrlNoURL the buyer returns to after a successful payment.
unitLabelNoPer-unit label shown on the checkout (e.g. 'seat').
creditCardNoOffer credit card at checkout.
descriptionNoProduct description.
installmentsNoMax number of installments offered on credit card.
pixAutomaticNoWhen true, exposes Pix Automático (BACEN auto-debit recurring Pix) on the subscription checkout. Only the subscription checkout mode reads it.
isSubscriptionNoMark the product as a subscription (recurring).
subscriptionTypeNoSubscription cadence label (e.g. 'monthly').
returnUrlButtonTextNoLabel for the return-URL button on the success page.

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, description carries full burden. It discloses PATCH behavior (only fields provided are written), clarifies value unit (decimal reais, not centavos), and explains pixAutomatic effect. Does not mention idempotency or error handling, but sufficient for an update 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?

Three concise, front-loaded sentences. Each sentence adds distinct value: purpose+patch, value clarification, pixAutomatic+requirement. 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 16 parameters, full schema coverage, no output schema, and no annotations, the description covers key nuances (partial update, value format, pixAutomatic, required field). Could mention idempotency or default behaviors, but overall complete enough.

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?

Schema coverage is 100%, baseline 3. Description adds significant value: clarifies value format with example, explains pixAutomatic behavior, and notes the required write field condition. These details go beyond the schema descriptions.

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 'Update an existing product (partial PATCH)' with a specific verb and resource. It distinguishes from sibling tools like create_product and list_products, and the partial update behavior is explicit.

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 implies when to use (to modify existing product) and states a requirement ('At least one write field is required'). It does not explicitly contrast with alternatives but the context is clear. Lacks explicit when-not guidance.

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. Dates show when Glama detected each change.

  1. 37 tool updatesv0.18.0
    • First observedcancel_charge
    • First observedcancel_recurrence_scheduled_charge
    • First observedchange_scheduled_charge_payment_method
    • First observedcharge_now_scheduled_charge
    • First observedclear_product_portal_config
    • First observedclear_scheduled_charge_payment_method
    • First observedcreate_boleto_charge
    • First observedcreate_customer
    • First observedcreate_pix_charge
    • First observedcreate_product
    • First observedcreate_scheduled_charge
    • First observeddelete_customer
    • First observedget_charge
    • First observedget_customer
    • First observedget_integration_setup
    • First observedget_product
    • First observedget_product_portal_config
    • First observedget_scheduled_charge
    • First observedget_webhook_event
    • First observedlist_charges
    • First observedlist_customers
    • First observedlist_products
    • First observedlist_scheduled_charge_attempts
    • First observedlist_scheduled_charges
    • First observedlist_webhook_events
    • First observedmark_paid_scheduled_charge
    • First observedpause_scheduled_charge
    • First observedpostpone_scheduled_charge
    • First observedrefund_charge
    • First observedresend_webhook_event
    • First observedresume_scheduled_charge
    • First observedretry_webhook_event
    • First observedset_cancel_at_period_end_scheduled_charge
    • First observedset_customer_billing_email_override
    • First observedset_product_portal_config
    • First observedupdate_customer
    • First observedupdate_product

TDQS

A3.7/5.0

Scored across 37 tools

Disambiguation5/5

Each tool targets a distinct resource and action with clear, detailed descriptions. Tools like pause_scheduled_charge and resume_scheduled_charge are complementary, not overlapping. Even similar operations like retry_webhook_event and resend_webhook_event are carefully differentiated by audit trail semantics.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case. Verbs are imperative, nouns are plural for lists and singular for single operations. Even longer names like set_cancel_at_period_end_scheduled_charge adhere to the pattern without deviation.

Tool Count4/5

37 tools is on the higher end but reasonable for a comprehensive payment platform covering customers, charges, scheduled charges, products, webhooks, and setup. Each tool serves a specific purpose, though the scheduled charge cluster (13 tools) could potentially be consolidated slightly.

Completeness4/5

The tool surface is extensive, covering CRUD for customers and charges, lifecycle management for scheduled charges, and webhook handling. A notable gap is the lack of a delete_product tool, as products can only be updated or have their portal config cleared.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    MCP server for PayMongo payment gateway (Philippines). Supports payment intents, sources, payments, refunds, and checkout sessions via Basic Auth.
    24
    20
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for bePaid payment gateway enabling payment operations including create, capture, void, refund, card tokenization, and subscriptions through natural language prompts.
    17
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Garu-Pagamentos/garu-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server