Skip to main content
Glama

Server Details

Hosted Argentine commerce MCP: real AFIP invoicing, MercadoPago, logistics, catalog & WhatsApp.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
crossi-dev/velora-mcp
GitHub Stars
0
Server Listing
velora-mcp

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4/5 across 50 of 50 tools scored. Lowest: 2.7/5.

Server CoherenceC
Disambiguation2/5

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 Consistency2/5

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.

Tool Count2/5

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.

Completeness3/5

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 tools
adjust_stockAdjust stockA
DestructiveIdempotent
Inspect

[demo: deshabilitada] Sets the absolute stock quantity for a product (inventory sync, no audit trail).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesMust be 'set'. Absolute-set is the only mode available via MCP.
quantityYesNew absolute stock quantity.
productIdYesProduct ID to update.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 updateA
DestructiveIdempotent
Inspect

[demo: deshabilitada] Mass price change for all products or a specified subset in this business.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'percent' = percentage change; 'fixed' = absolute ARS change.
amountYesAdjustment amount — percentage or fixed ARS value depending on mode.
directionYes'up' raises, 'down' lowers, 'set' assigns an exact price.
productIdsNoSpecific product IDs to update. Omit to update ALL products.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 shiftB
Destructive
Inspect

[demo: deshabilitada] Opens or closes a cash register shift for the authenticated business.

ParametersJSON Schema
NameRequiredDescriptionDefault
notaNoOptional operator note.
montoYesOpening float (abrir) or physically counted cash (cerrar) in ARS.
actionYes'abrir' to open a shift, 'cerrar' to close it.
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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 balanceA
Read-onlyIdempotent
Inspect

Queries the current cash register balance for the authenticated business — the open session data or the last closed session. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read. The description adds the nuance of 'open session data or the last closed session' and 'authenticated business', which provides context on auth scope and default behavior. This is valuable beyond the annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no extraneous info. It conveys the essence clearly.

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

Completeness4/5

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

For a zero-parameter read-only tool, the description is largely complete: it explains what is queried and under what conditions. However, it does not specify the exact return structure or format, and since no output schema is present, a brief note about the returned value would improve completeness.

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

Parameters4/5

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

The tool has zero parameters, so parameter semantics are trivially satisfied. The description adds no parameter details, but none are needed. Baseline for 0 parameters is 4.

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

Purpose5/5

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

The description states a specific action ('Queries'), a specific resource ('cash register balance'), and scope ('authenticated business'), with clarification of open vs last closed session. This distinguishes it from sibling tools like register_movement or caja_ciclo_caja.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool: to check the current balance. However, it does not explicitly mention alternatives or conditions when not to use it. Given sibling tools like open_caja_status, some exclusion would help, but overall the intended use is clear.

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)A
DestructiveIdempotent
Inspect

[demo: deshabilitada] Records a cash movement tied to the OPEN caja shift: income, expense, withdrawal, tax, or payroll.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoYesMovement type.
montoYesPositive amount in ARS.
descripcionYesMovement description.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 statusA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already provide read-only, non-destructive, idempotent safety traits. The description adds valuable context about the output (connected vs missing integrations) and explicitly notes 'Read-only', which aligns with annotations. No contradictions; the extra detail on what the tool returns goes beyond the annotations.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the verb 'Returns', and uses a dash to add essential detail without verbosity. Every word earns its place, making it highly concise and clear.

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

Completeness5/5

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

Given the tool's simplicity (no parameters, strong safety annotations, no output schema), the description provides a complete enough picture: what the tool does, for whom, and what kind of result to expect. It is sufficient for an agent to select and invoke this tool correctly.

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

Parameters4/5

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

There are zero parameters, and schema coverage is 100%, so the baseline is 4. The description compensates for the lack of an output schema by describing the kind of information returned (readiness status, connected/missing integrations), which helps the agent understand the tool's output.

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

Purpose5/5

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

The description clearly states that the tool returns BYOA integration readiness for the authenticated business, specifying the resource (integration readiness) and the scope (what is connected and how to connect what is missing). It distinguishes itself from sibling connect_* tools by being a read-only status check rather than an actual connection action.

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

Usage Guidelines4/5

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

The description establishes a clear context for use: checking what integrations are connected and what needs to be connected. However, it does not explicitly mention alternative tools or state when not to use it. This is clear context without explicit exclusions, so it earns a 4.

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

connect_mercadopagoConnect MercadoPagoA
DestructiveIdempotent
Inspect

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenNoOptional MercadoPago production access token.
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the tool's purpose: '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.

Usage Guidelines4/5

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 PedidosYaA
DestructiveIdempotent
Inspect

[demo: deshabilitada] Connects PedidosYa for this business using the BYOA secure-form model. Primary: returns a secure link. Fallback: accepts an API token directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiTokenNoOptional PedidosYa API token.
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the tool's 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.

Usage Guidelines4/5

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

The description provides clear context: it is 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 NubeA
DestructiveIdempotent
Inspect

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the tool's 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.

Usage Guidelines4/5

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 WhatsAppA
DestructiveIdempotent
Inspect

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneNoOptional WhatsApp Business phone in E.164 format.
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 productA
Idempotent
Inspect

[demo: deshabilitada] Creates a new product in the business catalog. Requires name and price.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProduct name.
priceYesSelling price in ARS.
costPriceNoPurchase cost price in ARS (optional).
weightGramsNoWeight in grams (optional).
initialStockNoInitial stock quantity (default 0).
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 requestB
DestructiveIdempotent
Inspect

[demo: deshabilitada] Creates a procurement order (purchase request) to a supplier.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemNameYesName of the item being ordered.
quantityYesQuantity to order.
unitPriceYesUnit price per item in ARS.
supplierIdNoExisting supplier ID (optional if supplierName is provided).
supplierNameNoSupplier name (optional if supplierId is provided).
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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 shipmentA
DestructiveIdempotent
Inspect

[demo: deshabilitada] Creates a physical shipment via the chosen courier and returns a tracking number and label URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
saleIdYesVelora Sale ID.
serviceNoCourier-specific service key (defaults to 'domicilio').
providerYesCourier slug from quote_shipping ('andreani', 'oca').
customerDniNoRecipient DNI (required by Andreani in production).
weightGramsYesTotal shipment weight in grams.
customerCityNoRecipient city (optional).
customerNameYesRecipient first name.
customerPhoneNoRecipient phone number (optional).
customerAddressYesRecipient street name.
customerLastNameNoRecipient last name (optional).
customerProvinceNoRecipient province (required by OCA).
customerPostalCodeYesRecipient postal code.
customerAddressNumberNoRecipient street number (required by OCA).
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 supplierB
Idempotent
Inspect

[demo: deshabilitada] Creates a supplier for this business.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSupplier name (must be unique within this business).
emailNoSupplier email address (optional).
phoneNoSupplier phone number (optional).
contactNameNoContact person name (optional).
leadTimeDaysNoDefault lead time in days (optional).
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

delete_customerDelete customerA
DestructiveIdempotent
Inspect

[demo: deshabilitada] Deletes a customer from this business (blocked when the customer has sales or invoices).

ParametersJSON Schema
NameRequiredDescriptionDefault
customerIdYesID of the customer to delete.
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 productA
DestructiveIdempotent
Inspect

[demo: deshabilitada] Deletes (or soft-archives, when it has sale records) a product from the catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
productIdYesID of the product to delete.
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 supplierA
DestructiveIdempotent
Inspect

[demo: deshabilitada] Deletes a supplier from this business (with full audit trail).

ParametersJSON Schema
NameRequiredDescriptionDefault
supplierIdYesID of the supplier to delete.
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 productA
DestructiveIdempotent
Inspect

[demo: deshabilitada] Updates a single product's fields (name, price, costPrice, or stockQuantity).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew product name (optional).
priceNoNew selling price in ARS (optional).
costPriceNoNew cost price, or null to clear (optional).
productIdYesID of the product to update.
stockQuantityNoSet stock to this value (optional).
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 supplierA
DestructiveIdempotent
Inspect

[demo: deshabilitada] Updates an existing supplier's fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew supplier name (optional).
emailNoNew email, or null to clear.
phoneNoNew phone number, or null to clear.
supplierIdYesID of the supplier to update.
contactNameNoNew contact person name, or null to clear.
leadTimeDaysNoNew lead time in days, or null to clear.
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)A
Destructive
Inspect

[demo: deshabilitada] Emits an ARCA (formerly AFIP)-compliant electronic invoice (factura electrónica) for the authenticated business and returns the CAE authorization code.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoYesA = IVA discriminado (B2B), B = consumidor final, C = monotributo.
conceptNoItems or concept description (optional).
amountARSYesInvoice total in Argentine pesos (ARS).
requestIdNoOptional idempotency nonce.
customerCuitYesCustomer CUIT/CUIL (11 digits, any format).
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already 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.

Purpose5/5

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.

Usage Guidelines2/5

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)A
Destructive
Inspect

[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.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYescredito = Nota Crédito, debito = Nota Débito.
tipoYesInvoice type letter for this nota.
conceptNoItems or concept description (optional).
amountARSYesNote total in Argentine pesos (ARS).
requestIdNoOptional idempotency nonce.
customerCuitYesCustomer CUIT/CUIL (11 digits, any format).
associatedInvoiceYesReference to the original invoice being credited or debited.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 customerA
Read-onlyIdempotent
Inspect

Searches customers in the business by name and/or phone. Returns up to 20 matching customers sorted by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoCustomer name substring to search (case-insensitive).
phoneNoCustomer phone number or partial number to search.
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, establishing the safe read-only nature. The description adds valuable behavior details: the return limit of 20 and sorting by name. No contradiction with annotations.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the action, and contains no filler or redundant information. Every word earns its place.

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

Completeness4/5

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

For a simple read-only lookup with full schema coverage and informative annotations, the description is nearly complete. However, it does not specify behavior when no parameters are provided (both are optional), which could be ambiguous for the agent.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters, so the baseline is 3. The description only restates 'name and/or phone' without adding new meaning beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool's function: 'Searches customers in the business by name and/or phone.' It uses a specific verb ('searches') and resource ('customers'), and distinguishes itself from sibling tools like delete_customer and upsert_customer by being a read-only lookup.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool (searching customers by name or phone) but does not explicitly name alternatives or exclude other tools. Since no other customer search sibling exists, the guidance is adequate though not explicitly comparative.

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 readinessA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds specific behavioral context by detailing the return shape ({ ready, missing, guidance }) and the meaning of ready=true. This goes beyond the 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.

Conciseness5/5

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

The description is a single, efficient sentence that fronts the purpose and clearly states the return object. Every word contributes meaning; there is no filler or redundant content.

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

Completeness5/5

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

For a zero-parameter read-only check, the description fully covers the tool's purpose and return format. It clarifies what 'ready' means, making the tool's output immediately interpretable. No output schema exists, so this description bears the full burden and does so well.

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

Parameters4/5

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

There are no parameters (0 params), so the schema provides no information. The description aptly compensates by explaining the return value structure and semantics, which is the relevant behavioral detail.

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

Purpose5/5

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

The description uses the specific verb 'Checks' and clearly identifies the resource: readiness to emit real ARCA electronic invoices. It distinguishes itself from siblings like emit_invoice and connection_status by focusing on fiscal readiness.

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

Usage Guidelines3/5

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

The description implies a pre-flight check for emitting invoices ('Checks whether the business is ready to emit...') but does not explicitly state when to use this tool or how it compares to alternatives like connection_status. Usage context is implied, not directly stated.

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 profileA
Read-onlyIdempotent
Inspect

Computes the shipment weight and item breakdown for a package. Accepts a saleId, a list of productIds, or an explicit weightGramsOverride.

ParametersJSON Schema
NameRequiredDescriptionDefault
saleIdNoVelora Sale ID (takes priority over productIds).
productIdsNoArray of Velora Product IDs (assumes qty=1 per id).
weightGramsOverrideNoExplicit weight override in grams.
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds value by explaining the tool computes weight and item breakdown, and describes input modes, which goes beyond annotation data. 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.

Conciseness5/5

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

The description is two sentences long, front-loaded with the primary purpose and followed by input options. Every word earns its place; no fluff or redundant repetition of schema details.

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

Completeness4/5

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

For a read-only computation tool with 3 parameters, no output schema, and strong annotations, the description is sufficiently complete. It states what is computed (weight and item breakdown) and the accepted inputs. It could be slightly more explicit about output units (grams) but weightGramsOverride implies grams, so it is adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description paraphrases the parameters ('saleId, list of productIds, explicit weightGramsOverride') but does not add new semantics beyond the schema. The priority of saleId over productIds is already in the schema, so the description adds no additional meaning.

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

Purpose5/5

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

The description uses a specific verb 'computes' and identifies the resource as 'package profile', clearly stating the tool's function: computing shipment weight and item breakdown. It distinguishes itself from sibling tools like quote_shipping and track_shipment by focusing on computations rather than quotes or tracking.

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

Usage Guidelines3/5

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

The description implies usage by stating accepted inputs (saleId, productIds, weightGramsOverride), but does not explicitly state when to use this tool over alternatives or when not to use it. There is no reference to sibling tools or exclusions, so guidance is implied rather than explicit.

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 statusA
Read-onlyIdempotent
Inspect

Checks the current status of a Velora PaymentIntent. Accepts a paymentIntentId OR a customer name.

ParametersJSON Schema
NameRequiredDescriptionDefault
customerNameNoCustomer name (fuzzy match).
paymentIntentIdNoVelora PaymentIntent id. Optional when customerName is provided.
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is well-covered. The description adds no additional behavioral context (e.g., return format, limitations, side effects) but is consistent with the annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that succinctly states the core function and the two accepted identifiers. No words are wasted, and the key information appears first.

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

Completeness4/5

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

For a simple read-only query tool with no output schema, the description adequately conveys the purpose and inputs. However, it does not describe what the returned status looks like, which would be helpful since there is no output schema to clarify the return structure.

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

Parameters4/5

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

The schema already provides descriptions for both parameters, but the description explicitly clarifies the 'paymentIntentId OR customerName' relationship, going beyond the schema's statement that paymentIntentId is 'Optional when customerName is provided'. This helps the agent understand that either identifier can be used.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Checks') and resource ('status of a Velora PaymentIntent'). It is distinct from sibling tools by focusing on PaymentIntent status, and the 'OR' clarification adds scope.

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

Usage Guidelines3/5

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

The description provides no explicit guidance on when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. The usage context is implied by the tool's name and purpose, but no alternative tools are referenced.

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

list_suppliersList suppliersA
Read-onlyIdempotent
Inspect

Returns all suppliers for this business (up to 50, sorted by name).

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOptional name substring to filter suppliers.
Behavior4/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds valuable behavioral constraints: a 50-item limit, name-based sorting, and the business scope, which are not present in annotations. It does not contradict any annotation.

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

Conciseness5/5

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

The description is a single concise sentence that communicates the core behavior and constraints without waste. It is front-loaded and easy to parse.

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

Completeness4/5

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

For a simple list tool with one optional parameter, the description is sufficiently complete: it states the return scope, limit, and sort order. The absence of an output schema is not a major gap given the simplicity of the operation, and the search parameter is well-documented in the schema.

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

Parameters3/5

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

Schema description coverage is 100% for the only parameter (search), so the description does not need to add parameter details. It does not, but no further semantic value is provided beyond the schema's own description.

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

Purpose5/5

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

The description clearly states the tool returns suppliers for this business, with explicit behavior (up to 50, sorted by name). It uses a specific verb and resource, and distinguishes from sibling tools like create_supplier, edit_supplier, and delete_supplier.

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

Usage Guidelines4/5

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

The context is clear: use this to retrieve all suppliers for the business. However, it does not explicitly name alternatives or exclusion criteria (e.g., when to use query_catalog or find_customer instead), so it falls short of a 5 but is better than implied-only usage.

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 overviewA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
defaultTabNoOptional fullscreen tab to open into.
customerNameNoOptional customer name to pre-search on the Cliente 360 tab.
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description's statement that it 'Aggregates ... reads' reinforces a safe, non-destructive operation. It adds behavioral context about the widget's two display modes and the default inline snapshot, which is beyond the annotations. It does not contradict the annotations.

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

Conciseness5/5

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

The description is one compact sentence that front-loads the key differentiator ('ONE widget, two display modes') and packs the data sources into a trailing list. Every clause adds information; there is no redundancy.

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

Completeness4/5

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

Given the tool is a read-only view opener with two optional, well-schemaed parameters and no output schema, the description explains the core behavior (inline snapshot vs fullscreen tabs), the available tabs, and the aggregated data sources. It does not discuss return values, but the absence of an output schema makes that less critical for an 'open' widget tool. The description is sufficient for an agent to select and invoke the tool, though it could have mentioned alternative tools.

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

Parameters3/5

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

Both parameters (defaultTab and customerName) have schema descriptions with 100% coverage, so the description does not need to repeat them. However, the description adds context by naming the fullscreen tabs and clarifying that the widget has an inline default and fullscreen modes, which helps interpret the enum values. No additional syntax or format details are needed.

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

Purpose5/5

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

The description states a specific action and resource: 'ONE widget, two display modes: inline snapshot by default, fullscreen tabs ... on demand.' It names the aggregated data sources ('caja, payments, ventas, reportes, supplier, customer reads'), distinguishing it from sibling tools like open_caja_status or query_sales. The resource is the business overview widget with clear display behavior.

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

Usage Guidelines4/5

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

The description implies usage when an agent needs a business overview or a consolidated view of multiple operational areas. It does not explicitly name alternatives or exclusions, but the mention of tabs and modes offers clear context for when to invoke it with a specific defaultTab. It lacks explicit 'when not to use' guidance.

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

open_caja_statusOpen caja statusA
Read-onlyIdempotent
Inspect

Opens a visual widget showing the current shift state and action buttons. Read-only here.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description's 'Read-only here' is redundant with those. It adds minimal context about the widget's visual nature or interaction model, but does not contradict annotations or introduce unexpected behavior.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the essential purpose without any filler. It is concise and every word contributes meaning.

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

Completeness4/5

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

For a simple no-parameter tool, the description adequately covers the primary function and its read-only nature. It does not elaborate on the action buttons' behavior, but given the annotations and simple scope, the description is sufficiently complete.

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

Parameters4/5

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

The tool has zero parameters, and the input schema is empty. The description provides no parameter information, which is acceptable given there are no parameters to document, so the baseline for a no-parameter tool is appropriate.

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

Purpose4/5

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

The description clearly states the tool opens a visual widget showing the current shift state and action buttons, using a specific verb and resource. However, it does not explicitly differentiate itself from sibling tools like open_cobro_status or open_business_overview, which are similar UI-opening tools.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool compared to alternatives. The phrase 'Read-only here' hints at a safe read operation but does not explain when this widget is appropriate or when a sibling tool should be chosen instead.

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 selectorA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOptional name filter (case-insensitive substring match).
Behavior5/5

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 valuable context beyond those by explicitly stating 'Side-effect-free (no sale, no charge)' and specifying that it shows active products with prices (ARS) and stock, which is behavioral information an agent needs.

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

Conciseness5/5

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

Two concise sentences, front-loaded with the main action. The first sentence clearly states the purpose and key details, the second handles side-effects. No redundant wording.

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

Completeness5/5

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

For a simple tool with only one optional parameter and no output schema, the description covers what it does, what it shows, and that it is side-effect free. The complexity is low, so this is complete.

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

Parameters3/5

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

The input schema fully documents the single optional 'search' parameter with a clear description (case-insensitive substring filter). The tool description adds no extra param semantics, so the baseline of 3 is appropriate given 100% schema coverage.

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

Purpose5/5

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

The description states a specific verb ('Opens') and a concrete resource ('catalog selector — a graphical product picker (MCP Apps widget)'). It distinguishes from siblings like query_catalog by emphasizing it is a graphical picker widget, not a data query, and clarifies it shows product prices and stock.

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

Usage Guidelines4/5

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

The description gives clear context: this is for launching a graphical product picker, useful when a user needs to visually select an active product. It does not explicitly name alternatives or state when not to use it, but the widget nature and 'MCP Apps' hint suffice for most use cases.

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 statusA
Read-onlyIdempotent
Inspect

Opens the cobro status widget — a read-only view of ONE PaymentIntent's payment state. Accepts paymentIntentId OR customerName.

ParametersJSON Schema
NameRequiredDescriptionDefault
customerNameNoCustomer name (optional when paymentIntentId is provided).
paymentIntentIdNoVelora PaymentIntent id (optional when customerName is provided).
Behavior3/5

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

The description calls it a 'read-only view', which matches the readOnlyHint annotation and adds the scope constraint 'ONE PaymentIntent'. However, it does not go beyond the annotations to describe any other behavioral traits, such as error handling or side effects of opening a widget. With annotations already covering safety, 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.

Conciseness5/5

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

The description is two sentences, front-loaded with the core action, and every word adds value. It avoids redundancy and is appropriately sized for a simple tool.

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

Completeness4/5

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

With a simple 2-parameter schema, 100% coverage, and annotations covering safety, the description is mostly complete. It clearly identifies the target and input options. It does not mention what happens if both or neither parameters are provided, but the schema's optionality hints imply one is required. Overall, it is sufficient for an agent to select and invoke correctly.

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

Parameters4/5

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

The schema covers 100% of the parameters, but the description adds the explicit 'OR' relationship between paymentIntentId and customerName, clarifying mutual exclusivity. This goes beyond the schema's conditional descriptions and helps the agent understand how to supply parameters.

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

Purpose5/5

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

The description clearly states the action ('Opens the cobro status widget'), the resource ('cobro status widget'), and the scope ('ONE PaymentIntent's payment state'). It also distinguishes from siblings by explicitly noting it's a widget, separating it from data-returning 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.

Usage Guidelines3/5

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

The description implies the tool is used to open the widget for a single PaymentIntent, and the 'OR' clause gives parameter usage guidance. However, it does not explicitly state when to use this over alternatives like get_payment_intent_status, nor does it provide exclusions or conditions.

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 receiptA
Read-onlyIdempotent
Inspect

Opens the comprobante + envío widget — a read-only view of the delivery receipt for a completed cobro. Accepts paymentIntentId, saleId, OR customerName.

ParametersJSON Schema
NameRequiredDescriptionDefault
saleIdNoVelora Sale id (optional).
customerNameNoCustomer name (optional).
paymentIntentIdNoVelora PaymentIntent id (optional).
Behavior4/5

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 the behavioral requirement that the cobro must be completed, which is useful beyond the annotations. No contradiction found.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose, then concise parameter guidance. No filler or redundant words.

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

Completeness5/5

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

For a read-only widget-opener with three optional parameters and no output schema, the description adequately covers what it does, when it applies (completed cobro), and how to identify the target. No significant gaps.

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

Parameters5/5

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

Input schema provides 100% coverage with per-parameter descriptions, but the description goes further by clarifying the 'OR' relationship among the three identifiers, indicating they are alternatives rather than a combination. This is semantic value not present in the schema.

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

Purpose5/5

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

The description clearly states the tool opens the 'comprobante + envío widget' — a specific resource (delivery receipt for a completed cobro). The 'read-only view' qualifier and reference to completed cobros differentiate it from sibling open_* tools, even without naming them.

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

Usage Guidelines4/5

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

The phrase 'for a completed cobro' gives clear context on when to use, and listing 'paymentIntentId, saleId, OR customerName' shows how to specify the target. However, it does not explicitly state when not to use or name alternative sibling tools, so it stops short of 5.

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

open_onboardingOpen onboarding hubA
Read-onlyIdempotent
Inspect

Opens a graphical onboarding hub showing integration status and connect links. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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 reinforces this with 'Read-only' and adds behavioral context by specifying it is a 'graphical' hub that displays integration status and connect links, which goes beyond the structured annotations. No contradictions are present.

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

Conciseness5/5

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

The description is two sentences totaling 14 words, with the core action and content front-loaded. Every word earns its place, and the 'Read-only' note is a valuable safety addition without redundancy.

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

Completeness5/5

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

For a simple tool with no parameters, no output schema, and strong annotations, the description is fully sufficient. It explains the tool's purpose, what it shows, and its read-only nature. The sibling context clarifies that it is the graphical hub distinct from more granular status or connection actions.

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

Parameters4/5

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

There are zero parameters and schema description coverage is 100%, so the baseline is 4. The description adds no parameter-specific information, but none is needed since the tool takes no inputs.

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

Purpose5/5

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

The description clearly states the tool 'Opens a graphical onboarding hub' with a specific verb and resource, and further specifies it shows 'integration status and connect links'. This distinguishes it from sibling tools like connection_status or the connect_* tools, which are likely more direct or action-oriented.

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

Usage Guidelines3/5

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

The description implies the use case (open the hub to see integration status and connect links) but does not explicitly contrast it with alternatives or provide when-not-to-use guidance. Since it mentions the hub's content, a user can infer when it is appropriate, but no direct exclusions or alternative suggestions are given.

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 ordersA
Read-onlyIdempotent
Inspect

Opens the pending cobros dashboard — a read-only widget listing PaymentIntents awaiting payment. Side-effect-free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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 context by describing it as a UI dashboard widget that lists PaymentIntents, which clarifies the behavior of 'opening' rather than returning data. No contradiction with annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the action, target, nature, and safety in about 20 words. Every phrase adds value; no fluff.

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

Completeness5/5

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

For a simple, parameterless, read-only UI widget tool with rich annotations, the description is complete. It explains what dashboard it opens, what it lists, and that it is side-effect-free. No output schema is needed for a UI-opening tool.

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

Parameters4/5

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

There are zero parameters and schema coverage is trivially 100%, so the baseline is 4. The description does not need to explain parameters, and it doesn't waste space on them.

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

Purpose5/5

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

The description uses the specific verb 'Opens' with the resource 'pending cobros dashboard', and clarifies it is a read-only widget listing PaymentIntents awaiting payment. This clearly states what the tool does and distinguishes it from sibling tools like open_cobro_status by focusing on 'pending' and 'PaymentIntents'.

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

Usage Guidelines4/5

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

The description provides clear context: use to open a read-only dashboard for pending payments. It does not explicitly exclude alternatives or name when not to use, but the purpose is specific enough that an agent can infer when to select it among siblings.

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 confirmationA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesLine items for the sale.
customerIdNoOptional customer ID (omit for anonymous sales).
Behavior4/5

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 valuable context beyond these: it emphasizes the tool is a VISUAL preview (a UI action, not a data-returning API) and discloses that clicking the confirm button triggers register_sale, an important side-effect. No contradiction with annotations.

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

Conciseness5/5

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

The description is a single sentence that front-loads the key action ('Opens a VISUAL preview'), then efficiently lists what the preview displays and its confirm behavior. Every word earns its place; no redundancy or filler.

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

Completeness4/5

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

For a UI-preview tool with no output schema, the description covers the preview content, the read-only nature, and the dependency on register_sale. It does not mention the optionality of customerId, but the schema handles that. Overall, it provides sufficient context for an AI agent to understand the tool's role in the sale flow.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters (items and customerId). The description's mention of 'product names, unit prices, quantities, and total' maps to the items array but does not add new syntactic or semantic detail beyond what the schema provides.

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

Purpose5/5

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

The description uses a specific verb 'Opens' and resource 'visual preview of a cash sale', then lists exactly what the preview shows (resolved product names, unit prices, quantities, total). It distinguishes itself from the sibling register_sale by stating the confirm button fires that tool, making the purpose unmistakable.

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

Usage Guidelines4/5

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

The description clearly implies when to use this tool: as a visual confirmation step before calling register_sale, since the confirm button fires that tool. It provides clear context but does not explicitly state when not to use it or name alternative tools.

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 prepA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesLine items to prepare for shipment.
declaredValueNoDeclared value in ARS for insurance.
originPostalCodeYesOrigin postal code (4 digits).
destinationPostalCodeYesDestination postal code (4 digits).
Behavior4/5

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

The description adds behavioral detail beyond annotations—resolves items, computes total weight, quotes couriers—and reinforces the read-only, side-effect-free nature. Annotations already declare readOnly and non-destructive, so the description provides useful but not extensive additional context.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action, and every sentence provides value. The 'Read-only, side-effect-free' phrase is slightly redundant with annotations but reinforces safety without waste.

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

Completeness4/5

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

Given the tool is a UI opener with no output schema, the description sufficiently covers the main function and safety profile. It could mention what the widget returns or how it appears, but for this type of tool the detail is adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains all parameters clearly. The description adds no new parameter-level meaning beyond implying that 'items' are resolved against catalog data, which is marginal.

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

Purpose4/5

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

The description clearly states the tool combines catalog stock/weight data with a live shipping quote into a single widget, with specific actions like resolving items and computing total weight. It distinguishes from quote_shipping by emphasizing the combined nature, though it doesn't explicitly name alternatives.

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

Usage Guidelines3/5

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

Usage context is implied: use when you need a consolidated shipment prep view with weight and quote. However, no explicit when-to-use vs alternatives (e.g., quote_shipping for quote-only) is provided, and exclusions are not stated.

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

query_catalogQuery catalogA
Read-onlyIdempotent
Inspect

Lists active products in the business catalog. Returns products sorted by name, each with id, name, price (ARS), costPrice, sku, stock quantity, and weightGrams.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoOptional name filter (case-insensitive substring match).
Behavior3/5

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 safety profile is known. The description adds context by specifying 'active products' and the list of returned fields, but does not disclose further behavioral aspects like pagination, limits, or authentication requirements.

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

Conciseness5/5

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

The description is a single, dense sentence that front-loads the core purpose and efficiently lists output fields. No unnecessary words or redundancy.

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

Completeness4/5

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

For a simple list tool with rich annotations and a well-documented parameter, the description is quite complete. It includes the output fields, which is valuable. It omits potential details like pagination, but they are not critical given the tool's simplicity.

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

Parameters3/5

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

The only parameter 'search' is fully described in the schema (case-insensitive substring match), which covers 100% of parameter semantics. The description adds no additional parameter information, but this is acceptable given the high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's function: 'Lists active products in the business catalog.' It uses a specific verb ('Lists') and resource, and includes details about sorting and returned fields, distinguishing it from sibling tools like query_sales or create_product.

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

Usage Guidelines4/5

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

The description implicitly defines when to use the tool (when retrieving catalog products) but does not explicitly mention alternatives or when not to use it. The context is clear enough for basic selection, but it lacks exclusions or named alternatives.

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

query_salesQuery salesA
Read-onlyIdempotent
Inspect

Queries sales metrics from the database: 'ventas_periodo', 'margen', 'ranking_productos', 'por_empleado', or 'historial_cliente'.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd date YYYY-MM-DD. Requires 'from'.
fromNoStart date YYYY-MM-DD. Requires 'to'.
limitNoMax results (default 10, max 50).
presetNoPreset date range. Mutually exclusive with from/to.
metricaYesMetric to query.
customer_nameNoCustomer name or fragment. Only for historial_cliente.
Behavior2/5

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

The description adds no behavioral context beyond what annotations already provide. Annotations already declare readOnlyHint=true and destructiveHint=false, and the description merely restates that it 'queries' data. It does not disclose anything about output shape, pagination, or prerequisites, unlike the get_calls example which added scoping constraints.

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

Conciseness5/5

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

The description is a single sentence that efficiently states the purpose and lists the supported metric identifiers. There is no redundancy or filler; every word contributes to the understanding of the tool.

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

Completeness2/5

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

There is no output schema, so the description should explain what the tool returns. It does not describe the return value structure or what each metric provides (e.g., time-series vs ranking). This is a significant gap for a query tool with multiple metric modes, leaving the agent to guess about outputs.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description's list of metric names duplicates the enum in the 'metrica' parameter, adding no new meaning. Other parameters are fully described in the schema, so the description provides no additional value here.

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

Purpose5/5

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

The description clearly states the verb 'Queries' and the resource 'sales metrics from the database', and enumerates the specific metric identifiers (e.g., 'ventas_periodo', 'margen'). This distinguishes it from sibling tools like query_catalog, which would handle catalog queries.

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

Usage Guidelines4/5

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

The description provides clear context that this tool is for sales metrics, which implies when to use it. However, it does not explicitly mention alternative tools or exclusion scenarios, though the list of metrics helps clarify scope. Since the context is clear, this is slightly above implied usage.

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

quote_shippingQuote shippingA
Read-onlyIdempotent
Inspect

Quotes shipment rates from every active courier configured for the authenticated business and returns options sorted by price ascending.

ParametersJSON Schema
NameRequiredDescriptionDefault
weightGramsYesTotal shipment weight in grams.
declaredValueNoDeclared value in ARS for insurance.
originPostalCodeYesOrigin postal code (4 digits).
destinationPostalCodeYesDestination postal code (4 digits).
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds valuable context: it queries all active couriers and returns results sorted by price ascending, which helps the agent set expectations. 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.

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core action ('Quotes shipment rates') and includes essential scoping and output ordering. Every word earns its place with no filler or repetition.

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

Completeness4/5

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

For a read-only quoting tool with strong annotations, the description is mostly complete. It explains the scope ('every active courier') and output ordering, but lacks explicit detail on the structure of each returned option (e.g., whether it includes courier name, estimated delivery time, or just price). This slight gap prevents a 5.

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

Parameters3/5

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

The input schema has 100% coverage with clear descriptions for all four parameters, so the description does not need to restate them. It adds no specific parameter-level semantics beyond the schema's definitions, making the baseline 3 appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Quotes') and resource ('shipment rates'), and specifies scope ('from every active courier configured for the authenticated business') and output ordering ('sorted by price ascending'). This clearly distinguishes it from siblings like create_shipment, track_shipment, and get_package_profile.

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

Usage Guidelines4/5

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

The description makes the use case clear: it returns rates from all configured couriers, implying it's for comparing shipping prices before creating a shipment. It does not explicitly name alternatives or exclusions, but the context is unambiguous enough for an agent to select it over sibling tools like create_shipment.

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

register_movementRegister cash movementC
DestructiveIdempotent
Inspect

[demo: deshabilitada] Records a cash-register movement for the authenticated business ('purchase', 'income', 'salary', 'tax', 'adjustment').

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoISO 8601 date/datetime. Defaults to now.
typeYesMovement type.
amountYesAmount in ARS (always positive).
descriptionYesDescription (e.g. 'Pago proveedor Distribuidora ABC').
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 saleA
DestructiveIdempotent
Inspect

[demo: deshabilitada] Records a sale for the authenticated business. Creates a full Sale with SaleItems, decrements inventory, creates a CashMovement and Invoice.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesLine items for the sale.
requestIdNoOptional idempotency override.
customerIdNoOptional customer ID. Omit for anonymous sales.
paymentMethodNoDefaults to 'efectivo' when omitted.
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's 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.

Usage Guidelines4/5

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 saleA
DestructiveIdempotent
Inspect

[demo: deshabilitada] Reverses the N most-recent sales within a time window. Restores inventory, removes CashMovement, SaleItem, Invoice, and Sale records. Destructive and irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of recent sales to reverse (max 10).
confirmYesMust be explicitly true to confirm reversing sales.
cutoffHoursNoOnly consider sales within the last N hours (max 48).
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's 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.

Usage Guidelines4/5

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 templateA
Destructive
Inspect

[demo: deshabilitada] Sends a pre-approved Meta WhatsApp template message. Window-independent — can be sent proactively, outside the 24-hour session window.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient phone number (local AR or E.164).
componentsNoTemplate variable substitutions (omit for templates with no placeholders).
languageCodeNoBCP-47 language code (defaults to 'es_AR').
templateNameYesExact template name as registered in Meta Business Manager.
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 textA
Destructive
Inspect

[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).

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient phone number (local AR or E.164).
textYesMessage text body.
mediaUrlNoOptional public URL of a media file to attach.
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 loadA
DestructiveIdempotent
Inspect

[demo: deshabilitada] Records inbound stock for a product — restock or initial stock, with an audit trail.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemNameYesProduct name for resolution or auto-creation.
quantityYesUnits received.
productIdNoExisting product ID (optional if itemName resolves it).
unitPriceNoCost per unit in ARS.
supplierIdNoExisting supplier ID (optional).
supplierNameNoSupplier name (optional).
autoCreateProductNoAuto-create product if not found.
createPurchaseRequestNoAlso create a purchase request for this stock load.
Behavior4/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: '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 shipmentA
Read-onlyIdempotent
Inspect

Tracks the current status and event history of a shipment by tracking number.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerYesCourier that created the shipment ('andreani', 'oca').
trackingNumberYesTracking number returned by the courier at shipment creation time.
Behavior4/5

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

With annotations readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, the description adds value by specifying it returns both current status and event history. It goes beyond repetition of annotations, though it does not detail error scenarios or rate limits.

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

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded with the action and resource. Every word contributes, and there is no filler.

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

Completeness4/5

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

For a simple query tool with two parameters and no output schema, the description sufficiently communicates the returned data (status and event history). While error handling and limitations are not mentioned, the tool's simplicity and annotations make this acceptable.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both 'trackingNumber' and 'provider'. The description adds no additional parameter semantics beyond what the schema already provides, so it meets the baseline for well-documented parameters.

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

Purpose5/5

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

The description uses the specific verb 'tracks' and clearly identifies the resource ('shipment') and the data provided ('current status and event history'), distinguishing it from sibling tools like create_shipment and quote_shipping.

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

Usage Guidelines4/5

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

The description implies the use case: when you have a tracking number and need shipment status. The schema clarifies that the provider must be the courier that created the shipment, but no explicit alternatives or exclusions are stated.

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

upload_catalogUpload catalogA
Destructive
Inspect

[demo: deshabilitada] Bulk-creates products in the business catalog from a structured list (up to 50 items).

ParametersJSON Schema
NameRequiredDescriptionDefault
productsYesList of products to create (1–50 items).
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 customerB
DestructiveIdempotent
Inspect

[demo: deshabilitada] Creates a new customer or updates an existing one for the authenticated business.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCustomer city or locality (optional).
nameNoCustomer display name.
emailNoCustomer email address (optional).
phoneNoCustomer phone number.
addressNoCustomer street address (optional).
customerIdNoWhen provided, updates the customer with this id.
postalCodeNoCustomer postal code (optional).
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's 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.

Usage Guidelines3/5

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/CUILA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cuitYesCUIT/CUIL in any format (digits, hyphens, or spaces).
Behavior4/5

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 safety profile is clear. The description adds valuable behavioral detail beyond that: it lists the return components (prefix, body, check digit, person type, and check digit correctness) and emphasizes that it runs the 'REAL check-digit algorithm' rather than a demo fixture. This goes beyond the structured fields and gives the agent confidence in the tool's authenticity, though it omits potential error handling for malformed inputs.

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

Conciseness5/5

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

The description is three compact sentences, each serving a clear purpose: stating the function, enumerating return values, and highlighting the real algorithm. There is no fluff or repetition; every sentence earns its place, making it highly efficient for an agent to parse.

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

Completeness5/5

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

Given the tool's simplicity (one parameter, no output schema), the description is complete. It covers what the tool does, the input format flexibility, the exact return fields, and the authenticity guarantee. For a validation tool of this complexity, no further context is necessary to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with the parameter 'cuit' described as 'CUIT/CUIL in any format (digits, hyphens, or spaces)'. The description's mention of 'Accepts any format: raw digits, hyphened (20-12345678-9), or spaced' largely restates the schema, adding only a concrete example. This reinforces but does not meaningfully extend the schema's meaning, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description opens with 'Validates an Argentine CUIT or CUIL number', which is a specific verb+resource statement that clearly identifies the tool's function. This uniquely distinguishes it from the sibling tools, which are all focused on inventory, sales, or shipping operations, none of which involve CUIT validation.

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

Usage Guidelines4/5

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

The description provides clear context: it validates Argentine fiscal identifiers and returns parsed components. It does not explicitly mention when to avoid using it or name alternative tools, but since no sibling tool overlaps with this function, explicit exclusion is unnecessary. The context is sufficient for an agent to select this tool when faced with a CUIT/CUIL validation task.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Argentine electronic invoicing (facturación electrónica) MCP Server for ARCA/AFIP. Emit invoices, manage credentials, check delegations, and look up taxpayers. 10 tools.
    Last updated
    12
    378
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    MCP server for automating AFIP/ARCA electronic invoicing, certificate management, and Web Service authorization in Argentina.
    Last updated
    20
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Karrito - the digital catalog builder for WhatsApp sellers in LATAM, enabling AI assistants to manage store operations like products, orders, discounts, reviews, shipping, and analytics.
    Last updated
    30
    6
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.