velora
Server Details
Hosted Argentine commerce MCP: real AFIP invoicing, MercadoPago, logistics, catalog & WhatsApp.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- crossi-dev/velora-mcp
- GitHub Stars
- 0
- Server Listing
- velora-mcp
TDQS
Scored across 50 tools
Multiple tools have overlapping purposes, such as caja_registrar_movimiento vs register_movement, get_payment_intent_status vs open_cobro_status, and adjust_stock vs stock_load. The distinctions are not immediately clear from names/descriptions, causing a high risk of misselection.
Naming is inconsistent: mixes English and Spanish (caja_*, emit_invoice, send_whatsapp_*), and uses different patterns (open_*, get_*, query_*, list_*, etc.). Some names like stock_load and bulk_price_update don't follow a clear verb_noun convention.
50 tools is excessive for most contexts, even for a broad ERP-like domain. Many are UI widgets (open_*) that add clutter and could be consolidated, making the tool set feel heavy and harder to navigate.
The tool set covers many core business functions (products, suppliers, customers, sales, invoicing, shipping, cash register, payments, integrations). However, there are noticeable gaps: purchase requests have only create (no list/update/delete), shipments cannot be updated/cancelled, and sales lack direct update/query by ID.
Available Tools
50 toolsadjust_stockAdjust stockADestructiveIdempotentInspect
[demo: deshabilitada] Sets the absolute stock quantity for a product (inventory sync, no audit trail).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Must be 'set'. Absolute-set is the only mode available via MCP. | |
| quantity | Yes | New absolute stock quantity. | |
| productId | Yes | Product ID to update. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive, idempotent, and non-read-only behavior. The description adds meaningful context: 'absolute' indicates overwriting, 'no audit trail' warns about lack of logging, and '[demo: deshabilitada]' signals availability. This goes beyond the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence. Everything contributes to understanding the tool's purpose and caveats, with no redundancy. The demo note is appended compactly without disrupting 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?
The tool is simple, with only three required parameters and a well-documented schema plus safety annotations. The description adds the critical 'no audit trail' caveat and demo restriction. It doesn't mention return values or error handling, but for this level of complexity the description is largely sufficient.
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% — every parameter has a clear description. The tool description adds no further parameter-level detail 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 'Sets the absolute stock quantity for a product' — a specific verb with a precise resource and scope. The parenthetical '(inventory sync, no audit trail)' further differentiates it from related tools like stock_load or bulk_price_update.
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 for inventory sync and notes the lack of audit trail, which gives context on when it might be appropriate. However, it does not explicitly name alternatives or exclusion conditions, such as 'use stock_load for incremental adjustments' or 'avoid when audit trail required'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_price_updateBulk price updateADestructiveIdempotentInspect
[demo: deshabilitada] Mass price change for all products or a specified subset in this business.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'percent' = percentage change; 'fixed' = absolute ARS change. | |
| amount | Yes | Adjustment amount — percentage or fixed ARS value depending on mode. | |
| direction | Yes | 'up' raises, 'down' lowers, 'set' assigns an exact price. | |
| productIds | No | Specific product IDs to update. Omit to update ALL products. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint and idempotentHint. The description adds a critical caveat '[demo: deshabilitada]' indicating the tool is disabled in demo mode, which is useful behavioral context not in structured annotations. It could elaborate on side effects, but the demo note adds value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys scope and a caveat without unnecessary words. It earns its place entirely.
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 bulk mutation tool with comprehensive schema and annotations, the description covers purpose and scope effectively. It lacks mention of return behavior or reversibility, but the demo-disabled note adds contextual value. The tool is simple enough that this 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 coverage is 100%, providing full parameter descriptions. The description adds meaning by stating that the tool affects 'all products or a specified subset', which directly clarifies the optional productIds parameter and the default behavior (update all). This goes 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 performs a mass price change on all products or a specified subset, using a specific action (mass price change) on a specific resource (products). This distinguishes it from siblings like edit_product (single product) and adjust_stock (stock, not price).
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 clear context that this tool is for bulk price modifications across all or a subset of products. It implies the use case (bulk updates) but does not explicitly contrast it with alternatives like edit_product or mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caja_ciclo_cajaOpen or close cash shiftBDestructiveInspect
[demo: deshabilitada] Opens or closes a cash register shift for the authenticated business.
| Name | Required | Description | Default |
|---|---|---|---|
| nota | No | Optional operator note. | |
| monto | Yes | Opening float (abrir) or physically counted cash (cerrar) in ARS. | |
| action | Yes | 'abrir' to open a shift, 'cerrar' to close it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the tool's mutating nature is disclosed. The description adds the demo-disabled context and that it operates on the authenticated business, but does not describe specific side effects or requirements beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise and front-loaded with the core action. Every word serves a purpose, though the Spanish demo note might be slightly opaque to some agents. Overall it is appropriately sized.
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 3-parameter schema and existing annotations, the description is minimally adequate but lacks contextual completeness for a destructive action. It does not mention what happens after closing, whether opening/closing requires specific conditions, or return behavior. However, the schema and destructiveHint fill 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 description coverage is 100%, so all parameters (action, monto, nota) are already documented with clear descriptions. The tool description itself adds no additional parameter semantics beyond what the schema provides, which matches the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Opens or closes') and a clear resource ('cash register shift') for the authenticated business. This clearly distinguishes it from sibling tools like caja_consultar_saldo (balance) and open_caja_status (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 no guidance on when to use this tool versus alternatives or when to open vs close a shift. The demo-disabled note is a constraint but not usage guidance. 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.
caja_consultar_saldoConsult cash balanceARead-onlyIdempotentInspect
Queries the current cash register balance for the authenticated business — the open session data or the last closed session. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful context beyond the annotations by defining exactly which data is queried (open or last closed session) and scope (authenticated business). It does not contradict annotations, and 'Read-only' is consistent with readOnlyHint. However, it omits return format and error behavior, providing only moderate 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, front-loaded sentence that communicates purpose and data scope without excessive detail. The 'Read-only' tail is slightly redundant given the annotations, but the overall structure is efficient and every phrase 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 zero-parameter, read-only query with strong annotations, the description sufficiently covers what is returned (a balance) and its data source. It lacks details about response structure or absence of data, but given the tool's simplicity and the provided context, this gap is 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?
The schema has no parameters, so there are no parameter semantics to clarify. The description avoids repeating schema information and instead adds context about what is being queried, aligning with the baseline of 4 for zero-parameter tools.
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 specifies the action ('queries') and the resource ('current cash register balance'), and adds scope by naming the data source (open session or last closed session). This distinguishes it from sibling tools like open_caja_status, which likely opens a status view rather than returning data.
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 the current cash balance is needed, but provides no explicit guidance on when to use this tool versus alternatives like open_caja_status or connection_status. No alternative tools or exclusions are mentioned, so guidance relies on the obvious intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caja_registrar_movimientoRegister cash movement (caja)ADestructiveIdempotentInspect
[demo: deshabilitada] Records a cash movement tied to the OPEN caja shift: income, expense, withdrawal, tax, or payroll.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | Yes | Movement type. | |
| monto | Yes | Positive amount in ARS. | |
| descripcion | Yes | Movement description. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only, destructive, and idempotent hints. The description adds valuable context by specifying the prerequisite of an open caja shift and the disabled demo status ([demo: deshabilitada]). It does not contradict the annotations and enriches the agent's understanding of when the tool is functional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the tool's purpose, includes the key condition (open shift), and lists the supported movement types. The demo-disabled prefix adds important operational context without bloating the text. 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?
For a simple 3-parameter mutation tool with no output schema, the description covers the core behavior, the prerequisite (open caja shift), and the valid movement types. It does not describe error conditions (e.g., behavior when no shift is open) or return values, but given the tool's simplicity and the strong annotations, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all three parameters (tipo, monto, descripcion) with types, enums, and constraints. The description itself does not add extra parameter-specific semantics beyond listing the movement types already present in the enum, 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 starts with the verb 'Records' and clearly identifies the resource: a cash movement tied to the open caja shift. It further enumerates the specific movement types (income, expense, withdrawal, tax, payroll), making the scope unambiguous and distinguishing it from generic movement tools like 'register_movement'.
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 a caja shift is open, but it does not explicitly state when to use this tool over alternatives, nor does it provide exclusions (e.g., when no open shift exists or when to use 'register_movement'). The guidance is limited to the condition of an open shift, which is useful but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connection_statusConnection statusARead-onlyIdempotentInspect
Returns the BYOA (Bring Your Own Account) integration readiness for the authenticated business — what is connected and how to connect what is missing. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description repeats 'Read-only' and adds the notion of 'authenticated business' and output summary, but doesn't disclose new behavioral traits beyond annotations. Score 3.
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 substantive sentence, but the trailing 'Read-only' is redundant with annotations. Still appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter status tool, the description explains the output at a high level. No output schema exists, but the summary is sufficient for an agent to select and invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters, so baseline 4 applies. Description adds no parameter information, but none 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 it returns BYOA integration readiness for the authenticated business, specifying what is connected and how to connect what's missing. This specific verb+resource distinguishes it from sibling status 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?
Provides clear context: it targets the authenticated business and BYOA readiness. Does not explicitly mention alternatives or exclusions, so a 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_mercadopagoConnect MercadoPagoADestructiveIdempotentInspect
[demo: deshabilitada] Connects MercadoPago for this business using the BYOA OAuth-redirect model. Primary: returns an authorization URL. Fallback: accepts a production access token directly.
| Name | Required | Description | Default |
|---|---|---|---|
| accessToken | No | Optional MercadoPago production access token. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations present (readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=true), the description adds useful behavioral context by explaining the OAuth-redirect model and the primary/fallback behavior. It does not disclose potential side effects like overwriting existing connections, but the annotations already cover the destructive nature, so this is acceptable.
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 front-loaded with the core purpose. However, the leading '[demo: deshabilitada]' is an irrelevant and confusing prefix that adds noise without helping an agent understand the tool. Removing it would make the description cleaner, but the rest is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the primary and fallback modes but leaves out important context for an OAuth flow, such as what to do with the returned authorization URL, whether a callback is required, and what the fallback mode returns after accepting the token. Since there's no output schema, more detail on return values and next steps would be helpful.
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% for the single parameter, so the baseline is 3. The description adds value by explicitly mapping the accessToken parameter to the fallback flow ('accepts a production access token directly'), giving the parameter a functional role beyond its raw format definition.
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: 'Connects MercadoPago for this business using the BYOA OAuth-redirect model.' This is a specific verb+resource+scope combo, and the primary/fallback details further define what the tool does. It also distinguishes itself from sibling connect_* tools by naming the specific external service.
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 this tool is used for connecting MercadoPago and provides clear guidance on the two invocation modes ('Primary' returns a URL, 'Fallback' accepts a token). However, it does not explicitly state when not to use it or how it compares to alternatives like connect_pedidosya or connection_status, though the name makes it fairly obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_pedidosyaConnect PedidosYaADestructiveIdempotentInspect
[demo: deshabilitada] Connects PedidosYa for this business using the BYOA secure-form model. Primary: returns a secure link. Fallback: accepts an API token directly.
| Name | Required | Description | Default |
|---|---|---|---|
| apiToken | No | Optional PedidosYa API token. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include readOnlyHint=false and destructiveHint=true. The description adds behavioral detail beyond that by explaining the secure-form model and the primary/fallback flow (returning a secure link vs. accepting a token directly). This provides useful context without contradicting 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 compact and front-loaded, with three short sentences that convey purpose, method, and fallback. There is no redundant phrasing, and the demo note is brief but informative.
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 one optional parameter and no output schema, the description covers all essential aspects: what it does, how it works (BYOA secure-form), what it returns (secure link), and the fallback. Sibling differentiation and annotations fill any residual 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% for the single apiToken parameter, but the description adds contextual meaning by indicating it is used in the fallback mode, linking the parameter to the tool's behavior. This goes beyond the schema's simple 'optional token' 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 function with a specific verb and resource: 'Connects PedidosYa for this business.' It differentiates from sibling connect_* tools by naming the platform (PedidosYa) and describes its primary and fallback modes.
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 clear context: it is used to connect PedidosYa via the BYOA secure-form model, with a fallback to accept an API token. It doesn't explicitly mention alternatives or when not to use it, but the platform-specific naming makes the intended use obvious among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_tiendanubeConnect Tienda NubeADestructiveIdempotentInspect
[demo: deshabilitada] Connects Tienda Nube (Nuvemshop) using the BYOA OAuth-redirect model. Returns an authorization URL — no token ever passes through chat. Gated behind env config in production.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond annotations: it uses BYOA OAuth-redirect, returns an authorization URL, and ensures no token passes through chat. It also mentions the production gating, which helps the agent understand environmental constraints. No contradiction with annotations is apparent.
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 compact and front-loaded with the core action. Every sentence serves a purpose: the demo-disabled warning, the model explanation, the security guarantee, and the production gating. No redundant filler.
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 zero parameters and no output schema, the description covers the essential workflow and constraints. It tells the agent what the tool does, what it returns, and under what conditions it can be invoked. It could have clarified how to handle the returned URL (e.g., present to user), but that is reasonably implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is nothing to document. The description provides relevant flow details (returns an authorization URL) that compensate for the lack of parameters, maintaining the baseline score for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: connects Tienda Nube (Nuvemshop) using a specific OAuth-redirect model and returns an authorization URL. It distinguishes itself from sibling connect tools (connect_mercadopago, connect_pedidosya) by naming the exact service.
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 to use the tool (to integrate Tienda Nube) and provides important gating information: demo is disabled and production requires env config. While it doesn't explicitly contrast with alternatives, the context is clear and carries exclusionary notes about availability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_whatsappConnect WhatsAppADestructiveIdempotentInspect
[demo: deshabilitada] Connects WhatsApp Business using the BYOA Meta Embedded Signup model. Primary: returns a signup link. Optional: registers a phone number as a lightweight pre-step.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | No | Optional WhatsApp Business phone in E.164 format. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=true, and idempotentHint=true. The description adds the two-step behavior (returning a signup link, optionally registering a phone) but does not elaborate on potential destructive effects, permissions, or failure modes. It provides some added context beyond annotations, but not rich enough for a higher score.
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 front-load the main purpose, then clearly separate primary and optional behaviors. The 'demo: deshabilitada' note is a minor extra but provides environment context without being wasteful.
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 a single optional parameter and no output schema, the description covers the essential behaviors: returns a signup link and optionally registers a phone. It could mention prerequisites or what 'register' implies, but given the low complexity, it is nearly 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% for the single optional 'phone' parameter. The description adds meaning by explaining that this parameter triggers a 'lightweight pre-step' registration, whereas its absence leads to the primary signup link action. This goes beyond the schema's basic type/format 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 connects WhatsApp Business via the BYOA Meta Embedded Signup model, with a primary action (returns a signup link) and an optional pre-step (register a phone number). This distinguishes it from other connect tools (e.g., connect_mercadopago) and WhatsApp messaging tools (send_whatsapp_*).
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 clear context on what the tool does (connect WhatsApp Business) and the two modes (primary vs optional). It lacks explicit 'when not to use' or mentions of alternatives, but the context is sufficient for basic tool selection among connection-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_productCreate productAIdempotentInspect
[demo: deshabilitada] Creates a new product in the business catalog. Requires name and price.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Product name. | |
| price | Yes | Selling price in ARS. | |
| costPrice | No | Purchase cost price in ARS (optional). | |
| weightGrams | No | Weight in grams (optional). | |
| initialStock | No | Initial stock quantity (default 0). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, destructiveHint=false, and idempotentHint=true, covering the basic safety profile. The description adds little behavioral context beyond the required fields and does not contradict annotations. No details on side effects, permissions, or duplicate handling are provided, but the annotations suffice.
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 highly concise, consisting of two short sentences that front-load the action and the key requirement. The demo tag is slightly distracting but does not add significant bulk. 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?
With all parameters documented in the schema and annotations providing safety semantics, the description is adequate for basic invocation. However, given the presence of closely related tools like edit_product and upload_catalog, a bit more context on when to use this tool would improve completeness. The lack of return-value information is not critical for a create 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 all parameters are already documented in the schema. The description merely restates that name and price are required, adding no new meaning. Since the schema handles parameter semantics well, 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 the tool 'Creates a new product in the business catalog', using a specific verb and resource. This distinguishes it from sibling tools like edit_product and delete_product. The additional requirement of name and price further clarifies its core 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 provides minimal usage guidance, noting that name and price are required, but does not explicitly say when to prefer this over alternatives such as edit_product or upload_catalog. The context of creating a new product is implied, but no exclusions or alternative comparisons are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_purchase_requestCreate purchase requestBDestructiveIdempotentInspect
[demo: deshabilitada] Creates a procurement order (purchase request) to a supplier.
| Name | Required | Description | Default |
|---|---|---|---|
| itemName | Yes | Name of the item being ordered. | |
| quantity | Yes | Quantity to order. | |
| unitPrice | Yes | Unit price per item in ARS. | |
| supplierId | No | Existing supplier ID (optional if supplierName is provided). | |
| supplierName | No | Supplier name (optional if supplierId is provided). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey read-write (readOnlyHint false), destructive (destructiveHint true), and idempotent (idempotentHint true) hints. The description adds the valuable note that the tool is '[demo: deshabilitada]' (disabled in demo), but does not provide additional behavioral context like what exactly gets created, required permissions, or consequences of 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 a single, efficient clause, front-loaded with the demo-disabled note. It avoids fluff, though the bracketed note is a metadata aside rather than descriptive prose, slightly reducing structural polish.
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 5 parameters and no output schema, the description is fairly thin. The schema covers parameter details and the demo-disabled note adds an important caveat, but the description does not explain the return format, validation rules, or what the destructive hint means in practice. It is minimally viable 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 input schema already documents all five parameters with 100% coverage, including the conditional relationship between supplierId and supplierName. The description adds no parameter-specific meaning beyond the schema, so it does not elevate 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?
The description clearly states the action ('Creates') and the object ('procurement order (purchase request)') with a recipient ('to a supplier'). This distinguishes it from sibling tools like create_product or create_supplier, making its 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?
There is no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description merely restates the action without providing context such as 'use when ordering items from a supplier' or referencing siblings like create_supplier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_shipmentCreate shipmentADestructiveIdempotentInspect
[demo: deshabilitada] Creates a physical shipment via the chosen courier and returns a tracking number and label URL.
| Name | Required | Description | Default |
|---|---|---|---|
| saleId | Yes | Velora Sale ID. | |
| service | No | Courier-specific service key (defaults to 'domicilio'). | |
| provider | Yes | Courier slug from quote_shipping ('andreani', 'oca'). | |
| customerDni | No | Recipient DNI (required by Andreani in production). | |
| weightGrams | Yes | Total shipment weight in grams. | |
| customerCity | No | Recipient city (optional). | |
| customerName | Yes | Recipient first name. | |
| customerPhone | No | Recipient phone number (optional). | |
| customerAddress | Yes | Recipient street name. | |
| customerLastName | No | Recipient last name (optional). | |
| customerProvince | No | Recipient province (required by OCA). | |
| customerPostalCode | Yes | Recipient postal code. | |
| customerAddressNumber | No | Recipient street number (required by OCA). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring destructive and read-only hints, the description adds that the tool is disabled in demo and that it returns a tracking number and label URL. It clearly communicates the real-world side effect of creating a physical shipment, though it doesn't discuss idempotency or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that states the action and outputs without filler. The demo-disabled prefix is brief and useful 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?
Despite lacking an output schema, the description states the key outputs (tracking number and label URL), and the schema covers all parameters. It could mention the prerequisite of using quote_shipping to select a provider, but overall it is sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 13 parameters have schema descriptions, so the description does not need to explain them. No additional parameter semantics are provided beyond the schema, which matches the baseline for 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 specifies the action ('Creates a physical shipment'), the resource, and the outcomes (tracking number and label URL). This clearly distinguishes it from siblings like quote_shipping and track_shipment.
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 a courier must be chosen but doesn't explicitly instruct the agent to call quote_shipping first or state when not to use this tool. The provider source is only indicated in the schema, not in the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_supplierCreate supplierBIdempotentInspect
[demo: deshabilitada] Creates a supplier for this business.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Supplier name (must be unique within this business). | |
| No | Supplier email address (optional). | ||
| phone | No | Supplier phone number (optional). | |
| contactName | No | Contact person name (optional). | |
| leadTimeDays | No | Default lead time in days (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating, non-destructive, idempotent operation. The description adds only the 'for this business' scope and does not disclose that the name must be unique, that duplicate names will fail, or any other behavioral consequences. The idempotentHint is questionable given the unique constraint, but the description does not contradict it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, front-loaded with the action. The 'demo: deshabilitada' prefix is unnecessary but does not significantly harm 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?
For a tool with 5 parameters and no output schema, the description is too minimal. It does not explain what the call returns, how errors like duplicate name are handled, or any prerequisites. The schema covers parameters and annotations cover safety, but the description fails to provide operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (name, email, phone, contactName, leadTimeDays) is already described. The description adds no additional parameter semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Creates a supplier for this business' with a specific verb and resource, and the scope distinguishes it from sibling tools like edit_supplier or delete_supplier. Despite the 'demo: deshabilitada' prefix, the core purpose is 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 provides no explicit guidance on when to use this tool over alternatives. It does not mention that edit_supplier should be used for modifications or that there is a uniqueness constraint on the name. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tracked_payment_linkCreate tracked payment linkADestructiveIdempotentInspect
[demo: deshabilitada] Creates a tracked MercadoPago payment link for a catalog-tied cobro: atomically records the Sale + Invoice + PaymentIntent, then generates a real Checkout Pro link. MONEY: real and irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Line items. | |
| customerId | Yes | Customer ID. | |
| description | Yes | Cobro description shown on the MP preference. | |
| expiresInDays | No | Link lifetime in days (1–30, default 3). | |
| idempotencyKey | Yes | Stable UUID generated by the wizard. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description explicitly warns 'MONEY: real and irreversible' and mentions atomicity, which enriches the safety profile. The '[demo: deshabilitada]' note adds environmental context. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fairly concise at two sentences, but the leading '[demo: deshabilitada]' creates a slightly awkward structure and may distract from the main purpose. Still, every phrase carries useful 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?
The tool has no output schema, yet the description does not mention what the tool returns (e.g., the payment link URL) or any prerequisites like MercadoPago connection or existing catalog products. This leaves an important gap for an agent to understand the tool's full 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 description coverage is 100%, and the schema already documents each parameter adequately. The description adds no extra parameter-level meaning beyond the 'catalog-tied' context, so it does not compensate or elaborate 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 identifies the verb (creates), the specific resource (tracked MercadoPago payment link), and the scope (catalog-tied cobro), while detailing the atomic recording of Sale + Invoice + PaymentIntent and generation of a Checkout Pro link. This differentiates it from siblings like open_payment_link_wizard or register_sale.
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 context: it's for catalog-tied cobros that require real payment links with tracking, and emphasizes that money is real and irreversible. However, it does not explicitly name alternatives or state when not to use this tool, leaving some ambiguity versus open_payment_link_wizard.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_customerDelete customerADestructiveIdempotentInspect
[demo: deshabilitada] Deletes a customer from this business (blocked when the customer has sales or invoices).
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | Yes | ID of the customer to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and idempotent, but the description adds a significant behavioral constraint not captured in annotations: the operation is blocked when the customer has sales or invoices. It also includes a demo environment note ('[demo: deshabilitada]'), providing extra context about availability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with a useful parenthetical constraint. It is front-loaded and all content is relevant, with no filler 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?
For a simple deletion tool with one parameter and no output schema, the description combined with annotations and schema is fully sufficient. It covers what the tool does, when it cannot be used, and is backed by strong 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?
The schema already provides 100% coverage for the single parameter (customerId) with a clear description. The tool description does not add further parameter-specific detail, so it does not enrich beyond the schema. Baseline 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the function: 'Deletes a customer from this business', with a specific verb and resource. It also includes a meaningful constraint (blocked when the customer has sales or invoices) that distinguishes it from other delete tools like delete_product or delete_supplier.
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 to use it (to delete a customer) and explicitly states when it cannot be used ('blocked when the customer has sales or invoices'), which serves as a clear exclusion. However, it does not point to alternative tools like upsert_customer or suggest any alternative workflow, so guidance is slightly limited.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_productDelete productADestructiveIdempotentInspect
[demo: deshabilitada] Deletes (or soft-archives, when it has sale records) a product from the catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | ID of the product to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds critical nuance beyond the destructiveHint=true annotation by disclosing that deletion becomes a soft-archive when sale records exist, which qualifies the tool's destructive nature. It also includes a '[demo: deshabilitada]' note indicating the tool may be disabled in demo environments, which is valuable context not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with a clarifying parenthetical and a brief demo label. It is front-loaded with the primary action and keeps the conditional clause compact. However, the foreign-language '[demo: deshabilitada]' prefix might be cryptic, slightly reducing 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?
For a simple delete operation with one parameter and existing safety annotations, the description adequately covers the resource, the conditional soft-archive behavior, and an environment limitation. It does not mention return values or error handling, but given the simplicity and no output schema, the coverage is sufficient.
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 sole parameter productId is fully documented in the input schema with a clear description ('ID of the product to delete.'). With 100% schema description coverage, the tool description correctly relies on the schema and doesn't add further parameter-level detail, aligning with 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 states the action 'Deletes' or 'soft-archives' the specific resource 'a product from the catalog', which clearly distinguishes it from sibling tools like create_product, edit_product, delete_customer, and delete_supplier. The conditional soft-archive behavior adds precision about the tool's scope.
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 alternative tools are mentioned, but the context makes it clear this is the product deletion tool, distinct from edit_product for modifying product data. The conditional behavior ('when it has sale records') provides guidance on how the tool handles products with sales history, though it doesn't formally state when to choose delete over other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_supplierDelete supplierADestructiveIdempotentInspect
[demo: deshabilitada] Deletes a supplier from this business (with full audit trail).
| Name | Required | Description | Default |
|---|---|---|---|
| supplierId | Yes | ID of the supplier to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose destructive and read-only behavior. The description adds value by noting 'full audit trail' and the 'demo: deshabilitada' condition, which are not derivable from annotations. It does not contradict 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 a single sentence, concise and front-loaded. However, the '[demo: deshabilitada]' prefix is a minor distraction and mixed-language note that could be clearer, but it does not make the description overly long.
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 deletion tool with one parameter, good annotations, and no output schema, the description covers the core purpose and adds behavioral context (audit trail). It is complete enough for an agent to select and invoke it correctly, though it omits any mention of prerequisites or response format, which are not strictly 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?
The input schema covers 100% of the parameter with a clear description ('ID of the supplier to delete'). The description adds no additional parameter-specific meaning, but it is not necessary given the 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 'Deletes a supplier from this business', using a specific verb and resource with a scope qualifier. It distinguishes from sibling tools like delete_customer and delete_product by naming the supplier resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you want to delete a supplier) but does not explicitly state when not to use it or mention alternatives like edit_supplier. The context of siblings and the action itself provide sufficient implied guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_productEdit productADestructiveIdempotentInspect
[demo: deshabilitada] Updates a single product's fields (name, price, costPrice, or stockQuantity).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New product name (optional). | |
| price | No | New selling price in ARS (optional). | |
| costPrice | No | New cost price, or null to clear (optional). | |
| productId | Yes | ID of the product to update. | |
| stockQuantity | No | Set stock to this value (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is mutating (readOnlyHint: false), destructive (destructiveHint: true), and idempotent (idempotentHint: true). The description adds useful context with 'single product', indicating a limited scope, and the '[demo: deshabilitada]' note, which warns about availability in demo environments. This goes beyond what annotations alone convey.
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, tightly packed sentence that leads with the action, lists the relevant fields, and includes the demo status prefix. Every word contributes meaning, with no redundancy or filler. The structure is excellent for quick parsing by an AI 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 tool's moderate complexity (5 parameters, all documented), the description plus high-quality schema and annotations provide sufficient context for invocation. The single-product scope and demo-disabled note add important situational context. It does not explain return values, but there is no output schema, so this is not a critical omission. Overall, the available information is complete enough for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, with detailed descriptions for each parameter. The description repeats the field names but does not add new semantic information, such as constraints, relationships, or usage nuances beyond what the schema already provides. Therefore, it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Updates' and the resource 'a single product's fields', and enumerates the specific fields (name, price, costPrice, stockQuantity). This precisely distinguishes it from sibling tools like adjust_stock or bulk_price_update, which target different scopes or operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: to update a single product's fields. However, it provides no explicit when-not-to-use guidance or references to alternatives. It does not mention bulk operations or other product-related tools, leaving the agent to infer the boundaries from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_supplierEdit supplierADestructiveIdempotentInspect
[demo: deshabilitada] Updates an existing supplier's fields.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New supplier name (optional). | |
| No | New email, or null to clear. | ||
| phone | No | New phone number, or null to clear. | |
| supplierId | Yes | ID of the supplier to update. | |
| contactName | No | New contact person name, or null to clear. | |
| leadTimeDays | No | New lead time in days, or null to clear. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that the operation is destructive and idempotent, covering the core safety profile. The description adds the 'existing' qualifier but does not clarify whether omitted fields are preserved or reset, nor what happens if the supplier does not exist. The demo-disabled note is extra but not behaviorally rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, verb-first, with no wasted words. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with multiple optional fields and no output schema, the description does not explain update semantics (partial vs. full), error handling for non-existent suppliers, or success indicators. This leaves significant gaps beyond what annotations and schema provide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already described in the input schema. The description adds no extra parameter semantics, which is acceptable given the 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 uses a specific verb ('Updates') and identifies the resource ('existing supplier's fields'), clearly distinguishing this tool from create_supplier and delete_supplier. The 'existing' qualifier also prevents any confusion with 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?
The description clearly implies use for modifying an existing supplier, which differentiates it from create/delete siblings. However, it does not explicitly state alternatives or exclusions, and the '[demo: deshabilitada]' prefix suggests an environment limitation but not tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
emit_invoiceEmit invoice (ARCA)ADestructiveInspect
[demo: deshabilitada] Emits an ARCA (formerly AFIP)-compliant electronic invoice (factura electrónica) for the authenticated business and returns the CAE authorization code.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | Yes | A = IVA discriminado (B2B), B = consumidor final, C = monotributo. | |
| concept | No | Items or concept description (optional). | |
| amountARS | Yes | Invoice total in Argentine pesos (ARS). | |
| requestId | No | Optional idempotency nonce. | |
| customerCuit | Yes | Customer CUIT/CUIL (11 digits, any format). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description adds value by noting the tool is disabled in demo ('[demo: deshabilitada]') and that it returns the CAE authorization code. It also clarifies the ARCA (formerly AFIP) context. This goes beyond the structured annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the tool's action and key output. The demo note is concise and adds relevant context without unnecessary 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?
The description covers the core purpose and the primary return value (CAE code), which is important since there is no output schema. It also adds the demo-disabled context. However, it does not mention error cases, prerequisites beyond authentication, or the legal significance of the document, but these gaps are minor given the description's clarity.
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 fully documents all five parameters. The description adds no parameter-level information, which is acceptable given the schema's completeness. 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?
The description clearly states the tool emits an ARCA-compliant electronic invoice (factura electrónica) for the authenticated business and returns the CAE authorization code. This is a specific verb+resource+scope that distinguishes it from sibling tools like emit_nota (which likely handles credit notes).
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 explicit guidance on when to use this tool versus alternatives such as emit_nota or register_sale. It mentions 'for the authenticated business' which implies a prerequisite, but there is no direct statement about when to select this tool or when not to, and no mention of exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
emit_notaEmit credit/debit note (ARCA)ADestructiveInspect
[demo: deshabilitada] Emits an ARCA-compliant Nota Crédito (NC) or Nota Débito (ND) against an original AFIP invoice and returns the CAE authorization code.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | credito = Nota Crédito, debito = Nota Débito. | |
| tipo | Yes | Invoice type letter for this nota. | |
| concept | No | Items or concept description (optional). | |
| amountARS | Yes | Note total in Argentine pesos (ARS). | |
| requestId | No | Optional idempotency nonce. | |
| customerCuit | Yes | Customer CUIT/CUIL (11 digits, any format). | |
| associatedInvoice | Yes | Reference to the original invoice being credited or debited. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, and the description adds that the tool is disabled in demo mode and returns a CAE code. This supplements the annotation's general safety profile with operational 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 one sentence with a short tagged caveat, front-loading the tool's purpose. Every part contributes to understanding what the tool does.
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 params, nested objects, no output schema), the description is minimal but sufficient: it states the core action, the prerequisite (original invoice), and the output (CAE). The annotations cover safety and idempotency, and the schema handles parameters.
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 with descriptions, so the baseline is 3. The description itself adds no parameter semantics beyond the high-level mention of the original invoice, so no credit above 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 uses the specific verb 'Emits' with the resource 'ARCA-compliant Nota Crédito (NC) or Nota Débito (ND)' against an original AFIP invoice, which clearly distinguishes it from sibling emit_invoice. It also states the return value (CAE code).
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 clear context: it is used to emit credit/debit notes against original invoices, implying the prerequisite of an existing AFIP invoice. However, it does not explicitly mention alternative tools or 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.
find_customerFind customerARead-onlyIdempotentInspect
Searches customers in the business by name and/or phone. Returns up to 20 matching customers sorted by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Customer name substring to search (case-insensitive). | |
| phone | No | Customer phone number or partial number to search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare read-only, idempotent, and non-destructive behavior. The description adds meaningful behavioral traits: a result limit of 20, sorting by name, and search by name/phone. This goes beyond annotations to set expectations about response size and ordering.
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, tightly worded sentence with all key information front-loaded. 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 simple optional-parameter search tool, the description adequately covers purpose, criteria, and return characteristics. It notes the result limit and sort order, which is sufficient given the lack of an output schema. Minor omission is lack of detail about returned fields, but overall it is complete for typical 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?
The schema covers both parameters thoroughly with descriptions (100% coverage). The tool description merely restates that search is by name and/or phone, adding no new parameter-level meaning. 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 uses the specific verb 'searches' and identifies the resource 'customers in the business.' It clearly specifies search criteria (name and/or phone) and distinguishes this from sibling tools like list_suppliers or query_sales.
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 looking up customers by name or phone, but it does not explicitly contrast with alternatives or state when not to use. No exclusionary guidance is provided, though the intended context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fiscal_readinessGet fiscal readinessARead-onlyIdempotentInspect
Checks whether the business is ready to emit real ARCA electronic invoices. Returns { ready, missing, guidance } where ready=true means all fiscal fields and the ARCA certificate are configured.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds value by disclosing the return structure {ready, missing, guidance} and the meaning of ready=true, offering context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences: the first states the action, the second explains the return object. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and zero parameters, the description fully covers behavior, including return values and the condition for ready=true. It is complete for a simple read-only check.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema coverage, so the baseline is 4. The description does not need to explain parameters and adds no irrelevant detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Checks' with a clear resource: 'whether the business is ready to emit real ARCA electronic invoices.' This distinguishes it from sibling tools like connection_status or validate_cuit, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the usage context: to check readiness before emitting real ARCA invoices. It does not mention alternatives or exclusions, but no sibling tool offers similar functionality, so the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_package_profileGet package profileARead-onlyIdempotentInspect
Computes the shipment weight and item breakdown for a package. Accepts a saleId, a list of productIds, or an explicit weightGramsOverride.
| Name | Required | Description | Default |
|---|---|---|---|
| saleId | No | Velora Sale ID (takes priority over productIds). | |
| productIds | No | Array of Velora Product IDs (assumes qty=1 per id). | |
| weightGramsOverride | No | Explicit weight override in grams. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds that it computes weight and item breakdown, but it does not disclose behavioral details such as the priority of saleId over productIds (which is only in the schema) or what happens when multiple inputs are provided. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary purpose, and contains zero filler. Every word contributes to understanding what the tool does and what inputs it accepts.
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 provides a high-level output (weight and item breakdown) and lists the input alternatives. However, it lacks clarity on how the inputs interact (e.g., what if saleId and productIds are both provided? The schema says saleId takes priority but the description omits this). Given there is no output schema, a bit more detail about the output structure 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 schema description coverage is 100%, with each parameter already well-documented (e.g., saleId takes priority, productIds assumes qty=1). The description merely lists the parameter names without adding new meaning or usage details beyond the schema, so it does not compensate above 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 uses a specific verb ('Computes') and clearly identifies the resource ('shipment weight and item breakdown for a package'). It also enumerates the accepted inputs, making the tool's function unambiguous and distinct from the sibling tools, none of which compute package profiles.
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 statement 'Accepts a saleId, a list of productIds, or an explicit weightGramsOverride' provides clear context on when to use the tool (when you need a package profile and have one of these inputs). However, it does not explicitly mention exclusions or alternatives, so the score is below 5 but above 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_intent_statusGet payment intent statusARead-onlyIdempotentInspect
Checks the current status of a Velora PaymentIntent. Accepts a paymentIntentId OR a customer name.
| Name | Required | Description | Default |
|---|---|---|---|
| customerName | No | Customer name (fuzzy match). | |
| paymentIntentId | No | Velora PaymentIntent id. Optional when customerName is provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, and non-destructive behavior. The description adds the OR relationship between parameters and the 'current status' nuance, but these are also partially reflected in the schema. No additional behavioral details like output format or edge cases are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise, front-loaded sentences with no unnecessary detail. Every phrase contributes to understanding the tool's purpose and input 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?
The tool is simple with no output schema, and annotations cover safety. The description adequately explains the core purpose and the two input modes. A minor gap is the lack of clarity on behavior when neither parameter is provided, but the overall context is sufficient.
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 thoroughly, but the description clarifies the OR relationship between paymentIntentId and customerName, which the schema only hints at. This adds meaningful guidance for selecting the correct 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 clearly states the action ('Checks the current status') and the resource ('a Velora PaymentIntent'). It also clarifies the two accepted identifier inputs, distinguishing it from sibling tools which mainly handle other domains.
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 clear context on how to identify the PaymentIntent (by ID or customer name), which is useful for parameter selection. However, it does not explicitly contrast with sibling tools or state when NOT to use it, though no direct alternatives are apparent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_suppliersList suppliersARead-onlyIdempotentInspect
Returns all suppliers for this business (up to 50, sorted by name).
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Optional name substring to filter suppliers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds valuable behavioral details beyond those: the hard limit of 50 results and the sorting order by name. It doesn't contradict annotations and supplements them with operational 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 a single concise sentence that immediately conveys the core action and key constraints. It is well-sized, front-loaded with the primary purpose, and contains no filler 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?
For a simple list tool with one optional parameter, strong annotations, and no output schema, the description provides sufficient context: scope ('for this business'), result limit, ordering, and the ability to search. No further details are necessary 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?
Schema coverage is 100% (one optional parameter with a description). The description doesn't add extra meaning beyond the schema, but the schema already fully documents the 'search' parameter as an optional name substring filter. Given the baseline of 3 for high schema coverage, this is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Returns all suppliers for this business' with explicit constraints (up to 50, sorted by name). It distinguishes from siblings by targeting suppliers specifically, while other tools like find_customer or query_catalog handle different resources.
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 clear context for use: it returns a list of suppliers, limited to 50, with optional search filtering implied by the schema. It doesn't explicitly mention alternatives or exclusions, but the purpose is self-evident for a list tool, so it meets the 'clear context, no exclusions' level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_business_overviewOpen business overviewARead-onlyIdempotentInspect
ONE widget, two display modes: inline snapshot by default, fullscreen tabs (Cliente 360, Cerrar el día, Reposición de stock, Dashboard de ventas) on demand. Aggregates caja, payments, ventas, reportes, supplier, and customer reads.
| Name | Required | Description | Default |
|---|---|---|---|
| defaultTab | No | Optional fullscreen tab to open into. | |
| customerName | No | Optional customer name to pre-search on the Cliente 360 tab. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds useful behavioral context: it opens a widget with two display modes, the named tabs, and that it aggregates multiple read sources. This goes beyond the annotations, though it does not detail return format 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?
Two sentences with no waste. Key facts are front-loaded: widget, two display modes, tab names, and data sources. 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 tool with 2 optional params and no output schema, the description covers purpose, modes, tabs, and data sources. It could be more explicit about what the tool returns (e.g., whether it returns a snapshot or just opens a UI), but the read-only and UI-opening nature is inferable from annotations and tool name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well-documented. The description itself adds no parameter-specific meaning, but the schema's enum for defaultTab and the description for customerName are sufficient. Baseline 3 applies for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific language: 'ONE widget, two display modes' and lists the fullscreen tabs and aggregated data sources (caja, payments, ventas, reportes, supplier, customer reads). This clearly distinguishes it from sibling open_* tools like open_caja_status or open_catalog_selector, which focus on singular areas.
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 for a broad business overview, but does not explicitly state when to use this tool vs alternatives, nor any exclusions. It mentions 'by default' and 'on demand' but lacks direct comparison to sibling tools such as query_sales or find_customer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_caja_statusOpen caja statusARead-onlyIdempotentInspect
Opens a visual widget showing the current shift state and action buttons. Read-only here.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds context that the widget includes action buttons but is read-only here, which clarifies behavior beyond the annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no redundant information. Each sentence earns its place, making it highly concise and well-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?
For a simple, zero-parameter widget opener with strong annotations, the description covers the essential function and read-only nature. Adding explicit use-case guidance would improve it, but it is otherwise complete for its 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?
The tool has zero parameters, so the schema covers everything trivially. The description confirms that no inputs are needed, aligning with the baseline for 0-param tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('opens') on a specific resource ('visual widget') with a defined scope ('current shift state and action buttons'). It distinguishes itself from sibling open_* tools by detailing the widget's content and using the read-only qualifier.
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 siblings like open_cobro_status or open_business_overview. The read-only statement implies a safe viewing scenario, but no alternatives or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_catalog_selectorOpen catalog selectorARead-onlyIdempotentInspect
Opens the catalog selector — a graphical product picker (MCP Apps widget) that shows active products with prices (ARS) and stock. Side-effect-free (no sale, no charge).
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Optional name filter (case-insensitive substring match). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states 'Side-effect-free (no sale, no charge)', which reinforces and clarifies the annotations (readOnlyHint=true, destructiveHint=false). It also discloses what the widget shows (active products with prices and stock), adding behavioral context beyond the structured annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the verb and resource, and contains no filler. It efficiently conveys purpose, content, and safety in a compact form.
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 optional parameter, no output schema), the description adequately covers purpose, displayed data, and safety. It lacks explicit connection to the sales flow or alternatives, but these are not essential for basic usage. The absence of an output schema is acceptable since the tool opens a UI widget rather than returning structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the single 'search' parameter with 100% coverage (case-insensitive substring match), so the description adds no additional parameter semantics. The description does not mention the parameter, but the schema already provides sufficient detail, warranting the 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 tool 'Opens the catalog selector' and identifies it as a 'graphical product picker (MCP Apps widget)', distinguishing it from data-query siblings like query_catalog. It specifies the resource (active products) and the displayed attributes (prices in ARS, stock), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a graphical, UI-based product picker is needed, but it does not explicitly contrast with alternatives such as query_catalog or state when not to use it. The 'Side-effect-free' note hints at safe usage, but there is no explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_cobro_statusOpen cobro statusARead-onlyIdempotentInspect
Opens the cobro status widget — a read-only view of ONE PaymentIntent's payment state. Accepts paymentIntentId OR customerName.
| Name | Required | Description | Default |
|---|---|---|---|
| customerName | No | Customer name (optional when paymentIntentId is provided). | |
| paymentIntentId | No | Velora PaymentIntent id (optional when customerName is provided). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful scope ('ONE PaymentIntent') but otherwise mostly repeats the read-only nature. No contradictions, but beyond the scope constraint, it does not disclose additional 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?
Two concise sentences, front-loaded with the core action and then the parameter relationship. No filler, every word contributes to understanding.
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 no output schema, but the description does not explicitly state that at least one of the two parameters is required. An agent might incorrectly assume it can call with zero arguments since both parameters are optional in the schema. The 'ONE PaymentIntent' phrasing implies a need for identification but this should be stated directly.
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 already has a description. The description adds the crucial either/or relationship ('Accepts paymentIntentId OR customerName'), which is not fully explicit in the schema since both are marked optional. This helps prevent misuse.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Opens the cobro status widget — a read-only view of ONE PaymentIntent's payment state.' It uses a specific verb ('Opens'), identifies the resource ('cobro status widget'), and scopes it to a single PaymentIntent. This distinguishes it from sibling tools like get_payment_intent_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 implies usage context by calling it a 'read-only view' and mentioning the parameter relationship, but it does not explicitly state when to use this over alternatives like get_payment_intent_status. There is no mention of when-not-to-use or naming alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_delivery_receiptOpen delivery receiptARead-onlyIdempotentInspect
Opens the comprobante + envío widget — a read-only view of the delivery receipt for a completed cobro. Accepts paymentIntentId, saleId, OR customerName.
| Name | Required | Description | Default |
|---|---|---|---|
| saleId | No | Velora Sale id (optional). | |
| customerName | No | Customer name (optional). | |
| paymentIntentId | No | Velora PaymentIntent id (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly calls it a 'read-only view', which reinforces the readOnlyHint and idempotentHint annotations. It adds context that this opens a widget, which is useful beyond the structured data. No contradictions 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 a single, front-loaded sentence that efficiently communicates the action, resource, and accepted inputs. No verbose or redundant 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?
Given the simplicity of a read-only widget opener, the description covers the core behavior, the completed-cobro prerequisite, and the accepted identifiers. Combined with the annotations, this is sufficiently complete for an agent to select and invoke the tool. Missing explicit return/display details, but no output schema is provided.
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 describes all three parameters individually with 100% coverage. The description merely lists the parameter names without adding new semantic detail (e.g., when to use each identifier), so it doesn't improve on 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 (opens a widget), the resource (comprobante + envío / delivery receipt), and the scope (for a completed cobro). It distinguishes itself from sibling tools like open_cobro_status or open_sale_confirm by focusing on the receipt view specifically.
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 phrase 'for a completed cobro' gives clear context on when to use, and the three accepted identifiers show flexibility. However, it doesn't explicitly name alternatives or state when not to use, so it doesn't fully meet the 'explicit when/when-not' bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_onboardingOpen onboarding hubARead-onlyIdempotentInspect
Opens a graphical onboarding hub showing integration status and connect links. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive. The description adds value beyond these by specifying that it opens a graphical hub and what content it displays (integration status, connect links). No contradiction.
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 short sentences, front-loaded with the action and resource, and no wasted words. The read-only note is a useful one-liner.
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 (no params, no output schema) and strong annotations, the description fully conveys purpose and behavior. It is clear and sufficient for an agent to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is trivially 100% covered. The description adds no parameter details, but none are needed; baseline for 0 params is 4.
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 ('Opens'), the specific resource ('graphical onboarding hub'), and what it shows ('integration status and connect links'). This distinguishes it from siblings like open_business_overview or connection_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 explicit guidance on when to use this tool versus alternatives. The description implies it is for viewing onboarding status, but does not mention any exclusions or competing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_payment_link_wizardOpen payment link wizardARead-onlyIdempotentInspect
Opens the payment-link wizard — a graphical form pre-filled with the cobro, for the owner to review and confirm before any money moves. Side-effect-free (no charge).
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Line items (productId + quantity). | |
| customerId | No | Customer ID (optional). | |
| description | Yes | Cobro description (e.g. '3 alfajores'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by clarifying that this is a graphical form, pre-filled with the cobro, and that no money is moved. This goes beyond the raw annotation flags and gives the agent a concrete understanding of the tool's side-effects and UI nature.
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, well-structured sentence that leads with the action, includes a clarifying em-dash, and ends with an explicit side-effect note. Every phrase earns its place; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, rich annotations, and fully described input schema, the description is sufficient for an agent to understand and invoke it correctly. It lacks an explicit statement of what 'cobro' refers to or how it relates to the parameters, but this is minor given the schema covers the fields. Overall it is complete enough for a UI-opening 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%; each parameter (description, items, customerId) already has a meaningful description. The tool description adds no additional parameter semantics beyond the schema, so the baseline of 3 is appropriate. No reason to deviate.
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 'opens' with a specific resource ('payment-link wizard') and adds qualifiers ('pre-filled with the cobro', 'for the owner to review and confirm'). This distinguishes it from sibling tools like open_sale_confirm or open_cobro_status, which serve different purposes. It answers what the tool does without vagueness.
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 to use this tool: 'before any money moves' indicates it is a pre-payment review step. It also notes 'side-effect-free (no charge)', signaling it is safe to invoke. However, it does not explicitly name alternatives or exclusion conditions, so it misses the highest tier of direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_pending_ordersOpen pending ordersARead-onlyIdempotentInspect
Opens the pending cobros dashboard — a read-only widget listing PaymentIntents awaiting payment. Side-effect-free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds 'Side-effect-free' and 'read-only widget', which are largely redundant with the annotations. It provides some extra behavior detail by stating it is a dashboard widget, but this is minor and does not substantially extend beyond the structured metadata.
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, compact sentence with a parenthetical clarification. Every component adds value: the action, the resource, the content, and the safety note. There is no redundancy, fluff, or unnecessary elaboration.
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 parameterless read-only widget, the description fully conveys the purpose and expected content. It does not need to explain return values since there is no output schema, and the mention of 'PaymentIntents awaiting payment' gives the agent sufficient context. No critical information is missing for a tool of this 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?
The tool has zero parameters and an empty input schema, so schema coverage is effectively 100%. With no parameters to document, the description correctly omits parameter details, meeting the baseline for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Opens', targets a concrete resource ('pending cobros dashboard'), and clarifies the content ('listing PaymentIntents awaiting payment'). It distinguishes itself from siblings like open_cobro_status or open_business_overview by specifying 'pending cobros', making the purpose clear and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives such as open_business_overview or get_payment_intent_status. It does not mention conditions, exclusions, or recommend alternative tools. While the name implies a use case (viewing pending orders), there is no direct comparison or contextual instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_sale_confirmOpen sale confirmationARead-onlyIdempotentInspect
Opens a VISUAL preview of a cash sale — resolved product names, unit prices, quantities, and total — with a confirm button that fires register_sale. Read-only preview itself.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Line items for the sale. | |
| customerId | No | Optional customer ID (omit for anonymous sales). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces that with 'Read-only preview itself,' while adding a critical behavioral fact: the preview includes a confirm button that triggers register_sale, meaning the actual sale mutation happens later. It also discloses that the preview resolves product names, unit prices, and totals, providing context not captured by 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?
Two focused sentences pack in the purpose, key features, and safety note without redundancy. The information is front-loaded with the primary action and specifics follow logically, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two params, complete schema explanations, and a clear behavioral description. The description explains what the preview shows and the confirm action, and with no output schema, nothing else is needed for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all parameters with descriptions (100% coverage), so the baseline is 3. The description adds value by indicating that the preview resolves product names, unit prices, and totals, implying the caller only needs to supply productId and quantity without manually computing prices. This clarifies the intended semantics of the items parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool opens a visual preview of a cash sale with resolved details and a confirm button, distinguishing it from other 'open_*' UI tools such as open_cobro_status or open_pending_orders. The verb 'opens' and the preview/confirm behavior make it specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to preview a sale and obtain user confirmation before register_sale fires, giving clear contextual usage. However, it does not explicitly compare against alternatives or state when not to use it (e.g., when direct registration is desired), so it lacks exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_shipment_prepOpen shipment prepARead-onlyIdempotentInspect
Combines catalog stock/weight data and a live shipping quote into one widget — resolves items, computes total weight, and quotes couriers. Read-only, side-effect-free.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Line items to prepare for shipment. | |
| declaredValue | No | Declared value in ARS for insurance. | |
| originPostalCode | Yes | Origin postal code (4 digits). | |
| destinationPostalCode | Yes | Destination postal code (4 digits). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations by detailing the internal steps ('resolves items, computes total weight, quotes couriers') and explicitly reinforces safety ('Read-only, side-effect-free'). While annotations already declare readOnly and non-destructive, the description adds functional richness about what the widget computes and returns. It does not describe error handling, but that is a minor gap given the strong annotation coverage.
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: one sentence explains the functional purpose and a second sentence confirms side-effect-freedom. Every word earns its place, with no redundancy or filler. It is also front-loaded with the primary action, making it easy to scan.
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 4-parameter tool with no output schema, the description adequately conveys the main output (a widget with weight and courier quotes) and the process. It does not explain the exact return structure or error scenarios, but the combination of annotations, schema descriptions, and the description's functional breakdown makes the tool understandable. A complete 5 would require mentioning output fields or potential failure modes, but the description is sufficient for a read-only aggregation widget.
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 parameters are already well-documented. The description adds no additional parameter-level semantics beyond what the schema provides (e.g., it implies 'items' are product IDs and quantities, but schema already states this). Baseline of 3 is appropriate as the description does not hinder but also does not enrich 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 what the tool does: it 'combines catalog stock/weight data and a live shipping quote into one widget' and specifies the actions ('resolves items, computes total weight, and quotes couriers'). This distinguishes it from siblings like quote_shipping or query_catalog by focusing on the preparation workflow, not just quoting or data 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 implies the use case: when a user needs to prepare a shipment, combining catalog data with shipping quotes. It doesn't explicitly name alternatives or exclusions, but the context is clear and distinct from sibling tools. A slightly higher score would require explicit 'use when vs. instead of' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_catalogQuery catalogARead-onlyIdempotentInspect
Lists active products in the business catalog. Returns products sorted by name, each with id, name, price (ARS), costPrice, sku, stock quantity, and weightGrams.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Optional name filter (case-insensitive substring match). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as safe (readOnlyHint=true, destructiveHint=false, idempotentHint=true). The description adds useful behavioral context: only active products are listed, results are sorted by name, and specific fields (price in ARS, stock, weightGrams) are returned. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, well-structured sentences. The first states the core action, the second enumerates the return details. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query with one optional parameter and no output schema, the description fully covers expected behavior, including the sort order and returned fields. No missing context that would impede an agent's correct 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 description coverage is 100% for the single 'search' parameter, which includes a clear definition. The description does not add further parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Lists active products in the business catalog' with a specific verb and resource. It also details the sorting order and returned fields, distinguishing it from sibling tools like list_suppliers or query_sales.
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 clear context that this tool is for querying the business catalog of active products, implying usage for catalog lookups. However, it does not explicitly mention exclusions or alternative tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_salesQuery salesBRead-onlyIdempotentInspect
Queries sales metrics from the database: 'ventas_periodo', 'margen', 'ranking_productos', 'por_empleado', or 'historial_cliente'.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD. Requires 'from'. | |
| from | No | Start date YYYY-MM-DD. Requires 'to'. | |
| limit | No | Max results (default 10, max 50). | |
| preset | No | Preset date range. Mutually exclusive with from/to. | |
| metrica | Yes | Metric to query. | |
| customer_name | No | Customer name or fragment. Only for historial_cliente. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds no safety-related behavioral context. Beyond that, the description merely lists metric names already present in the schema enum, and it does not disclose any additional behavior such as required date ranges, return formats, or metric-specific 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 a single, front-loaded sentence that effectively communicates the core purpose and enumerates the metric options without extraneous words. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool handles multiple metrics with varying parameter requirements (e.g., customer_name for historial_cliente, mutually exclusive preset vs. from/to), but the description does not explain these relationships or what each metric returns. Since there is no output schema, the description should have provided more context on expected results or usage constraints, making it incomplete for a multi-metric 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%, and each parameter is documented there. The description's list of metric values adds little beyond the schema's own enum for 'metrica', so it meets the baseline but does not provide deeper semantic meaning for each metric or how parameters interact (e.g., customer_name only for historial_cliente).
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 ('Queries sales metrics') and the specific resource ('from the database'), and it enumerates the valid metric names, which differentiates it from sibling tools like query_catalog or caja_consultar_saldo. However, it does not explicitly contrast with those siblings, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for sales metric queries by listing the metric options, but it gives no explicit guidance on when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. The usage context is only implied through the metric names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_shippingQuote shippingARead-onlyIdempotentInspect
Quotes shipment rates from every active courier configured for the authenticated business and returns options sorted by price ascending.
| Name | Required | Description | Default |
|---|---|---|---|
| weightGrams | Yes | Total shipment weight in grams. | |
| declaredValue | No | Declared value in ARS for insurance. | |
| originPostalCode | Yes | Origin postal code (4 digits). | |
| destinationPostalCode | Yes | Destination postal code (4 digits). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description doesn't need to restate safety. It adds useful behavioral context: it quotes from 'every active courier' and returns options 'sorted by price ascending', which are not conveyed by annotations. This exceeds the baseline given annotation coverage.
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 front-loads the verb and includes all key information: scope, authentication context, and output sorting. 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 has good annotations and a moderate parameter set, the description provides sufficient context: it clarifies the scope (all couriers) and result ordering. Without an output schema, it would be ideal to mention the shape of returned options, but the description still gives a complete enough picture for an agent to select and invoke 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 covers 100% of parameters with descriptions (origin/destination postal codes, weightGrams, declaredValue), so baseline is 3. The description does not add additional parameter-level meaning beyond what the schema provides, but it doesn't need to given the 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 a specific verb ('Quotes') and resource ('shipment rates'), and further specifies scope ('every active courier configured for the authenticated business') and output behavior ('sorted by price ascending'). This distinguishes it from sibling tools like track_shipment or open_shipment_prep, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (quote shipping when comparing courier rates) but does not explicitly state when to use this tool versus alternatives or provide exclusions. No sibling tool is referenced, so the guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_movementRegister cash movementCDestructiveIdempotentInspect
[demo: deshabilitada] Records a cash-register movement for the authenticated business ('purchase', 'income', 'salary', 'tax', 'adjustment').
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ISO 8601 date/datetime. Defaults to now. | |
| type | Yes | Movement type. | |
| amount | Yes | Amount in ARS (always positive). | |
| description | Yes | Description (e.g. 'Pago proveedor Distribuidora ABC'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and idempotentHint=true, but the description does not explain what destructive effects recording a movement may have (e.g., irreversible change to cash balance) or how idempotency applies. It adds some context like 'authenticated business' and the demo-disabled note, but fails to disclose critical behavioral implications beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence and front-loaded with the action. However, the inline list of types duplicates schema information and the '[demo: deshabilitada]' prefix is extraneous, adding minor noise. Still, it is concise 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?
The description lacks essential context: no return value, no prerequisites (e.g., open caja, permissions), and no explanation of side effects. With no output schema, the agent is left uninformed about what to expect after invocation. The demo-disabled note hints at availability but the overall context 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?
Although schema description coverage is 100% (baseline 3), the description misleads by listing only five movement types and omitting 'sale', a valid enum value. This can cause an agent to incorrectly believe 'sale' is not allowed. No additional parameter meaning is added 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 tool records a cash-register movement for the authenticated business, naming the verb and resource specifically. It lists the movement types, though it omits 'sale' which is present in the schema. It does not differentiate from sibling 'caja_registrar_movimiento', which appears to offer the same functionality, preventing a higher score.
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 caja_consultar_saldo, caja_ciclo_caja, or the nearly identical sibling caja_registrar_movimiento. It only states what the tool does, with no context for when it is appropriate or when to avoid it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_saleRegister saleADestructiveIdempotentInspect
[demo: deshabilitada] Records a sale for the authenticated business. Creates a full Sale with SaleItems, decrements inventory, creates a CashMovement and Invoice.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Line items for the sale. | |
| requestId | No | Optional idempotency override. | |
| customerId | No | Optional customer ID. Omit for anonymous sales. | |
| paymentMethod | No | Defaults to 'efectivo' when omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant context beyond the annotations: it discloses that inventory is decremented, a CashMovement is created, and an Invoice is generated. These are important side effects not captured by the destructiveHint annotation alone. The demo flag also provides operational 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 two sentences, concise and front-loaded. The first sentence immediately states the primary action and target, and the second details side effects. No unnecessary words or repetitions.
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 main behavioral outcomes and prerequisites (authenticated business). However, it does not mention what the tool returns (e.g., sale ID or invoice details), and with no output schema, this is a minor gap. It does not explain the idempotency mechanism (requestId) but that is covered by the annotation and 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 each parameter already having a meaningful description (items, requestId, customerId, paymentMethod). The tool description does not add additional parameter-level details beyond the schema, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Records a sale for the authenticated business' and specifies the full scope: 'Creates a full Sale with SaleItems, decrements inventory, creates a CashMovement and Invoice.' This goes beyond a simple verb+resource and distinguishes it from siblings like return_sale or query_sales.
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 clear context of when to use the tool (registering a new sale with inventory and financial side effects) but does not explicitly mention alternatives or exclusions. It's implied that this is the tool for creating sales, but no direct comparison to sibling tools is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
return_saleReturn saleADestructiveIdempotentInspect
[demo: deshabilitada] Reverses the N most-recent sales within a time window. Restores inventory, removes CashMovement, SaleItem, Invoice, and Sale records. Destructive and irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of recent sales to reverse (max 10). | |
| confirm | Yes | Must be explicitly true to confirm reversing sales. | |
| cutoffHours | No | Only consider sales within the last N hours (max 48). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true and readOnlyHint=false, and the description adds valuable specifics: it restores inventory and removes CashMovement, SaleItem, Invoice, and Sale records, while emphasizing 'Destructive and irreversible.' This goes beyond annotation defaults and gives the agent a complete picture of 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 three sentences with no wasted words. It front-loads the primary action, then lists concrete effects, and ends with a clear warning. Every sentence 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?
The description covers the purpose, the exact records affected, and the destructive/irreversible nature, while the schema handles parameters. It omits any return value description, but for a destructive confirmation-gated tool this is less critical. Overall, the context is sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (count, confirm, cutoffHours) already described in the input schema. The description adds no extra parameter semantics beyond referencing 'N most-recent sales' and 'time window,' which are already in 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 function: it reverses the N most-recent sales within a time window. It distinguishes itself from sibling tools like register_sale and query_sales by specifying the reversal action and the scope of affected 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 clearly implies usage for undoing recent sales, specifying the time window and count constraints. It does not explicitly name alternatives or state when-not to use, but the context is clear enough among siblings that no other tool reverses sales.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_whatsapp_templateSend WhatsApp templateADestructiveInspect
[demo: deshabilitada] Sends a pre-approved Meta WhatsApp template message. Window-independent — can be sent proactively, outside the 24-hour session window.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient phone number (local AR or E.164). | |
| components | No | Template variable substitutions (omit for templates with no placeholders). | |
| languageCode | No | BCP-47 language code (defaults to 'es_AR'). | |
| templateName | Yes | Exact template name as registered in Meta Business Manager. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey non-read-only and destructive side effects, and the description adds the window-independent behavior. However, it does not disclose billing implications, template approval prerequisites, or what happens on failure, which would be useful given destructiveHint=true.
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: the first states purpose, the second adds the key behavioral qualifier. No filler, front-loaded, and 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?
With no output schema, the description does not explain confirmation, response, or error behavior. It provides enough for basic invocation but lacks full operational context, and it does not explicitly differentiate from send_whatsapp_text beyond the template nature.
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 for all four parameters with descriptions, so the description adds no additional parameter semantics. The baseline of 3 applies because the schema carries the explanatory burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Sends') and the resource ('pre-approved Meta WhatsApp template message'), with an explicit behavioral qualifier that it is window-independent. This distinguishes it from the sibling tool send_whatsapp_text, which likely handles regular in-session messages.
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: it can be sent proactively outside the 24-hour session window. It does not name an alternative or explicitly state when not to use it, but the window-independent note gives clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_whatsapp_textSend WhatsApp textADestructiveInspect
[demo: deshabilitada] Sends a plain-text WhatsApp message to a customer phone number. Only valid inside the 24-hour customer-service window (Meta error 131026 outside).
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient phone number (local AR or E.164). | |
| text | Yes | Message text body. | |
| mediaUrl | No | Optional public URL of a media file to attach. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the annotations: the 24-hour window restriction and the specific Meta error code. It also notes the demo is disabled ('[demo: deshabilitada]'). No contradiction with annotations; it complements them with operational 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 and very concise, but the leading '[demo: deshabilitada]' tag adds minor noise and does not directly serve a functional purpose. Still, the core message 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?
For a relatively simple tool with a fully documented schema and meaningful annotations, the description provides the critical operational constraint (24-hour window) and error code. It does not explain return values, but no output schema exists, so that is not required. The 'plain-text' wording could slightly conflict with the optional mediaUrl, but overall the context is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage with descriptions for all three parameters, so the baseline is 3. The description does not add any parameter-level detail beyond the schema, such as formatting for 'to' or the optional nature of mediaUrl.
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 sends a plain-text WhatsApp message to a customer phone number, using a specific verb and resource. The qualifier 'plain-text' distinguishes it from the sibling send_whatsapp_template, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the tool is only valid inside the 24-hour customer-service window and mentions the Meta error 131026 outside, providing clear when/not-when context. However, it does not explicitly name alternatives like send_whatsapp_template, though the 'plain-text' distinction implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_loadStock loadADestructiveIdempotentInspect
[demo: deshabilitada] Records inbound stock for a product — restock or initial stock, with an audit trail.
| Name | Required | Description | Default |
|---|---|---|---|
| itemName | Yes | Product name for resolution or auto-creation. | |
| quantity | Yes | Units received. | |
| productId | No | Existing product ID (optional if itemName resolves it). | |
| unitPrice | No | Cost per unit in ARS. | |
| supplierId | No | Existing supplier ID (optional). | |
| supplierName | No | Supplier name (optional). | |
| autoCreateProduct | No | Auto-create product if not found. | |
| createPurchaseRequest | No | Also create a purchase request for this stock load. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'with an audit trail', which discloses a permanent logging side-effect beyond the annotations. Annotations already indicate destructive and idempotent behavior, so the bar is lowered, and the audit trail detail plus the restock/initial nuance provide useful 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 core description is a single, front-loaded sentence that is efficient and clear. The prefixed '[demo: deshabilitada]' is somewhat distracting and not essential, but it does not significantly harm the overall conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters and no output schema, the description is too brief. It does not explain how optional parameters like autoCreateProduct or createPurchaseRequest interact, nor the implications of 'audit trail' for the user. This is a complex tool that requires more context than a one-sentence description.
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 parameters are already well-documented. The description does not add parameter-specific meaning beyond what the schema provides, which meets the baseline for a fully-documented 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 uses a specific verb ('Records') and resource ('inbound stock for a product'), and clarifies the scope with 'restock or initial stock' plus 'with an audit trail'. It clearly distinguishes from siblings like adjust_stock (which adjusts existing stock) and create_product (which creates 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 provides clear context for when to use the tool: 'restock or initial stock' for inbound stock. However, it does not explicitly mention alternatives or exclusion cases, though the context is sufficient for a basic selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_shipmentTrack shipmentARead-onlyIdempotentInspect
Tracks the current status and event history of a shipment by tracking number.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | Yes | Courier that created the shipment ('andreani', 'oca'). | |
| trackingNumber | Yes | Tracking number returned by the courier at shipment creation time. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds that it returns both current status and event history, which is useful behavioral context beyond the annotations. No contradictions found.
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 is concise and front-loaded with the verb 'tracks'. It contains no redundancy or filler words, making every word earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read-only tool with strong annotations, the description adequately conveys the purpose and expected output content (status and event history). It doesn't describe return format in detail, but the annotations and schema cover the essential safety and parameter context, so it is reasonably 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 description coverage is 100%, with both 'provider' and 'trackingNumber' already documented in the input schema. The description adds no additional parameter semantics or syntax details, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'tracks', the resource 'shipment', and the scope ('current status and event history by tracking number'). This clearly distinguishes it from sibling tools like quote_shipping or get_package_profile, which focus on quoting or package profiles rather than tracking.
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 clearly implies usage when you have a tracking number and need shipment status, which is sufficient context for the agent. However, it does not explicitly mention when not to use this tool or name alternative tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_catalogUpload catalogADestructiveInspect
[demo: deshabilitada] Bulk-creates products in the business catalog from a structured list (up to 50 items).
| Name | Required | Description | Default |
|---|---|---|---|
| products | Yes | List of products to create (1–50 items). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as non-readonly and destructive; description adds the 50-item limit and structured-list requirement. It does not explain failure modes, idempotency implications, or effects on existing catalog data. The '[demo: deshabilitada]' prefix hints at availability issues but is cryptic and in Spanish.
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 description is front-loaded and concise. The bracketed '[demo: deshabilitada]' note is extra noise that may confuse agents, but it does not significantly bloat the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool without output schema, the description covers the core purpose and input constraints. It omits return value information, error/partial-failure behavior, and clarification of the demo-disabled flag, leaving some operational ambiguity.
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 already provides 100% coverage, describing the 'products' parameter as a list of 1–50 items with name and price. Description adds minimal semantic value beyond the schema, such as 'business catalog' context and bulk creation intent.
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 ('Bulk-creates'), resource ('products in the business catalog'), and input ('structured list') with a specific limit ('up to 50 items'). It distinguishes itself from sibling 'create_product' by emphasizing bulk batch 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?
The bulk creation context is evident from the description, implying it should be used for multi-item catalog uploads rather than single product creation. However, it does not explicitly name alternatives or state 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.
upsert_customerUpsert customerBDestructiveIdempotentInspect
[demo: deshabilitada] Creates a new customer or updates an existing one for the authenticated business.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Customer city or locality (optional). | |
| name | No | Customer display name. | |
| No | Customer email address (optional). | ||
| phone | No | Customer phone number. | |
| address | No | Customer street address (optional). | |
| customerId | No | When provided, updates the customer with this id. | |
| postalCode | No | Customer postal code (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=true, and the description adds little beyond that. It does not explain the upsert mechanism (e.g., how customerId triggers update vs create) or any side effects. The '[demo: deshabilitada]' prefix is not elaborated, adding no behavioral 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?
The description is a single sentence and mostly to the point, but the leading '[demo: deshabilitada]' flag is extraneous and may confuse. It still earns a 4 for brevity, though the flag undermines conciseness slightly.
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 7 parameters, no output schema, and a mutation operation, the description is too minimal. It fails to mention the critical behavior that omitting customerId creates a new customer while providing it updates an existing one. This information is only in the schema, and the description does not integrate it, leaving a significant gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions, so the schema already documents each field. The description does not add additional parameter semantics, so it stays at the baseline for 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 the tool's action ('Creates a new customer or updates an existing one') and its resource ('customer'). This distinguishes it from siblings like delete_customer and find_customer, and includes the scope 'for the authenticated business'.
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 creating or updating a customer, but does not explicitly mention alternatives or when-not-to-use. It lacks guidance on when to prefer find_customer or delete_customer, leaving usage to be inferred from the verb 'upsert'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_cuitValidate CUIT/CUILARead-onlyIdempotentInspect
Validates an Argentine CUIT or CUIL number. Returns parsed components (prefix, body, check digit), person type, and whether the check digit is mathematically correct. Accepts any format: raw digits, hyphened (20-12345678-9), or spaced. This tool runs the REAL check-digit algorithm — not a demo fixture.
| Name | Required | Description | Default |
|---|---|---|---|
| cuit | Yes | CUIT/CUIL in any format (digits, hyphens, or spaces). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds valuable behavioral context: it returns parsed components, accepts multiple formats, and explicitly states it runs the REAL check-digit algorithm rather than a demo fixture—essential for building trust in correctness.
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 core purpose, and every sentence contributes: purpose, output details, input flexibility plus algorithm authenticity. No wasted 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?
For a simple read-only validator with a single parameter and strong annotations, the description is complete. It covers what the tool does, what it returns, accepted input formats, and the crucial detail that it uses the real algorithm. An output schema is not necessary for this level of 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?
The input schema already documents the 'cuit' parameter and its accepted formats (digits, hyphens, spaces). The description reiterates this and adds a concrete example ('20-12345678-9'), but it does not meaningfully expand beyond the schema. Since schema coverage is 100%, 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 purpose: 'Validates an Argentine CUIT or CUIL number' using a specific verb and resource. It also lists the return components (prefix, body, check digit, person type, validity), making it distinct from sibling tools that focus on sales, payments, and other business functions.
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 to use this tool (whenever CUIT/CUIL validation is needed) but does not explicitly mention alternatives or when not to use it. Since none of the sibling tools appear to offer similar validation, the context is clear, though excluding alternatives would be even stronger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
50 tool updates
- First observed
adjust_stock - First observed
bulk_price_update - First observed
caja_ciclo_caja - First observed
caja_consultar_saldo - First observed
caja_registrar_movimiento - First observed
connect_mercadopago - First observed
connect_pedidosya - First observed
connect_tiendanube - First observed
connect_whatsapp - First observed
connection_status - First observed
create_product - First observed
create_purchase_request - First observed
create_shipment - First observed
create_supplier - First observed
create_tracked_payment_link - First observed
delete_customer - First observed
delete_product - First observed
delete_supplier - First observed
edit_product - First observed
edit_supplier - First observed
emit_invoice - First observed
emit_nota - First observed
find_customer - First observed
get_fiscal_readiness - First observed
get_package_profile - First observed
get_payment_intent_status - First observed
list_suppliers - First observed
open_business_overview - First observed
open_caja_status - First observed
open_catalog_selector - First observed
open_cobro_status - First observed
open_delivery_receipt - First observed
open_onboarding - First observed
open_payment_link_wizard - First observed
open_pending_orders - First observed
open_sale_confirm - First observed
open_shipment_prep - First observed
query_catalog - First observed
query_sales - First observed
quote_shipping - First observed
register_movement - First observed
register_sale - First observed
return_sale - First observed
send_whatsapp_template - First observed
send_whatsapp_text - First observed
stock_load - First observed
track_shipment - First observed
upload_catalog - First observed
upsert_customer - First observed
validate_cuit
Related MCP Connectors
Brand audits, visual catalogs, AI proposals & checkout for LATAM SMBs. Full funnel via MCP.
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
Hosted MCP for e-commerce: live product catalog, stock, and pricing for AI agents.
Multi-tenant MCP gateway for AI commerce. One connection, every store.
Related MCP Servers
- AlicenseAqualityFmaintenanceArgentine electronic invoicing (facturación electrónica) MCP Server for ARCA/AFIP. Emit invoices, manage credentials, check delegations, and look up taxpayers. 10 tools.12378 npmMIT
- AlicenseNot gradedqualityBmaintenanceMCP server to issue ARCA/AFIP Factura C for monotributistas using Afip SDK, PostgreSQL, and a secure preview-before-emission flow.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for integrating with AFIP (Argentine tax agency) to query documentation, manage authentication, and handle electronic invoicing.8 npmMIT
- AlicenseNot gradedqualityAmaintenanceMCP server for automating AFIP/ARCA electronic invoicing, certificate management, and Web Service authorization in Argentina.16 npm23MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.