Mercado Pago MCP Server
Provides comprehensive integration with the Mercado Pago payment platform, enabling payment processing, refunds, customer management, payment links, subscriptions, marketplace split payments, fraud detection, analytics, and accounting exports.
Enables creation of PIX payments with QR codes and copy-paste codes for instant payments in Brazil.
Allows exporting payment data to QuickBooks accounting format.
Allows exporting payment data to Sage accounting format.
Allows exporting payment data to Xero accounting format.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Mercado Pago MCP Servercreate a PIX payment for R$100 with QR code"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Mercado Pago MCP Server
A comprehensive Model Context Protocol (MCP) server for Mercado Pago API integration. This server provides 27+ tools for payment processing, PIX payments with QR codes, fraud detection, analytics, accounting exports, and much more - making any AI capable of handling complete payment operations.
🚀 Quick Install
Option 1: NPX (Easiest - Recommended)
Simply use npx to run the server directly in your Claude Desktop configuration:
{
"mcpServers": {
"mercado-pago": {
"command": "npx",
"args": ["mercado-pago-mcp"],
"env": {
"MERCADOPAGO_ACCESS_TOKEN": "YOUR_ACCESS_TOKEN",
"MERCADOPAGO_ENVIRONMENT": "sandbox"
}
}
}
}Option 2: Global Install
npm install -g mercado-pago-mcpThen in Claude Desktop config:
{
"mcpServers": {
"mercado-pago": {
"command": "mercado-pago-mcp",
"env": {
"MERCADOPAGO_ACCESS_TOKEN": "YOUR_ACCESS_TOKEN",
"MERCADOPAGO_ENVIRONMENT": "sandbox"
}
}
}
}Option 3: Local Install
git clone https://github.com/hdbookie/mercado-pago-mcp.git
cd mercado-pago-mcp
npm install
npm run buildThen in Claude Desktop config:
{
"mcpServers": {
"mercado-pago": {
"command": "node",
"args": ["/path/to/mercado-pago-mcp/dist/index.js"],
"env": {
"MERCADOPAGO_ACCESS_TOKEN": "YOUR_ACCESS_TOKEN",
"MERCADOPAGO_ENVIRONMENT": "sandbox"
}
}
}
}Related MCP server: mercadolibre-mcp
Features
🎯 Core Capabilities (v1.0)
Payment Operations
Create payments
Get payment details
Search payments with filters
Cancel pending payments
Refund Processing
Full refunds
Partial refunds
Customer Management
Create customers
Get customer details
Search customers
Payment Links
Create checkout preferences
Generate payment links with custom URLs
Set expiration dates
🚀 Advanced Features (v2.0)
PIX Payments
Create PIX payments with QR codes
Generate copy-paste PIX codes
Set custom expiration times
Subscription Management
Create recurring subscriptions
Update/pause/cancel subscriptions
Manage subscription frequencies
Marketplace & Split Payments
Split payments between multiple sellers
Configure platform fees
Manage disbursements
Card Management
Save cards for future use
List customer's saved cards
Tokenized card payments
Batch Processing
Create multiple payments in bulk
Batch status updates
Bulk refund processing
Reports & Analytics
Generate payment reports
Export data in multiple formats
Date range filtering
💼 Business Features (v3.0)
Real-time Monitoring
Monitor payment status changes
Configurable check intervals
Status change notifications
Fraud Detection
Risk scoring system
Pattern analysis
Fraud indicators and recommendations
Analytics Dashboard
Revenue metrics and KPIs
Payment method breakdowns
Customer insights and trends
Accounting Integration
Export to QuickBooks format
Export to Xero format
Export to Sage format
CSV export for custom systems
Tax Calculations
Brazilian tax calculations (ICMS, PIS, COFINS, ISS)
Regional tax rates by state
Product type tax differentiation
Payment Automation
Automatic retry for failed payments
Payment reminder scheduling
Smart retry strategies
Testing Tools
Webhook simulation
Sandbox/Production environment support
⚙️ Configuration
Step 1: Get Mercado Pago Credentials
Go to Mercado Pago Developers
Create an application
Get your Access Token:
For Testing: Use the TEST token (starts with
TEST-)For Production: Use the PRODUCTION token (starts with
APP_USR-)
Step 2: Configure Claude Desktop
Open your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add the configuration from the Quick Install section above.
Step 3: Restart Claude Desktop
After updating the configuration, restart Claude Desktop to load the MCP server.
🔐 Environment Configuration
Staging/Sandbox (Recommended for Testing)
{
"MERCADOPAGO_ACCESS_TOKEN": "TEST-your-sandbox-token",
"MERCADOPAGO_ENVIRONMENT": "sandbox"
}Production
{
"MERCADOPAGO_ACCESS_TOKEN": "APP_USR-your-production-token",
"MERCADOPAGO_ENVIRONMENT": "production"
}Running Both Environments
You can run both staging and production simultaneously:
{
"mcpServers": {
"mercado-pago-sandbox": {
"command": "npx",
"args": ["mercado-pago-mcp"],
"env": {
"MERCADOPAGO_ACCESS_TOKEN": "TEST-your-sandbox-token",
"MERCADOPAGO_ENVIRONMENT": "sandbox"
}
},
"mercado-pago-production": {
"command": "npx",
"args": ["mercado-pago-mcp"],
"env": {
"MERCADOPAGO_ACCESS_TOKEN": "APP_USR-your-production-token",
"MERCADOPAGO_ENVIRONMENT": "production"
}
}
}
}Available Tools (27+ Total)
Core Payment Tools
create_payment
Create a new payment in Mercado Pago.
Parameters:
amount(number, required): Payment amountdescription(string, required): Payment descriptionpayerEmail(string, required): Payer's email addresspaymentMethodId(string, required): Payment method (e.g., 'pix', 'credit_card')installments(number, optional): Number of installments for credit card
Example:
{
"amount": 100.50,
"description": "Product purchase",
"payerEmail": "customer@example.com",
"paymentMethodId": "pix"
}get_payment
Get detailed information about a specific payment.
Parameters:
paymentId(string, required): The payment ID to retrieve
search_payments
Search for payments with various filters.
Parameters:
status(string, optional): Payment status (approved, pending, rejected)dateFrom(string, optional): Start date in ISO formatdateTo(string, optional): End date in ISO formatpayerEmail(string, optional): Filter by payer emaillimit(number, optional): Maximum results (default: 10)
cancel_payment
Cancel a pending payment.
Parameters:
paymentId(string, required): Payment ID to cancel
create_refund
Create a full or partial refund for a payment.
Parameters:
paymentId(string, required): Payment ID to refundamount(number, optional): Amount to refund (omit for full refund)
create_customer
Create a new customer profile.
Parameters:
email(string, required): Customer emailfirstName(string, optional): First namelastName(string, optional): Last namephone(string, optional): Phone numberidentificationType(string, optional): ID type (CPF, CNPJ, etc.)identificationNumber(string, optional): ID number
get_customer
Get customer details by ID.
Parameters:
customerId(string, required): Customer ID
search_customers
Search for customers.
Parameters:
email(string, optional): Filter by emaillimit(number, optional): Maximum results (default: 10)
create_payment_link
Create a payment link (checkout preference).
Parameters:
title(string, required): Product/service titleamount(number, required): Pricequantity(number, optional): Quantity (default: 1)expirationDate(string, optional): Expiration date in ISO formatsuccessUrl(string, optional): Redirect URL after successfailureUrl(string, optional): Redirect URL after failurependingUrl(string, optional): Redirect URL for pending
Example:
{
"title": "Premium Subscription",
"amount": 29.99,
"quantity": 1,
"successUrl": "https://mysite.com/success",
"failureUrl": "https://mysite.com/failure"
}simulate_webhook
Simulate webhook notifications for testing.
Parameters:
type(string, required): Webhook typepayment.created
payment.updated
payment.approved
payment.rejected
paymentId(string, required): Payment ID for the webhook
Advanced Payment Tools (v2.0+)
create_pix_payment
Create a PIX payment with QR code and copy-paste code.
Parameters:
amount(number, required): Payment amountdescription(string, required): Payment descriptionpayerEmail(string, required): Payer's emailexpirationMinutes(number, optional): Minutes until expiration
create_subscription
Create a recurring subscription.
Parameters:
title(string, required): Subscription titleamount(number, required): Recurring amountfrequency(number, required): Billing frequencyfrequencyType(string, required): 'days', 'months', or 'years'payerEmail(string, required): Subscriber's email
create_split_payment
Create marketplace split payments between multiple sellers.
Parameters:
amount(number, required): Total amountsplits(array, required): Array of split configurations with collectorId, amount, and fee
batch_create_payments
Create multiple payments in a single batch operation.
Parameters:
payments(array, required): Array of payment objectsprocessInParallel(boolean, optional): Process payments in parallel
Business Intelligence Tools (v3.0+)
get_analytics_dashboard
Get comprehensive payment analytics and insights.
Parameters:
period(string, optional): 'day', 'week', 'month', 'quarter', 'year'metrics(array, optional): Specific metrics to include
detect_fraud_risk
Analyze a payment for fraud risk indicators.
Parameters:
paymentId(string, required): Payment ID to analyzeincludeRecommendations(boolean, optional): Include action recommendations
monitor_payment_status
Monitor a payment for status changes in real-time.
Parameters:
paymentId(string, required): Payment ID to monitorintervalSeconds(number, optional): Check intervalmaxChecks(number, optional): Maximum number of checks
export_to_accounting
Export payment data to accounting software formats.
Parameters:
format(string, required): 'quickbooks', 'xero', 'sage', or 'csv'dateFrom(string, required): Start datedateTo(string, required): End dateincludeRefunds(boolean, optional): Include refunded payments
calculate_taxes
Calculate Brazilian taxes for payments.
Parameters:
amount(number, required): Base amountregion(string, required): Brazilian state codeproductType(string, optional): 'physical', 'digital', or 'service'
schedule_payment_reminder
Schedule payment reminders for customers.
Parameters:
customerId(string, required): Customer IDamount(number, required): Payment amountdueDate(string, required): Due datereminderSchedule(array, optional): Days before due date to send reminders
retry_failed_payment
Automatically retry a failed payment with smart strategies.
Parameters:
originalPaymentId(string, required): Failed payment IDupdateAmount(boolean, optional): Allow amount adjustmentuseAlternativeMethod(boolean, optional): Try alternative payment methods
Usage Examples
With Claude Desktop
Once configured, you can use natural language to interact with Mercado Pago:
"Create a payment for $50 for john@example.com using PIX"
"Search for all approved payments from the last week"
"Create a refund for payment ID 12345678"
"Generate a payment link for a $99 product that expires in 24 hours"Direct API Usage
// Example: Create a payment
const payment = await createPayment({
amount: 100.00,
description: "Test payment",
payerEmail: "test@example.com",
paymentMethodId: "pix"
});
// Example: Process a refund
const refund = await createRefund({
paymentId: "12345678",
amount: 50.00 // Partial refund
});Development
# Run in development mode with hot reload
npm run dev
# Build for production
npm run build
# Start production server
npm start
# Debug mode
npm run inspectTesting
The server includes sandbox support for safe testing:
Use sandbox Access Token
Set
MERCADOPAGO_ENVIRONMENT=sandboxUse test credit cards provided by Mercado Pago
Simulate webhooks with the
simulate_webhooktool
Test Credit Cards (Sandbox)
Approved: 5031 4332 1540 6351
Pending: 5031 4332 1540 6351
Rejected: 5031 4332 1540 6351
Security Considerations
Never commit your Access Token to version control
Use environment variables for sensitive data
Use sandbox environment for development
Implement proper error handling in production
Consider rate limiting for production deployments
Webhook Integration
For production use, set up webhooks in your Mercado Pago dashboard:
Go to Your Application > Webhooks
Add your webhook URL
Select events to receive
Use the
simulate_webhooktool for testing
Troubleshooting
Common Issues
"Invalid Access Token"
Verify your token is correct
Check if using sandbox vs production token
Ensure token has necessary permissions
"Payment method not available"
Check if payment method is enabled in your account
Verify country/region support
"Customer already exists"
Use search_customers to find existing customer
Update existing customer instead of creating new
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT
Support
For issues and questions:
Open an issue on GitHub
Check Mercado Pago documentation
Contact Mercado Pago support for API-specific issues
Roadmap
✅ Completed (v2.0 - v3.0)
PIX payments with QR codes
Subscription management
Marketplace/split payments
Saved cards management
Batch payment processing
Advanced reporting and analytics
Fraud detection system
Payment status monitoring
Accounting software exports (QuickBooks, Xero, Sage)
Brazilian tax calculations
Payment retry automation
Payment reminder scheduling
🚧 Planned Features
Multi-language support (Portuguese, Spanish, English)
Rate limiting and caching optimization
Boleto bancário support
Advanced webhook management
Payment dispute handling
Multi-currency conversion
A/B testing for payment methods
Machine learning fraud detection
Built with ❤️ for the developer community
Available Tools
27 toolsbatch_create_paymentsC
Create multiple payments in batch
| Name | Required | Description | Default |
|---|---|---|---|
| payments | Yes | Array of payments to create |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of revealing behavior. It only says 'create multiple payments', which is a write operation, but it omits critical batch characteristics such as atomicity, partial failure handling, error reporting, idempotency, or response shape. This is insufficient for a batch tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundancy. It is front-loaded and economical, though it could use the available space to add valuable batch context without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations and no output schema, so the description must explain return values, error behavior, and batch semantics. It only states the basic action, leaving out essential context like whether the batch is atomic, what happens if one payment fails, and what is returned. This is incomplete for a batch operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the top-level 'payments' parameter (described simply as 'Array of payments to create'), and the description adds no extra meaning about the array elements or required fields. Baseline 3 applies due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('create') and resource ('payments'), and the modifier 'batch' distinguishes it from the singular sibling tool create_payment. However, it does not explicitly differentiate from alternatives beyond the name, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus create_payment, no mention of batch size limits, or any exclusions. The 'batch' wording implies multiple payments, but that is already evident from the name and does not constitute practical usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_taxesA
Calculate taxes for a payment based on region
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Base amount | |
| region | Yes | Region/state code | |
| productType | No | Product type for tax calculation | physical |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral transparency. It only states 'Calculate taxes' without disclosing whether this is a read-only calculation, whether it makes external API calls, requires special permissions, or what side effects exist. This leaves significant ambiguity about 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that front-loads the verb and resource. It contains no filler or redundant information and is appropriately sized for a simple calculation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should clarify what the function returns. It does not mention the return format, whether it returns a single numeric value or a breakdown, or the tax rate source. While the tool is relatively simple, this missing information leaves the context incomplete for an agent deciding how to use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all three parameters (amount, region, productType), achieving 100% schema coverage. The description adds no additional parameter meaning beyond what the schema already documents, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Calculate taxes for a payment based on region' clearly identifies the action (calculate taxes) and the resource (a payment) with a scoping condition (region). This is specific and distinguishes it from sibling payment tools that don't compute taxes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when calculating taxes for a payment, but provides no explicit when-to-use or when-not-to-use guidance, and does not mention alternatives. Since there are no direct tax siblings, some implicit usage context exists, but it lacks explicit exclusions or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_paymentB
Cancel a pending payment
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | Payment ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states only the action 'cancel' but does not disclose side effects, reversibility, idempotency, or behavior when payment is not pending. Minimal transparency for a mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, direct, and free of filler. It is appropriately front-loaded, though perhaps too sparse to add substantial value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description should explain return behavior, failure modes, or when cancellation is allowed. It does not. However, the single-parameter schema is well-covered, so it is slightly better than a completely under-specified tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with a description for paymentId. The description adds no extra meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'cancel' and resource 'payment' with a status qualifier 'pending'. Clearly distinguishes from sibling create_payment, get_payment, search_payments, and create_refund.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like create_refund or when a payment can be canceled. The 'pending' qualifier implies a context but does not explain exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_customerB
Create a new customer
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Customer email | ||
| phone | No | Phone number | |
| lastName | No | Last name | |
| firstName | No | First name | |
| identificationType | No | ID type (CPF, CNPJ, etc.) | |
| identificationNumber | No | ID number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the fundamental action, without disclosing behaviors like required fields, idempotency, possible side effects, or error conditions. The write nature is implied but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using only four words with no filler. It is front-loaded and easily parsed, though it may be slightly under-specified for a tool with six parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six parameters, no output schema, and no annotations, the description does not provide enough context about return values, validation rules, or post-creation behavior. It is minimally sufficient for a basic create operation but lacks depth for reliable agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter has a description in the schema, which already explains the meaning. The tool description adds no additional semantic value, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new customer' uses a specific verb and resource, clearly distinguishing this tool from siblings like get_customer and search_customers. It unambiguously states the action and target resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, such as checking for existing customers via search_customers, or any exclusions for other customer-related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_paymentC
Create a new payment in Mercado Pago
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Payment amount | |
| payerEmail | Yes | Payer's email address | |
| description | Yes | Payment description | |
| installments | No | Number of installments (for credit card) | |
| paymentMethodId | Yes | Payment method ID (e.g., 'pix', 'credit_card') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It fails to mention side effects, idempotency, required permissions, or whether the operation is synchronous, leaving the agent with no safety or behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is concise and front-loaded, though it could benefit from additional contextual sentences without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, no annotations, and many sibling tools with overlapping functionality, the description is far too sparse. It does not explain return values, when to use it, or how it differs from similar tools, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all 5 parameters described (amount, payerEmail, description, paymentMethodId, installments). The description adds no additional meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new payment') and resource ('in Mercado Pago'). However, it does not distinguish from sibling tools like create_pix_payment, create_split_payment, or create_payment_link, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any exclusions, prerequisites, or context for selection. The description is simply one sentence with no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_payment_linkC
Create a payment link (checkout preference)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Product/service title | |
| amount | Yes | Price | |
| quantity | No | Quantity | |
| failureUrl | No | Redirect URL after failure | |
| pendingUrl | No | Redirect URL for pending | |
| successUrl | No | Redirect URL after success | |
| expirationDate | No | Expiration date (ISO format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It merely states that it creates a payment link, but gives no information about side effects, required permissions, idempotency, currency handling, or what the response contains. For a mutation tool with zero annotation coverage, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is efficient in length, but it borders on under-specification. It front-loads the purpose but omits any additional context that would make the sentence earn its place beyond restating the tool's name. It is not bloated, but it is not richly informative either, so a middle score is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no annotations, and no output schema, the description is insufficiently complete. It does not explain what a 'checkout preference' entails, whether the link is hosted or generated, or what the return value might be. The description fails to fill the gaps left by the missing annotations and output schema, leaving the agent with only the raw parameter list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all 7 parameters (100% coverage), so the schema already carries the semantic weight. The description itself adds no parameter-level meaning beyond the tool's name. Since schema coverage is high, the baseline of 3 is appropriate, but the description does not enhance understanding of any specific parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('a payment link'), with a parenthetical elaboration ('checkout preference') adding a bit of context. It does not explicitly differentiate from sibling tools like 'create_payment' or 'create_pix_payment', so it loses a point for missing sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, use cases, or scenarios where this tool is preferred over the many sibling tools that also create payments or related entities. The only content is the purpose statement, so usage guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pix_paymentB
Create a PIX payment with QR code
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Payment amount | |
| payerEmail | Yes | Payer's email | |
| description | Yes | Payment description | |
| payerDocument | No | Payer's CPF/CNPJ | |
| payerLastName | No | Payer's last name | |
| payerFirstName | No | Payer's first name | |
| expirationMinutes | No | QR code expiration in minutes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses that a PIX payment is created and a QR code is involved, but does not mention whether the payment is charged immediately, what response to expect, permission requirements, or potential side effects. For a financial operation, this lack of behavioral detail is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no wasted words. It is appropriately concise, but could afford a bit more detail on behavior or return values without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations. The tool has 7 parameters and performs a financial transaction, yet the description only states what it creates. It fails to explain prerequisites, return values, or edge cases, leaving the agent with insufficient context to use it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all 7 parameters, achieving 100% coverage. The tool description itself adds no parameter-level meaning beyond the schema. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and identifies the exact resource ('PIX payment') plus a distinguishing feature ('with QR code'). This sets it apart from sibling tools like create_payment (generic) or create_payment_link (link-based).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The name and description imply this is for PIX payments, but there is no explicit guidance on when to choose it over alternatives such as create_payment, batch_create_payments, or create_payment_link. The usage context is present only by inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_refundC
Create a refund for a payment
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Amount to refund (partial refund if less than total) | |
| paymentId | Yes | Payment ID to refund |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states the action without disclosing side effects (e.g., whether refunds are immediate, reversible, or affect payment status). It also does not mention partial refund behavior beyond the schema's amount description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no wasted words. However, it is almost too brief, sacrificing valuable context for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with no output schema, the description should at least mention refund semantics (partial vs full), idempotency, or return values. It only provides the basic purpose, leaving the agent to infer critical details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (amount and paymentId) are already described. The description adds no extra meaning beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a refund') and the target resource ('a payment'). It distinguishes itself from sibling tools like cancel_payment and create_payment, though it doesn't 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as cancel_payment or retry_failed_payment. There are no prerequisites, exclusions, or situational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_split_paymentC
Create a marketplace split payment
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Total payment amount | |
| splits | Yes | Payment splits configuration | |
| payerEmail | Yes | Payer's email | |
| description | Yes | Payment description | |
| paymentMethodId | Yes | Payment method |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only states 'Create a marketplace split payment' with no mention of side effects, idempotency, required permissions, or error behavior. For a mutation tool, this is a complete lack of transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of six words, making it extremely concise. However, it is under-specified for the tool's complexity, containing no information about the split structure or marketplace context. It is not misleading, but it lacks the minimal detail needed to be truly helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters including a nested 'splits' array, and there are no annotations or output schema to supplement the description. The one-sentence description does not explain what a marketplace split payment is, how splits relate to the total amount, or any constraints, leaving significant gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline score is 3. The description itself adds no parameter details, but each parameter already has a minimal description in the schema. No extra semantic meaning is provided beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the specific resource ('marketplace split payment'), distinguishing it from sibling tools like 'create_payment' and 'create_pix_payment'. The addition of 'marketplace split' clarifies the unique purpose compared to a generic payment creator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'create_payment' or 'create_pix_payment'. It does not mention any prerequisites, exclusions, or context that would help an agent decide between similar payment creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_subscriptionC
Create a recurring subscription
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Subscription title | |
| amount | Yes | Recurring amount | |
| endDate | No | End date (ISO format) | |
| frequency | Yes | Frequency in days (e.g., 30 for monthly) | |
| startDate | No | Start date (ISO format) | |
| payerEmail | Yes | Subscriber's email | |
| frequencyType | No | Frequency type | months |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavior. It only states the action and target, without mentioning side effects, validation requirements, or any impacts on related entities. For a creation tool, crucial details like whether it requires an existing customer or generates payment schedules are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is easy to parse and front-loads the key verb. However, it is almost too terse for a complex tool, offering little beyond a basic label, though it does not waste words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and no output schema or annotations, the description is severely underspecified. It does not explain subscription semantics, interaction with payment tools, or expected behavior, making it insufficient for an agent to confidently invoke the tool in varied contexts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no parameter-level meaning, but per the baseline rule, a score of 3 is appropriate since the schema does the heavy lifting and the description does not mislead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and resource ('recurring subscription'), clearly indicating the tool's primary action. It partially distinguishes from sibling tools like get_subscription and update_subscription, but does not elaborate on what constitutes a recurring subscription (e.g., automatic payments).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as create_payment or create_pix_payment. The description lacks any context about prerequisites, typical scenarios, or exclusions, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_fraud_riskB
Analyze payment for fraud risk indicators
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | Payment ID to analyze | |
| includeRecommendations | No | Include action recommendations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It merely states the tool analyzes fraud risk but does not disclose side effects, permissions required, rate limits, or what the output looks like (e.g., risk score, flags). This is a significant gap for an analysis tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that states the core function without any filler or redundant phrasing. It is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should explain what results the user can expect. It does not mention return values, how to interpret risk indicators, or any behavioral context. Given the tool's fraud analysis nature, this is insufficient for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents both parameters with clear descriptions ('Payment ID to analyze', 'Include action recommendations'), and schema coverage is 100%. The tool description adds no additional parameter semantics, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Analyze payment for fraud risk indicators' clearly identifies the verb (Analyze), the resource (payment), and the specific focus (fraud risk indicators). This is unique among sibling tools, which are mostly payment lifecycle operations, so it distinguishes the tool effectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or appropriate contexts such as 'use before creating a payment' or 'for suspicious transactions.' The intended usage must be inferred entirely from the generic phrase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_to_accountingB
Export payment data to accounting software format
| Name | Required | Description | Default |
|---|---|---|---|
| dateTo | Yes | End date (ISO format) | |
| format | Yes | Export format | csv |
| dateFrom | Yes | Start date (ISO format) | |
| includeRefunds | No | Include refunds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It does not state whether the export is a read-only operation, whether it triggers external systems, requires permissions, or how results are delivered. The lack of output schema and any behavioral details leaves the agent guessing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and free of fluff. It communicates the core function directly, though it lacks structure or additional detail. For a simple tool, this is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has four parameters, no output schema, and no annotations, the description is incomplete. It does not explain what the export produces (file, response, URL?), any side effects, or how to interpret results. The schema covers parameters but not the broader operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage with descriptions for all four parameters, so the baseline is 3. The description adds no additional parameter semantics beyond what the schema already offers; it simply restates the purpose rather than enriching understanding of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Export'), identifies the resource ('payment data'), and clarifies the destination ('accounting software format'), which clearly distinguishes it from sibling tools like generate_reports or search_payments. It precisely conveys the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention use cases, prerequisites, or context that would help an agent decide between this and similar reporting/export tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_reportsC
Generate payment reports
| Name | Required | Description | Default |
|---|---|---|---|
| dateTo | Yes | End date (ISO format) | |
| format | No | Output format | json |
| dateFrom | Yes | Start date (ISO format) | |
| reportType | Yes | Type of report |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Generate payment reports' only states the action, with no information about output format, potential side effects, processing time, authorization requirements, or what the generated report contains. This is a significant gap for a tool that likely has non-trivial behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that wastes no words. It is front-loaded and immediately states the tool's purpose. However, given the tool's complexity (4 parameters), the extreme brevity borders on under-specification, but the conciseness dimension rewards efficiency, and this description is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters, no output schema, and no annotations. The description is minimal and does not explain what the generated reports contain, how to interpret them, or any limitations. This is inadequate for an agent to fully understand the tool's behavior and output, making the description incomplete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with each parameter (dateFrom, dateTo, format, reportType) already explained. The description adds no additional semantic meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Generate payment reports' uses a specific verb ('generate') and a clear resource ('payment reports'), making the tool's primary function clear. However, it does not differentiate from any sibling tools, but no sibling appears to serve the same report-generation purpose, so the lack of differentiation is not a significant issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions. While siblings like 'export_to_accounting' might overlap, there is no explicit direction, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analytics_dashboardC
Get comprehensive payment analytics and metrics
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Analysis period | month |
| metrics | No | Metrics to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It provides no information about aggregation, default period, return shape, or any side effects. The single vague word 'comprehensive' offers no meaningful behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasted words. It is front-loaded with the action and resource. However, it is slightly too terse for a tool with no other documentation, but as a concise statement it is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an analytics tool with no output schema and no annotations, this description is quite incomplete. It lacks information about what metrics are returned, how the period interacts with data, and any examples or expected output. The bare-bones statement leaves the agent with insufficient context to invoke correctly in rich scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented with 'Analysis period' and 'Metrics to include'. The description adds no additional semantic context beyond what the schema provides, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets payment analytics and metrics. However, it does not differentiate from sibling tools like generate_reports or get_payment_methods, making the purpose clear but generic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention appropriate scenarios, exclusions, or suggest any sibling tools for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customerB
Get customer details
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It only states 'Get customer details' without mentioning that it is a read-only operation, what data is returned, error behavior, or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant words. It is front-loaded and easy to parse, maintaining appropriate brevity for a simple get-by-ID tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema), but the description lacks context about return values, usage scenarios, or differentiation from sibling search tools. It is minimally viable but leaves gaps for an agent deciding between get_customer and search_customers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the customerId parameter with a clear description, and the schema coverage is 100%. The tool description adds no additional parameter semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get customer details' clearly states a specific verb (get) and resource (customer). It is unambiguous but does not differentiate from sibling tools like search_customers, which also retrieves customer information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not indicate when to use this tool over alternatives such as search_customers or get_payment_methods, nor does it mention any prerequisites like the need for an existing customer ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_paymentC
Get payment details by ID
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | Payment ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, and the description simply restates the basic getter behavior. It does not disclose additional traits such as error handling, authentication needs, or response format, leaving the agent without important behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that is efficient and to the point. It is not under-specified, but it could be more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity getter, the description is minimally viable but lacks usage context, error behavior, and output expectations. With no annotations or output schema, the description does not fully compensate for these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides full coverage for the single parameter with a description ('Payment ID'), so the baseline is 3. The tool description mentions 'by ID' but adds no extra semantic detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get) and resource (payment details) with an identifier (by ID). This distinguishes it from search_payments or get_payment_methods, though it doesn't explicitly name these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like search_payments. It lacks context on typical usage scenarios, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_methodsA
Get available payment methods for your country
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavior. It states the tool returns payment methods based on 'your country', implying geo-dependence, but it does not disclose whether this is user-account or IP based, nor any error conditions. As a read-only getter, the risk is low, so a neutral score is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence: 'Get available payment methods for your country'. Every word is informative and there is no superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter with no output schema, the description is largely sufficient. It could optionally mention what the returned list contains or how 'country' is determined, but the core function is clear and the tool seems simple.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not add parameter-specific details, but there are none to describe. No ambiguity is introduced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource ('available payment methods') and adds a specific scope ('for your country'), distinguishing it from sibling tools like get_payment (singular) or search_payments (general search). The verb 'Get' is specific and matches the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as list_saved_cards or search_payments. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscriptionC
Get subscription details
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral transparency. It does not indicate that the operation is read-only, whether it requires special permissions, or what the response contains. The verb 'get' implies read-only, but that's implicit rather than explicitly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, 'Get subscription details,' which is efficient and front-loaded. However, it is minimal and could be slightly more informative without sacrificing conciseness, but it earns its place as a clear and direct statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and an output schema, the description should explain what the tool returns, any error conditions, or how it relates to other subscription tools. It only states the basic action, which is insufficient for a tool expected to retrieve detailed information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full documentation for the single parameter (subscriptionId with description 'Subscription ID'), giving 100% schema coverage. The description adds no additional parameter semantics, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a verb (get) and resource (subscription details), and it is distinct from sibling tools like create_subscription or update_subscription. However, it lacks specifics about the scope or what exactly 'details' includes, so it doesn't fully differentiate beyond the basic action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are no prerequisites, no mention of search tools, and no context about whether this is for current or historical data. It simply states the action without any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_saved_cardsC
List customer's saved cards
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'List' without mentioning pagination, rate limits, authentication needs, or return format. This minimal disclosure leaves significant uncertainty for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no redundant information. It is concise and front-loaded, efficiently stating the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is extremely sparse, lacking any mention of return values, pagination, or edge cases. Without an output schema and with no annotations, the agent has no additional context to correctly interpret the result or understand how it differs from get_payment_methods.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the only parameter customerId, achieving 100% schema description coverage. The description adds no additional semantic value beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (List) and the resource (customer's saved cards). However, it does not explicitly differentiate this from the sibling tool get_payment_methods, which may cover overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_payment_methods or save_card. The description only states the basic action without any contextual cues or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
monitor_payment_statusC
Monitor payment status changes in real-time
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | Payment ID to monitor | |
| webhookUrl | No | URL to send status updates | |
| checkInterval | No | Check interval in seconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only says 'monitor payment status changes in real-time' without explaining how the monitoring works, whether it blocks, how updates are delivered, or the lifecycle of the monitoring session. This is a significant gap for a real-time tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundancy. It is concise and easy to parse, though it could include more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema and no annotations, the description is incomplete. It does not explain what the tool returns, how the webhook and check interval interact, or how to stop monitoring. The agent is left without enough context to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter comments, so the baseline is 3. The description adds no additional meaning about parameters beyond what the schema already provides, such as the role of webhookUrl or checkInterval.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'monitor' clearly indicates ongoing observation of payment status, distinguishing it from one-time retrieval tools like get_payment. The resource is specific ('payment status changes'), but the mechanism (webhook vs polling) is not stated, which leaves some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention scenarios such as needing real-time notifications or that get_payment should be used for one-time status checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retry_failed_paymentC
Automatically retry a failed payment with smart logic
| Name | Required | Description | Default |
|---|---|---|---|
| paymentId | Yes | Failed payment ID | |
| maxRetries | No | Maximum retry attempts | |
| retryStrategy | No | Retry strategy | exponential_backoff |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only says 'automatically retry' and 'smart logic' without explaining what happens during retries, side effects, permission requirements, or failure outcomes. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no fluff. It is concise and well-structured, though the vague 'smart logic' phrase could be replaced with more concrete details without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having a complete schema, this is a mutation tool with no annotations and no output schema. The description lacks critical context such as return behavior, error semantics, or what 'smart logic' entails. It is not sufficiently complete for an agent to predict side effects or success criteria.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full descriptions for all three parameters, including defaults and enum values. The description adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('retry') and resource ('failed payment'), and adds 'smart logic' hinting at advanced behavior. It is easily distinguished from sibling tools like cancel_payment or create_refund.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. While 'failed payment' implies the context, the description does not state prerequisites, exclusions, or preferred alternatives. It relies on the agent inferring usage from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_cardB
Save a card for future payments
| Name | Required | Description | Default |
|---|---|---|---|
| cardNumber | Yes | Card number | |
| customerId | Yes | Customer ID | |
| securityCode | Yes | CVV/CVC | |
| cardholderName | Yes | Cardholder name | |
| expirationYear | Yes | Expiration year (YYYY) | |
| expirationMonth | Yes | Expiration month (MM) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'Save a card' without explaining security implications, tokenization, idempotency, duplicate handling, or what the response contains. This is minimal added value beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the action and purpose. It contains zero waste and is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 required parameters including securityCode, and no output schema. The description does not clarify whether a card token is returned, how duplicates are handled, or any compliance/security considerations. Given the sensitive nature of card data, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a clear description. The tool description itself adds no parameter-specific meaning, but with full schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Save a card for future payments' clearly identifies the action (save), the resource (card), and the purpose (future payments). This distinguishes it from siblings like create_payment (which processes a payment) and list_saved_cards (which lists cards).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when you need to store a card for later payments, but it does not explicitly state when to use it vs alternatives like create_payment or get_payment_methods. There is no mention of exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule_payment_reminderC
Schedule automatic payment reminders
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount due | |
| dueDate | Yes | Payment due date (ISO format) | |
| customerId | Yes | Customer ID | |
| reminderSchedule | No | Days before due date to send reminders |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It only states the action ('schedule automatic payment reminders') without explaining side effects, whether it modifies existing reminders, what happens upon scheduling, or if it's idempotent. This is a significant gap for a mutation-like tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no wasted words. It front-loads the purpose and is appropriately concise for a simple tool, though it could include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full parameter coverage and a clear purpose, the tool is minimally viable for invocation. However, the absence of annotations and an output schema means the agent cannot anticipate return values or side effects, leaving a clear gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all four parameters, so the schema carries the parameter semantics. The description adds no additional parameter-level meaning beyond the schema, but that is acceptable per the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Schedule automatic payment reminders' uses a specific verb ('schedule') and resource ('automatic payment reminders'), clearly distinguishing it from sibling payment tools. However, it doesn't explicitly differentiate from alternatives or explain the scope, so it's clear but not outstanding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. The description does not mention context, prerequisites, or exclusions. Given the presence of sibling tools, the agent receives no direction on when this is the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_customersC
Search for customers
| Name | Required | Description | Default |
|---|---|---|---|
| No | Filter by email | ||
| limit | No | Max results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure, but it only states the action without revealing any behavioral traits such as return format, pagination behavior, ordering, or side effects. It adds no information beyond the tool name, essentially being a tautology.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief and front-loaded, but it is under-specified rather than appropriately concise. It repeats the tool name and provides zero useful information, which fails the requirement that every sentence earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with two optional parameters and no output schema, the description is insufficient. It does not explain what the results look like, whether unfiltered search is allowed, or any other contextual detail needed for an agent to invoke it correctly. The simplicity of the tool does not excuse the lack of essential information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full descriptions for both parameters (email and limit), achieving 100% schema description coverage. The description itself offers no additional parameter semantics, but since the schema is self-sufficient, the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search for customers' is essentially a restatement of the tool name 'search_customers' with spaces added. It does not add any specificity beyond the name and fails to distinguish this tool from siblings like get_customer or search_payments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool compared to alternatives like get_customer or create_customer. The description lacks any contextual cues about appropriate usage scenarios, required prerequisites, or intended use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_paymentsC
Search for payments with filters
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| dateTo | No | End date (ISO format) | |
| status | No | Payment status (approved, pending, rejected) | |
| dateFrom | No | Start date (ISO format) | |
| payerEmail | No | Filter by payer email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It fails to mention result format, pagination, ordering, default limit, or how multiple filters are combined (e.g., AND logic). Users are left unaware of what the search returns or how it behaves with edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It is concise and to the point. While it lacks context, brevity is a plus and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should explain return values, default behaviors, and filter semantics. Instead, it offers a minimal statement. For a search tool with five optional parameters, this is insufficient for an agent to understand expected results, pagination, or error scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all five parameters with descriptions (100% coverage), so the description need not repeat them. However, the description only says 'with filters' and does not add meaning about filter interplay, inclusivity of date ranges, or validation rules. Thus it meets the baseline but adds no extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'search' with a clear resource 'payments' and indicates the filter mechanism. It distinguishes itself from singular tools like get_payment and creation tools like create_payment. However, it does not specify the scope (e.g., all payments for a user) or what fields are searchable, which is slightly vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as get_payment for a single record or search_customers for customer lookup. There is no mention of prerequisites, exclusions, or typical use cases. The description solely states what it does but not why one would choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_webhookA
Simulate a webhook notification for testing
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Webhook type | |
| paymentId | Yes | Payment ID for the webhook |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not explain whether simulation triggers real side effects, returns a response, or modifies data. The phrase 'for testing' implies no real impact, but this is not explicit, leaving significant ambiguity about 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the action and purpose. Every word contributes to clarity, with no unnecessary filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 parameters, no output schema, no annotations), the description is somewhat minimal. It does not explain what 'simulate' entails or what the caller should expect. For a testing tool, a bit more context about the simulation mechanism or side effects would improve completeness, but the current level is adequate for a basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% parameter coverage, so the baseline is 3. The description adds no additional meaning beyond the schema, but the schema descriptions ('Webhook type', 'Payment ID for the webhook') are adequate for understanding the parameters. The enum values provide clear options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Simulate a webhook notification') and its purpose ('for testing'). The verb 'simulate' is specific, and the resource is well-defined, distinguishing it from sibling tools that perform actual payment operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used for testing webhook notifications, but does not explicitly state when to use it versus other tools or when not to use it. It lacks guidance on prerequisites or scenarios beyond the basic testing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_subscriptionB
Update subscription (pause, resume, modify)
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | New amount (optional) | |
| status | No | New status | |
| subscriptionId | Yes | Subscription ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It only says 'update' and lists action types, but does not explain side effects (e.g., billing proration, cancellation implications, auth requirements, reversibility), leaving the agent unaware of the operational impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler words. It is front-loaded with the action and resource, and the parenthetical examples add value without bloat. Slightly under-specified but appropriately concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having a clear schema, the tool is a mutating operation with no annotations and no output schema. The description does not convey necessary context about return values, error conditions, idempotency, or when status changes are valid. This is a significant gap for an update tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides complete descriptions for all parameters (100% coverage), so the description adds no extra meaning. The listed actions map loosely to the status enum but do not clarify relationships between amount and status. Baseline 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('update') and the resource ('subscription'), and adds examples of update types ('pause, resume, modify'), which distinguishes it from create/get siblings. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as create_subscription or get_subscription. The description does not mention prerequisites, exclusion conditions, or preferred scenarios.
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.
27 tool updates
v3.0.0- First observed
batch_create_payments - First observed
calculate_taxes - First observed
cancel_payment - First observed
create_customer - First observed
create_payment - First observed
create_payment_link - First observed
create_pix_payment - First observed
create_refund - First observed
create_split_payment - First observed
create_subscription - First observed
detect_fraud_risk - First observed
export_to_accounting - First observed
generate_reports - First observed
get_analytics_dashboard - First observed
get_customer - First observed
get_payment - First observed
get_payment_methods - First observed
get_subscription - First observed
list_saved_cards - First observed
monitor_payment_status - First observed
retry_failed_payment - First observed
save_card - First observed
schedule_payment_reminder - First observed
search_customers - First observed
search_payments - First observed
simulate_webhook - First observed
update_subscription
TDQS
Scored across 27 tools
Most tools target distinct resource-action pairs, but there is some potential confusion between general payment creation (create_payment) and specific variants (create_pix_payment, create_split_payment, batch_create_payments) as well as among reporting/analytics tools. Descriptions mitigate most ambiguity.
All tools use snake_case and mostly follow a verb_noun pattern, but a few names deviate from the standard (batch_create_payments, monitor_payment_status, schedule_payment_reminder) and mix verb forms. The convention is more consistent than not.
With 27 tools, the server exceeds the threshold for a well-scoped toolset. While Mercado Pago is a complex platform, the number is high and could overwhelm agents, and several tools could be consolidated (e.g., payment creation variants, reporting tools).
The toolset covers the core payment lifecycle (create, read, search, cancel, refund), customer management, subscriptions, cards, and adds analytics, fraud, and reporting. Minor gaps exist like no customer update/delete, no subscription cancellation, and no card removal, but these are not critical for basic workflows.
Maintenance
Related MCP Connectors
Connect your Mercado Pago account to AI via Brazil's Open Finance: balances, statements, cards, inve
Argentina payments for AI agents — Mercado Pago wallet / cuotas via Mercado Pago. Never holds funds.
Brazil payments for AI agents — Pix, cards, boleto via Mercado Pago. Never holds funds.
Peru payments for AI agents — Yape / PagoEfectivo via Mercado Pago. Never holds funds.
Related MCP Servers
- AlicenseAqualityDmaintenanceConnects AI agents to Mercado Pago, the leading payment platform in Latin America. Create payment links, search payments, get payment details, issue refunds, and retrieve merchant info.523 npm3MIT
- AlicenseAqualityCmaintenanceConnects AI agents to MercadoLibre, the largest e-commerce marketplace in Latin America. Search products, get item details, browse categories, track trends, and convert currencies.815 npm3MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to accept payments in Mexico via Mercado Pago, including OXXO cash vouchers, SPEI bank transfers, cards, and Mercado Pago wallet, through a stateless hosted checkout.MIT
- AlicenseNot gradedqualityBmaintenanceLets AI agents accept payments in Uruguay via Mercado Pago hosted checkout, supporting cards, cash, and wallet payments.MIT