Rebillia MCP Server
The Rebillia MCP Server enables AI assistants to programmatically manage a subscription billing platform via the Rebillia Public API, covering the following areas:
Customer Management: List, create, update, delete customers; manage addresses, payment methods, charges/credits, invoices (including unpaid), subscriptions, and activity logs.
Products: List, create, update, delete products; update status (published, archived, disabled); link/unlink external products.
Product Rate Plans: List, create, update, delete rate plans; update status; sync.
Product Rate Plan Charges: List, create, update, delete charges with support for charge types (oneTime, recurring, usage), charge models, billing periods, and tiered pricing.
Subscriptions: List, create, update, delete subscriptions; manage statuses (active, paused, archived, awaiting payment); view upcoming charges, invoices, logs, and external invoices; add/update/remove rate plans and their charges.
Invoices: List, create, update, delete invoices; charge (online/card or offline); void.
Transactions: List, retrieve, refund, and void transactions (void before settlement only; amounts in cents).
Bill Runs: List, retrieve, and update bill runs (pending only); retrieve associated invoices.
Payment Gateways: Discover global gateway types (e.g., Stripe, Braintree); create, update, delete, and test company gateways; get client tokens and create setup intents for gateway-agnostic payment flows.
Currencies: List, create, update, delete company currencies; get/set the default currency.
Integrations: List integrations and configs (Shopify, QuickBooks, Stripe, etc.); list external invoices, products, and order statuses.
Shipping: List shipping services; calculate shipping costs.
Filters: List, create, and remove custom filters; list available filter fields per section.
API Documentation: Access self-contained Rebillia API docs (overview, data models, statuses, charge types, gateway flows) via a dedicated tool or MCP resources (
rebillia://docs/*,rebillia://globals/*).
Rebillia MCP Server
Model Context Protocol (MCP) server for the Rebillia Public API. It exposes tools to call the API and resources with API documentation so AI assistants can manage customers, products, rate plans, and understand the API.
Features
Tools – Call Rebillia endpoints from your MCP client (e.g. Cursor, Claude Desktop):
Customers (22 tools) – List, get, create, update, delete; invoices (including unpaid), subscriptions, logs; addresses and payment methods; charges/credits
Products (8 tools) – List, get, create, update, delete; update status; link/unlink external products
Product rate plans (7 tools) – List by product, get, create, update, delete; update status; sync
Product rate plan charges (5 tools) – List by product rate plan, get, create, update, delete (with chargeType, chargeModel, billingPeriod, billingTiming enums and chargeTier array)
Subscriptions (19 tools) – List, get, create, update, delete; status; next bill, upcoming charges, invoices, logs, external invoices; subscription rate plans and rate plan charges (add/update/remove)
Invoices (8 tools) – List, get, create, update, delete; charge (card/online with paymentType), charge_external (offline), void
Transactions (4 tools) – List (customerId, invoiceId, status, type, dateFrom/dateTo, companyGatewayId, orderBy/sortBy, pagination), get, refund (amount in cents), void (before settlement only)
Bill runs (4 tools) – List (filter by completed/pending/error), get, update (newDateTime, ISO 8601; pending only), get bill run invoices
Gateways (9 tools) – List global gateways (discover gblGatewayId and required setting keys), list company gateways, get, create, update, delete, test gateway, get client token, create setup intent
Currencies (7 tools) – List, get, create, update, delete, get/set default currency
Integrations (8 tools) – List, get config, get/list by key; external invoices, products, order statuses
Shipping (2 tools) – List shipping services, calculate shipping
Filters (4 tools) – List filters (section required), create filter, list filter fields, remove filter
Documentation (1 tool) –
get_api_docsreturns overview or other API docs as markdown (no external fetch)Resources – API docs via MCP resources (
rebillia://docs/*): overview, models, subscription-statuses, charge-types, gateways. Country list atrebillia://globals/countries(id, code, name) for address tools. Global gateways atrebillia://globals/gateways(gblGatewayId, requiredFields) for gateway creation. All docs are self-contained; use these or the tool instead of fetching external URLs.Types – TypeScript types aligned with the Rebillia Public API response shapes
Related MCP server: @yawlabs/lemonsqueezy-mcp
Requirements
Node.js 18+
A Rebillia API key (see below)
Getting Your API Key
Go to Rebillia setup / welcome.
Select a plan and continue.
Sign up (create an account) or log in if you already have a Rebillia account.
After you’re in your company, open the dashboard.
In the dashboard, copy your API Token and use it as
REBILLIA_API_KEYin your environment or MCP client config.
Quick Start
No installation needed — npx handles everything automatically. Once you have your API Key, just choose your AI client in the Usage section below and paste the config.
Development
For contributors who want to run the server locally from source.
Clone and install
cd /path/to/rebillia-mcp-server npm installConfigure environment
Copy the example env file and set your API key and optional base URL:
cp .env.example .envEdit
.env:REBILLIA_API_KEY=your_api_key_here REBILLIA_API_URL=https://api.rebillia.com/v1REBILLIA_API_KEY– Required. Used asX-AUTH-TOKENfor all requests.REBILLIA_API_URL– Optional. Defaults tohttps://api.rebillia.com/v1(include/v1for the Public API).
Build
npm run build
Usage
The server uses stdio transport: it reads JSON-RPC from stdin and writes responses to stdout. MCP clients connect to it as a subprocess.
Configuring Claude Desktop
Open the Claude Desktop MCP config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the Rebillia server under
mcpServers:{ "mcpServers": { "rebillia": { "command": "npx", "args": [“-y”, “@rebilliaai/mcp-server”], "env": { "REBILLIA_API_KEY": "YOUR_API_KEY", "REBILLIA_API_URL": "https://api.rebillia.com/v1" } } } }Restart Claude Desktop. The Rebillia tools and resources (including
get_api_docs) will appear. You can ask Claude to use the Rebillia API or to “get the API docs” for overview information.
Configuring Cursor
Open Cursor MCP settings:
Settings → Cursor Settings → MCP, or
Open the MCP config file directly:
macOS/Linux:
~/.cursor/mcp.jsonor project-level.cursor/mcp.json
Windows:
%USERPROFILE%\.cursor\mcp.json
Add the Rebillia server in the MCP config. Example:
{ "mcpServers": { "rebillia": { "command": "npx", "args": [“-y”, “@rebilliaai/mcp-server”], "env": { "REBILLIA_API_KEY": "your_api_key_here", "REBILLIA_API_URL": "https://api.rebillia.com/v1" } } } }Restart Cursor or reload the MCP servers. Rebillia tools and resources will be available in the AI chat (e.g. “List customers”, “Get API docs”).
Tools
Responses are JSON from the Rebillia Public API (paginated for list endpoints, single object for get).
Customers (22 tools)
Tool | Description |
| List customers (pageNo, itemPerPage, query, status, sortBy, orderBy, include, filterId). |
| Get customer by ID (optional include: addressbook, paymentmethod, lastInvoice, subscriptions, unpaidInvoices, externalCustomers). |
| Create customer (firstName, lastName, email, optional fields). |
| Update customer by ID. |
| Delete customer by ID. |
| Get invoices for a customer (optional: status = authorized|posted|canceled|partialPaid|paid|voided|refund|partialRefund, dateFrom, dateTo, subscriptionId, include, pageNo, itemPerPage). |
| Get unpaid invoices for a customer ( |
| Get subscriptions for a customer. |
| Get logs for a customer. |
| List address book entries for a customer (pageNo, itemPerPage). |
| Get address by ID. |
| Create address (name, contactName, street1, city, state, zip, countryCode (ISO 3166-1 alpha-2), type, …). |
| Update address by ID (partial update). Required: customerId, addressId. Optional: any address field (e.g. street1, city, state, zip, countryCode, name, contactName, street2, company, contactEmail, contactPhone, type (residential |
| Delete address by ID. |
| List payment methods for a customer (pageNo, itemPerPage). |
| Get payment method by ID. |
| Create payment method (gateway-agnostic). Required: companyGatewayId, type, paymentMethodNonce, billingAddress (countryCode, …). Get client credential via get_client_token; use your payment UI to produce paymentMethodNonce. No raw card data or gateway-specific fields. |
| Update payment method billing address (gateway-agnostic). Required: customerId, paymentMethodId, billingAddress (countryCode, …). No payment or gateway-specific fields. |
| Delete payment method by ID. |
| List charges/credits (optional status, type). |
| Create charge/credit (amount in cents, description, type, companyCurrencyId, category, …). |
| Delete charge/credit by ID. |
Products (8 tools)
Tool | Description |
| List products (include: productRateplan, productRateplanCharge, chargeTier; status: published|draft|archived|disabled; name; category: baseProducts|addOn|bundleProduct|miscellaneous|service; orderBy, sortBy, itemPerPage, pageNo). |
| Get product by ID. |
| Create product (name, category, optional description, sku). |
| Update product by ID. |
| Delete product by ID (cascades to product rate plans). |
| Update status (published, archived, disabled). |
| Link external product (productId, companyIntegrationId, external productId, settings). |
| Unlink external product by ID. |
Product rate plans (7 tools)
Tool | Description |
| List product rate plans for a product (GET /products/{productId}/product-rateplans). |
| Get product rate plan by ID. |
| Create product rate plan (productId, name, type: contract|ongoing|prepaid). |
| Update product rate plan by ID. |
| Delete product rate plan by ID. |
| Update status (published, archived, disabled, discontinue). |
| Sync product rate plan (POST …/sync). |
Product rate plan charges (5 tools)
Tool | Description |
| List product rate plan charges for a product rate plan (GET …/product-rateplan-charges). |
| Get product rate plan charge by ID. |
| Create product rate plan charge (ratePlanId, name, chargeType, chargeModel, billCycleType, category, chargeTier array, taxable, weight, endDateCondition, …). Enums: chargeType (oneTime, recurring, usage), chargeModel (flatFeePricing, perUnitPricing, tieredPricing, volumePricing), billingPeriod (day, week, month, year), billingTiming (inAdvance, inArrears). |
| Update product rate plan charge by ID. |
| Delete product rate plan charge by ID. |
Subscriptions (19 tools)
Tool | Description |
| List subscriptions (include, query, orderBy, sortBy, filterId, status, customerId, companyGatewayId, dateFrom, dateTo, itemPerPage, pageNo). |
| Get subscription by ID. |
| Create subscription from product rate plan (productRatePlanId, customerId, customerPaymentMethodId, billingAddressId, effectiveStartDate). |
| Update subscription by ID. |
| Delete subscription by ID. |
| Update status (e.g. archived). |
| Upcoming charges. |
| Invoices for subscription. |
| Logs for subscription. |
| External invoices. |
| Rate plans on subscription (optional status: active|pause|cancel|archived; type: ongoing|prepaid|contract, case-insensitive). |
| Get rate plan by ID. |
| Add rate plan to subscription. |
| Update rate plan (effectiveStartDate, etc.). |
| Remove rate plan from subscription. |
| Get rate plan charge by ID. |
| Add charge to rate plan. Required: subscriptionId, ratePlanId, quantity, name, category (physical|digital), chargeModel (flatFeePricing|perUnitPricing|tieredPricing|volumePricing), billCycleType, chargeTier (array: currency, price required; optional startingUnit, endingUnit, priceFormat, tier), chargeType (oneTime|recurring|usage), endDateCondition (subscriptionEnd|fixedPeriod), taxable (boolean), weight. When chargeType is recurring, billingPeriodAlignment and specificBillingPeriod are also required. |
| Update rate plan charge. Required: subscriptionId, chargeId, quantity, name, chargeModel, billCycleType, chargeTier (currency, price), chargeType, endDateCondition, taxable, weight. When chargeType is recurring, billingPeriodAlignment required. |
| Remove charge from rate plan. |
Invoices (8 tools)
Tool | Description |
| List invoices (include, status, query, orderBy, sortBy, filterId, itemPerPage, pageNo). |
| Get invoice by ID. |
| Create invoice. Required: companyCurrencyId, companyGatewayId, customerId, paymentMethodId, detail. Optional billingAddress/shippingAddress use countryCode (ISO 3166-1 alpha-2). Amount can be '41.00' (dollars) or 4100 (cents); tool always sends cents to publicAPI. |
| Update invoice (only posted/requestPayment). |
| Delete invoice by ID. |
| Charge invoice (card/online). Required: invoiceId, amount (cents), paymentType (e.g. thirdPartyPaymentProvider). |
| Charge via offline (cash/check/wire). Required: invoiceId, amount (cents). |
| Void invoice (irreversible). |
Transactions (4 tools)
Tool | Description |
| List transactions (customerId, invoiceId, status, type, dateFrom, dateTo, companyGatewayId, orderBy, sortBy, itemPerPage, pageNo). |
| Get transaction by ID. |
| Refund transaction. Required: transactionId, amount (in cents, e.g. 250 = $2.50). |
| Void transaction (before settlement only). |
Bill runs (4 tools)
Tool | Description |
| List bill runs. Optional: include (e.g. invoice), query (completed/pending/error), orderBy, sortBy, itemPerPage, pageNo. |
| Get bill run by ID. |
| Update bill run schedule. Required: billRunId, newDateTime (ISO 8601, e.g. 2026-02-26T20:05:00Z). Note: this tool only works on bill runs with status pending. Calls against completed or error runs will fail. |
| Get invoices for a bill run. Optional: pageNo, itemPerPage. |
Gateways (9 tools)
Tool | Description |
| List available global gateway types (e.g. Stripe, Braintree). Returns gblGatewayId, name, keyName, requiredFields (setting keys), and fieldDetails. Call this before |
| List company gateways. |
| Get gateway by ID. |
| Create gateway. Required: gblGatewayId (from |
| Update gateway by ID. |
| Delete gateway by ID. |
| Test gateway connection. |
| Get the gateway client credential to initialize your payment integration and produce a paymentMethodNonce for create_customer_payment_method. Gateway-agnostic. Required: gatewayId. Optional: customerId; required for PayFabric, optional for others. |
| Create/retrieve a setup intent via |
Gateway creation example flow: (1) Call list_global_gateways (no args). (2) Pick a gateway (e.g. Stripe, Braintree) and note its gblGatewayId and requiredFields. (3) Build a setting object with those keys and your credential values. (4) Call create_gateway with that gblGatewayId and setting. See rebillia://docs/gateways or get_api_docs with doc: "gateways" for full details.
Currencies (7 tools)
Tool | Description |
| List company currencies. |
| Get currency by ID. |
| Create company currency. |
| Update currency by ID. |
| Delete currency by ID. |
| Get default company currency. |
| Set default currency by ID. |
Integrations (8 tools)
Tool | Description |
| List company integrations. |
| Get integration config by ID. |
| Get integration by key. |
| List integrations by key. |
| List external invoices. |
| List external products (productName required). |
| Get external product by ID. |
| List order statuses. |
Shipping (2 tools)
Tool | Description |
| List shipping services. |
| Calculate shipping (companyCurrencyId, fromZip, fromCountry, zip, country, weight, orderAmount, etc.). |
Filters (4 tools)
Tool | Description |
| List company filters. Required: section (e.g. subscriptions, invoices, customers, products, orders, billRuns). |
| Create filter (section, displayName, rules). |
| List filter fields for a section. |
| Delete a company filter by ID (DELETE /companies/filters/{filterId}). |
Documentation (1 tool)
Tool | Description |
| Get Rebillia API documentation as markdown. Default: overview (base URLs, auth, pagination, dates, amounts). Optional: doc = overview | models | subscription-statuses | charge-types | gateways. Use this so Claude can read docs without fetching external URLs. |
Resources
API documentation is exposed as MCP resources under rebillia://docs/*. Use resources/list then resources/read with the URI, or call the get_api_docs tool. All docs are self-contained; do not fetch external URLs.
URI | Description |
| Overview documentation – base URLs, auth, pagination, date format, amount handling (read this first) |
| Domain model hierarchy and relationships |
| Subscription statuses: active, paused, archived, requestPayment |
| chargeType, chargeModel, billingPeriod, billingTiming enums |
| Gateway creation flow: use |
| Global gateways list (when client provided): gblGatewayId, name, keyName, requiredFields, fieldDetails – use with |
Project structure
src/
├── index.ts # MCP server entry, tools + resources handlers
├── client.ts # HTTP client for Rebillia API (X-AUTH-TOKEN)
├── types.ts # Rebillia API types (customers, invoices, etc.)
├── services/ # API call layer (used by tools)
│ ├── customerServices.ts
│ ├── productServices.ts
│ ├── productRatePlanServices.ts
│ ├── productRatePlanChargeServices.ts
│ ├── subscriptionServices.ts
│ ├── invoiceServices.ts
│ ├── transactionServices.ts
│ ├── billRunServices.ts
│ ├── gatewayServices.ts
│ ├── globalGatewayService.ts
│ ├── countryResolverService.ts
│ ├── currencyServices.ts
│ ├── integrationServices.ts
│ ├── shippingServices.ts
│ └── filterServices.ts
├── tools/
│ ├── index.ts # Tool registry, getToolDefinitions(), executeTool()
│ ├── types.ts # Tool definition and handler types
│ ├── customers/ # Customer tools (22)
│ ├── products/ # Product tools (8)
│ ├── product_rate_plans/ # Product rate plan tools (7)
│ ├── product_rate_plan_charges/ # Product rate plan charge tools (5)
│ ├── subscriptions/ # Subscription tools (19)
│ ├── invoices/ # Invoice tools (8)
│ ├── transactions/ # Transaction tools (4)
│ ├── bill_runs/ # Bill run tools (4)
│ ├── gateways/ # Gateway tools (9)
│ ├── currencies/ # Currency tools (7)
│ ├── integrations/ # Integration tools (8)
│ ├── shipping/ # Shipping tools (2)
│ ├── filters/ # Filter tools (4)
│ └── docs/ # get_api_docs (1)
├── resources/
│ ├── index.ts # listResources(), readResource()
│ └── api-docs.ts # registerResources(), doc resources, getDocContent()
├── prompts/ # (reserved for MCP prompts)
└── types/
└── addressInput.tsScripts
Script | Command | Description |
build |
| Compile TypeScript to |
start |
| Run |
dev |
| Run with |
test |
| Run Vitest |
test:run |
| Run tests once (non-watch mode) |
License
MIT
Available Tools
108 toolsadd_subscription_rate_planB
Add a rate plan to a subscription. POST /subscriptions/{subscriptionId}/rateplans. Required: productRatePlanId (product rate plan to attach). Optional: name, type (contract|ongoing|prepaid), effectiveStartDate, changeStatusBasedOnCharge, ratePlanCharge (array of {quantity, optional productRatePlanChargeId, or name, chargeType, chargeTier, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| productRatePlanId | Yes | Product rate plan ID to add (required) | |
| name | No | Override name | |
| type | No | contract, ongoing, or prepaid | |
| effectiveStartDate | No | YYYY-MM-DD | |
| changeStatusBasedOnCharge | No | Change status based on charge | |
| ratePlanCharge | No | Initial charges: each { quantity, optional productRatePlanChargeId, or full definition with chargeTier } |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose behavioral traits such as side effects or required permissions. It only states the action and parameters, omitting details like whether it modifies subscription status, triggers billing, or is reversible.
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 concise, combining a purpose statement with a parameter list in a single sentence. It is front-loaded with the action and endpoint, though it could be better structured (e.g., bullet points) for clarity.
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's complexity (7 parameters, no output schema, no annotations), the description lacks context about post-addition effects, return values, or implications for the subscription. It fails to provide a complete picture for an AI agent to use 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?
Since schema coverage is 100%, the baseline is 3. The description adds minor value by explaining the required 'productRatePlanId' and briefly describing 'ratePlanCharge' structure, but does not significantly expand on parameter meanings beyond the schema.
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 ('Add a rate plan to a subscription') and includes the HTTP endpoint, making the purpose unambiguous. It distinctively differs from sibling 'add_subscription_rate_plan_charge' by focusing on adding a rate plan itself.
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 only lists parameters and does not provide guidance on when to use this tool versus alternatives like 'add_subscription_rate_plan_charge' or 'update_subscription_rate_plan'. No when-not conditions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_subscription_rate_plan_chargeB
Add a rate plan charge to a subscription rate plan. POST .../rateplan-charges. Required: subscriptionId, ratePlanId, quantity, name, category (physical|digital), chargeModel (flatFeePricing|perUnitPricing|tieredPricing|volumePricing), billCycleType (chargeTriggerDay|defaultFromCustomer|specificDayOfMonth|specificDayOfWeek|specificMonthOfYear|subscriptionStartDay|subscriptionFreeTrial), chargeTier array (each: currency, price required; optional startingUnit, endingUnit, priceFormat, tier), chargeType (oneTime|recurring|usage), endDateCondition (subscriptionEnd|fixedPeriod), taxable (boolean), weight. When chargeType is recurring, billingPeriodAlignment and specificBillingPeriod are also required. Optional: productRatePlanChargeId, billingPeriod, billingTiming.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| ratePlanId | Yes | Subscription rate plan ID (required) | |
| quantity | Yes | Quantity (required) | |
| name | Yes | Charge name (required) | |
| category | Yes | Required. physical or digital | |
| chargeModel | Yes | Required. flatFeePricing|perUnitPricing|tieredPricing|volumePricing | |
| billCycleType | Yes | Required. chargeTriggerDay|defaultFromCustomer|specificDayOfMonth|specificDayOfWeek|specificMonthOfYear|subscriptionStartDay|subscriptionFreeTrial | |
| chargeTier | Yes | Required. Array of tiers: currency (required), price (required, e.g. cents), optional startingUnit, endingUnit, priceFormat, tier | |
| chargeType | Yes | Required. oneTime|recurring|usage | |
| endDateCondition | Yes | Required. subscriptionEnd or fixedPeriod | |
| taxable | Yes | Required. Whether the charge is taxable | |
| weight | Yes | Required. Weight or null. Numeric values are converted to integer by multiplying by 100 (e.g. 32.75 -> 3275). | |
| productRatePlanChargeId | No | Product rate plan charge ID to reference | |
| billingPeriod | No | day, week, month, year | |
| billingTiming | No | inAdvance, inArrears | |
| billingPeriodAlignment | No | Required when chargeType is recurring. Valid values: alignToCharge, alignToSubscriptionStart, alignToTermStart | |
| specificBillingPeriod | No | Required when chargeType is recurring |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: it is a POST (creating), notes required fields, highlights conditional requirements for billingPeriodAlignment/specificBillingPeriod when chargeType is recurring, and explains special handling of the weight parameter (multiplied by 100). Missing side effects or error conditions, but covers substantial behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph. It front-loads the purpose but becomes a run-on list of requirements. While efficient, it lacks structure (e.g., bullet points) and could be slightly more concise. Still, every sentence adds 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?
The tool has 17 parameters, no output schema, and complex constraints. The description thoroughly covers input requirements and conditional fields, but fails to mention return values, success/failure indicators, or error handling. This is a notable gap for a creation tool with no output schema.
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 baseline is 3. The description adds meaningful context beyond schema: grouping required fields, explaining the weight conversion, and clarifying the chargeTier array structure. This extra information helps the agent understand parameter usage beyond the schema descriptors.
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 ('Add a rate plan charge to a subscription rate plan') and provides the POST endpoint. It lists the purpose and required fields, but does not explicitly differentiate from sibling tools like `create_product_rate_plan_charge` which might be confused.
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 (e.g., `add_subscription_rate_plan` or `create_product_rate_plan_charge`). It does not state prerequisites or when not to use it, leaving the agent without decision support among many related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_shippingB
Calculate shipping rates. POST /shipping/calculate. Required: companyCurrencyId, fromZip, fromCountry, zip, country, weight, orderAmount, itemCount. Optional: residential, street1, street2, city, state, services, packagingType.
| Name | Required | Description | Default |
|---|---|---|---|
| companyCurrencyId | Yes | Company currency ID (required) | |
| fromZip | Yes | Origin zip (required) | |
| fromCountry | Yes | Origin country code (required) | |
| zip | Yes | Destination zip (required) | |
| country | Yes | Destination country code (required) | |
| weight | Yes | Weight (required) | |
| orderAmount | Yes | Order amount (required) | |
| itemCount | Yes | Item/order quantity (required) | |
| residential | No | Residential address indicator | |
| street1 | No | Street line 1 | |
| street2 | No | Street line 2 | |
| city | No | City | |
| state | No | State | |
| services | No | Service IDs to filter | |
| packagingType | No | Packaging type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions HTTP method and parameter list. Does not disclose side effects, idempotency, error handling, or whether calculation logs anything.
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?
Two sentences, front-loaded with action and endpoint. Efficient listing of required/optional params.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations; description omits what the response contains (rates, carriers, etc.). For 15 parameters, more context on assumptions and return structure is needed.
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 baseline is 3. Description restates parameter names but adds no new meaning beyond the schema field descriptions.
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?
Clearly states the action 'calculate shipping rates' and the resource, using a specific verb-noun pair. No other sibling tool performs this function, so it is distinct.
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 vs alternatives. Lists required/optional parameters but does not explain preconditions or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
charge_invoiceA
Charge an invoice (card/online payment). POST /invoices/{invoiceId}/charge. AMOUNT IN CENTS: e.g. 5500 = $55.00. Required: invoiceId, amount (integer cents), paymentType (offlinePaymentProvider | thirdPartyPaymentProvider | walletPaymentProvider | otherPayment). Use thirdPartyPaymentProvider for card/online.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | Invoice ID (required) | |
| amount | Yes | Amount in CENTS (e.g. 5500 = $55.00). Integer, required. | |
| paymentType | Yes | Payment type (required): offlinePaymentProvider, thirdPartyPaymentProvider, walletPaymentProvider, or otherPayment. Use thirdPartyPaymentProvider for card/online. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It mentions it's a POST request and charges an invoice, but does not disclose side effects (e.g., invoice status change, payment recording), error conditions, or idempotency. This is insufficient 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 concise, front-loads the action and endpoint, and presents key details (cents, required fields, payment type guidance) without wasted words. Every sentence adds 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?
Given no output schema and simple parameters, the description is mostly adequate but lacks mention of prerequisites (e.g., invoice must be unpaid), typical response, or error cases. It covers the basics but leaves some 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?
Schema coverage is 100%, but the description adds value beyond schema: clarifies 'amount' is in cents with an example, explains paymentType options, and recommends thirdPartyPaymentProvider for card/online. This aids correct parameter usage.
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 charges an invoice via card/online payment, specifies the POST endpoint, and distinguishes from siblings like charge_invoice_external by implying it's for internal payment types. The verb 'charge' and resource 'invoice' are 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?
The description gives guidance on paymentType values (e.g., 'Use thirdPartyPaymentProvider for card/online') but does not explicitly state when to use this tool versus alternatives like charge_invoice_external. Usage context is implied but not contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
charge_invoice_externalA
Charge an invoice via offline payment (cash/check/wire). POST /invoices/{invoiceId}/charge with paymentType: offlinePaymentProvider. AMOUNT IN CENTS: e.g. 5500 = $55.00. Required: invoiceId, amount (integer cents).
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | Invoice ID (required) | |
| amount | Yes | Amount in CENTS (e.g. 5500 = $55.00). Integer, required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides the HTTP method (POST) and endpoint, and clarifies the amount format (cents). It does not disclose side effects, errors, or idempotency, but for a simple charge operation, the information is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with three sentences. It leads with the core purpose, includes the HTTP method and endpoint, then provides critical parameter details. No unnecessary 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?
The description covers the essential aspects: action, payment type, endpoint, and parameter format. However, it does not mention the return value or outcome of the operation, which could aid the agent in understanding the full 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 covers both parameters with descriptions (100% coverage). The description adds valuable context by explicitly stating 'AMOUNT IN CENTS' with an example (5500 = $55.00), which clarifies the unit beyond the schema's generic description.
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 ('Charge an invoice') and specifies the payment method ('offline payment (cash/check/wire)'). It also provides the API endpoint, distinguishing it from sibling tools like 'charge_invoice' which likely handles other payment methods.
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 explicitly mentions offline payment, indicating the context of use. It does not list alternatives or when not to use, but the mention of 'offline payment' gives clear guidance when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_currencyB
Create a company currency. POST /currencies. Required: currencyId (global currency ID), conversionRate (number), fixedRate (boolean).
| Name | Required | Description | Default |
|---|---|---|---|
| currencyId | Yes | Global currency ID (required) | |
| conversionRate | Yes | Conversion rate (required) | |
| fixedRate | Yes | Fixed rate flag (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description lacks behavioral details such as idempotency, error handling, or side effects. Only the HTTP method and required parameters are mentioned.
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?
Extremely concise with two sentences, front-loaded with the main action. No unnecessary 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?
Given no output schema and no annotations, the description is too minimal. It does not explain return values, error conditions, or post-creation behavior.
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%, but the description merely repeats the required parameters without adding meaning or constraints beyond what the schema already documents.
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 company currency') and the resource ('currency'), distinguishing it from sibling tools like get_currency, update_currency, etc.
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 vs alternatives (e.g., update_currency). The description only states the action without context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_customerA
Create a new customer. POST /customers. Required: firstName, lastName, email. Optional: businessName, locale, phoneNum, phoneExt, preferredCurrency, taxExempt.
| Name | Required | Description | Default |
|---|---|---|---|
| firstName | Yes | Customer first name (required) | |
| lastName | Yes | Customer last name (required) | |
| Yes | Customer email (required) | ||
| businessName | No | Business name | |
| locale | No | Locale code | |
| phoneNum | No | Phone number | |
| phoneExt | No | Phone extension | |
| preferredCurrency | No | Preferred currency code | |
| taxExempt | No | Whether customer is tax exempt |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description must disclose behavioral traits. It reveals the HTTP method and field requirements but omits side effects (e.g., duplicate email handling), idempotency, authorization needs, or error 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 two concise sentences, front-loaded with the core purpose, and contains no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers input parameters, it lacks information about the output (e.g., returns created customer ID) and does not address potential conflicts or limitations, leaving gaps despite the tool's simplicity.
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 descriptions. The description restates required/optional fields, adding minimal value beyond the schema.
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 customer'), includes the HTTP method and endpoint, and lists required and optional fields. This distinguishes it from siblings like create_currency or create_invoice, which serve different entities.
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 for creating customers but does not specify when to use it versus alternatives like update_customer, nor does it provide exclusions or context-dependent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_customer_addressB
Create an address book entry for a customer. POST /customers/{customerId}/addressbooks. Required: name, contactName, street1, city, state, zip, countryCode (ISO 3166-1 alpha-2), type (residential or commercial). Optional: street2, company, contactEmail, contactPhone.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| name | Yes | Address name (required) | |
| contactName | Yes | Contact name (required) | |
| street1 | Yes | Street line 1 (required) | |
| city | Yes | City (required) | |
| state | Yes | State (required) | |
| zip | Yes | Postal code (required) | |
| countryCode | Yes | ISO 3166-1 alpha-2 country code, e.g. ES, AR, MX | |
| type | Yes | Address type (required): residential or commercial | |
| street2 | No | Street line 2 | |
| company | No | Company name | |
| contactEmail | No | Contact email | |
| contactPhone | No | Contact phone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. It only lists fields but does not mention idempotency, required customer existence, response format, or error 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 brief and front-loaded with the action and endpoint, but listing all fields adds redundancy given the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not specify what is returned upon creation or potential errors, leaving the agent uninformed about 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?
Schema coverage is 100% with each parameter described. The description mostly repeats schema info but adds minimal value, such as listing required fields and country code format.
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?
Clearly states 'Create an address book entry for a customer' and provides the HTTP endpoint, distinguishing it from sibling tools like update_customer_address or delete_customer_address.
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?
Implies usage for creating new addresses but does not explicitly state when to use versus alternative tools, nor provides prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_customer_charge_creditA
Create a charge or credit for a customer. POST /customers/{customerId}/charges_credits. IMPORTANT: amount is in CENTS (e.g. 10000 = $100.00). Required: amount (integer, in cents), type (charge or credit), companyCurrencyId, category (physical or digital). Optional: description, qty (default 1), isFreeShipping, taxable, weight (required by API when category is physical).
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| amount | Yes | Amount in CENTS (required). Example: 1000 = $10.00, 500 = $5.00. Must be a positive integer. | |
| description | No | Description (max 200 chars) | |
| type | Yes | Type (required): charge or credit | |
| companyCurrencyId | Yes | Company currency ID (required, must be > 0) | |
| category | Yes | Category (required): physical or digital | |
| qty | No | Quantity (default 1) | |
| isFreeShipping | No | Free shipping | |
| taxable | No | Whether the line is taxable | |
| weight | No | Weight (required by API when category is physical) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It mentions the API endpoint (POST) and important notes about amount units and conditional weight requirement. However, it does not disclose other behavioral traits such as side effects, idempotency, authorization needs, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, front-loading the purpose and endpoint, then providing a clear list of required/optional parameters. It avoids unnecessary verbosity but could be slightly more streamlined.
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 10 parameters, no output schema, and no annotations, the description covers the essentials but lacks information about return values, error scenarios, and idempotency. It is adequate for a creation tool but not fully complete.
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 covers 100% of parameters, so baseline is 3. The description adds value by emphasizing that amount is in cents with examples, clarifying that weight is required when category is physical, and listing required vs. optional parameters in a readable way.
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 purpose: 'Create a charge or credit for a customer.' It uses a specific verb and resource, distinguishing it from siblings like delete_customer_charge_credit and list_customer_charges_credits.
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 specifies required and optional parameters but does not explicitly state when to use this tool over alternatives. However, it is clear that this is for creating a charge/credit directly, unlike other tools for charging invoices. No exclusion criteria are given, but the context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_customer_payment_methodA
Create a payment method for a customer. Gateway-agnostic: required companyGatewayId, type (card or ach), paymentMethodNonce, billingAddress (countryCode, street1, city, state, zip). Obtain gateway client credential via get_client_token; use your payment integration to produce paymentMethodNonce, then call this tool. No raw card data or gateway-specific fields in MCP.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| companyGatewayId | Yes | Company gateway ID (required) | |
| type | Yes | Payment method type (required): card or ach | |
| paymentMethodNonce | Yes | Single-use token from your payment integration. Obtain gateway client credential via get_client_token, then use your hosted payment UI to produce this token. Do not send raw card data. Gateway-specific tokenization is handled outside MCP. | |
| billingAddress | Yes | Billing address (required): countryCode, street1, city, state, zip; street2 optional |
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 discloses that the tool is gateway-agnostic, does not accept raw card data, and requires a single-use token. It doesn't discuss mutation side effects or return format, but it is transparent about the data handling and integration path.
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 three sentences, front-loaded with the purpose. The second sentence lists required fields, and the third explains the token workflow. While efficient, there is minor redundancy (e.g., 'Gateway-agnostic:' repeats info from schema). Still, it is well-structured for quick parsing.
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 covers purpose, workflow, and parameters. However, with no output schema and no mention of return values (e.g., created payment method object or ID), the agent lacks information about the tool's output. For a creation action, this is a notable gap, lowering 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%, baseline 3. The description adds value by explaining the workflow for paymentMethodNonce, specifying that billingAddress requires countryCode, street1, city, state, zip (with street2 optional), and clarifying type values ('card or ach'). This goes beyond the schema field descriptions.
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 purpose: 'Create a payment method for a customer.' It specifies gateway-agnostic nature and enumerates required fields. This differentiates it from sibling tools like update_customer_payment_method, delete_customer_payment_method, and get_customer_payment_method.
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 a clear workflow: obtain gateway client credential via get_client_token, use a payment integration to produce a paymentMethodNonce, then call this tool. It does not explicitly state when not to use this tool or mention alternatives, but the prerequisites and process are well explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_filterC
Create a company filter. POST /companies/filters. Required: displayName, section, isDefault, rules (array of { operatorId, attributeId, settingValues }). Optional per rule: operatorDisplayName. Section: billRuns, companyInbox, companyInvoices, companyLogs, companyNotifications, companyUpcomingSchedule, creditNotes, customers, ...
| Name | Required | Description | Default |
|---|---|---|---|
| displayName | Yes | Display name (required) | |
| section | Yes | Section (required). One of: subscriptions, invoices, customers, products, orders, etc. | |
| isDefault | Yes | Set as default filter (required) | |
| rules | Yes | Rules array (required). Each: operatorId (number), attributeId (number), settingValues (array of { value }), optional operatorDisplayName |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only indicates creation but lacks details on permissions, idempotency, side effects, or what happens on success/error.
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 with key details and a list of required fields. Concise without unnecessary words, though could be slightly more structured with separate sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, yet description does not mention return value or response. Lacks constraints like uniqueness or allowed values for section (only gives examples). Incomplete for a creation 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 coverage is 100%, so baseline 3. Description adds a bit by listing required fields and explaining the rules structure, but mostly repeats schema info.
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 'Create a company filter' with the endpoint and required fields. It is specific to creation, but does not differentiate from siblings like 'list_filters' or 'remove_filter'.
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 (e.g., updating or deleting filters). No context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_gatewayA
Create a company gateway. POST /gateways. Required: gblGatewayId, setting (credentials object). Optional: displayName, card (array of card type IDs), paymentMethod. Use list_global_gateways first to discover valid gblGatewayId and required setting keys (requiredFields / fieldDetails) for each gateway type (e.g. Stripe, Braintree); then build setting with those keys as field names and your credential values.
| Name | Required | Description | Default |
|---|---|---|---|
| gblGatewayId | Yes | Global gateway ID (required). Obtain from list_global_gateways; use the id as gblGatewayId. | |
| displayName | No | Display name for the gateway | |
| setting | Yes | Credentials object (required). Keys must match the gateway's requiredFields from list_global_gateways (e.g. publicKey, privateKey, merchantId, transactionKey). Use fieldDetails for human-readable labels. | |
| card | No | Array of card type IDs (optional) | |
| paymentMethod | No | Payment method (optional, may be required by API) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It discloses that it creates via POST, required fields, and prerequisite steps, but does not mention idempotency, error handling, 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?
Single paragraph that front-loads purpose and then details prerequisite and parameter construction. Every sentence adds value, but could be slightly more concise without losing clarity.
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 complexity (5 params, nested object, no output schema), description covers prerequisite, required/optional fields, and setting construction. Lacks error handling or response details, but adequate for creation 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 coverage is 100%, but description adds meaning by explaining how to construct setting with keys from list_global_gateways, and clarifies that card is array of card type IDs and paymentMethod may be required by API.
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?
Clearly states it creates a company gateway, specifies HTTP method POST and endpoint, and distinguishes from sibling tools like delete_gateway and update_gateway by focusing on creation.
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?
Explicitly instructs to call list_global_gateways first to discover valid gblGatewayId and required setting keys, and notes that paymentMethod may be required by API. Lacks explicit when-not-to-use alternatives but provides strong context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_invoiceA
Create an invoice. POST /invoices. Required: companyCurrencyId, companyGatewayId, customerId, paymentMethodId, detail (array, at least one line item), dateDue, dateFrom, dateTo. Optional: billingAddress, shippingAddress (when provided: contactName, street1, city, zip, countryCode (ISO 3166-1 alpha-2), type residential|commercial), customerEmail (max 45), customerName (max 45), customerPhone (max 45), paymentType (offlinePaymentProvider|thirdPartyPaymentProvider|walletPaymentProvider|otherPayment), shippingAmount (CENTS), terms (max 200), comments (max 200). Detail: amount can be '41.00' (dollars) or 4100 (cents). Tool always sends cents to publicAPI.
| Name | Required | Description | Default |
|---|---|---|---|
| companyCurrencyId | Yes | Company currency ID (required) | |
| companyGatewayId | Yes | Company gateway ID (required) | |
| detail | Yes | Line items (required, at least one). Each: amount as '41.00' (dollars) or 4100 (cents). Tool always sends cents to publicAPI. description (max 255), qty | |
| customerId | Yes | Customer ID (required) | |
| customerEmail | No | Customer email (max 45) | |
| customerName | No | Customer name (max 45) | |
| customerPhone | No | Customer phone (max 45) | |
| paymentMethodId | Yes | Payment method ID (required) | |
| customerPaymentMethodId | No | Customer payment method ID | |
| paymentType | No | offlinePaymentProvider, thirdPartyPaymentProvider, walletPaymentProvider, or otherPayment | |
| dateDue | Yes | Due date (valid date). Required. | |
| dateFrom | Yes | Period from (valid date). Required. | |
| dateTo | Yes | Period to (valid date). Required. | |
| billingAddress | No | Optional. If provided: contactName, street1, city, zip, countryCode (ISO 3166-1 alpha-2 country code, e.g. ES, AR, MX), type (residential|commercial) | |
| shippingAddress | No | Optional. Same shape as billingAddress | |
| shippingAmount | No | Shipping amount in CENTS | |
| terms | No | Terms (max 200) | |
| comments | No | Comments (max 200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses unit handling ('Tool always sends cents to publicAPI') but omits other behavioral traits like idempotency, error handling, or side effects.
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 paragraph that efficiently conveys purpose and parameters. It is front-loaded but could be more structured (e.g., using bullet lists). No redundant sentences.
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 18 parameters, nested objects, and no output schema, the description adequately covers required/optional, constraints, and unit behavior. It lacks response details but that's acceptable without an output schema.
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%, baseline 3. The description adds value by grouping required/optional, specifying max lengths, ISO country code, and valid enumeration values (e.g., paymentType, type), and clarifying amount unit conversion.
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 'Create an invoice' and specifies the HTTP method 'POST /invoices'. It lists required and optional parameters, distinguishing it from siblings like charge_invoice or update_invoice.
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 (e.g., charge_invoice, create_subscription). No explicit context or exclusions are given, leaving the agent to infer appropriateness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_productB
Create a product. POST /products. Required: name, category. Optional: description, internalProductId, sku.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Product name (required) | |
| category | Yes | Category (required) | |
| description | No | Description | |
| internalProductId | No | Internal product ID | |
| sku | No | SKU |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It discloses mutation via 'POST' but omits behavioral details such as idempotency, error states, response format, or side effects (e.g., duplicate handling).
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?
Two sentences, front-loaded with the main action, then a bullet list of fields. Efficient but could be trimmed by not repeating schema names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations exist. The description lacks return value information, error handling, and authentication context. For a CRUD operation with 5 parameters, it is 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 coverage is 100%, so the schema already documents parameters. The description restates required vs optional but adds no additional constraints, valid values, or formatting rules beyond what the schema 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 ('create'), the resource ('product'), and the HTTP method ('POST'). It distinguishes from siblings like 'update_product' or 'create_product_rate_plan'.
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 implicitly indicates usage for creating a product but offers no guidance on when to use this tool vs alternatives like 'create_product_rate_plan' or 'update_product'. No explicit 'do not use' conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_product_rate_planC
Create a rate plan. POST /product-rateplans. Required: productId (product reference, URI: /products/{productId}), name, type (contract|ongoing|prepaid). Optional: description, effectiveStartDate, effectiveEndDate, minimumCommitment, image.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Product ID (URI: /products/{productId}) | |
| name | Yes | Rate plan name | |
| type | Yes | Type: contract, ongoing, or prepaid | |
| description | No | Description | |
| effectiveStartDate | No | Effective start date | |
| effectiveEndDate | No | Effective end date | |
| minimumCommitment | No | Minimum commitment | |
| minimumCommitmentLength | No | Minimum commitment length | |
| minimumCommitmentUnit | No | Minimum commitment unit | |
| changeStatusBasedOnCharge | No | Change status based on charge | |
| sourceTemplateId | No | Source template ID | |
| image | No | Image |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must fully disclose behavior. It states it's a POST operation to create a resource but omits details on side effects, permissions, error conditions, or idempotency. The disclosure is minimal.
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 concise with two sentences that front-load the purpose and include key parameter groups. It is well-structured but could be more accurate by listing all optional 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?
Given 12 parameters, no output schema, and no annotations, the description is incomplete. It fails to explain return values, handle error cases, or provide relational context with sibling tools like create_product_rate_plan_charge. Significant gaps remain.
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 baseline is 3. The description adds value by listing required fields and enumerating type values (contract|ongoing|prepaid) not explicitly in the schema. However, it omits several optional parameters (e.g., minimumCommitmentLength, changeStatusBasedOnCharge) that are present in the schema, which could 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 clearly states 'Create a rate plan' with a verb and resource. It also mentions the HTTP method and endpoint. However, it does not explicitly differentiate from sibling tools like create_product_rate_plan_charge, though the naming implies the difference.
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 (e.g., update, list). There is no mention of prerequisites or context that would help the agent decide to use this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_product_rate_plan_chargeB
Create a rate plan charge. POST /product-rateplan-charges. Required: ratePlanId (rate plan reference, URI: /product-rateplans/{ratePlanId}), name, chargeType (oneTime|recurring|usage), chargeModel (flatFeePricing|perUnitPricing|tieredPricing|volumePricing), billCycleType, category (physical|digital), chargeTier (array of {currency ex. 'USD', price in cents, optional startingUnit, endingUnit, priceFormat, tier}), taxable, weight. Optional: billingPeriod (day|week|month|year), billingTiming (inAdvance|inArrears), description, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| ratePlanId | Yes | Rate plan ID (URI: /product-rateplans/{ratePlanId}) | |
| name | Yes | Charge name | |
| chargeType | Yes | oneTime, recurring, or usage | |
| chargeModel | Yes | flatFeePricing, perUnitPricing, tieredPricing, or volumePricing | |
| billCycleType | Yes | Bill cycle type (e.g. chargeTriggerDay, specificDayOfMonth) | |
| category | Yes | physical or digital | |
| chargeTier | Yes | Array of {currency, price, optional startingUnit, endingUnit, priceFormat, tier} | |
| taxable | Yes | Whether taxable | |
| weight | Yes | Weight (integer) | |
| description | No | Description | |
| billingPeriod | No | day, week, month, or year (required if chargeType recurring) | |
| billingTiming | No | inAdvance or inArrears (required if chargeType recurring) | |
| billingPeriodAlignment | No | alignToCharge, alignToSubscriptionStart, alignToTermStart | |
| specificBillingPeriod | No | Specific billing period | |
| allowChangeQuantity | No | Allow change quantity | |
| billCycleDay | No | 1-31 when billCycleType specificDayOfMonth | |
| weeklyBillCycleDay | No | sunday..saturday when billCycleType specificDayOfWeek | |
| monthlyBillCycleYear | No | 1-12 when billCycleType specificMonthOfYear | |
| endDateCondition | Yes | subscriptionEnd or fixedPeriod (required) | |
| isFreeShipping | No | Free shipping | |
| maxQuantity | No | Max quantity | |
| minQuantity | No | Min quantity | |
| quantity | No | Quantity | |
| listPriceBase | No | perMonth, perBillingPeriod, or perWeek |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure. It only lists input parameters without mentioning side effects, permissions, rate limits, or response behavior. The agent gains little insight beyond what the input schema already provides.
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 dense block of text listing parameters, which is acceptable but not concise. It front-loads the core purpose but then becomes a parameter dump. Every sentence earns its place, but the structure could be improved for readability.
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 24 parameters, no output schema, and no annotations, the description is incomplete. It does not explain the return value, error conditions, or how this tool fits into the larger workflow (e.g., must be called after creating a rate plan). Sibling tools imply a broader context, but the description lacks such guidance.
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, so the description adds minimal extra semantic value beyond repeating field descriptions. It provides some inline examples (e.g., URI for ratePlanId), but this does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a rate plan charge' and provides the endpoint POST /product-rateplan-charges, effectively distinguishing this tool from sibling create tools like create_product_rate_plan or create_subscription.
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 lists required and optional fields but does not explicitly state when to use this tool versus alternatives. Sibling tools include many create operations for different entities, but no guidance is provided on when to create a rate plan charge versus other related actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_setup_intentA
Create or retrieve a setup intent via the gateway endpoint. Use only as part of a gateway-agnostic payment method flow: the returned setupIntent.id can be used as paymentMethodNonce for create_customer_payment_method. No raw card data.
| Name | Required | Description | Default |
|---|---|---|---|
| companyGatewayId | Yes | Company gateway ID (required). | |
| customerId | Yes | Customer ID (required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states that the tool works via the gateway endpoint and returns a setupIntent.id that can serve as a paymentMethodNonce. It also warns 'No raw card data.' However, it lacks details about side effects, failure modes, or the distinction between creating and retrieving. For a tool with no annotations, the description carries full burden and could be more transparent.
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 consists of two sentences that are concise and front-loaded. The first sentence states the action, and the second provides usage context. Every sentence adds value, though it could be slightly more structured.
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's role in a payment flow with only 2 parameters and no output schema, the description covers purpose and usage. However, it does not explain the 'create or retrieve' behavior in detail or specify the return structure, leaving some 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 input schema has 100% coverage with descriptions for both parameters ('Company gateway ID (required)', 'Customer ID (required)'). The description does not add extra parameter-specific details beyond the schema, so it meets the baseline of 3.
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 or retrieve a setup intent') and the resource ('via the gateway endpoint'). It distinguishes its purpose by noting it's part of a 'gateway-agnostic payment method flow' and references a sibling tool ('create_customer_payment_method'). However, the 'or retrieve' phrasing introduces some ambiguity about whether it always creates or can retrieve an existing one.
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 explicitly states when to use this tool ('Use only as part of a gateway-agnostic payment method flow') and provides a concrete next step ('the returned setupIntent.id can be used as paymentMethodNonce for create_customer_payment_method'). It does not explicitly state when not to use, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_subscriptionB
Create a subscription from a product rate plan. POST /subscriptions/from-product-rateplan. Required: productRatePlanId, customerId, customerPaymentMethodId, billingAddressId, effectiveStartDate.
| Name | Required | Description | Default |
|---|---|---|---|
| productRatePlanId | Yes | Product rate plan ID | |
| customerId | Yes | Customer ID | |
| customerPaymentMethodId | Yes | Customer payment method ID | |
| billingAddressId | Yes | Billing address ID | |
| effectiveStartDate | Yes | Effective start date YYYY-MM-DD |
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 does not disclose side effects, idempotency, what happens to existing subscriptions, or whether the operation is reversible. It only mentions required inputs.
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 two short sentences, front-loaded with the purpose, followed by required fields. It is concise and to the point, with no unnecessary 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?
There is no output schema, and the description does not explain what the tool returns (e.g., subscription ID, success message). For a creation operation with 5 required IDs, the description lacks information about validation, default values, or behavioral outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description essentially repeats the parameter list and required status. It adds little beyond the schema, 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 clearly states the action ('Create a subscription') and the resource ('from a product rate plan'), with the HTTP endpoint included. This distinguishes it from sibling tools like add_subscription_rate_plan or create_product_rate_plan, which have different purposes.
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 lists required fields but provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, conditions, or why one might choose this over other subscription-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_currencyA
Delete a company currency. DELETE /currencies/{companyCurrencyId}. Fails if currency is in use (invoices, subscriptions, transactions, or gateways).
| Name | Required | Description | Default |
|---|---|---|---|
| companyCurrencyId | Yes | Company currency ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the operation fails conditionally (if in use), which is critical behavioral info. It lacks details on auth, rate limits, or success response, but for a delete, the provided failure conditions are sufficient.
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?
Two sentences, no filler. Purpose is first, followed by failure conditions and endpoint. Every word earns 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 simple delete with one parameter and no output schema, the description covers purpose, endpoint, and failure conditions. It could mention success response (e.g., HTTP 204), but that is often implied. Mostly complete.
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 a description 'Company currency ID (required)'. The description adds only the URL pattern and route, which is marginal beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Delete a company currency' and provides the HTTP method and endpoint, clearly distinguishing it from create, update, and get currency tools. The action and resource are 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?
The description implies when NOT to use it by noting it fails if the currency is in use (invoices, subscriptions, etc.), but does not provide explicit alternatives or a clear 'when to use' statement. However, the context is clear enough for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_customerA
Delete a customer by ID. DELETE /customers/{customerId}. WARNING: Cascading delete may remove or orphan related data (addresses, payment methods, subscriptions, invoices, etc.). Use with caution.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID to delete (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the destructive behavior and cascading effects on related data (addresses, payment methods, etc.), plus the HTTP method. This is excellent 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?
Two sentences: first states purpose and method, second warns about consequences. No unnecessary words, and key info is 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?
For a simple delete operation with one parameter and no output schema, the description covers purpose, method, and side effects adequately. No gaps remain.
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 a clear description for customerId. The tool description adds no extra meaning beyond what the schema provides, so baseline score 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 verb 'Delete' and the resource 'customer by ID', and includes the HTTP method. It distinguishes from sibling delete tools by being specific to customer deletion.
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 warning about cascading delete provides context for when to use (with caution) but does not explicitly state alternatives or when not to use. The guidance is clear enough for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_customer_addressB
Delete an address book entry. DELETE /customers/{customerId}/addressbooks/{addressId}.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| addressId | Yes | Address book entry ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only mentions 'Delete' with no disclosure of side effects, irreversibility, required permissions, or cascade behavior. The tool is destructive but lacks 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?
Extremely concise with one sentence and the REST endpoint. Every word adds value, but it could be front-loaded with behavioral notes 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 simple delete tool with two required parameters and no output schema, the description lacks information on return value, error handling, or success confirmation. It meets minimal completeness but leaves 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?
Schema coverage is 100% with clear parameter descriptions (customerId and addressId as required strings). The tool description adds no extra meaning beyond the schema, so a 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 clearly states 'Delete an address book entry' with the HTTP method and path, directly indicating the action and resource. It distinguishes from sibling tools like create_customer_address, update_customer_address, and get_customer_address.
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 (e.g., create, update, or other deletion methods). The description simply states the action without context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_customer_charge_creditA
Delete a charge or credit for a customer. DELETE /customers/{customerId}/charges_credits/{chargeCreditId}. Fails if the charge/credit has invoice details assigned.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| chargeCreditId | Yes | Charge/credit ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It reveals that the operation is destructive and specifies one failure condition (invoice details assigned). However, it does not mention what happens on success or other potential side effects, which is informative but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the action and then the condition. Every sentence provides essential information with no 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 lack of annotations and output schema, the description covers basic purpose and a key constraint. It does not describe return values, permissions, or idempotency, leaving some gaps for a straightforward delete 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?
The input schema has 100% coverage, describing both parameters as required IDs. The description adds no additional meaning beyond the schema, so it meets the baseline of 3.
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 ('Delete') and the resource ('charge or credit for a customer'), and includes the REST endpoint. It distinguishes from siblings like 'create_customer_charge_credit' and 'list_customer_charges_credits'.
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 a clear precondition: the charge/credit must not have invoice details assigned. It implies when not to use the tool, but does not explicitly mention alternatives or provide a complete usage strategy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_customer_payment_methodB
Delete a payment method. DELETE /customers/{customerId}/paymentmethods/{paymentMethodId}.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| paymentMethodId | Yes | Payment method ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present. The description only states 'Delete' and the HTTP endpoint, with no information about reversibility, required permissions, or consequences (e.g., impact on subscriptions).
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?
Extremely concise, two sentences, and front-loaded with the core action. Every word adds value, no 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?
For a deletion tool with no annotations or output schema, the description lacks necessary safety and behavioral context. Critical information about side effects or prerequisites is missing.
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 both parameters described in the input schema. The description adds no additional meaning beyond what the schema provides, meeting 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 clearly states 'Delete a payment method' with a specific verb and resource, and the HTTP DELETE URL confirms the action. It distinguishes itself from sibling tools like create/get/update/list.
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, no mention of prerequisites or side effects. The purpose implies deletion but lacks contextual decision-making support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_gatewayA
Delete a company gateway. DELETE /gateways/{gatewayId}. Fails if gateway is linked to company currencies or customers.
| Name | Required | Description | Default |
|---|---|---|---|
| gatewayId | Yes | Gateway ID (required) |
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 discloses the failure condition but lacks details on permissions, side effects, or reversibility, which are important for a destructive 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?
Two concise sentences with no redundant information. The description is front-loaded with the action and endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete tool, the description is adequate but does not mention return values or success response. Since there is no output schema, a brief note on output would improve 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?
The single parameter 'gatewayId' is described in the schema, and the tool description adds context by showing it as a path parameter. This adds value beyond the schema description.
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 it deletes a company gateway and provides the REST endpoint, distinguishing it from create_gateway, update_gateway, and other siblings.
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?
It includes a condition that deletion fails if the gateway is linked to currencies or customers, guiding when to use or avoid. However, it does not explicitly state when to use this tool over other delete tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_invoiceC
Delete an invoice. DELETE /invoices/{invoiceId}.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | Invoice ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits beyond the basic action. It does not state whether the operation is irreversible, what permissions are required, or if there are any side effects like cascading deletions. For a destructive operation, this 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 very concise at two sentences, including the HTTP method and path. It is front-loaded and contains no extraneous information. However, it could be slightly more structured, e.g., by separating the action from the endpoint reference.
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 delete operation with one parameter and no output schema, the description is minimally adequate. It states the action and the required parameter but lacks context about effects on related resources, error conditions, or comparison to similar tools like void_invoice. Given the complexity, additional context would be beneficial.
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% coverage with the single required parameter 'invoiceId' described as 'Invoice ID (required)'. The description adds no additional meaning, such as expected format, where to obtain the ID, or any constraints. Baseline score 3 applies due to full 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 'Delete an invoice', which is a specific verb+resource. It distinguishes from sibling tools like create_invoice, update_invoice, and void_invoice by indicating the delete action. However, it lacks any further clarification about the scope or consequences of deletion.
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 void_invoice or charge_invoice. It does not specify prerequisites, such as the invoice needing to exist or be in a deletable state, nor does it mention any conditions under which deletion is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_productA
Delete a product. DELETE /products/{productId}. Warning: This also deletes associated rate plans and related data (cascading deletion).
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Product ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Explicitly mentions cascading deletion and HTTP method, providing key behavioral info beyond just 'delete'. No annotations, so description carries burden.
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?
Three concise sentences covering purpose, method, and important warning; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple delete tool with one parameter; warning about cascading is critical. Could mention return type but not essential.
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?
Single 'productId' parameter with 100% schema coverage; description adds no additional meaning beyond schema description.
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?
Clearly states 'Delete a product' with HTTP method and path. Unambiguous about what resource is affected.
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?
Warning about cascading deletion adds context for when to use cautiously, but no explicit when-to-use vs alternatives (e.g., delete_product_rate_plan).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_product_rate_planB
Delete a rate plan. DELETE /product-rateplans/{ratePlanId}.
| Name | Required | Description | Default |
|---|---|---|---|
| ratePlanId | Yes | Rate plan ID (URI: /product-rateplans/{ratePlanId}) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only says 'Delete', implying destruction, but does not mention any side effects (e.g., cascade deletions), irreversibility, or required permissions.
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 with two short sentences, no redundancy, and front-loads the action. Every word earns 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?
Given the tool's simplicity (one parameter, delete operation) and lack of output schema, the description is adequate but lacks behavioral context such as return type or effects. It is minimally complete.
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 for the single parameter, explaining it as 'Rate plan ID (URI: /product-rateplans/{ratePlanId})'. The description adds no additional meaning 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 'Delete a rate plan' with a specific verb and resource, and includes the HTTP method and path, distinguishing it from siblings like create, update, or list rate plan tools.
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 prerequisites or consequences of deletion. It only states what it does, leaving the agent without context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_product_rate_plan_chargeB
Delete a rate plan charge. DELETE /product-rateplan-charges/{chargeId}.
| Name | Required | Description | Default |
|---|---|---|---|
| chargeId | Yes | Rate plan charge ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to rely on, the description must disclose behavioral traits. It only states that the tool deletes a charge but does not mention irreversibility, cascading effects, validation requirements, or the nature of the operation (e.g., soft vs hard delete). This is insufficient for safe invocation.
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, comprising a single sentence and the HTTP endpoint. It is front-loaded with the core action and resource, contains no filler, and is well-structured for quick comprehension.
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 lack of output schema and annotations, the description should compensate by explaining expected outcomes (e.g., whether it returns the deleted object or a confirmation, success/error handling). It does not provide this, leaving the agent under-informed about the result of the 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?
The input schema covers the single parameter 'chargeId' with a description 'Rate plan charge ID'. The tool description adds no further meaning beyond the schema, which already achieves 100% coverage. The baseline of 3 is appropriate as no extra semantic value is provided.
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 ('Delete') and the resource ('rate plan charge'), making the purpose unambiguous. The inclusion of the HTTP endpoint further reinforces the specific operation, and the name is distinct among sibling delete tools.
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, nor does it mention any prerequisites or conditions under which deletion is appropriate. Without such context, an agent may misuse the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_subscriptionA
Delete a subscription. DELETE /subscriptions/{subscriptionId}. Warning: Prefer changing status to archived (update_subscription_status) instead of deleting when you want to end a subscription without removing it from records.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, leaving the description as the sole source. It does not disclose behavioral traits like irreversibility, impact on associated data, permissions needed, or immediate vs. deferred deletion.
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?
Three concise sentences: action, endpoint, and a crucial warning. No filler, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deletion tool with no annotations and no output schema, the description should cover side effects, permanence, and more detail on when deletion is appropriate. It only warns about alternative usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter subscriptionId, which already has a description. The tool description adds no additional semantic value beyond what the schema 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 it deletes a subscription and provides the HTTP endpoint. It explicitly distinguishes from the sibling update_subscription_status by warning to prefer archiving over deletion for ending subscriptions without removing records.
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 explicitly advises when to use archiving (update_subscription_status) instead of deletion, but does not specify when deletion itself is appropriate or under what circumstances it should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_docsA
Get Rebillia API documentation as markdown. Returns the overview by default so Claude can read base URLs, auth, pagination, dates, amounts without fetching external URLs. Optional: doc (overview | models | subscription-statuses | charge-types | gateways).
| Name | Required | Description | Default |
|---|---|---|---|
| doc | No | Which doc to return. Default: overview. Options: overview, models, subscription-statuses, charge-types, gateways |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It explains that the tool returns markdown and defaults to overview. However, it does not discuss error handling, what happens with invalid doc parameter, or any limitations. The mention of 'so Claude can read...' gives context but not detailed behavioral traits.
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 two sentences, front-loaded with the primary purpose. Every sentence adds value: first states what it does, second explains default and optional parameter. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter and no output schema. The description covers core functionality and default behavior. It could mention error handling or return format details, but given the tool's simplicity and sibling context, it is mostly complete.
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?
Input schema has one optional parameter 'doc' with description listing options. Schema coverage is 100%. The description adds only the default value ('overview'), which provides marginal additional meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb (Get) and resource (Rebillia API documentation as markdown). It explains the default behavior (returns overview) and the purpose (so Claude can read base URLs, auth, etc. without external fetches). This distinguishes it from sibling tools that are all operational data retrieval/manipulation tools.
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 implicitly tells when to use this tool: when you need API documentation, especially the overview for base URLs, auth, etc. It also explains the default and optional doc parameter. However, it does not explicitly state when not to use it or list alternatives, but there are no alternative documentation tools among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bill_runA
Get a bill run by ID. GET /bill-run/{billRunId}.
| Name | Required | Description | Default |
|---|---|---|---|
| billRunId | Yes | Bill run ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the HTTP method (GET) which implies read-only behavior, but does not mention error handling, authorization needs, or rate limits. For a simple get operation, it is minimally adequate.
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 at two short sentences, front-loaded with the core action, and contains no unnecessary 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?
Given the low complexity (one parameter, no output schema, simple retrieval), the description is complete enough to inform an agent about the tool's basic functionality.
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 100% coverage with a description for billRunId. The tool description adds no additional meaning beyond what the schema already provides, so it meets the baseline but adds no extra 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 clearly states 'Get a bill run by ID', specifying the verb (get), resource (bill run), and identifier (by ID). It effectively distinguishes from siblings like list_bill_runs or get_bill_run_invoices.
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 usage when you have a billRunId and need the full bill run object, but it provides no explicit guidance on when to use this tool over alternatives or when not to use it. Sibling tools exist but are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bill_run_invoicesA
Get invoices for a bill run. GET /bill-run/{billRunId}/invoices. Returns paginated invoices. Optional: pageNo, itemPerPage.
| Name | Required | Description | Default |
|---|---|---|---|
| billRunId | Yes | Bill run ID (required) | |
| pageNo | No | Page number (default: 1) | |
| itemPerPage | No | Items per page (default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It mentions pagination behavior ('Returns paginated invoices') but does not disclose other traits such as error handling, rate limits, or data volume implications.
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 concise with two sentences plus the endpoint, directly stating the purpose and pagination details. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple paginated list tool without an output schema, the description covers the core functionality. However, it does not describe the return structure or fields of the invoices, which would be helpful for an agent.
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% coverage with descriptions, so the baseline is 3. The description adds minimal extra value by restating the optional pagination parameters, which are already in the schema.
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 invoices') and the resource ('for a bill run'), with the endpoint pattern. It is specific and distinct from sibling tools like get_bill_run or list_invoices.
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 lacks any guidance on when to use this tool versus alternatives like list_invoices or get_invoice. No explicit context or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_client_tokenA
Get the gateway client credential to initialize your payment integration and produce a paymentMethodNonce. Use the returned value in your hosted payment UI; then pass the resulting token as paymentMethodNonce to create_customer_payment_method. Gateway-agnostic: no gateway-specific concepts in MCP. Optional customerId scopes the credential to a customer (e.g. for vault). Required for PayFabric; optional for others. Requires company API token (X-AUTH-TOKEN).
| Name | Required | Description | Default |
|---|---|---|---|
| gatewayId | Yes | Company gateway ID (e.g. from rebillia_list_gateways or dashboard). | |
| customerId | No | Optional. Rebillia customer ID when the token must be scoped to a customer (e.g. for saved payment methods). Required for PayFabric gateway. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. Discloses auth requirement (X-AUTH-TOKEN), gateway-agnostic nature, and customerId requirement nuance. Does not describe return format or side effects, but for a read-like operation this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences with no wasted words. Front-loaded with purpose and usage, then details. Efficiently conveys all necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description explains the token's purpose and usage flow. Mentions auth requirement. Lacks explicit return format or error handling, but is adequate for a simple token retrieval 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?
Input schema has 100% coverage and already describes both parameters. Description adds minimal extra context (e.g., 'for vault') that is already implied. Baseline score of 3 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?
Description clearly states verb 'get', resource 'gateway client credential', and its purpose to initialize payment integration and produce a paymentMethodNonce. Distinguishes from sibling tools like create_customer_payment_method by describing the token as a prerequisite.
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?
Explicitly instructs to use returned value in hosted payment UI then pass as paymentMethodNonce to create_customer_payment_method, indicating when to use. Also notes gateway-agnostic and customerId scoping. Lacks explicit when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_currencyB
Get a company currency by ID. GET /currencies/{currencyId}.
| Name | Required | Description | Default |
|---|---|---|---|
| currencyId | Yes | Company currency ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only mentions it's a GET request, implying read-only, but does not disclose error handling, authentication needs, or what happens if the currency ID is invalid.
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?
Very concise: one sentence plus HTTP path. Efficient but could be slightly more informative without being 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?
No output schema and description does not explain what is returned (e.g., full currency object or fields). Lacks completeness for a tool with no output schema.
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?
Input schema has 100% description coverage for the single parameter. Description adds no extra meaning beyond the schema, so baseline score 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?
Clearly states the tool retrieves a company currency by ID, and includes the HTTP method and path. Distinguishes from siblings like create_currency, list_currencies, and get_default_currency.
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 list_currencies or get_default_currency. Does not specify prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customerA
Get a specific customer by ID. GET /customers/{customerId}. Optional include supports: addressbook, paymentmethod, lastInvoice, subscriptions, unpaidInvoices, externalCustomers.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Customer ID | |
| include | No | Comma-separated includes: addressbook, paymentmethod, lastInvoice, subscriptions, unpaidInvoices, externalCustomers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears the burden of behavioral disclosure. It mentions the optional include parameter and its values, which is helpful. However, it does not disclose any side effects, permissions, rate limits, or behavior on missing customer.
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 followed by a terse list of includes. It is front-loaded with the core purpose and wastes no 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?
Given the complexity (simple get) and absence of output schema, the description is adequate but lacks details on return format, error handling, or pagination. Sibling tools with similar patterns might need more context for an AI agent.
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?
Input schema has 100% description coverage for both parameters. The description adds value by explicitly listing the possible include values (addressbook, paymentmethod, etc.), which enhances understanding beyond the schema.
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 (Get), resource (customer), and identifier (by ID). It also includes the HTTP method and path for additional clarity. This distinguishes it from other get_* siblings.
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 does not provide explicit guidance on when to use this tool vs alternatives like list_customers or other get_* tools. It implies usage for fetching a specific customer but lacks when-not-to-use or mention of performance considerations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customer_addressA
Get a single address book entry by ID. GET /customers/{customerId}/addressbooks/{addressId}.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| addressId | Yes | Address book entry ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It only states 'Get' (a read operation) and the HTTP path, but lacks details on authentication, error handling, or side effects. For a simple get, this is minimal 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 plus the HTTP path, no wasted words, and the most important information (what it does) is 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?
The description adequately explains the tool's purpose and parameters, but lacks information on return values or error cases, which would be helpful since there is no output schema.
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 both parameters having descriptions, though they are basic. The description adds the HTTP path which clarifies the parameter roles. Overall, it adds moderate value beyond the schema.
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 the resource (single address book entry by ID), and distinguishes from sibling tools like create_customer_address and list_customer_addresses by specifying 'by ID' and including the HTTP path with specific IDs.
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 retrieving a specific address entry by IDs, but does not provide explicit guidance on when to use vs alternatives, nor mentions any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customer_invoicesA
List invoices for a customer. GET /customers/{customerId}/invoices. Supports pagination (pageNo, itemPerPage), include (e.g. detail, transactions), status (authorized|posted|canceled|partialPaid|paid|voided|refund|partialRefund), dateFrom, dateTo, and subscriptionId.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| pageNo | No | Page number (default: 1) | |
| itemPerPage | No | Items per page (default: 25) | |
| include | No | Comma-separated: detail, transactions, billruns, externalInvoices | |
| status | No | Filter by invoice status | |
| dateFrom | No | Filter invoices from date (YYYY-MM-DD) | |
| dateTo | No | Filter invoices to date (YYYY-MM-DD) | |
| subscriptionId | No | Filter by subscription ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral disclosure. It states 'GET' which implies read-only, but does not explicitly confirm safety, idempotency, or mention any side effects. Also missing auth requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second lists supported features. No filler, fully front-loaded, and every sentence adds 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?
Input parameters are fully covered, but output is not described. No mention of return format (list of invoices?), pagination metadata, or ordering. With no output schema, the description should compensate.
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 baseline is 3. The description summarizes parameters (pagination, include, status, dates, subscriptionId) and enumerates status values, but adds limited new insight beyond the schema descriptions. It repeats the schema's parameter descriptions.
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 'List invoices for a customer' with specific verb and resource. The HTTP endpoint GET /customers/{customerId}/invoices is provided, and the name itself differentiates from sibling tools like list_invoices or get_invoice.
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 does not explicitly compare to alternatives to help choose this tool over siblings like list_invoices, get_customer_unpaid_invoices, or get_subscription_invoices. Usage is implied by the customerId parameter but no 'when to use' or 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customer_logsA
List activity logs for a customer. GET /customers/{customerId}/logs. Returns paginated log entries.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| pageNo | No | Page number (default: 1) | |
| itemPerPage | No | Items per page (default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description alone must disclose behavior. It mentions pagination ('Returns paginated log entries') but fails to detail other relevant aspects like authentication, rate limits, or the structure of log entries. The description is minimal but not contradictory.
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 very concise: two sentences that front-load the purpose and include the REST endpoint. Every sentence adds value without 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 no output schema, the description should elaborate on return values. It only mentions 'paginated log entries', leaving the structure ambiguous. For a simple list tool, this is acceptable but not fully complete.
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 description does not need to add much. However, it provides no additional meaning beyond the schema's parameter descriptions, e.g., explaining how pageNo or itemPerPage affect pagination.
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 lists activity logs for a customer, using a specific verb ('List') and resource ('activity logs'). It distinguishes from sibling tools like get_customer and get_subscription_logs by specifying the customer context and the log focus.
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 usage for listing customer logs but does not explicitly state when to use this tool versus alternatives (e.g., get_subscription_logs for subscription logs). No exclusions or context on when not to use it are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customer_payment_methodA
Get a single payment method by ID. GET /customers/{customerId}/paymentmethods/{paymentMethodId}.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| paymentMethodId | Yes | Payment method ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should cover behavioral traits. It only states 'Get' and the endpoint, lacking details on security, error handling, or side effects. This is minimal disclosure for a read 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?
The description is extremely concise, with two short sentences. The key information ('Get a single payment method by ID') is front-loaded, and the endpoint is provided as supplementary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature (2 required params, no output schema, no nested objects), the description is adequate but minimal. It lacks details on return values, error handling, or prerequisites, which would be beneficial.
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, so the schema already documents the two required parameters. The description adds no additional meaning or context beyond restating the parameter names.
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 'Get' and the resource 'single payment method by ID', distinguishing it from sibling tools like 'list_customer_payment_methods' and 'create_customer_payment_method'. The inclusion of the full HTTP endpoint further clarifies the 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 implies usage for retrieving a specific payment method by ID, but does not explicitly state when to use it versus alternatives like listing all payment methods or when not to use it. No exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customer_subscriptionsA
List subscriptions for a customer. GET /customers/{customerId}/subscriptions. Supports pagination and include (e.g. rateplan, rateplanCharge).
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| pageNo | No | Page number (default: 1) | |
| itemPerPage | No | Items per page (default: 25) | |
| include | No | Comma-separated: rateplan, rateplanCharge, chargeTier, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It mentions support for pagination and include parameters, which is good, but it does not discuss response format, error handling, or potential side effects. As a read-only GET, it is safe, yet transparency could be better.
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: two sentences that convey the core purpose, HTTP method, path, and key features (pagination, include). No unnecessary 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?
Given the absence of an output schema and annotations, the description covers the essential aspects: what it does, how to use it (via path and parameters), and special features. It could mention that the response is an array or that no filters beyond customer ID are available, but it is mostly complete for a simple list 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 already has 100% coverage with descriptions for all parameters. The description adds value by providing example values for the 'include' parameter (rateplan, rateplanCharge), which clarifies usage beyond the schema's comma-separated note.
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 ('List') and resource ('subscriptions for a customer'), and includes the HTTP path for clarity. It distinguishes from siblings like 'list_subscriptions' which lists all subscriptions.
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 does not explicitly state when to use this tool versus alternatives (e.g., 'list_subscriptions' for all subscriptions). Usage is implied by the name and context, but no exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customer_unpaid_invoicesA
List unpaid invoices for a customer. GET /customers/{customerId}/invoices/unpaid. Supports pagination (pageNo, itemPerPage).
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| pageNo | No | Page number (default: 1) | |
| itemPerPage | No | Items per page (default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It mentions pagination but does not state that the operation is read-only, what data is returned, or any authorization requirements, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two short sentences: the first clearly states the purpose, and the second adds the endpoint and pagination support. Every word adds value, and the key information is 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?
For a simple list operation, the description adequately covers the purpose, resource, and pagination. While an output schema is absent, the return type (list of invoices) is implied. Could benefit from mentioning sorting or filter capabilities, but not essential.
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 is 3. The description adds nothing beyond what the parameter descriptions already provide ('pageNo, itemPerPage'), repeating the pagination concept without new 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 clearly states the verb 'List' and the resource 'unpaid invoices for a customer', distinguishing it from sibling tools like get_customer_invoices or list_invoices by specifying 'unpaid'.
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 implicitly indicates when to use (when needing unpaid invoices) but does not explicitly contrast with alternatives like get_customer_invoices or list_invoices, leaving the agent without clear exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_default_currencyA
Get the company default currency. GET /currencies/default.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It implies a read-only GET request, which is accurate. However, it doesn't disclose specific behaviors like idempotency, rate limits, or any side effects.
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 (two sentences) with no wasted words. It immediately states the purpose and includes the REST endpoint, which is helpful for an agent.
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 (no parameters, no output schema), the description is nearly complete. It could mention that the default currency is a single currency object, but it's adequate for a trivial read 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?
The input schema has zero parameters, so the description adds no param info. Per scoring rules, 0 parameters baseline is 4. The description adequately covers the trivial parameter case.
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 the resource ('company default currency'). It distinguishes from sibling tools like 'get_currency' (specific currency) and 'list_currencies' (all currencies).
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 includes the HTTP method and endpoint, which hints at usage, but lacks explicit guidance on when to use it versus alternatives like 'set_default_currency' or 'get_currency'. No when-not or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_external_productA
Get an external product by ID. GET /integrations/{integrationId}/products/{externalProductId}. API expects numeric productId.
| Name | Required | Description | Default |
|---|---|---|---|
| integrationId | Yes | Company integration ID (required) | |
| externalProductId | Yes | External product ID (required, numeric as string) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It discloses HTTP method GET and numeric ID requirement, but lacks details on rate limits, authentication, error handling, or return value format.
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?
Two concise sentences with purpose first, then endpoint and constraint. No redundant information; every word adds 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 simple retrieval tool with no output schema, the description does not explain what is returned (e.g., product details). It mentions the endpoint but not the response structure, leaving the agent with incomplete 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?
Schema coverage is 100% with parameter descriptions already present. The description repeats the numeric requirement for externalProductId but adds no new semantic meaning beyond the schema.
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 'Get an external product by ID' with specific verb and resource. It includes the REST endpoint and a requirement that productId is numeric, distinguishing it from sibling tools like list_external_products.
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 usage for retrieving a single product by ID but does not explicitly state when to use it versus alternatives like list_external_products or link_external_product. No guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gatewayA
Get a company gateway by ID. GET /gateways/{gatewayId}.
| Name | Required | Description | Default |
|---|---|---|---|
| gatewayId | Yes | Gateway ID (required) |
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 HTTP method and operation. It does not disclose potential side effects (none expected), required permissions, error conditions, or return value structure. This is minimal and leaves the agent with little behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two short sentences that immediately convey the action and the REST endpoint. Every word is functional; there is no wasted text. It is perfectly concise for a simple retrieval.
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's simplicity (one required parameter, no output schema, no nested objects), the description provides the essential information. However, it could be slightly more complete by briefly describing what a gateway is or that it returns a full gateway object. It is not incomplete, but there is room for improvement.
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 the single parameter gatewayId described in the schema. The description does not add any additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a company gateway by ID', which is a specific verb-resource combination. It distinguishes from sibling tools like list_gateways, create_gateway, delete_gateway, and update_gateway by specifying retrieval by ID.
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 explicit when-to-use or when-not-to-use guidance is provided. However, as a basic retrieval tool, the usage context is implied by its name and description. It does not mention alternatives or exclusions, so it is adequate but not directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_integration_by_keyB
Get global integration info by key name. GET /integrations/{keyName}/get. keyName: avalara, bigcommerce, customRate, fedex, flatRate, freeShipping, freshBooksCloudAccounting, google, mailchimp, monsoonStoneEdge, myob, pickupInStore, quickbooks, saasu, salesforce, shipBy, shipperHq, shippingZone, shopify, slack, smtp, taxamo, thomsonreuters, ups, upsShippingProtection, usps, vertex, xero.
| Name | Required | Description | Default |
|---|---|---|---|
| keyName | Yes | Integration key name (required). One of: avalara, bigcommerce, customRate, fedex, flatRate, freeShipping, freshBooksCloudAccounting, google, mailchimp, monsoonStoneEdge, myob, pickupInStore, quickbooks, saasu, salesforce, shipBy, shipperHq, shippingZone, shopify, slack, smtp, taxamo, thomsonreuters, ups, upsShippingProtection, usps, vertex, xero |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states it's a GET request (implying read-only) but lacks details on side effects, authentication requirements, rate limits, or error handling. The return format is not described.
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?
Description is brief (two sentences plus a list) and front-loaded with the core purpose. The list of keys is redundant with the schema but acceptable.
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 tool with one parameter and no output schema, the description fails to explain what 'global integration info' entails or indicate response format, error conditions, or usage hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter's description already lists all valid values. The description repeats this list and adds the endpoint, but adds no new meaning beyond the schema.
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 explicitly states 'Get global integration info by key name', clearly defining the action and resource. It distinguishes from siblings like list_integrations by specifying a single key lookup.
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 lists valid key names but provides no guidance on when to use this tool vs alternatives (e.g., list_integrations, get_integration_config). No when-not-to-use or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_integration_configB
Get company integration config by ID. GET /integrations/{integrationId}/config.
| Name | Required | Description | Default |
|---|---|---|---|
| integrationId | Yes | Company integration ID (required) |
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 'get config' without disclosing behavioral traits like authentication needs, rate limits, or what the config contains. This is minimal 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 plus the endpoint, with no wasted words. It is concise but lacks structure; however, for such a simple tool, this 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?
For a simple tool with one parameter and no output schema, the description is adequate but incomplete. It does not explain the response structure or any side effects, which would be helpful for an AI agent.
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 a clear description for integrationId. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get company integration config by ID' with a specific verb and resource. It also provides the HTTP endpoint pattern, uniquely identifying the tool among siblings like get_integration_by_key.
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 does not provide explicit guidance on when to use this tool versus alternatives (e.g., get_integration_by_key). Usage is implied but no exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoiceA
Get an invoice by ID. GET /invoices/{invoiceId}. Optional: include.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | Invoice ID (required) | |
| include | No | Attributes to include (e.g. detail, transactions) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It mentions GET method implying read-only, but fails to disclose error handling, rate limits, or other side effects. This is insufficient for a zero-annotation scenario.
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 front-loaded with the action and resource. Every word serves a purpose, making it highly concise.
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 no output schema and few parameters, the description adequately covers the tool's primary purpose. However, it lacks behavioral details (e.g., read-only nature) that would be expected without annotations. Slightly incomplete for a simple retrieval 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 description coverage is 100%, with both parameters already documented. The description adds 'Optional: include' but no additional meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get), resource (invoice), and method (GET /invoices/{invoiceId}). It distinguishes from sibling tools like list_invoices, create_invoice, delete_invoice, etc., by specifying retrieval by ID.
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 usage when an invoice ID is known, but does not explicitly state when to use this tool versus alternatives like list_invoices or get_customer_invoices. No when-not or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productA
Get a product by ID. GET /products/{productId}. Optional: include.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Product ID (required) | |
| include | No | Comma-separated attributes to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Specifies HTTP GET, implying read-only operation. No annotations present, so description carries burden. Lacks details on error handling, authentication, or rate limits, which are common for a retrieval 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?
Extremely concise: three distinct pieces of information (purpose, endpoint, optional parameter) in one sentence, no filler 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 simple get tool with no output schema, description omits return value details and common error scenarios. While adequate for basic use, more completeness would improve agent effectiveness.
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?
Adds context beyond schema by indicating productId is a path parameter ('GET /products/{productId}') and that include is optional. Schema already covers both parameters with descriptions, so extra value is moderate but helpful.
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?
Clearly states 'Get a product by ID' with specific verb and resource. Includes HTTP method and path for clarity. Distinguishes from sibling list/get tools by focusing on single product retrieval by ID.
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?
Description implies usage when you have a product ID, but does not explicitly contrast with list_products or other getters. No when-not-to-use or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_rate_planB
Get a rate plan by ID. GET /product-rateplans/{ratePlanId}. Rate plan reference: ratePlanId (URI: /product-rateplans/{ratePlanId}).
| Name | Required | Description | Default |
|---|---|---|---|
| ratePlanId | Yes | Rate plan ID (URI: /product-rateplans/{ratePlanId}) | |
| include | No | Attributes to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It correctly identifies the HTTP method as GET, implying a read-only operation. However, it does not disclose authentication requirements, rate limits, or any error conditions. The description is minimal but sufficient for a simple retrieval.
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?
Two sentences with minimal waste. However, the URI is repeated twice redundantly. Could be slightly more concise by stating it once.
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 get-by-ID tool, the description covers the basic action but lacks expectations about the response structure, pagination, or sorting. No output schema exists, so more context on return values would be beneficial.
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 baseline is 3. The description adds no new meaning beyond the schema; it repeats the ratePlanId URI pattern which is already in the schema. The optional include parameter is not elaborated.
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 'Get a rate plan by ID', using a specific verb and resource. It distinguishes from sibling tools like list_product_rate_plans (listing) and create_product_rate_plan (creation).
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. It does not specify any prerequisites, when to use list vs get, or mention the optional include parameter's purpose. The context is purely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_rate_plan_chargeB
Get a rate plan charge by ID. GET /product-rateplan-charges/{chargeId}.
| Name | Required | Description | Default |
|---|---|---|---|
| chargeId | Yes | Rate plan charge ID | |
| include | No | Attributes to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description only states the action and HTTP method. It fails to disclose read-only nature, error behavior, or any other behavioral traits.
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 very short and front-loaded with the action. The HTTP path may be redundant but does not detract significantly. Efficient for a simple getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations; description lacks explanation of return values, error handling, or relation to other tools. 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?
Input schema has 100% description coverage for both parameters. The description adds no extra meaning; 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 verb 'Get', the resource 'rate plan charge', and the identifier 'by ID'. It distinguishes from sibling tools like list_product_rate_plan_charges or create/update/delete variants.
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 provided on when to use this tool vs alternatives (e.g., list_product_rate_plan_charges). No context on prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscriptionB
Get a subscription by ID. GET /subscriptions/{subscriptionId}. Optional: include.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| include | No | Attributes to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description must disclose behavior. It only mentions HTTP method and optional include, lacking details on auth, errors, or response format.
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?
Short and to the point, but redundant 'GET /subscriptions/{subscriptionId}' could be omitted. Efficient for simple retrieval.
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 get by ID tool, description is minimally adequate. Lacks output details but schema covers parameters. No annotations to supplement.
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 parameter descriptions. Description adds no extra meaning, only restating 'Optional: include'. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a subscription by ID', specifying both the verb and resource. It distinguishes from list_subscriptions by noting retrieval by specific ID.
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 explicit guidance on when to use this tool versus alternatives like get_subscription_rate_plan. Usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscription_external_invoicesA
List e-commerce orders (external invoices) linked to a subscription. GET /subscriptions/{subscriptionId}/external-invoices. Returns paginated external invoice records. Optional: include, pageNo, itemPerPage.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| include | No | Attributes to include | |
| pageNo | No | Page number (default: 1) | |
| itemPerPage | No | Items per page (default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions pagination behavior ('Returns paginated external invoice records') and optional parameters that control pagination, but lacks details on authentication, error handling, or response structure.
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?
Three sentences with clear structure: purpose, endpoint, optional params. No redundant information. Efficient 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?
For a simple list tool with no output schema, the description covers purpose, endpoint, and pagination. However, it does not describe the response format or field details, which leaves some ambiguity for the agent.
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 each parameter. Description lists the parameters but adds minimal value beyond schema (e.g., 'include' is not explained further). Baseline is 3 due to high 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?
Clearly states it lists external invoices linked to a subscription. Uses specific verb 'List', resource 'e-commerce orders (external invoices)', and scope 'linked to a subscription'. Distinguishes from siblings like get_subscription_invoices (regular invoices) and list_external_invoices (all external invoices).
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 such as get_subscription_invoices or list_external_invoices. Does not mention prerequisites or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscription_invoicesA
List invoices for a subscription. GET /subscriptions/{subscriptionId}/invoices. Returns paginated invoices. Use include for line-item detail and transactions (e.g. include=detail,transactions).
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| include | No | Comma-separated: detail, transactions, billruns, externalInvoices | |
| pageNo | No | Page number (default: 1) | |
| itemPerPage | No | Items per page (default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses pagination and the include parameter for detail/transactions, which is useful. But with no annotations, it should also mention auth requirements, error handling, or response format. The information is basic but not comprehensive.
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?
Three concise sentences: purpose, endpoint, usage hint. No redundant information, each sentence adds value. Well front-loaded with the verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description only says 'Returns paginated invoices.' Missing details on pagination metadata structure, invoice fields, and error states. Given 4 parameters and no output schema, the description is insufficient for an agent to fully understand return values.
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% coverage with descriptions, so baseline is 3. The description adds a clear usage example for the include parameter ('e.g. include=detail,transactions'), which enhances understanding beyond the schema's comma-separated list.
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 resource (invoices for a subscription) with a specific endpoint. However, it does not explicitly differentiate from siblings like get_customer_invoices or list_invoices, which also return invoices.
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 context for usage (listing invoices for a subscription) but offers no guidance on when to use this tool versus alternatives like get_customer_invoices or list_invoices. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscription_logsA
Get activity history for a subscription. GET /subscriptions/{subscriptionId}/logs. Returns paginated log entries (status changes, renewals, payments, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| pageNo | No | Page number (default: 1) | |
| itemPerPage | No | Items per page (default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions pagination and the types of logs, but does not disclose auth requirements, rate limits, or error handling. It is minimally adequate for a read-only 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?
Three sentences, front-loaded with the action and resource. No redundant wording; every sentence adds 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?
Given no output schema and low complexity, the description explains what logs contain and mentions pagination. Minor gap: no info on default sort order or filtering. Almost complete for the tool's scope.
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 each parameter is already documented. The description adds no extra meaning beyond referencing subscriptionId implicitly via the endpoint. 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 tool gets activity history for a subscription, provides the endpoint, and lists example log entries (status changes, renewals, payments). It distinguishes itself from siblings like get_subscription (details) and get_subscription_invoices (invoices only).
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 usage for viewing subscription activity history but does not explicitly compare to siblings like get_customer_logs or state when not to use it. No direct guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscription_rate_planA
Get a single rate plan on a subscription. GET /subscriptions/{subscriptionId}/rateplans/{ratePlanId}.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| ratePlanId | Yes | Subscription rate plan ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations. Description only states GET operation, implying read-only, but doesn't confirm idempotency, error handling, or side effects. Adequate but lacks explicit 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?
Efficient single sentence plus endpoint. No wasted words, but could benefit from brief additional context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and description doesn't mention return format. For a retrieval tool, missing output details can hinder proper handling of results.
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 covers both parameters with clear descriptions. Description adds no extra meaning beyond what schema 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?
Description explicitly states 'Get a single rate plan on a subscription' with exact HTTP endpoint. Clearly distinguishes from siblings like 'list_subscription_rate_plans' and other get tools.
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?
Minimal guidance on when to use. Context implies use when you have specific IDs, but no explicit comparison to siblings like 'list_subscription_rate_plans' is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscription_rate_plan_chargeB
Get a single rate plan charge on a subscription. GET /subscriptions/{subscriptionId}/rateplan-charges/{chargeId}.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| chargeId | Yes | Subscription rate plan charge ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It states 'Get' which implies a read-only operation, but it does not disclose any other traits such as authorization requirements, rate limits, or what happens if the resource does not exist. Minimal transparency beyond the verb.
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?
At two sentences, it is concise and front-loaded with the key action. However, it could be slightly expanded to include return value or common usage notes 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?
No output schema exists, yet the description does not mention what the tool returns (e.g., the rate plan charge object). It also lacks information on error states or pagination. Incomplete for a single-resource getter.
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 each parameter having a description. The description adds no extra meaning beyond what the schema provides; it simply restates the path. 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 'Get a single rate plan charge on a subscription' and includes the HTTP GET path, which precisely defines the action and resource. It distinguishes from sibling tools like list_subscription_rate_plans (list) or add_subscription_rate_plan_charge (create).
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. There is no mention of prerequisites, limitations, or when not to use it. The description is purely functional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscription_upcoming_chargesB
View all upcoming charges for a subscription. GET /subscriptions/{subscriptionId}/upcoming. Returns scheduled charges (recurring, one-time, usage) with amounts and dates. Optional: include.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| include | No | Attributes to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description specifies the tool returns scheduled charges with amounts and dates, implying a read operation. However, without annotations, it does not explicitly state that it is read-only, nor does it disclose any behavioral traits like idempotency or data freshness constraints.
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 short (two sentences) and front-loaded with the primary purpose. The inclusion of the HTTP path is helpful. However, the fragment 'Optional: include.' feels incomplete and could be integrated more smoothly.
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 low complexity (2 params, no nested objects, no output schema), the description covers the key aspects: what the tool returns and the required input (subscriptionId implied in path). It could mention if only certain subscription statuses are valid, but overall it is adequate.
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 both parameters, so the description adds no extra meaning beyond the schema. The mention of 'Optional: include' is redundant given the schema already marks include as optional with a description. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'View all upcoming charges for a subscription' with a specific verb and resource. It also mentions the HTTP method and path, which adds context. However, it does not distinguish this tool from related siblings like get_subscription_invoices.
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 prerequisites, context, or exclusion criteria, leaving the agent to infer usage from the name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transactionA
Get a transaction by ID. GET /transactions/{transactionId}.
| Name | Required | Description | Default |
|---|---|---|---|
| transactionId | Yes | Transaction ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It mentions 'GET' HTTP method, implying read-only behavior. However, it does not disclose error handling, authentication needs, or rate limits. For a simple get-by-ID, the description is minimally adequate.
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 with two sentences. It front-loads the purpose and includes the HTTP method. Every word earns its place with no 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 tool's simplicity (one required parameter, no output schema), the description covers the essential information. It could optionally mention what the response contains, but the core functionality is clear. Completeness is almost full for this low-complexity 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 covers 100% of the parameters with a description for transactionId. The description adds no additional semantic meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: 'Get a transaction by ID.' It specifies the verb (Get) and resource (transaction by ID), which distinguishes it from sibling tools like list_transactions that retrieve multiple transactions.
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. It does not mention when not to use it, nor does it differentiate from other get tools (e.g., get_subscription). Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_external_productB
Link an external product to a product. POST /products/{productId}/external-products. Required: companyIntegrationId, productId (external), settings with modifierDisplayName.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Rebillia product ID (required) | |
| companyIntegrationId | Yes | Company integration ID (required) | |
| productIdExternal | Yes | External product ID from the integration (required) | |
| modifierDisplayName | Yes | Display name for the modifier (required, part of settings) | |
| displayStyle | No | e.g. dropdown | |
| required | No | Whether the external product is required | |
| defaultRatePlan | No | Default rate plan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states it's a POST (mutation) but omits side effects, permissions, idempotency, or error 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?
Two sentences with clear purpose and endpoint; no wasted words, though could be slightly more structured for quick scanning.
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?
Adequate given 7 parameters and no output schema, but lacks details on return values, error handling, or integration specifics.
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 baseline is 3. Description adds no additional parameter meaning 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 'Link an external product to a product' with the HTTP method and endpoint, distinguishing it from sibling tools like unlink_external_product.
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?
Lists required fields but provides no guidance on when to use this tool versus alternatives, nor any context prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bill_runsA
List bill runs. GET /bill-run. Optional: include (e.g. invoice), query (filter by status: completed, pending, error), orderBy, sortBy, itemPerPage, pageNo.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Include related data (e.g. invoice) | |
| query | No | Filter by status: completed, pending, or error | |
| orderBy | No | Sort column | |
| sortBy | No | Sort direction | |
| itemPerPage | No | Items per page | |
| pageNo | No | Page 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 lists optional parameters (include, query, pagination) but does not disclose potential side effects, rate limits, or data volume. It implies a read operation but lacks depth on behavioral traits.
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 two sentences long and front-loads the core action and HTTP method. The second sentence lists optional parameters efficiently. No fluff, but could be slightly more compact by integrating the parameters into the first sentence.
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 hint at the return format. It does not specify what a bill run object contains or that results are paginated (though pagination parameters imply it). The description is partially complete but leaves gaps for an agent.
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 parameters with descriptions (100% coverage). The description adds minimal extra meaning beyond the schema, e.g., listing query filter values (completed, pending, error). It does not provide new context to aid parameter selection.
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 explicitly states 'List bill runs', a specific verb+resource, and distinguishes from sibling tools like get_bill_run (singular) by indicating a list operation. The HTTP method GET and path are also provided, reinforcing clarity.
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 mentions optional parameters but does not provide explicit when-to-use or when-not-to-use guidance. It does not differentiate from other list tools like list_invoices or list_customers, relying on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_currenciesB
List company currencies. GET /currencies. Optional: include, itemPerPage, pageNo.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated attributes to include | |
| itemPerPage | No | Items per page | |
| pageNo | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only mentions the HTTP method (GET) and optional parameters. It does not disclose behaviors like result limits, default pagination, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence plus endpoint and parameters) and front-loaded with the main action. It is efficient but could include more structure without being 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 no output schema, the description does not mention the return format or any prerequisites. For a simple list tool, it is minimally adequate but lacks context about company-scoping or pagination behavior.
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 is 3. The description lists optional parameters but adds no additional meaning beyond the schema's own descriptions.
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 'list' and the resource 'company currencies', and mentions the HTTP method and endpoint (GET /currencies). It distinguishes from sibling tools like get_currency (single) and create_currency.
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 implicitly suggests use for retrieving all currencies but does not explicitly state when to use list vs. get_currency or alternatives. No exclusions or guidance on pagination limits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_customer_addressesA
List all address book entries for a customer. GET /customers/{customerId}/addressbooks. Optional: pageNo, itemPerPage.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| pageNo | No | Page number (default: 1) | |
| itemPerPage | No | Items per page (default: API default) |
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 it is a GET operation with optional pagination, but does not mention authentication, rate limits, error handling, or return format. It adds value by noting the endpoint but lacks comprehensive 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 extremely concise with two sentences: one for purpose and one for endpoint and optional parameters. No redundant information, every word serves a 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?
Given no output schema, the description does not specify the return structure (e.g., array of address objects, pagination details). It mentions pagination but lacks completeness on response format, which is needed for a list 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 description coverage is 100%, so baseline is 3. The description repeats optional parameters and adds the endpoint path, providing marginal extra context. It does not elaborate on parameter syntax or constraints beyond the schema.
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 it lists address book entries for a customer, using the verb 'list' and specifying the resource. It distinguishes from sibling tools like create_customer_address, get_customer_address, etc., by indicating a retrieval operation.
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 usage for retrieving address entries but does not explicitly state when not to use it or mention alternatives among sibling tools. It lacks exclusion criteria or guidance on using other address-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_customer_charges_creditsA
List charges and credits for a customer. GET /customers/{customerId}/charges_credits. Optional filters: status, type (charge or credit).
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| status | No | Filter by status | |
| type | No | Filter by type: charge or credit | |
| pageNo | No | Page number (1-based) | |
| itemPerPage | No | Items per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the HTTP method (GET) and filters, but omits details about pagination, ordering, permissions, rate limits, or side effects. This is insufficient for a list 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?
The description is two sentences long, includes the endpoint and key filter options, and has no extraneous information. It is appropriately 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?
The description covers the basic purpose and filters but does not mention pagination parameters (pageNo, itemPerPage) or return value structure. For a list tool with pagination, this is a notable 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?
The input schema has 100% description coverage, so baseline is 3. The description adds that the 'type' filter accepts 'charge or credit', which is useful but only slightly augments the schema. No other parameter details are added.
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 it lists charges and credits for a customer and includes the HTTP endpoint. It distinguishes from sibling tools like create_customer_charge_credit and delete_customer_charge_credit by focusing on listing.
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 mentions optional filters but provides no explicit guidance on when to use this tool versus alternatives (e.g., list_customers, get_customer_invoices). Usage is implied, not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_customer_payment_methodsA
List all payment methods for a customer. GET /customers/{customerId}/paymentmethods. Optional: pageNo, itemPerPage.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| pageNo | No | Page number (default: 1) | |
| itemPerPage | No | Items per page (default: API default) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It mentions it is a GET request (implied read-only) and lists optional parameters, but does not detail pagination defaults, sorting, or any side effects. The behavioral disclosure is incomplete.
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 concise, with two sentences that front-load the main purpose. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (3 parameters, no output schema), the description adequately covers the essential behavior. It could mention response structure or limits, but is sufficient for a simple list 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?
Input schema has 100% description coverage, so the description adds minimal value beyond the schema. It repeats the optionality of pageNo and itemPerPage, but does not clarify default behavior or format. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all payment methods for a customer' and includes the HTTP verb and path, making the purpose unambiguous. It distinguishes from siblings like get_customer_payment_method (singular) and create_customer_payment_method.
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 explicit guidance on when to use this tool vs alternatives. The description implies usage for listing all payment methods, but does not provide exclusions or prerequisites. Minimal guidance beyond the obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_customersC
List customers with optional query parameters for filtering and pagination. GET /customers. See https://apiguide.rebillia.com/ for the Public API.
| Name | Required | Description | Default |
|---|---|---|---|
| pageNo | No | Page number (default: 1) | |
| itemPerPage | No | Items per page (default: 25, max 250) | |
| query | No | Search term: matches firstName, lastName, email, and related company name/support pin | |
| status | No | Filter by customer status: active, disabled, or archived | |
| sortBy | No | Sort direction: ASC or DESC (default: ASC for customers) | |
| orderBy | No | Column to sort by (e.g. firstName, lastName, email, createdAt). Default: firstName | |
| include | No | Comma-separated includes: addressbook, paymentmethod, lastInvoice, subscriptions, unpaidInvoices, externalCustomers | |
| filterId | No | Optional saved filter ID to apply predefined filters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions optional query parameters but does not disclose pagination behavior, rate limits, authentication requirements, or idempotency. The generic API guide link does not compensate for missing details.
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 very concise, with two sentences covering the core action and providing an external reference. It is front-loaded with the essential information. Could be slightly more structured but 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?
Given no output schema and no annotations, the description should explain what the tool returns (e.g., a list of customer objects with pagination metadata). It does not mention the response structure, error handling, or any limitations. This leaves the agent with incomplete context for invoking and interpreting results.
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 is 3. The description adds no extra meaning beyond the schema comments; it merely restates that there are optional query parameters. The schema itself fully documents each parameter, so the description does not need to repeat, but also does not add 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 clearly states the verb 'List' and the resource 'customers', and mentions optional query parameters for filtering and pagination. It is specific enough to understand the tool's basic function, though it does not distinguish it from sibling list tools.
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 like list_customer_addresses or list_invoices. It only gives a link to the API guide without specific context. This is insufficient for an agent to decide between similar listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_external_invoicesB
List external invoices for an integration. GET /integrations/{integrationId}/external-invoices. Optional: include, itemPerPage, pageNo.
| Name | Required | Description | Default |
|---|---|---|---|
| integrationId | Yes | Company integration ID (required) | |
| include | No | Comma-separated attributes to include | |
| itemPerPage | No | Items per page | |
| pageNo | No | Page number |
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 states the HTTP method (GET) implies read-only, but does not disclose pagination behavior, default values, rate limits, or any side effects. The description is insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of three short, informative sentences: purpose, HTTP endpoint, and optional parameters. Every sentence adds value with no 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?
The description covers the basic purpose and required/optional parameters. However, given the lack of output schema and moderate parameter count, it lacks details on pagination, defaults, and return format, which are relevant for a list 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 coverage is 100%, so baseline is 3. The description lists parameter names and marks them as optional (though schema already indicates required), but adds no further meaning about their purpose or default behavior. For example, 'include' is not explained.
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 'List', the resource 'external invoices', and the scope 'for an integration'. It distinguishes from sibling tools like list_invoices and get_subscription_external_invoices by specifying external invoices and requiring integrationId.
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 does not provide any guidance on when to use this tool versus alternatives such as list_invoices or get_subscription_external_invoices. No explicit when-to-use or when-not-to-use information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_external_productsA
List external products for an integration. GET /integrations/{integrationId}/products. Required: integrationId, productName (sent as name query param).
| Name | Required | Description | Default |
|---|---|---|---|
| integrationId | Yes | Company integration ID (required) | |
| productName | Yes | Product name filter (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description reveals the HTTP method (GET), path structure, and that productName is sent as a query param. It omits pagination or error details, but for a simple list tool, this suffices.
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?
Two sentences efficiently convey purpose and requirements. The inclusion of HTTP method/path is slightly redundant but not harmful.
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 list tool with two required params and no output schema, the description covers essentials: action, target, and required inputs. No response format details, but acceptable.
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 description adds little. The note that productName is sent as a name query param is a minor HTTP binding detail, not significantly enhancing semantics.
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 it lists external products for an integration, distinguishing from siblings like 'list_products' (likely internal) and 'get_external_product' (single product).
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 specifies the endpoint and required parameters, implying use when needing a list filtered by integration and product name. It lacks explicit comparison to alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filter_fieldsB
List available filter fields/attributes for a section. GET /companies/filters/fields. Required: section. Returns available filter attributes for the section.
| Name | Required | Description | Default |
|---|---|---|---|
| section | Yes | Section (required). One of: subscriptions, invoices, customers, products, orders, billRuns, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behaviors. It mentions it's a GET request and returns filter attributes, implying a read-only operation. However, it lacks details on error conditions, rate limits, or response structure, which are needed for full transparency without annotations.
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 concise with two sentences and a required field note. No unnecessary information, making it efficient 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?
Given the tool's simplicity and lack of output schema, the description covers the basics but does not specify the output format or its relationship to sibling tools like 'create_filter'. It is adequate but could be more comprehensive.
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% coverage for the single parameter 'section', and both the description and schema provide similar information. The description does not add new meaning 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 states 'List available filter fields/attributes for a section' and includes the HTTP endpoint. It clearly indicates that it retrieves metadata about filter fields, not existing filters, but does not explicitly differentiate from the sibling 'list_filters' tool, so it's clear but not maximally distinctive.
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 'list_filters' or 'create_filter'. The description only states 'Required: section' without explaining the context or preferred use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filtersA
List company filters. GET /companies/filters. Required: section (e.g. subscriptions, invoices, customers, products, orders, billRuns).
| Name | Required | Description | Default |
|---|---|---|---|
| section | Yes | Section (required). One of: subscriptions, invoices, customers, products, orders, billRuns, etc. |
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 mentions the HTTP method (GET) implying read-only, but does not disclose response format, pagination, or any side effects. Minimal behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently cover purpose, endpoint, and required parameter. No redundant or unnecessary content; information is 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?
For a simple list tool with one required parameter and no output schema, the description is adequate but lacks details on the response structure (e.g., list of filter objects) and usage constraints. More context would improve 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%, and both description and schema explain the 'section' parameter similarly. The description adds endpoint and examples but does not provide additional semantic meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List company filters' with a specific verb and resource, and the endpoint 'GET /companies/filters' reinforces the action. It is distinct from siblings like create_filter, remove_filter, and list_filter_fields.
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 explicitly notes the required 'section' parameter with examples, guiding when to use the tool to list filters for a given section. It lacks explicit exclusions or alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gatewaysB
List company gateways. GET /gateways. Optional: status (filter by active, disabled, error, archive), companyCurrencyId, include.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status (e.g. active, disabled, error, archive) | |
| companyCurrencyId | No | Filter by company currency ID | |
| include | No | Comma-separated attributes to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description indicates it's a GET request and lists parameters, but does not disclose read-only nature, pagination, or other behavioral traits. Adequate but not exceptional.
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?
Two sentences, front-loaded purpose, no extraneous information. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and description does not mention return format, pagination, or what attributes are returned. Missing key context for a list endpoint.
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 parameter descriptions. Description adds marginal value by restating parameters and giving status examples, but does not exceed schema information.
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?
Clearly states 'List company gateways' and provides the HTTP method and endpoint. Distinguishes from 'list_global_gateways' by name, but no explicit differentiation in description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Lists optional parameters but no guidance on when to use this versus alternatives like 'get_gateway' or 'list_global_gateways'. Usage is implied by name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_global_gatewaysA
List available global gateway types (e.g. Stripe, Braintree). GET /globals/gateways. Returns gblGatewayId, name, keyName, requiredFields (setting keys), and fieldDetails (keyName + displayName). Use this before create_gateway to discover valid gblGatewayId and which keys to pass in the setting object.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It reveals the HTTP method (GET) and return fields, indicating a read-only operation. However, it does not mention authentication requirements, rate limits, or whether the list is cached or dynamic, which are important for agent decision-making.
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 three sentences, each serving a distinct purpose: stating what the tool does, listing the HTTP endpoint and return fields, and providing usage context. No unnecessary words 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 no output schema, the description adequately lists the return fields. It also ties into the sibling create_gateway tool, enhancing completeness. However, it could mention if there are any prerequisites (e.g., authentication) or if the list is globally available without pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description naturally adds no parameter semantics beyond what the schema provides (100% coverage). The baseline score of 4 is appropriate as no further explanation is needed.
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 lists available global gateway types, provides examples (Stripe, Braintree), and specifies the endpoint and return fields. It distinguishes from sibling list_gateways by noting 'global' types, and the return fields differentiate it from other list tools.
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 explicitly says 'Use this before create_gateway' to discover valid gblGatewayId and keys, guiding the agent on typical workflow. However, it does not mention when not to use it or suggest alternatives, though none are likely needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_integrationsB
List company integrations. GET /integrations. Optional: type (ecommerce, email, marketing, tax, shipping, accounting, chat).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by integration type: ecommerce, email, marketing, tax, shipping, accounting, chat |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Mentions GET method implying read-only, and optional type filter, but lacks details on pagination, auth requirements, rate limits, or response structure. With no annotations, the description provides basic but incomplete behavioral 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?
Description is very short (two sentences) with no filler. Structure is acceptable but could be more organized (e.g., separate endpoint and options).
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 list tool with one optional parameter, the description covers the core functionality. However, it lacks details on return format or expected output, which would improve 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%, and the description repeats the schema's enum values for 'type' without adding new meaning. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'list' and resource 'company integrations', and includes the HTTP method GET and optional filter, making purpose unambiguous. It distinguishes from siblings like list_integrations_by_key which lists by key.
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 vs alternatives or when not to use it. With many list tools on the same server, explicit usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_integrations_by_keyA
List company integrations by key name. GET /integrations/{keyName}/list. keyName: avalara, bigcommerce, customRate, fedex, flatRate, freeShipping, freshBooksCloudAccounting, google, mailchimp, monsoonStoneEdge, myob, pickupInStore, quickbooks, saasu, salesforce, shipBy, shipperHq, shippingZone, shopify, slack, smtp, taxamo, thomsonreuters, ups, upsShippingProtection, usps, vertex, xero.
| Name | Required | Description | Default |
|---|---|---|---|
| keyName | Yes | Integration key name (required). One of: avalara, bigcommerce, customRate, fedex, flatRate, freeShipping, freshBooksCloudAccounting, google, mailchimp, monsoonStoneEdge, myob, pickupInStore, quickbooks, saasu, salesforce, shipBy, shipperHq, shippingZone, shopify, slack, smtp, taxamo, thomsonreuters, ups, upsShippingProtection, usps, vertex, xero |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals the HTTP method (GET) indicating a read operation, but no annotations exist. It does not discuss side effects, rate limits, pagination, or output structure. For a simple list tool, this is minimally adequate.
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 plus a list of allowed keys. It is relatively concise, though the full enumeration of keys could be omitted since it appears in the schema. Front-loads the purpose effectively.
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's simplicity (one required parameter, no output schema), the description provides a clear purpose and parameter context. It is sufficient for an agent to understand the tool's function and input, though output details are omitted.
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 the parameter with full description (including valid values). The description repeats this list, adding no new semantic meaning beyond what the schema already provides. Baseline 3 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 it lists integrations by key name, with a specific verb and resource. It differentiates from the sibling 'list_integrations' by including the key parameter, and also lists the endpoint and possible key values, making the tool's purpose 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?
The description implies usage when filtering by key, but does not explicitly instruct when to use this tool over alternatives like 'list_integrations' or 'get_integration_by_key'. No exclusion criteria or context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_invoicesB
List invoices. GET /invoices. Optional: include (detail, transactions, billruns, externalInvoices), status, query, orderBy, sortBy, filterId, itemPerPage, pageNo.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated: detail, transactions, billruns, externalInvoices | |
| status | No | Filter by status | |
| query | No | Search query | |
| orderBy | No | Sort column | |
| sortBy | No | Sort direction | |
| filterId | No | Filter ID | |
| itemPerPage | No | Items per page | |
| pageNo | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose any behavioral traits such as pagination behavior, authentication requirements, rate limits, or side effects. The agent receives no information beyond the basic listing action.
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 very short (one sentence + a list of parameter names). While concise, it lacks structure and does not effectively front-load important information. It is not a model of clarity.
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 8 parameters, no output schema, and no behavioral annotations, the description is incomplete. It does not explain the return format, how filtering with the query parameter works, or the behavior of pagination (itemPerPage, pageNo).
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, so each parameter's purpose is already documented in the schema. The tool description adds no further meaning; it merely lists some parameter names. 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 clearly states 'List invoices' and names the endpoint 'GET /invoices'. It unambiguously specifies the action and resource, and the sibling list tools (e.g., list_customers, list_bill_runs) are distinct enough to avoid confusion.
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 get_customer_invoices or get_subscription_invoices. The description merely lists optional parameters without explaining the context of use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_order_statusesA
List order statuses for an integration. GET /integrations/{integrationId}/orders/statuses. Supported for e.g. BigCommerce, Shopify.
| Name | Required | Description | Default |
|---|---|---|---|
| integrationId | Yes | Company integration ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. However, it only states the action ('list') and the endpoint. It does not disclose read-only nature, authorization requirements, rate limits, or response format. The implicit 'list' suggests read-only, but this is not confirmed.
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 with two sentences. It front-loads the purpose and includes the endpoint and example integrations without any wasted words. Every sentence provides 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?
Given the tool's simplicity (1 parameter, no output schema), the description is mostly complete. It could be improved by indicating the return format or listing possible statuses, but it still provides sufficient context for an agent to understand the tool's scope.
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 the single parameter 'integrationId' described as 'Company integration ID (required)'. The tool's description adds no additional 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 'List order statuses for an integration' with a specific verb and resource. It also includes the HTTP endpoint and example integrations (BigCommerce, Shopify), which distinguishes it from siblings since no other tool deals with order statuses.
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 mentions example integrations but does not explicitly state when to use this tool versus alternatives, nor are there alternatives listed. It provides no exclusion criteria or prerequisites beyond the integrationId parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_product_rate_plan_chargesA
List product rate plan charges for a product rate plan. GET /product-rateplans/{ratePlanId}/product-rateplan-charges. Product rate plan reference: ratePlanId (URI: /product-rateplans/{ratePlanId}). Optional: include, orderBy, sortBy, pageNo, itemPerPage.
| Name | Required | Description | Default |
|---|---|---|---|
| ratePlanId | Yes | Product rate plan ID (URI: /product-rateplans/{ratePlanId}) | |
| include | No | Attributes to include | |
| orderBy | No | Sort column | |
| sortBy | No | Sort direction | |
| pageNo | No | Page number | |
| itemPerPage | No | Items per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description implies a safe read operation but does not explicitly state non-destructive behavior or other traits. Adequate but minimal.
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?
Three concise sentences. First sentence states purpose, second gives endpoint, third lists optional parameters. Front-loaded and no extraneous 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?
No output schema and description does not describe what the response contains. Pagination is implied via parameters but not explained. Could be more complete for a listing 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 coverage is 100% with descriptions for all 6 parameters. Description repeats parameter names and references the ratePlanId URI, but adds no semantic depth beyond the schema.
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?
Clear specific verb 'List' and resource 'product rate plan charges', with explicit reference to product rate plan. Distinct from sibling tools like create_product_rate_plan_charge and delete_product_rate_plan_charge.
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?
Does not provide guidance on when to use this tool vs alternatives. Lists optional parameters but no context on when to include them or when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_product_rate_plansA
List product rate plans for a product. GET /products/{productId}/product-rateplans. Product reference: productId (URI: /products/{productId}). Optional: include, orderBy, sortBy, pageNo, itemPerPage.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Product ID (URI: /products/{productId}) | |
| include | No | Attributes to include | |
| orderBy | No | Sort column | |
| sortBy | No | Sort direction | |
| pageNo | No | Page number | |
| itemPerPage | No | Items per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description indicates it's a GET request (non-destructive) and mentions pagination parameters (pageNo, itemPerPage), but does not disclose rate limits, error codes, or other behavioral traits. It adds limited context beyond the operation type.
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 two sentences: the first states the purpose, the second adds the endpoint and optional parameters. It is efficient and front-loaded, though it could be slightly more concise by merging the sentences.
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 (list rate plans), and the description covers the resource, endpoint, and pagination parameters. However, no output schema exists, and the description does not explain the return format or behavior when no results are found. It is adequate but not fully complete for a list endpoint.
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, so each parameter already has a basic explanation. The description only repeats parameter names and the productId format (URI), adding minimal extra meaning beyond the schema. A score of 3 (baseline) is appropriate when schema coverage is high.
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 'List', the resource 'product rate plans', and the scope 'for a product'. It also includes the HTTP method and endpoint path, making the tool's purpose unambiguous. This distinguishes it from sibling tools like list_products or get_product_rate_plan_charges.
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 lists optional parameters but does not provide guidance on when to use this tool versus alternatives, such as list_product_rate_plan_charges or get_product_rate_plan. No explicit when-to-use or when-not-to-use context is given, so the agent must infer from the name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_productsB
List products. GET /products. Optional: include (productRateplan, productRateplanCharge, chargeTier), status (published|draft|archived|disabled), name, category (baseProducts|addOn|bundleProduct|miscellaneous|service), orderBy, sortBy (ASC/DESC), itemPerPage, pageNo.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated includes: productRateplan, productRateplanCharge, chargeTier | |
| status | No | Filter by product status | |
| name | No | Filter by product name | |
| category | No | Filter by product category | |
| orderBy | No | Sort column | |
| sortBy | No | ASC or DESC | |
| itemPerPage | No | Items per page | |
| pageNo | No | Page number (1-based) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It mentions 'GET /products' implying read-only, but does not explicitly state safety, no side effects, or response structure. It lacks details on pagination defaults, rate limits, or any behavioral traits beyond the raw HTTP method.
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 short and front-loaded with the core purpose ('List products. GET /products.'). It then enumerates parameters in a compact list. While not beautifully structured (e.g., bullet points), it is efficient and avoids 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 8 optional parameters, no output schema, and moderate complexity, the description covers the input parameters but omits important context: it does not explain return values, pagination behavior (e.g., defaults for itemPerPage and pageNo), or any prerequisites. The agent is left guessing about the response format.
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 baseline is 3. The description lists the parameters and some enum values, but adds no new meaning beyond what the schema already provides. It organizes the list concisely but does not clarify parameter interactions or constraints.
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 'List products' and includes the HTTP method GET, making the tool's purpose immediately clear. It distinguishes itself from sibling list tools by listing product-specific filter parameters.
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 (e.g., other list tools). It merely lists optional parameters without explaining context or exclusions. The agent receives no help in deciding when to choose this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_shipping_servicesA
List shipping services. GET /shipping/services. Returns available shipping services for the company.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states it returns available shipping services, but omits details like response structure, pagination, or error conditions. This leaves the agent with limited understanding of the tool's output.
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 (two sentences, 15 words) and front-loads the purpose. Every word serves a clear function: stating action, endpoint, and return type. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with no parameters and no output schema, the description is minimally complete. However, it could elaborate on the type of objects returned (e.g., service names, IDs) to improve agent understanding. The absence of any behavioral detail beyond 'returns available shipping services' is a 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?
The input schema has zero parameters, so no param documentation is needed. The description naturally adds no parameter semantics, but the baseline for zero parameters is 4, as the schema already fully covers the input.
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 explicitly states the tool lists shipping services, specifies the endpoint 'GET /shipping/services', and distinguishes it from the sibling tool 'calculate_shipping' which computes costs. This provides a clear and unique 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?
The description does not provide any guidance on when to use this tool versus alternatives (e.g., 'calculate_shipping'). It lacks context on prerequisites or typical flow. However, the purpose is self-evident for a listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subscription_rate_plansA
List rate plans on a subscription. GET /subscriptions/{subscriptionId}/rateplans. Returns paginated rate plans (product rate plan ref, name, type, effectiveStartDate, charges when included). Optional: include, pageNo, itemPerPage, orderBy, sortBy, status (active|pause|cancel|archived), type (ongoing|prepaid|contract). status/type filters are case-insensitive.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| include | No | Attributes to include (e.g. rateplanCharge) | |
| pageNo | No | Page number | |
| itemPerPage | No | Items per page | |
| orderBy | No | Sort column | |
| sortBy | No | Sort direction | |
| status | No | Filter by rate plan status (case-insensitive) | |
| type | No | Filter by rate plan type (case-insensitive) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses return fields, pagination, and case-insensitive filters. It effectively communicates the read-only, filtered listing 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?
Two well-structured sentences: purpose and endpoint first, then return info and parameters. No filler, efficient 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 no output schema and no annotations, the description adequately covers return fields, pagination, filters, and case-insensitivity, making it complete for a listing 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 coverage is 100%, and the description adds value by summarizing optional parameters, listing enum values, and noting case-insensitivity, which is not fully captured in the schema descriptions.
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 'List rate plans on a subscription' and includes the HTTP GET endpoint, distinguishing it from siblings that add, remove, or get single rate plans.
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 explicit guidance on when to use this tool vs. alternatives like get_subscription_rate_plan, but the listing nature is implied through the verb and endpoint. Implied usage only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subscriptionsA
List subscriptions. GET /subscriptions. Optional: include, query, orderBy, sortBy, filterId, status (exact status), customerId (customer id), companyGatewayId (subscription company gateway id), dateFrom/dateTo (createdAt range; dateFrom from 00:00:00, dateTo through 23:59:59; invalid dates are ignored), itemPerPage, pageNo. Examples: /v1/subscriptions?status=active ; /v1/subscriptions?customerId=123&companyGatewayId=8 ; /v1/subscriptions?dateFrom=2026-01-01&dateTo=2026-01-31 ; /v1/subscriptions?status=paused&customerId=123&dateFrom=2026-01-01&dateTo=2026-01-31.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Attributes to include | |
| query | No | Search query | |
| orderBy | No | Sort column | |
| sortBy | No | Sort direction | |
| filterId | No | Filter ID | |
| status | No | Filter by exact subscription status | |
| customerId | No | Filter by customer id | |
| companyGatewayId | No | Filter by subscription company gateway id | |
| dateFrom | No | Filter createdAt from this date (applies from 00:00:00); invalid dates are ignored | |
| dateTo | No | Filter createdAt to this date (applies through 23:59:59); invalid dates are ignored | |
| itemPerPage | No | Items per page | |
| pageNo | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond the schema, such as the date range behavior (from 00:00:00 to 23:59:59, invalid dates ignored) and that the status filter is exact. Although no annotations are provided, this provides good transparency for a read-only GET 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?
The description is well-structured: a concise first sentence, then a list of parameters with brief explanations, followed by examples. It is informative without being verbose, though it could be slightly more 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 12 optional parameters and no output schema, the description covers filtering and pagination. It does not describe return format or defaults, but the verb 'List' implies a list. It is sufficiently complete for a list endpoint.
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 baseline is 3. The description adds meaning by clarifying 'exact status', 'createdAt range', and date behaviors. Examples further illustrate parameter usage, adding value beyond the raw schema.
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 'List subscriptions' and provides the HTTP method. It lists all filtering options, making the purpose clear. However, among siblings like get_customer_subscriptions, it does not explicitly differentiate its scope (global vs per customer), so it misses some 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 examples of common use cases, which implies usage, but it does not offer explicit guidance on when to use this tool versus alternatives. No when-not-to-use or comparative information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_transactionsB
List transactions. GET /transactions. Optional: customerId, invoiceId, status (settled|authorized|declined|error|voided|requiresPaymentMethod|awaitingForSettlement|authorizeAndHold), type (sale|refund), dateFrom, dateTo, companyGatewayId, orderBy, sortBy, itemPerPage, pageNo.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | Filter by customer ID | |
| invoiceId | No | Filter by invoice ID | |
| status | No | Filter by transaction status | |
| type | No | Filter by transaction type | |
| dateFrom | No | Filter by date from (YYYY-MM-DD) | |
| dateTo | No | Filter by date to (YYYY-MM-DD) | |
| companyGatewayId | No | Filter by company gateway ID | |
| orderBy | No | Sort column | |
| sortBy | No | Sort direction | |
| itemPerPage | No | Items per page | |
| pageNo | No | Page number |
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 implies a read operation via 'List' and GET, but it does not explicitly state that it is read-only or disclose other behaviors like pagination defaults or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence followed by a compact list of parameters, making it efficient with no wasted words, though the list format could be more structured.
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, the description should indicate the return format (e.g., list of transaction objects) but does not. It covers the filtering capabilities well but omits the output 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 input schema has 100% description coverage, so the description adds marginal value by compactly listing parameters and their enum values, but the schema already provides detailed descriptions for each 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 'List transactions' and provides the endpoint and available filters. It differentiates from get_transaction (singular) but does not explicitly contrast with other list tools like list_invoices.
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 lists optional parameters and their allowed values, which helps with usage, but it does not provide guidance on when to use this tool versus alternatives like get_transaction or refund_transaction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refund_transactionB
Refund a transaction. POST /transactions/{transactionId}/refund. AMOUNT IN CENTS: e.g. 250 = $2.50, 5500 = $55.00. Required: transactionId, amount (integer cents).
| Name | Required | Description | Default |
|---|---|---|---|
| transactionId | Yes | Transaction ID (required) | |
| amount | Yes | Refund amount in CENTS (e.g. 250 = $2.50, 5500 = $55.00). Integer, required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must fully disclose behavior. It states 'Refund a transaction' but does not mention side effects, idempotency, permission requirements, or possible failure modes. Minimal behavioral information.
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?
Very concise with three sentences front-loading purpose, endpoint, and critical unit information. No unnecessary words; every sentence adds 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?
Lacks details on the effect of refunding (e.g., whether it partially refunds, reverses a charge), return value (no output schema), and behavioral context. Basic but insufficient for an agent to fully understand the 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 description coverage is 100%, so the schema already explains both parameters. The description repeats the same information about units and requirements without adding new meaning, earning the baseline score.
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?
Clearly states the verb 'Refund' and resource 'transaction', including the HTTP endpoint. Differentiates from sibling tools like charge_invoice or void_transaction by specifying the action and the required parameters.
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?
Implies usage for refunding transactions but does not provide explicit guidance on when to use this tool versus alternatives (e.g., void_transaction). No exclusion criteria or context for prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_filterB
Delete a company filter. DELETE /companies/filters/{filterId}. Required: filterId.
| Name | Required | Description | Default |
|---|---|---|---|
| filterId | Yes | ID of the filter to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description merely restates the action without disclosing behavioral traits such as permanence, side effects, authorization requirements, or error conditions.
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 very concise—two short sentences—with no unnecessary words. It efficiently conveys the core purpose and endpoint.
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 tool with one parameter and no output schema, the description is minimally complete. It covers the action and required parameter but lacks details on return values 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 schema coverage is 100%, so the schema already documents the filterId parameter. The description adds no new meaning beyond confirming it is required, meeting the baseline for high 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 action (delete), resource (company filter), and includes the HTTP endpoint. It distinguishes this tool from siblings like create_filter and list_filters.
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, or any prerequisites beyond the required parameter. The description does not provide context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_subscription_rate_planA
Remove a rate plan from a subscription. DELETE /subscriptions/{subscriptionId}/rateplans/{ratePlanId}.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| ratePlanId | Yes | Subscription rate plan ID to remove (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'Remove' without disclosing side effects, permissions, or reversibility. For a destructive tool, this is insufficient.
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?
Extremely concise: one sentence plus URL. Front-loaded with action, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal but covers the essential operation. Lacks details on error handling, idempotency, or prerequisites, but for a simple delete tool it is adequate.
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 clear descriptions. The description adds no extra semantic meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it removes a rate plan from a subscription, with the HTTP verb and endpoint. Distinct from siblings like remove_subscription_rate_plan_charge and add_subscription_rate_plan.
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 explicit when-to-use or when-not-to-use, but the action is obvious given sibling tools. Lacks prerequisites or consequences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_subscription_rate_plan_chargeB
Remove a rate plan charge from a subscription. DELETE /subscriptions/{subscriptionId}/rateplan-charges/{chargeId}.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| chargeId | Yes | Subscription rate plan charge ID to remove (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It indicates a DELETE operation but does not disclose side effects (e.g., cascading effects, irreversibility, permission requirements, or error conditions).
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?
Extremely concise: one sentence plus the endpoint. No wasted words, 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?
Despite being a simple two-parameter delete, the description omits important context: no output schema, no error handling info, no idempotency statement, and no behavioral details beyond the HTTP method.
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?
Input schema has 100% coverage with clear parameter descriptions. The description adds no additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove a rate plan charge from a subscription') and provides the REST endpoint. It distinguishes from the sibling tool 'remove_subscription_rate_plan', which removes an entire rate plan.
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 (e.g., updating vs removing), nor prerequisites (e.g., subscription and charge must exist). The description lacks explicit context for proper usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_default_currencyA
Set the company default currency. POST /currencies/default. Required: currencyId (global currency ID). Creates company currency if needed. Fails if there are invoices with that currency.
| Name | Required | Description | Default |
|---|---|---|---|
| currencyId | Yes | Global currency ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it creates a company currency if needed and fails if invoices exist for that currency. However, no annotations provided, so description carries burden. Lacks info on authorization, idempotency, or safety.
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?
Concise three sentences, front-loaded with purpose ('Set the company default currency'), no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 1 parameter, covers main behavior and failure condition but does not explain return value or side effects. Adequate but could be more complete.
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 description repeats 'Required: currencyId (global currency ID)' adding no new semantic meaning beyond the schema. Baseline of 3.
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?
Clearly states the action: set company default currency. Specifies endpoint and required parameter. Distinguishes from siblings like 'create_currency' (create a new currency) and 'get_default_currency' (retrieve).
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?
Provides a failure condition (fails if invoices with that currency) but does not explicitly guide when to use this tool vs alternatives like 'create_currency' or 'get_default_currency'. No exclusions or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_product_rate_planB
Sync a rate plan. POST /product-rateplans/{ratePlanId}/sync.
| Name | Required | Description | Default |
|---|---|---|---|
| ratePlanId | Yes | Rate plan ID (URI: /product-rateplans/{ratePlanId}) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as side effects, authentication needs, or whether the sync is destructive. The bare statement 'Sync a rate plan' is insufficient.
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?
Two concise sentences with no extraneous text. Front-loaded with the main action.
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 only one parameter and no output schema, the description lacks essential context about what 'sync' entails (e.g., data source, idempotency, effect on existing data). The agent cannot determine how to use this tool 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 a description for ratePlanId. The tool description adds nothing beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Sync a rate plan' with a specific verb and resource, and distinguishes from sibling tools like create, update, get, delete for rate plans. The HTTP endpoint is also provided.
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 sync vs alternatives (e.g., create_product_rate_plan, update_product_rate_plan). No context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_gatewayA
Test gateway connection. GET /gateways/{gatewayId}/test. Returns the gateway object with connection status (e.g. status active on success).
| Name | Required | Description | Default |
|---|---|---|---|
| gatewayId | Yes | Gateway ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions the tool returns a connection status, but does not clarify if the test has side effects, requires special permissions, or has rate limits. The word 'test' implies a read-only operation, but this is not explicitly stated, which is a 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 two sentences long, with no unnecessary words. The first sentence states the action, and the second clarifies the HTTP method and return value. It is front-loaded and 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?
Given the simplicity of the tool (one parameter, no output schema, no nested objects), the description covers the essential information: purpose, HTTP method, endpoint, and return value. However, it could be slightly more complete by mentioning whether the test is synchronous or if there are common error states. Still, it is adequate for an agent to invoke 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 input schema has one parameter with a description, and schema description coverage is 100%. The tool description adds context by specifying the HTTP method and endpoint, but does not provide additional meaning about the parameter beyond what the schema already offers. According to the calibration, a 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 clearly states the tool's purpose: 'Test gateway connection.' It also provides the HTTP method and endpoint, and specifies the return value ('gateway object with connection status'). This distinguishes it clearly from sibling tools like 'get_gateway' which retrieve gateway info without testing.
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 does not provide explicit guidance on when to use this tool versus alternatives, such as 'get_gateway.' There is no mention of prerequisites, limitations, or when not to use it. While the purpose is clear, the lack of usage direction leaves room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unlink_external_productB
Unlink an external product from a product. DELETE /products/{productId}/external-products/{externalProductId}.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Product ID (required) | |
| externalProductId | Yes | External product ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries full burden. It does not disclose behavioral traits such as whether the operation is destructive, permissions needed, or what happens to related data. Only implies removal via the HTTP method.
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 very concise, but the inclusion of the full endpoint URL is somewhat extraneous. It lacks structure like bullet points or additional context, but remains short.
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 tool with two params and no output schema, the description provides minimal information. It does not explain the result of unlinking, error cases, or preconditions. However, given the simplicity, it is minimally adequate.
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 clear parameter descriptions. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Unlink an external product from a product' and includes the HTTP DELETE endpoint, making the purpose unambiguous. It distinguishes itself from the sibling 'link_external_product'.
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, no prerequisites or conditions. The description does not differentiate usage from other sibling tools like 'link_external_product'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_bill_runA
Update a bill run. PUT /bill-run/{billRunId}. Required: billRunId, newDateTime. Use ISO 8601: YYYY-MM-DDTHH:MM:SS or with timezone (e.g. 2026-02-26T20:05:00Z). If no timezone, Z (UTC) is appended. Note: this tool only works on bill runs with status pending. Calls against completed or error runs will fail.
| Name | Required | Description | Default |
|---|---|---|---|
| billRunId | Yes | Bill run ID (required) | |
| newDateTime | Yes | New date/time for schedule (required). ISO 8601, e.g. 2026-02-26T20:05:00 or 2026-02-26T20:05:00Z. Without timezone, Z is added. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the HTTP method, parameter constraints, and the pending status requirement. However, it omits important details like return value, side effects, and authentication requirements, leaving gaps in 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 clear but somewhat verbose, repeating information already in the schema (ISO 8601 format). It could be more concise while still conveying the key constraint about pending status.
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 covers purpose, HTTP method, parameter constraints, and usage condition (pending status). However, it lacks information about return values or error scenarios, which is necessary given the absence of output schema and annotations.
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 is 3. The description adds minimal new information beyond what the schema already provides (e.g., timezone handling is redundant). It does not enhance understanding of parameter usage beyond the schema.
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 a bill run') and resource, and includes the HTTP method and path. It distinguishes itself from sibling tools like update_invoice and update_customer by focusing specifically on bill runs.
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 a clear when-not condition: 'only works on bill runs with status pending. Calls against completed or error runs will fail.' It does not explicitly state when to use this tool versus alternatives, but given no other bill run update tools exist, the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_currencyB
Update a company currency. PUT /currencies/{companyCurrencyId}. Required: companyCurrencyId, conversionRate, fixedRate.
| Name | Required | Description | Default |
|---|---|---|---|
| companyCurrencyId | Yes | Company currency ID (required) | |
| conversionRate | Yes | Conversion rate (required) | |
| fixedRate | Yes | Fixed rate flag (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It indicates a write operation but lacks disclosure of side effects, required permissions, or whether updates are partial or full. The description is insufficient 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?
One sentence plus required fields list; very concise and front-loaded. Minor improvement could be better structuring, but no waste.
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 covers the basic update operation but lacks usage context, behavioral details, and return value information. Given no output schema and no annotations, it is minimally viable but not complete.
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 baseline is 3. The description repeats required fields but adds no additional meaning beyond the schema, such as constraints, examples, or impact 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 clearly states the action ('Update a company currency'), specifies the HTTP method and path ('PUT /currencies/{companyCurrencyId}'), and lists required parameters. It distinguishes from sibling tools like create_currency and delete_currency.
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_currency or set_default_currency. No mention of prerequisites or scenarios where updating is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_customerA
Update an existing customer. PUT /customers/{customerId}. Required: customerId. Optional: firstName, lastName, email, businessName, locale, phoneNum, phoneExt, preferredCurrency, taxExempt, status (active|disabled|archived).
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID to update (required) | |
| firstName | No | Customer first name | |
| lastName | No | Customer last name | |
| No | Customer email | ||
| businessName | No | Business name | |
| locale | No | Locale code | |
| phoneNum | No | Phone number | |
| phoneExt | No | Phone extension | |
| preferredCurrency | No | Preferred currency code | |
| taxExempt | No | Whether customer is tax exempt | |
| status | No | Customer status: active, disabled, or archived |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It mentions the PUT method and lists fields but does not clarify whether omitted optional fields are preserved or cleared, nor does it discuss side effects, idempotency, or permissions.
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 that efficiently conveys purpose and required/optional fields. It is front-loaded and avoids unnecessary words, though structured formatting could improve readability.
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 11 parameters and no output schema, the description covers purpose and field requirements but lacks details about return values, error handling, and behavioral semantics (e.g., partial vs full update).
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, and the description essentially repeats the schema's parameter list. It adds minimal new meaning 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?
Clearly states the action ('Update an existing customer') and specifies the HTTP method and endpoint. Distinguishes from sibling tools like create_customer and delete_customer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Lists required and optional fields, providing direct guidance on what to include. However, it does not explicitly contrast with alternatives (e.g., create_customer for new customers) or mention when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_customer_addressA
Update an address book entry (partial update). PUT /customers/{customerId}/addressbooks/{addressId}. Only explicitly provided fields are modified; omitted fields are kept from the existing address record.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID | |
| addressId | Yes | Address book entry ID | |
| street1 | No | Street line 1 | |
| city | No | City | |
| state | No | State | |
| zip | No | Postal code | |
| countryCode | No | ISO 3166-1 alpha-2 country code, e.g. ES, AR, MX | |
| name | No | Address name | |
| contactName | No | Contact name | |
| street2 | No | Street line 2 | |
| company | No | Company name | |
| contactEmail | No | Contact email | |
| contactPhone | No | Contact phone | |
| type | No | Address type: residential or commercial |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the key partial update behavior but omits potential side effects, permission requirements, or error scenarios. Additional details like idempotency or atomicity would improve clarity.
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?
Two concise sentences that front-load the core purpose. No redundant information; every word serves a 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?
Given the CRUD context, the description sufficiently explains the tool's behavior and parameter usage. It lacks a mention of return values or error handling, but the schema covers field descriptions. Overall, it's complete for a typical update 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?
The schema has 100% description coverage for all 14 parameters. The description adds value by explaining that only provided fields are modified and referencing the URL pattern, which clarifies the role of customerId and addressId as path 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 clearly states the action ('Update'), the resource ('address book entry'), and specifies it's a 'partial update'. It also provides the HTTP method and URL pattern, distinguishing it from sibling tools like create_customer_address or delete_customer_address.
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 explains partial update behavior ('Only explicitly provided fields are modified; omitted fields are kept'), implying when to use this tool over a full update or create. However, it does not explicitly mention alternatives or conditions when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_customer_payment_methodA
Update a payment method's billing address (gateway-agnostic). PUT /customers/{customerId}/paymentmethods/{paymentMethodId}. Required: customerId, paymentMethodId, billingAddress (countryCode, street1, city, state, zip). Optional: street2. No payment or gateway-specific fields.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | Customer ID (required) | |
| paymentMethodId | Yes | Payment method ID (required) | |
| billingAddress | Yes | Billing address (required): countryCode, street1, city, state, zip; street2 optional |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description conveys the request method (PUT), scope (only billing address), and gateway-agnostic nature. Additional side effects or error conditions are not described, but this is sufficient for a simple update.
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?
Two sentences, no redundancy, key information front-loaded with action and resource, then details and constraints.
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?
Missing description of return values (no output schema) and potential errors or idempotency. However, the tool is straightforward and the description covers essential usage aspects.
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 baseline is 3. The description adds context beyond schema by explaining the purpose of each parameter and emphasizing that no gateway fields are involved, improving understandability.
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?
Explicitly states 'Update a payment method's billing address (gateway-agnostic)', specifying both the action and resource, and distinguishes from sibling tools like create_customer_payment_method.
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?
Clearly indicates when to use (update billing address) and lists required and optional fields. Includes constraints like 'No payment or gateway-specific fields', but lacks explicit when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_gatewayB
Update a company gateway. PUT /gateways/{gatewayId}. Optional: displayName, setting (credentials key-value object).
| Name | Required | Description | Default |
|---|---|---|---|
| gatewayId | Yes | Gateway ID (required) | |
| displayName | No | Display name | |
| setting | No | Credentials object (key-value). Keys depend on gateway type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It only states the action and HTTP method, but does not explain side effects, auth requirements, error handling, or whether the update is partial or full. Lacks important 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?
Two concise sentences front-loading the purpose and HTTP method, followed by optional parameters. No redundant or filler 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 tool with 3 parameters (one required, one nested object) and no output schema, the description lacks context about the update behavior (partial vs full), expected response, error cases, and prerequisites. Incomplete for effective use.
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 parameters. The description merely restates the optional fields 'displayName' and 'setting' without adding new semantics. Baseline 3 applies as description does not degrade but adds minimal 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?
Clearly states 'Update a company gateway' and provides HTTP method, distinguishing it from create, delete, and get operations. The resource and action are 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 on when to use this tool vs alternatives. Does not mention prerequisites (e.g., gateway must exist) or exclude scenarios. Usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_invoiceA
Update an invoice. PUT /invoices/{invoiceId}. Only invoices with status 'posted' or 'requestPayment' can be updated. All body fields optional. Accepted: companyGatewayId, customerId, customerEmail, customerName, customerPhone (max 45), customerPaymentMethodId, dateDue, dateFrom, dateTo, comments, paymentType (offlinePaymentProvider|thirdPartyPaymentProvider|walletPaymentProvider), paymentMethodId, shippingAddress (when provided: contactName, street1, city, zip, countryCode (ISO 3166-1 alpha-2), type residential|commercial), shippingAmount (cents), shippingServiceId, detail (line items: amount as '41.00' dollars or 4100 cents; tool sends cents). Note: billingAddress is not accepted on update. Invoice must have customer and customerPaymentMethod set to avoid server error.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | Invoice ID (required) | |
| companyGatewayId | No | Company gateway ID | |
| customerId | No | Customer ID | |
| customerEmail | No | Customer email (max 45) | |
| customerName | No | Customer name (max 45) | |
| customerPhone | No | Customer phone (max 45) | |
| customerPaymentMethodId | No | Customer payment method ID | |
| dateDue | No | Due date (valid date) | |
| dateFrom | No | Period from (valid date) | |
| dateTo | No | Period to (valid date) | |
| comments | No | Comments | |
| paymentType | No | offlinePaymentProvider, thirdPartyPaymentProvider, or walletPaymentProvider | |
| paymentMethodId | No | Payment method ID | |
| shippingAddress | No | When provided: contactName, street1, city, zip, countryCode (ISO 3166-1 alpha-2 country code, e.g. ES, AR, MX), type (residential|commercial) | |
| shippingAmount | No | Shipping amount in CENTS | |
| shippingServiceId | No | Shipping service ID | |
| detail | No | Line items: each { amount: '41.00' (dollars) or 4100 (cents), description?, qty? } |
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 details the HTTP method, conditional update based on invoice status, optional body fields, accepted fields, and specific constraints (e.g., billingAddress not accepted, detail amount format, shipping address sub-fields). No contradictions with annotations exist.
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 relatively long but each sentence provides essential information. It front-loads the verb and resource, then presents conditions and field details. The structure is logical, though it could be slightly more organized (e.g., grouping constraints together). No unnecessary sentences are present.
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 complexity (17 parameters, nested objects, no output schema), the description is thorough. It covers preconditions, accepted fields, format specifications, and potential errors. It does not explain return values, but that is acceptable without an output schema. The description is complete 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?
Although schema coverage is 100%, the description adds significant meaning beyond the schema. It clarifies the status condition for updates, explains that billingAddress is not accepted (not in schema), details format for detail amounts (dollars vs cents), and provides sub-fields for shippingAddress with country code format. This greatly aids correct parameter usage.
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 an invoice') and the HTTP endpoint ('PUT /invoices/{invoiceId}'). It distinctly identifies the resource being updated, differentiating it from siblings like create_invoice, delete_invoice, and get_invoice.
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 explicitly states when the tool can be used: only invoices with status 'posted' or 'requestPayment' can be updated. It also notes that billingAddress is not accepted and warns about required customer and customerPaymentMethod to avoid errors. However, it does not explicitly compare with sibling tools for alternative actions like charging or voiding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_productB
Update a product. PUT /products/{productId}. Optional: name, category, description, internalProductId, sku.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Product ID (required) | |
| name | No | Product name | |
| category | No | Category | |
| description | No | Description | |
| internalProductId | No | Internal product ID | |
| sku | No | SKU |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description carries full burden. Only states 'Update a product' without disclosing behavior like partial vs full update, auth requirements, side effects, or idempotency. Minimal 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?
Very short and front-loaded with action and HTTP method. Efficient, but could be improved by including more context without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing details on return values, error handling, prerequisites, and how it fits with sibling tools. For a mutation tool with 6 parameters and no output schema, the description is insufficient.
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?
Input schema has 100% coverage with descriptions; description repeats optional fields but adds no extra semantics like constraints or relationships. Baseline 3 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?
Clearly states the action (update) and resource (product). Mentions HTTP method and endpoint, and lists optional fields. Distinct from siblings like create_product and delete_product.
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?
Implies usage for updating existing products, but no explicit guidance on when to use this tool vs alternatives like create_product or other update_* tools. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_product_rate_planB
Update a rate plan. PUT /product-rateplans/{ratePlanId}. Optional: name, type (contract|ongoing|prepaid), description, effectiveStartDate, effectiveEndDate, image.
| Name | Required | Description | Default |
|---|---|---|---|
| ratePlanId | Yes | Rate plan ID (URI: /product-rateplans/{ratePlanId}) | |
| name | No | Rate plan name | |
| type | No | Type: contract, ongoing, or prepaid | |
| description | No | Description | |
| effectiveStartDate | No | Effective start date | |
| effectiveEndDate | No | Effective end date | |
| minimumCommitment | No | Minimum commitment | |
| minimumCommitmentLength | No | Minimum commitment length | |
| minimumCommitmentUnit | No | Minimum commitment unit | |
| changeStatusBasedOnCharge | No | Change status based on charge | |
| image | No | Image |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must convey behavioral traits. It states 'Update' but does not clarify whether it is a partial update or full replacement (PUT semantics), nor does it mention auth requirements, side effects, or what happens to omitted fields. This is a significant gap 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?
The description is concise (one sentence plus field list) and front-loaded with the action and endpoint. The list of optional fields is helpful but could be structured better for clarity.
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 11 parameters, no output schema, and no annotations, the description lacks critical context such as response format, update behavior (partial vs full), and edge cases. It does not adequately prepare an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description lists some optional fields (name, type, description, dates, image) but omits others like minimumCommitment and changeStatusBasedOnCharge, adding partial value without full compensation for missing explanations.
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 a rate plan' and includes the HTTP method and endpoint, distinguishing it from sibling tools like create_product_rate_plan or update_product_rate_plan_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as update_product_rate_plan_status or sync_product_rate_plan. No prerequisites or context for invocation are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_product_rate_plan_chargeA
Update a product rate plan charge. PUT /product-rateplan-charges/{chargeId}. You can send only the fields you want to change (e.g. chargeTier with new price); the tool fetches the current charge and merges your input so the backend receives all required fields. Validates in MCP before calling the API. Optional inputs: name, chargeType, chargeModel, billCycleType, category, chargeTier (currency, price as dollars e.g. 22.87 or cents e.g. 2287), taxable, weight, endDateCondition, billingPeriod, billingTiming, billingPeriodAlignment, specificBillingPeriod, billCycleDay (1-31 when billCycleType specificDayOfMonth), weeklyBillCycleDay (when specificDayOfWeek), monthlyBillCycleYear (1-12 when specificMonthOfYear). When chargeType is recurring, billingPeriod, specificBillingPeriod, billingPeriodAlignment, billingTiming are required.
| Name | Required | Description | Default |
|---|---|---|---|
| chargeId | Yes | Product rate plan charge ID (required) | |
| name | No | Charge name | |
| chargeType | No | oneTime, recurring, or usage | |
| chargeModel | No | flatFeePricing, perUnitPricing, tieredPricing, or volumePricing | |
| billCycleType | No | chargeTriggerDay, defaultFromCustomer, specificDayOfMonth, specificDayOfWeek, specificMonthOfYear, subscriptionStartDay, subscriptionFreeTrial | |
| category | No | physical or digital | |
| chargeTier | No | Array of {currency, price (dollars e.g. 22.87 or cents e.g. 2287), optional startingUnit, endingUnit, priceFormat, tier}. To update only price, send this and chargeId; other fields are filled from current charge. | |
| taxable | No | Whether taxable | |
| weight | No | Weight (integer) | |
| description | No | Description | |
| endDateCondition | No | subscriptionEnd or fixedPeriod | |
| billingPeriod | No | day, week, month, or year (required if chargeType recurring) | |
| billingTiming | No | inAdvance or inArrears (required if chargeType recurring) | |
| billingPeriodAlignment | No | alignToCharge, alignToSubscriptionStart, alignToTermStart (required if chargeType recurring) | |
| specificBillingPeriod | No | Required when chargeType recurring | |
| billCycleDay | No | 1-31 when billCycleType is specificDayOfMonth | |
| weeklyBillCycleDay | No | sunday, monday, tuesday, wednesday, thursday, friday, saturday when billCycleType is specificDayOfWeek | |
| monthlyBillCycleYear | No | 1-12 when billCycleType is specificMonthOfYear |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full behavioral disclosure burden. Describes merge logic and pre-validation, and explains price format. However, does not address error handling, idempotency, or consequences of invalid data beyond validation.
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 well-structured: starts with purpose and endpoint, then lists optional inputs with conditional requirements. It is dense but not wasteful; every sentence adds value. Slightly long but necessary for the complexity.
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 18 parameters, no output schema, and no annotations, the description covers all parameters, merge behavior, validation, and required conditions thoroughly. It provides sufficient context for an AI agent to use the tool effectively.
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?
With 100% schema coverage, baseline is 3. Description adds meaning by explaining the merge behavior for chargeTier, specifying price formats (dollars or cents), and clarifying required parameters conditionally (e.g., billingPeriod when chargeType recurring).
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 updates a product rate plan charge, specifies the HTTP method and endpoint, and distinguishes from sibling tools like create or delete by using 'Update' and mentioning the merge logic.
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?
Explains when to use the tool (to update an existing charge), describes the partial update behavior (send only changed fields), and lists required fields for recurring charges. Lacks explicit when-not-to-use guidance, but context from siblings and the description suffice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_product_rate_plan_statusB
Update a rate plan status. PUT /product-rateplans/{ratePlanId}/status. Required: status. Valid values: published, archived, disabled, discontinue.
| Name | Required | Description | Default |
|---|---|---|---|
| ratePlanId | Yes | Rate plan ID (URI: /product-rateplans/{ratePlanId}) | |
| status | Yes | Status: published, archived, disabled, or discontinue |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden. It does not disclose important behavioral traits such as state transition rules, idempotency, side effects on subscriptions, or return behavior. This is insufficient 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 extremely concise with three short sentences, front-loading the main action. No unnecessary words or redundancy, earning its place efficiently.
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 params, no output schema), the description lacks essential context such as allowed state transitions, prerequisites, and effects on associated entities. It is incomplete for safe 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 is 3. The description adds the HTTP endpoint and lists valid status values, but these are largely redundant with the schema. It provides minimal additional meaning beyond the schema.
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 'Update a rate plan status' with a specific verb and resource, and includes the HTTP method and endpoint. This distinguishes it from sibling tools like update_product_rate_plan or update_product_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides valid status values and mentions the required parameter, but does not give explicit guidance on when to use this tool versus alternatives (e.g., update_product_rate_plan) or any prerequisites. Usage is implied but not explicitly differentiated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_product_statusB
Update a product status. PUT /products/{productId}/status. Required: status. Valid values: published, archived, disabled.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | Product ID (required) | |
| status | Yes | Status (required): published, archived, or disabled |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It indicates a mutation (update) and lists valid statuses but omits behavioral details: whether it's a partial update, side effects on product visibility, or required permissions. The lack of depth reduces 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 concise with two sentences and front-loads the action. Every sentence provides useful information without fluff. Could be slightly improved by structuring details, but overall 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?
For a simple two-parameter tool, the description covers the essential information. However, it lacks details on return value, error conditions, or any effects of changing status. It is minimally complete but not fully informative.
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 both parameters described. The description adds the endpoint path and repeats valid values, which provides minimal extra context. Baseline of 3 is appropriate given high schema coverage and limited added meaning.
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 'Update a product status' and provides the HTTP method and path, making the action and resource explicit. It distinguishes from sibling tools like update_product or update_product_rate_plan_status by focusing solely on status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a basic usage hint (required status and valid values) but does not explain when to use this tool versus alternatives like update_product for changing other attributes. No when-not-to-use or context for better decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_subscriptionC
Update a subscription. PUT /subscriptions/{subscriptionId}. Optional: name, companyCurrencyId, companyGatewayId, customerPaymentMethodId, detail, effectiveStartDate, billingAddressId, shippingAddressId.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| name | No | Subscription name | |
| companyCurrencyId | No | Company currency ID | |
| companyGatewayId | No | Company gateway ID | |
| customerPaymentMethodId | No | Customer payment method ID | |
| detail | No | Detail | |
| effectiveStartDate | No | Effective start date | |
| billingAddressId | No | Billing address ID | |
| shippingAddressId | No | Shipping address ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It mentions HTTP PUT but does not disclose whether it performs a full replacement or partial update, authorization requirements, error handling, or consequences of missing fields. The behavioral information is minimal.
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 concise with two sentences: a clear purpose statement and a list of optional fields. It is front-loaded and efficient, though it lacks structure like bullet points.
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 no annotations and no output schema, the description should provide more context about return values, partial update behavior, or error conditions. It only states the endpoint and field list, leaving significant gaps for safe usage.
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 each parameter. The description merely lists the optional fields without adding deeper meaning, constraints, or relationships. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update a subscription' as the purpose, which is a specific verb and resource. It also mentions the HTTP method and lists the updatable fields, making the scope clear. However, it could be slightly more precise about what aspects are covered.
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 sibling tools like update_subscription_status or update_subscription_rate_plan. The description only says it's an update but doesn't differentiate scenarios or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_subscription_rate_planB
Update a rate plan on a subscription. PUT /subscriptions/{subscriptionId}/rateplans/{ratePlanId}. Optional: name, type (contract|ongoing|prepaid), effectiveStartDate, changeStatusBasedOnCharge.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| ratePlanId | Yes | Subscription rate plan ID (required) | |
| name | No | Name | |
| type | No | contract, ongoing, or prepaid | |
| effectiveStartDate | No | YYYY-MM-DD | |
| changeStatusBasedOnCharge | No | Change status based on charge |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states 'Update' which implies mutation, but lacks details on idempotency, required permissions, side effects, response format, or whether changes are immediate. The optional fields are listed but without 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?
Very concise: one sentence plus a path and list of optional fields. No fluff, but the structure is a bit terse; the list could be better formatted. Still 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?
Given 6 parameters, no output schema, and no annotations, the description is incomplete. It omits clarification on the effect of updating fields like effectiveStartDate or changeStatusBasedOnCharge, response behavior, and error conditions. The path pattern helps but is not enough.
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?
Input schema coverage is 100%, so baseline is 3. The description merely repeats optional fields from the schema without adding new meaning (e.g., format constraints, relationships, or default behaviors).
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 a rate plan on a subscription') and includes the HTTP method and path, distinguishing it from sibling tools like add_subscription_rate_plan (create) and remove_subscription_rate_plan (delete).
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 explicit guidance on when to use this tool versus alternatives. The description implies modification but does not provide context on prerequisites, when not to use it, or compare to related tools like update_subscription.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_subscription_rate_plan_chargeA
Update a rate plan charge on a subscription. PUT /subscriptions/{subscriptionId}/rateplan-charges/{chargeId}. Required: subscriptionId, chargeId, quantity, name, chargeModel (flatFeePricing|perUnitPricing|tieredPricing|volumePricing), billCycleType, chargeTier (array: currency, price required). For price, you can pass a string dollars '41.00' or integer cents 4100 – the tool always sends cents to the API (same logic as create_invoice detail.amount). Also required: chargeType (oneTime|recurring|usage), endDateCondition (subscriptionEnd|fixedPeriod), taxable (boolean), weight. When chargeType is recurring, billingPeriodAlignment is also required. Optional: billingPeriod, billingTiming, specificBillingPeriod.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| chargeId | Yes | Subscription rate plan charge ID (required) | |
| quantity | Yes | Quantity (required) | |
| name | Yes | Charge name (required) | |
| chargeModel | Yes | Required. flatFeePricing|perUnitPricing|tieredPricing|volumePricing | |
| billCycleType | Yes | Required. chargeTriggerDay|defaultFromCustomer|specificDayOfMonth|specificDayOfWeek|specificMonthOfYear|subscriptionStartDay|subscriptionFreeTrial | |
| chargeTier | Yes | Required. Array of tiers: currency (required), price (required as '41.00' (dollars) or 4100 (cents); tool always sends cents to API), optional startingUnit, endingUnit, priceFormat, tier | |
| chargeType | Yes | Required. oneTime|recurring|usage | |
| endDateCondition | Yes | Required. subscriptionEnd or fixedPeriod | |
| taxable | Yes | Required. Whether the charge is taxable | |
| weight | Yes | Required. Weight (integer) | |
| billingPeriod | No | day, week, month, year | |
| billingTiming | No | inAdvance, inArrears | |
| billingPeriodAlignment | No | Required when chargeType is recurring. alignToCharge, alignToSubscriptionStart, alignToTermStart | |
| specificBillingPeriod | No | Specific billing period |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses a key behavioral trait: price conversion (dollars vs cents) and that the tool always sends cents to API. It also notes conditional requirement for billingPeriodAlignment when chargeType is recurring. However, it omits side effects or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph with front-loaded purpose and endpoint. It covers essential details without redundancy, though it could be broken into sections for readability. No wasted sentences.
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 15 parameters, no output schema, and no annotations, the description addresses critical aspects like price handling and conditional fields. It lacks details on return values, error handling, or what happens to existing charges, leaving some gaps for a complex 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?
Schema description coverage is 100%, so each parameter has a basic description. The tool description adds extra context for price conversion and conditional requirement, but otherwise does not significantly enhance meaning beyond the schema.
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 a rate plan charge on a subscription'), specifies the HTTP method and endpoint, and includes the tool's purpose. It distinguishes itself from sibling tools like 'add_subscription_rate_plan_charge' by focusing on updates.
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 lists required fields but does not explicitly state when to use this tool versus alternatives like 'update_subscription' or 'add_subscription_rate_plan_charge'. It lacks explicit guidance on prerequisites or when-not-to-use, relying on the name to imply update context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_subscription_statusA
Update a subscription status. PUT /subscriptions/{subscriptionId}/status. Required: status. Meanings: active – subscription is active and billing; paused – subscription is temporarily paused (no billing); archived – subscription is ended/archived (use instead of delete when ending); requestPayment – subscription is awaiting payment method or payment.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| status | Yes | Status (required): active (billing), paused (no billing), archived (ended; prefer over delete), requestPayment (awaiting payment) |
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 explains the implications of each status (e.g., paused means no billing, archived means ended). However, it does not disclose side effects (e.g., whether billing stops immediately), required permissions, error handling, or idempotency.
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 concise: one sentence followed by a list of status meanings. It is front-loaded with the action and HTTP method, and every sentence adds value without unnecessary 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 simple tool with two required parameters, the description is fairly complete for basic usage. However, it does not mention the response format, success indicators, or error cases, which would be helpful given the lack of an output schema.
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, already explaining the required parameters and status meanings. The description adds the HTTP method and path but largely repeats schema information. Thus, it adds minimal value beyond the schema, warranting a baseline score of 3.
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 a subscription status') and the resource ('subscription status'). It distinguishes this tool from siblings like delete_subscription and update_subscription by providing specific status meanings, especially noting that 'archived' should be used instead of delete.
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 guidance on when to use each status value, e.g., 'archived – use instead of delete when ending' and 'requestPayment – subscription is awaiting payment method or payment.' However, it does not explicitly contrast this tool with other update tools like update_subscription or provide cases where it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
void_invoiceA
Void an invoice. PUT /invoices/{invoiceId}/void. CRITICAL: This action is IRREVERSIBLE. Use with caution.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | Invoice ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It clearly states the action is irreversible, which is the key behavioral trait. It could mention additional side effects like invoice status changes, but the core disclosure is present.
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: two sentences that are front-loaded with the primary action and include the critical warning. No unnecessary words or repetition.
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's simplicity (one required parameter, no output schema, no annotations), the description is complete. It explains what the tool does, the endpoint, and the crucial irreversible nature. No additional information is needed 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 coverage is 100% for the single parameter 'invoiceId', and its description is adequate. The tool description does not add any extra semantic meaning beyond the schema, so a 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 explicitly states 'Void an invoice,' providing a clear verb and resource. It also includes the HTTP method and path, distinguishing it from sibling tools like delete_invoice or charge_invoice.
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 includes a strong warning about irreversibility ('CRITICAL: This action is IRREVERSIBLE. Use with caution.'), which guides when to use. However, it does not explicitly mention when not to use or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
void_transactionA
Void a transaction. POST /transactions/{transactionId}/void. Only works before settlement; after settlement use refund_transaction instead.
| Name | Required | Description | Default |
|---|---|---|---|
| transactionId | Yes | Transaction ID (required). Void only works before settlement; after settlement use refund_transaction. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden. It discloses that voiding only works pre-settlement and suggests an alternative. However, it does not mention side effects or what happens to the transaction after voiding (e.g., irreversibility). Still, it is fairly transparent for a simple action.
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?
Two concise sentences, front-loaded with the core purpose. No unnecessary 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?
The tool has one parameter and no output schema. The description covers purpose, condition, and alternative. It could mention the return value or response, but it is not critical. Overall complete for a simple mutation 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?
Input schema coverage is 100% and the schema description already repeats the condition. The description adds the endpoint context but does not add new semantics beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Void a transaction' with a specific verb and resource. It also provides the endpoint and distinguishes from refund_transaction, which is a sibling tool.
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?
Explicitly states the condition: 'Only works before settlement; after settlement use refund_transaction instead.' This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, with detailed descriptions. However, the large number of similar operations (e.g., multiple 'get_subscription_*' and 'list_*' tools) could cause slight confusion, though naming and descriptions generally make them distinguishable.
Tools consistently use snake_case verb_noun pattern (e.g., create_customer, list_invoices). Minor deviations like long compound names (create_customer_charge_credit) are acceptable, but overall naming is predictable and uniform.
With 108 tools, the count is extremely high for an MCP server. While the domain (billing, subscriptions, shipping) justifies many operations, this volume can overwhelm agent selection and increase cognitive load, far exceeding the typical 3-15 range.
The tool set covers a broad domain comprehensively, including CRUD for core entities, payment handling, shipping, integrations, and more. Minor gaps like reporting/analytics exist, but the surface is well-scoped for the stated billing management purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
MCP server for Recurly — accounts, subscriptions, invoices, plans; cancel & pause subs.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Multi-tenant MCP gateway for AI commerce. One connection, every store.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceA production-grade MCP server and CLI tool that enables AI agents to manage Shopify stores through 49 built-in tools across products, orders, inventory, and analytics. It supports natural language workflows for tasks like inventory tracking, customer support, and sales reporting.38718MIT
- AlicenseAqualityAmaintenanceMCP server for the LemonSqueezy API. Enables managing stores, products, customers, subscriptions, discounts, and license keys from any MCP-compatible AI assistant.645403MIT
- AlicenseAqualityCmaintenanceMCP server for managing WooCommerce stores through AI assistants like Claude. Provides 101 tools covering products, orders, customers, coupons, shipping, taxes, webhooks, settings, reports, and more.1001392MIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive Model Context Protocol (MCP) server that provides complete access to the Recharge Storefront API endpoints. Enables AI assistants to manage subscriptions, customers, orders, and billing through a standardized interface.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rhinosaas/rebillia-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server