Skip to main content
Glama
gambot-ai

gambot-mcp

Official

Gambot MCP Server — WhatsApp API for AI agents

npm MCP Registry License: MIT

Connect WhatsApp to Claude, ChatGPT, Gemini and Cursor. This is a Model Context Protocol server for the Gambot WhatsApp Business API (an official, Meta‑approved WhatsApp Business Solution Provider). It lets any MCP‑compatible client drive your Gambot account through tools — send WhatsApp messages & templates, run marketing campaigns, and manage contacts, leads, cases, tasks, quotes, invoices, orders, forms, signatures, document templates and users.

One-click install (Cursor): ➕ Add to Cursor — then paste your Gambot token into the server's env.

It wraps the public REST API at https://api.gambot.co.il/api/v1, authenticated with your organization's Gambot Token.

Prerequisites

  • Node.js 18+

  • A Gambot Token (gmbt_…) from the Gambot admin panel → Settings → General.

Related MCP server: WhatsApp Business MCP Server

Once published to npm, no clone or build is needed — MCP clients run it on demand with npx.

Cursor (.cursor/mcp.json) / Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "gambot": {
      "command": "npx",
      "args": ["-y", "gambot-mcp"],
      "env": {
        "GAMBOT_TOKEN": "gmbt_your_token_here"
      }
    }
  }
}

Optional env var GAMBOT_API_BASE overrides the base URL (defaults to https://api.gambot.co.il/api/v1).

Local development (from source)

npm install
npm run build

Then point your MCP client at the built entrypoint:

{
  "mcpServers": {
    "gambot": {
      "command": "node",
      "args": ["C:/Users/you/source/repos/gambot/gmbt_mcp/dist/index.js"],
      "env": {
        "GAMBOT_TOKEN": "gmbt_your_token_here"
      }
    }
  }
}

Tools

Group

Tools

Messages

gambot_send_text, gambot_send_template

Conversations

gambot_list_conversations, gambot_get_conversation_messages

Templates

gambot_list_templates, gambot_get_template, gambot_get_template_variables, gambot_create_template (text/media header, body variables, footer, buttons), gambot_upload_template_media

Contacts

gambot_get_contact_fields, gambot_create_contact, gambot_get_contact, gambot_update_contact (base + customFields)

Leads

gambot_get_lead_fields, gambot_create_lead, gambot_list_leads, gambot_get_lead, gambot_update_lead (all base fields + customFields)

Cases

gambot_get_case_fields, gambot_create_case, gambot_list_cases, gambot_get_case, gambot_update_case (base + customFields)

Tasks

gambot_create_task, gambot_list_tasks, gambot_get_task, gambot_update_task

Quotes

gambot_create_quote, gambot_list_quotes, gambot_get_quote, gambot_update_quote

Invoices

gambot_create_invoice, gambot_list_invoices, gambot_get_invoice, gambot_update_invoice, gambot_issue_invoice

Orders

gambot_create_order, gambot_list_orders, gambot_get_order, gambot_update_order

Signatures

gambot_list_signatures, gambot_get_signature, gambot_get_signature_link (signing link to distribute)

Web forms

gambot_list_forms, gambot_get_form, gambot_get_form_link (public link to distribute), gambot_get_form_submissions

Document templates

gambot_list_documents, gambot_get_document, gambot_create_document_link (distributable fill link), gambot_get_document_submissions

Users

gambot_create_user, gambot_list_users, gambot_get_user, gambot_update_user, gambot_enable_user, gambot_disable_user

Campaigns

gambot_list_campaigns, gambot_list_scheduled_campaigns, gambot_get_campaign, gambot_get_campaign_results, gambot_create_campaign (manual/scheduled/recurring; Excel or CRM-filter audience), gambot_send_campaign_from_excel (mail-merge blast from a sheet the user gave you — pass rows + phoneColumn + column→variable mapping; sends now or scheduled), gambot_update_campaign, gambot_delete_campaign, gambot_run_campaign, gambot_send_campaign (ad-hoc), gambot_test_campaign (single recipient). Compliance is built in: every org has an ACTIVE opt-out flow (recipients reply הסר/stop/unsubscribe → excluded from future broadcasts); send/run responses echo it under optOut (enabled by default) and your consent under consent. Assert consent-to-mail via consentConfirmed (defaults to true).

Onboarding

gambot_check_organization, gambot_generate_organization_name, gambot_search_available_numbers (buy a number by country), gambot_create_trial_account (free trial; free/coexistence/BYO/buy-a-SIM), gambot_create_paid_account (no trial, card required), gambot_add_payment_method (card on file), gambot_create_payment_link (Tranzila hosted), gambot_get_waba_connect_link, gambot_exchange_waba_token (complete Meta Embedded Signup)

Security

The Gambot Token is a secret (like a password). Keep it out of source control (use the client's env). You can rotate it any time from Gambot Settings → General, and optionally narrow its scopes there.

Publishing (maintainers)

This package ships with a server.json manifest for the official MCP Registry (registry.modelcontextprotocol.io). The registry only stores metadata, so the npm package must be published first, and the reverse‑DNS name in server.json must match mcpName in package.json (io.github.gambot-ai/gambot-mcp).

# 1) Publish the npm package (public)
npm publish --access public

# 2) Install the registry publisher CLI
#    (see https://modelcontextprotocol.io/registry/quickstart)
brew install mcp-publisher            # or download from the registry releases

# 3) Authenticate under the io.github.gambot-ai/* namespace and publish
mcp-publisher login github
mcp-publisher publish

If your GitHub owner is not gambot-ai, update the name in server.json, mcpName in package.json, and the repository/identifier fields to match before publishing.

Once listed in the official registry, aggregators such as Glama, PulseMCP and Smithery index the server automatically. A smithery.yaml is also included for Smithery.

Available Tools

78 tools
gambot_add_payment_methodAdd payment method (card on file)A

Verify a card with the clearing provider (Tranzila) and save its token to an organization, so an AI agent with the customer's card can put a payment method on file without the hosted page. The raw card is sent only to the PCI-compliant clearing provider and never stored. For a hosted alternative (customer types the card), use gambot_create_payment_link.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardYesREQUIRED. { cardNumber, expirationDate ("MM/YY"), cvv?, holderId? }.
planNo
organizationNameYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses that the raw card is sent only to the PCI-compliant clearing provider and never stored, which is a key behavioral trait. It also implies a verification step. However, it does not mention what happens on failure, whether existing methods are replaced, or any rate limits.

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

Conciseness5/5

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

Two concise sentences with the core action front-loaded. The alternative is mentioned at the end, and there is zero fluff. Every sentence contributes to the agent's understanding.

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 complexity (nested card object, optional plan, security implications), the description covers the essential purpose, the alternative, and the security model. Missing are details about the response format or any prerequisites, but the description is sufficient for an agent to invoke it correctly with the required parameters.

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

Parameters2/5

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

Schema coverage is only 33% (only the card object is described). The description does not elaborate on the meaning of organizationName or the optional plan parameter. The card object itself is well-described in the schema, so the description adds little parameter-specific value beyond the schema.

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

Purpose5/5

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

The description states a specific action: verify a card with Tranzila and save its token to an organization. It distinguishes itself from the hosted alternative by naming the sibling tool (gambot_create_payment_link) and explaining the difference (agent vs customer entering the card).

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

Usage Guidelines5/5

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

Explicitly provides a when-to-use scenario ('so an AI agent with the customer's card can put a payment method on file without the hosted page') and a clear alternative ('For a hosted alternative... use gambot_create_payment_link'). This leaves no ambiguity about when to select this tool.

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

gambot_check_organizationCheck organization (onboarding)B

Check whether an organization already exists for a company + tax id (ח.פ/ת.ז), and whether an incomplete onboarding can be resumed. Use before creating a new trial.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYes
companyIdNumberYes9-digit company/tax id (ח.פ/ת.ז).

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist, so description must carry the burden. It discloses what it checks (existence + resumability) but doesn't explain the return format, side effects (none assumed), or what 'incomplete onboarding can be resumed' implies. The 'can be resumed' is vague, leaves agent unsure what to do with the result.

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?

Two sentences, front-loaded with the core check purpose. The 'Use before' guidance is efficient and earns its place.

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

Completeness2/5

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

No output schema and no annotations. Tool has two simple params, but the description lacks critical behavioral details: what does it return? What are the possible outcomes (exists, not exists, resumable)? What does the agent do with the result? This matters because the tool is a categorical check – without response semantics, the agent may call it but not know how to act on the result. Given the low complexity, many would be adequate, but here the missing return behavior is a real 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 coverage 50% – companyName is undocumented (just a string), but the description mentions company for input matching. companyIdNumber is documented ('9-digit company/tax id'). Description adds the purpose of combining these two fields (checking existence), but doesn't add format expectations for companyName. With 50% coverage, description partially compensates but not fully.

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?

Clear verb 'check' plus specific resource (organization) and criteria (company + tax id). Distinguishes itself from create_trial_account and other organization-related tools.

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?

Explicitly says 'Use before creating a new trial', which sets clear precondition. But no mention of alternatives or when NOT to use (e.g., when resuming without checking). No exclusions beyond that.

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

gambot_create_campaignCreate campaignA

Create a WhatsApp broadcast campaign. Manual (run on demand) or scheduled (one-time / recurring). For a template broadcast set messageType='Template' + wabaTemplateId; for free text set messageType='regular' + message. Audience: recipientSource='Excel' + ExcelData, or ContactFilters (CRM segment), or legacy ContactsQuery. Scheduling: campaignTrigger='Scheduled' + scheduleType ('once' with runAt+timezone, or 'repeated' with interval/intervalNumber/endCondition).

ParametersJSON Schema
NameRequiredDescriptionDefault
runAtNoFirst/only run datetime, e.g. 2026-07-01T09:00:00 (with timezone).
messageNoMessage text (required for messageType='regular').
intervalNo
timezoneNoIANA timezone, e.g. Asia/Jerusalem.
ExcelDataNo{ recipients: [{ phone, variables:{var1:..}, rowData:{} }] }
messageTypeYesTemplate = template broadcast; regular = free text.
campaignNameYes
endConditionNo{ type: 'none'|'until'|'count', value: '...' }
fromNumberIdNoSender Meta phone_number_id (multi-number orgs).
scheduleTypeNo
ContactsQueryNoLegacy keys/tags filter.
ContactFiltersNo{ filters:[...], logic:'AND'|'OR' } CRM segment.
intervalNumberNoEvery N intervals (recurring).
wabaTemplateIdNoTemplate id (required for messageType='Template').
campaignTriggerNoManually (default) or Scheduled.
recipientSourceNoe.g. 'Excel'.
templateVariableQueryNoMaps template variables to columns/fields.

TDQS

A4/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits itself. It states the tool creates a campaign and mentions manual vs. scheduled execution, but it does not clarify whether creating a campaign automatically sends it or merely stores it for later execution (siblings like gambot_run_campaign and gambot_send_campaign suggest a separate step). It also omits side effects, permission requirements, or what happens on validation failure. This is a significant gap for a complex mutation tool.

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

Conciseness5/5

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

The description is dense but every clause earns its place, covering the main decision axes (message type, audience, scheduling) in a logical order. It front-loads the core purpose and then groups related parameters together, making it easy to scan. No redundant or filler content.

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 (17 parameters, nested objects, multiple modes), the description addresses the critical branches: template vs. regular, Excel vs. ContactFilters vs. ContactsQuery, and once vs. repeated scheduling. It does not enumerate every parameter (e.g., fromNumberId, templateVariableQuery), but those are documented in the schema. The absence of an output schema is partially mitigated by the fact that creation tools typically return a campaign ID, though this is not stated. Overall, it is sufficient for an agent to make correct choices.

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 covers 82% of parameters with descriptions, so the baseline is 3. The description adds value by explaining conditional relationships (e.g., messageType='Template' requires wabaTemplateId; messageType='regular' requires message; recipientSource='Excel' pairs with ExcelData; scheduling logic with runAt/timezone vs. interval/endCondition). These are not fully derivable from individual schema entries, so it raises the score 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 opens with a clear verb and resource: 'Create a WhatsApp broadcast campaign.' It distinguishes itself from sibling creation tools like gambot_create_template and gambot_send_text by focusing on campaign creation, and it breaks down the core variants (manual/scheduled, template/regular) without ambiguity.

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 concrete guidance on parameter combinations (messageType with wabaTemplateId vs. message, recipientSource options, scheduling configuration), which effectively tells the agent how to configure the call. However, it does not explicitly mention when to prefer this tool over siblings such as gambot_run_campaign or gambot_send_campaign, nor state exclusions (e.g., 'for a single message use send_text'). The usage context is clear but alternatives are not spelled out.

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

gambot_create_caseCreate caseC

Create a case (support ticket / פנייה). Accepts base fields plus a nested 'customFields' object.

ParametersJSON Schema
NameRequiredDescriptionDefault
stageIdNo
subjectYes
categoryNo
priorityNo
statusIdNo
contactNameNo
descriptionNo
contactPhoneNo
customFieldsNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. It states the core action (creating a case) but does not mention potential side effects, validation requirements beyond the required subject, permission needs, or what response is returned. It adds only minimal input-shape context about 'customFields'.

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 front-loaded sentence with no wasted words; the core purpose appears first, followed by a clarifying parenthetical and a brief shape note. It is concise and readable. Its brevity is a strength, though it leaves semantic gaps.

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 create operation with 9 parameters, no output schema, and no annotations, this description is under-specified. It does not explain the required subject field, parameter semantics, customFields structure, or return behavior. An agent would need additional documentation or reasoning to invoke it confidently across varied inputs.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only says the tool accepts 'base fields plus a nested customFields object.' It does not explain the meaning of subject, stageId, statusId, category, priority, contactName, description, or contactPhone. The lone structural hint about customFields is helpful but far from sufficient for a 9-parameter tool.

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 states a clear verb and resource: 'Create a case,' and clarifies the ambiguous term with '(support ticket / פנייה)'. This distinguishes it from create tools for other resources like contacts, leads, tasks, and quotes. It does not explicitly contrast with the sibling gambot_update_case, but the create/update distinction is inherent in the verb.

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 gives no guidance on when to use this tool versus alternatives such as gambot_update_case, gambot_get_case, or other create tools. There are no explicit conditions, prerequisites, or exclusions. The intended usage is only implied by the verb 'Create'.

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

gambot_create_contactCreate contactA

Create a contact (returns the existing one if the phone is already known). Custom/dynamic fields go under 'customFields' (see gambot_get_contact_fields for keys).

ParametersJSON Schema
NameRequiredDescriptionDefault
keysNoTags/lists (default Leads)
nameNo
emailNo
countryNoISO-3166 alpha-2 (e.g. 'US','IL') to internationalize a local/national phoneNumber. Optional if the organization has a saved country (set at onboarding).
phoneNumberYesPhone number, ideally E.164 international format (country code, digits only, no leading 0), e.g. 972501234567 or 12025551234. A local/national number (e.g. leading 0) is accepted when a country is provided — or when the organization has a saved country from onboarding; otherwise it's rejected as ambiguous.
customFieldsNoCustom field values, e.g. { city: 'תל אביב' }.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden and does disclose a key behavior: if the phone number is already known, the tool returns the existing contact instead of creating or updating. It does not cover error behavior, permission requirements, or duplicate-matching normalization, which would be valuable for a mutation tool with no annotation 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?

Two short sentences, front-loaded with the core behavior and then a targeted parameter pointer. There is no filler, and every clause 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?

Together the description and schema cover the required phoneNumber, phone-format rules, country ambiguity, duplicate behavior, and customFields key source. However, with no output schema, the description only partially explains return value (duplicate case) and says nothing about the success response shape or error conditions.

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

Parameters4/5

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

The description adds real value beyond the schema by telling agents that custom/dynamic fields belong under customFields and pointing to gambot_get_contact_fields for the allowed keys. The schema already covers phone format, country handling, and default keys, so the remaining gaps are minor.

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 states a concrete operation, 'Create a contact', and adds the non-obvious idempotency behavior of returning the existing contact when the phone is already known. It is unambiguous against get/update/delete siblings, though it does not explicitly name an alternative such as gambot_update_contact.

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 creation usage and gives a valuable custom-field routing instruction with a cross-reference to gambot_get_contact_fields for valid keys. However, it does not state when to prefer this over gambot_update_contact or gambot_get_contact, so the usage boundary 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.

gambot_create_invoiceCreate invoiceB

Create an invoice draft. invoiceData holds the invoice fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceDataYesInvoice fields

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations present, the description carries full responsibility for explaining behavior. It only notes that an invoice 'draft' is created, which implies a non-final state, but it does not specify permissions, whether the operation is idempotent, what side effects occur, or what the return value is.

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 only two short sentences, front-loads the main action, and contains no filler or redundant detail. Every word serves a clear purpose.

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

Completeness1/5

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

For a create tool with a complex nested parameter and no output schema, the description is far too sparse. It does not explain what fields 'invoiceData' is expected to contain, any required invoice data, or how to find it. The agent cannot safely construct a valid request from this description alone.

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 states invoiceData is 'Invoice fields' (100% coverage). The description's second sentence, 'invoiceData holds the invoice fields,' merely repeats that information and adds no extra meaning about required key, structure, or validation rules.

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 verb 'create' and the resource 'invoice draft', which clearly states the action and object. Saying 'draft' sets it apart from sibling tools like gambot_issue_invoice and gambot_update_invoice, 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?

The description provides no guidance on when to use this tool instead of gambot_update_invoice or gambot_issue_invoice. It does not state conditions, prerequisites, or alternatives, so an agent must infer usage from the name alone.

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

gambot_create_leadCreate leadA

Create a CRM lead (contact created if missing, optional template send). Accepts all base lead fields plus a nested 'customFields' object. See gambot_get_lead_fields for available fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
keysNo
nameNo
tagsNo
emailNo
notesNo
titleNo
valueNo
sourceNo
statusNo
stageIdNo
currencyNo
priorityNo
pipelineIdNo
companyNameNo
phoneNumberYesPhone number, ideally E.164 international format (country code, digits only, no leading 0), e.g. 972501234567 or 12025551234. A local/national number (e.g. leading 0) is accepted when a country is provided — or when the organization has a saved country from onboarding; otherwise it's rejected as ambiguous.
customFieldsNoCustom field values, e.g. { budget: '5000' }.
templateMessageDataNoOptional welcome template to send.

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It explicitly discloses a non-obvious side effect: 'contact created if missing'. It also surfaces the optional template-send behavior via templateMessageData factor. It does not cover auth, duplicates, or error cases, but the disclosed behaviors go well beyond the bare 'create' semantics.

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 compact sentences, front-loaded with the core action a agent needs. The side effect and optional behavior are mentioned immediately, and the cross-reference is placed at the end. No wasted words.

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?

High complexity (17 parameters, nested objects, optional template send, no output schema) but the description is minimal. It does not explain required input prerequisites beyond what the schema already provides, does not describe return values, and lacks usage context. The pointer to gambot_get_lead_fields helps but is not enough for confident invocation.

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

Parameters2/5

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

Schema description coverage is only 18%, so the description needs to compensate. It vaguely says 'Accepts all base lead fields' and points to gambot_get_lead_fields, but it does not explain the meaning of most parameters such as keys, tags, stageId, pipelineId, or priority. The parameter semantics are largely left to the agent to infer.

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 and resource: 'Create a CRM lead'. It adds meaningful scope details—contact auto-created if missing, optional template send, nested customFields—so it is clearly distinguishable from siblings like gambot_create_contact and gambot_update_lead.

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

Usage Guidelines2/5

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

No guidance on when to choose this tool over alternatives such as gambot_create_contact or gambot_send_template. The reference to gambot_get_lead_fields is about parameter discovery, not usage context. There are no exclusions or conditions stated.

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

gambot_create_orderCreate orderC

Create a store order. Body holds order fields (customer, items, total…).

ParametersJSON Schema
NameRequiredDescriptionDefault
orderYesOrder fields

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Create a store order' and lists body fields. It does not disclose whether the operation is idempotent, what happens on duplicate orders, whether it requires authentication or specific permissions, or what the response contains. For a mutation tool with zero annotation coverage, this is a significant gap.

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

Conciseness4/5

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

The description is short and front-loaded with the action ('Create a store order'). The second sentence adds a useful hint about the body contents. It is concise and every sentence earns its place, though it could be slightly more informative without becoming verbose.

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 create operation with no annotations and no output schema, the description is incomplete. It doesn't explain the expected structure of the 'order' object, any required fields, or what the response will be. Given the tool's complexity (nested object parameter) and the lack of structured metadata, the description should provide more context for an agent to call 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% for the single parameter 'order', which is described as 'Order fields'. The description adds a little context by listing example fields (customer, items, total), but it doesn't explain the structure of the order object, required subfields, or format. Baseline 3 is appropriate since the schema already documents the parameter.

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 states a specific verb and resource ('Create a store order') and lists the body contents (customer, items, total). It is clear what the tool does. It doesn't explicitly differentiate from sibling tools like gambot_create_quote or gambot_create_invoice, but the resource name 'order' and the term 'store order' provide enough distinction.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, when an order should be created, or how it relates to other order-related tools (e.g., gambot_list_orders, gambot_update_order). The description implies usage by stating 'Create a store order' but provides no context or exclusions.

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

gambot_create_paid_accountCreate paid account (no trial, card required)A

Create a new organization that goes STRAIGHT TO PAID — no free trial month. A payment method is MANDATORY: pass a card object; the card is verified with the clearing provider, its token is saved, and billing starts immediately (first charge on the next billing run). Use this when an AI agent has the customer's card and should provision a paying account in one call. Same number options and the same graceful companyInfo.timezone/country handling as gambot_create_trial_account (neither hard-fails). The raw card is sent only to the PCI-compliant clearing provider and never stored.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardYesREQUIRED. { cardNumber, expirationDate ("MM/YY" or "MM/YYYY"), cvv?, holderId? }.
planNoBasic / Premium / Enterprise.
payEachNo
simInfoNo{ hasSim, simNumberEntered, selectedSimNumber, purchaseInTwilio }.
currencyNo
companyInfoYes{ organizationName (required), timezone (IANA, recommended; derived from country if omitted), country (ISO-3166 alpha-2), companyName, idNumber, companyUrl, companyPhoneNumber }.
contactInfoNo{ contactFullName, contactEmail, contactPhoneNumber }.
useCoexistingNo
useFreeNumberNo

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and excels: it discloses immediate billing, first charge on the next billing run, card verification with the clearing provider, token persistence, and that the raw card is never stored. It also clarifies graceful timezone/country handling, which is meaningful behavioral context beyond the schema.

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

Conciseness5/5

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

The description is dense but every sentence earns its place: core behavior, mandatory card semantics, use-case trigger, comparison with the trial sibling, and security guarantee. It is front-loaded with the most decision-relevant fact (straight to paid, no trial) and contains 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?

Given a complex 9-parameter tool with no output schema and no annotations, the description is unusually complete: it covers billing behavior, security, error tolerance, and invocation context. Minor gaps remain, such as defaults for `plan`/`payEach`/`currency` and what the tool returns, but these do not severely hinder correct invocation.

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

Parameters4/5

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

Schema coverage is 56%, and the description adds significant meaning for the critical `card` parameter: it is mandatory, verified, tokenized, and not stored. It also explains companyInfo.timezone/country tolerance. However, semantics for `currency`, `simInfo`, `useCoexisting`, and `useFreeNumber` remain vague or unaddressed, with only a reference to 'same number options' as the trial 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 a specific verb and resource: 'Create a new organization that goes STRAIGHT TO PAID — no free trial month.' It explicitly contrasts with the trial path, making the tool's purpose unambiguous and distinguishing it from sibling tools like gambot_create_trial_account.

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 an explicit trigger: 'Use this when an AI agent has the customer's card and should provision a paying account in one call.' It identifies the card requirement clearly, but it does not explicitly state when NOT to use this tool or point to an alternative like gambot_add_payment_method for cases where a card should be added later.

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

gambot_create_quoteCreate quoteC

Create a price quote. quoteData holds the quote fields (title, items, total, contact…).

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteDataYesQuote fields

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It only says 'Create a price quote,' which adds little beyond the name. It doesn't mention permissions, idempotency, side effects, or what happens on success/failure. For a mutation tool, this is a significant gap.

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

Conciseness4/5

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

The description is two short sentences with no wasted words. The core purpose is front-loaded, and the parameter hint is kept brief. It is appropriately concise for a simple tool.

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

Completeness3/5

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

For a single-parameter create operation with no output schema, the description is minimally adequate but leaves out important context. It doesn't mention what the response contains, whether the quote is persisted immediately, or any validation rules. Given the lack of annotations, more detail would improve 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?

The schema already provides a description for quoteData ('Quote fields'), and coverage is 100%. The tool description adds a few example fields (title, items, total, contact), which gives slightly more context but doesn't explain required structure, nesting, or constraints. Baseline of 3 is appropriate given schema coverage and minimal added value.

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

Purpose4/5

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

The description clearly states the action ('Create a price quote') with a specific resource, and the name confirms it. However, it doesn't explicitly contrast with sibling tools like create_invoice or create_order, so an agent might not immediately know the distinction without additional context. It's clear but not maximally differentiated.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as create_invoice or create_order. There is no mention of prerequisites, workflow positioning, or scenarios where a quote is preferred over other document types. The agent must infer usage from the name alone.

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

gambot_create_taskCreate taskC

Create a task (optionally linked to a contact via contactPhone).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
dueDateNo
priorityNo
descriptionNo
contactPhoneNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only says 'Create a task', implying a mutable action, but omits any side effects, permission requirements, idempotency behavior, response format, or error handling. This is a significant gap for a mutation tool.

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

Conciseness4/5

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

The description is a single, concise sentence with no redundant wording. It front-loads the main action and optional link. While very short, it is appropriately sized for the primary purpose, though it could add a bit more context without losing conciseness.

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

Completeness1/5

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

Given 5 parameters, one enum, and no output schema, the description is grossly incomplete. It lacks details on required fields, date formats, priority values, and what the tool returns. An agent would have insufficient information to call this tool correctly. The absence of annotations further undermines completeness.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only clarifies the optional contactPhone linkage. It does not explain the meaning or format of title, dueDate, priority, or description. The schema lists types but lacks descriptions, so the brief mention of contactPhone adds minimal value without compensating for the other parameters.

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 verb 'create' and the resource 'task', and adds a distinguishing detail about optional contact linking via contactPhone. This is specific enough to differentiate from siblings like update_task or list_tasks, and is not a tautology.

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 explicit guidance is provided on when to use this tool versus alternatives. The name implies creation, but there is no mention of situations where this should be preferred over update_task or any prerequisites. The usage context is left entirely to inference.

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

gambot_create_templateCreate templateA

Create a new WhatsApp template (submitted to Meta for approval). Name must be English, lowercase_with_underscores. Components use the full Meta shape and support: a TEXT or media (IMAGE/VIDEO/DOCUMENT) HEADER, a BODY with {{1}} variables, a FOOTER, and BUTTONS (QUICK_REPLY / URL / PHONE_NUMBER). For a media header you can either put example.header_handle on the HEADER component yourself (upload it first with gambot_upload_template_media), or simply pass headerMediaUrl (a public URL) and let Gambot upload it and inject the handle.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
categoryYes
languageYesLanguage code, e.g. he / en
componentsYesTemplate components. Examples — HEADER text: {type:"HEADER",format:"TEXT",text:"Hi {{1}}",example:{header_text:["Dana"]}} | HEADER media: {type:"HEADER",format:"IMAGE",example:{header_handle:["<handle>"]}} | BODY: {type:"BODY",text:"Your order {{1}} shipped",example:{body_text:[["1234"]]}} | FOOTER: {type:"FOOTER",text:"Reply STOP to opt out"} | BUTTONS: {type:"BUTTONS",buttons:[{type:"QUICK_REPLY",text:"Track"},{type:"URL",text:"Open",url:"https://x.co/{{1}}",example:["abc"]},{type:"PHONE_NUMBER",text:"Call",phone_number:"+972500000000"}]}
gmbtMediaIdNoOptional Gambot media id (for preview).
headerFormatNoFormat for headerMediaUrl (default IMAGE).
headerMediaUrlNoOptional public media URL. If set, Gambot uploads it to Meta and injects the header_handle into the HEADER component.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses the async approval process, the strict naming constraint, and the alternative media handling (either manual header_handle injection or automatic upload via headerMediaUrl). It does not cover error handling, rate limits, or authentication requirements, but it discloses the core side effects and prerequisites.

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 written paragraph. It front-loads the purpose, then moves to constraints, component types, and media handling without redundancy. Every sentence contributes essential information, 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.

Completeness4/5

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

For a complex tool with 7 parameters and a nested components array, the description covers the essential usage: purpose, naming, component shapes, and media options. It does not explain the response format (no output schema) or error scenarios, but it covers the main decision points. The schema's component examples fill remaining gaps, so overall it is adequately 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 71% (5 of 7 params have descriptions), so baseline is 3. The description adds substantial value: it explains the naming format, the two media-header approaches, and the component structure with examples. This goes well beyond the schema's enum and type definitions, especially for the tricky components array.

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

Purpose5/5

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

The description clearly states the verb and resource: 'Create a new WhatsApp template.' It specifies the outcome ('submitted to Meta for approval') and distinguishes this tool from siblings like list/get/delete templates by focusing on creation. The naming convention and component details further clarify its unique role.

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 and even references the sibling gambot_upload_template_media as a prerequisite for one path. However, it does not explicitly state when NOT to use this tool or contrast it with other template-related tools beyond the media upload. It implies usage but lacks explicit exclusions.

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

gambot_create_trial_accountCreate trial accountA

Create a new FREE-TRIAL organization + first user (no card required). Login credentials (temp password) are emailed & WhatsApp'd to the contact. WhatsApp/number options: useFreeNumber (Meta test number) · useCoexisting (existing WhatsApp Business number in simInfo.simNumberEntered) · BYO SIM (the customer's own number in simInfo.simNumberEntered) · Buy a SIM from us (simInfo.purchaseInTwilio=true + simInfo.selectedSimNumber from gambot_search_available_numbers). GLOBAL: send companyInfo.timezone (IANA) and companyInfo.country (ISO-3166 alpha-2) — they drive scheduling and locale. Neither hard-fails: a missing/invalid timezone is derived from country (else defaults to Asia/Jerusalem). For a paid account with a card on file (no trial) use gambot_create_paid_account instead. After creating, connect WhatsApp via the returned wabaConnectUrl or gambot_exchange_waba_token.

ParametersJSON Schema
NameRequiredDescriptionDefault
planNoBasic / Premium / Enterprise.
payEachNo
simInfoNo{ hasSim, simNumberEntered, selectedSimNumber, purchaseInTwilio }. Set purchaseInTwilio=true + selectedSimNumber to buy a number from us.
currencyNoILS / USD / EUR / GBP.
companyInfoYes{ organizationName (required), timezone (IANA, recommended, e.g. "America/New_York"; derived from country if omitted), country (ISO-3166 alpha-2, e.g. "US"), companyName, idNumber, companyUrl, companyPhoneNumber }.
contactInfoNo{ contactFullName, contactEmail, contactPhoneNumber }.
useCoexistingNoUse an existing WhatsApp Business number (coexistence).
useFreeNumberNoUse Meta's free TEST number (testing only).

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses side effects (credentials emailed/WhatsApp'd), non-hard-fail behavior for timezone/country, and post-creation steps (connect via wabaConnectUrl or gambot_exchange_waba_token). It doesn't mention reversibility or permission requirements, but the disclosed behaviors are substantial.

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 dense but well-organized: it front-loads the core purpose, then explains WhatsApp options, global fields, fallback behavior, and the alternative tool. It is longer than ideal but every sentence carries useful information, and the structure is logical.

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 complex creation tool with 8 parameters, nested objects, and no output schema, the description covers the key decision points (trial vs paid, WhatsApp number sourcing, timezone/country fallback) and post-creation next steps. It doesn't describe the return value shape, but the absence of an output schema makes that a minor gap given the rich behavioral guidance.

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 88%, so the schema already documents most parameters. The description adds meaning by explaining the WhatsApp number options (useFreeNumber, useCoexisting, BYO SIM, buy a SIM) and the global timezone/country behavior, which goes beyond the raw schema. Minor gap: plan/payEach/currency semantics are not elaborated, but the schema covers 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 states a specific verb ('Create') and resource ('a new FREE-TRIAL organization + first user'), and explicitly distinguishes it from gambot_create_paid_account. It also clarifies the no-card-required aspect, making the tool's 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 Guidelines5/5

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

The description explicitly says when to use this tool vs alternatives: 'For a paid account with a card on file (no trial) use gambot_create_paid_account instead.' It also provides clear guidance on WhatsApp number options and global fields, so an agent knows exactly when and how to invoke it.

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

gambot_create_userCreate (invite) userB

Create an organization user (team member). Sends a welcome email + WhatsApp invite.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNo
emailYes
fullNameNo
languageNo
lastNameNo
firstNameNo
phoneNumberNo
securityRoleNoAdmin / StoreManager / StoreAgent / Chat / Basic / Custom

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. It does add the valuable side effect detail that a welcome email and WhatsApp invite are sent, which is beyond the tool name. However, it omits other important behavior such as what happens to a user before they accept the invite, whether admin permissions are required, or whether this action is reversible.

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

Conciseness5/5

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

The description is two short sentences, each earning its place: one defines the primary action and resource, the other names the key side effects. There is no verbosity or repetition.

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 8 parameters, no annotations, and no output schema, this description is far too thin. It gives no sense of required prerequisites, invitation flow, activation status, or success/failure return information. The only added context beyond the schema are the email/WhatsApp invite mentions, which are insufficient for dependable invocation.

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

Parameters2/5

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

Schema description coverage is only 13%, so the description should compensate the missing meaning for the 8 parameters. It does not mention or explain any parameter, not even the required email or the ambiguous `role` vs `securityRole` fields. Agents are left with only the raw schema and must infer what each optional field is for.

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 names the action explicitly: 'Create an organization user (team member)' with verb and resource, and adds a distinguishing behavior, 'Sends a welcome email + WhatsApp invite.' It clearly separates this from siblings like gambot_update_user or gambot_disable_user because it is the creation/invitation action.

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 given for when to select this tool over sibling tools such as gambot_update_user, gambot_enable_user, or gambot_delete_user. The description does not cover edge cases like pre-existing users, invitations, or when an invite rather than a fully provisioned account would be expected.

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

gambot_delete_campaignDelete campaignC

Delete a campaign by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaignIdYes

TDQS

C2.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Delete a campaign by id' with no mention that deletion is permanent, irreversible, may cascade to associated data, or require specific permissions. This is a critical omission for a destructive operation.

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

Conciseness5/5

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

The description is a single sentence that front-loads the action and resource, with no redundant words. It is perfectly concise, though this conciseness comes at the cost of substance.

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

Completeness1/5

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

For a delete tool with no annotations, no output schema, and a single parameter, the description is severely incomplete. It lacks any mention of side effects, prerequisites, confirmation steps, or error handling. An agent cannot understand the full impact of calling this tool, especially since it is destructive.

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?

With schema description coverage at 0%, the description must explain the parameter. It merely says 'by id', which clarifies that campaignId is the identifier but does not explain how to obtain it, its format, or any constraints. It adds minimal value beyond the schema's property name.

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 verb 'delete' and resource 'campaign', and explicitly identifies the parameter by id. It distinguishes from sibling campaign tools (get, create, update, run, etc.) because it is the only delete operation for campaigns. However, it is terse and doesn't add any nuance beyond the title.

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 given on when to use this tool versus alternatives. It is implied that deletion is the use case, but there are no conditions, prerequisites, or exclusions. The description does not mention that deletion is irreversible or that it might be better to archive instead.

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

gambot_delete_userDelete userA

Permanently delete an organization user (removes both the auth account and the profile). This is irreversible — prefer gambot_disable_user to just deactivate access.

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the operation is permanent and irreversible, which is the critical behavioral trait for a delete action. However, it does not mention potential side effects (e.g., cascading deletion of related data) or permission requirements, but the core destructive nature is well covered.

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 with the action front-loaded and the warning/alternative immediately following. No fluff, 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 one-parameter destructive operation, the description covers the essentials: what it does, irreversibility, and the preferred alternative. It does not describe return values (no output schema) or error conditions, but these are less critical for a delete action. The guidance is sufficient for an agent to use it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no information about the userId parameter. The parameter name is self-explanatory, but the description does not compensate for the missing schema description, failing to add meaning beyond the bare type string.

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 permanently deletes an organization user, explicitly naming what is removed (auth account and profile). It distinguishes itself from the sibling gambot_disable_user by highlighting irreversibility, so an agent can immediately tell this is the destructive delete operation versus a deactivation.

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

Usage Guidelines5/5

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

The description explicitly directs the agent to prefer gambot_disable_user for deactivation, providing a clear when-not-to-use condition. It implicitly defines when to use this tool: when permanent removal is intended. This explicit routing to an alternative is strong usage guidance.

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

gambot_disable_userDisable userC

Disable a user (status = inactive).

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Disable a user (status = inactive)' implies a state mutation and hints it is reversible, but does not state side effects, permission requirements, or what happens to the user's active data. For a state-changing tool with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

A single compact sentence with zero waste. The core action is front-loaded and the status detail is useful. Nothing extraneous.

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, no-output-schema tool, the burden is lower. The description is minimally adequate to identify the action, but lacks the usage-vs-siblings guidance and behavioral context that would make it complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it adds no meaning for userId beyond the schema's bare 'string' type. An agent gets no hint about what identifier is expected (internal ID vs. email) or where to find it.

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?

States a specific verb and resource: 'Disable a user'. The parenthetical '(status = inactive)' clarifies the effect, distinguishing it from delete_user (which removes) and enable_user (which reverses). Among many sibling tools, this is clear enough to tell apart.

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

Usage Guidelines2/5

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

No guidance on when to use this versus enable_user, delete_user, or update_user. Given several user-management siblings, the description does not help an agent choose between them or mention that enable_user reverses this action.

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

gambot_enable_userEnable userB

Enable a user (status = active).

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations exist, so the description carries full responsibility. It discloses the core state change ('status = active') but omits important behavioral context such as idempotency, behavior when the user is already active, permission requirements, or what the operation returns. For a mutation tool, this is a significant gap.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler or redundancy. Every word earns its place for a tool this simple.

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 one-parameter tool, the description is minimally adequate: it names the action and the resulting status. However, with no annotations and no output schema, it lacks return behavior, prerequisites, and edge-case handling, leaving the agent to guess some call-time expectations.

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

Parameters2/5

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

Schema description coverage is 0%, so the description would need to compensate, but it does not mention the userId parameter at all. The parameter name is self-explanatory enough to be usable, but the description adds no meaning beyond the schema's bare 'string' type declaration.

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 ('Enable') and the resource ('a user'), and adds the precise effect 'status = active'. This is easily distinguished from sibling tools like gambot_disable_user or gambot_update_user, whose scope is different.

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 intended use is implied by the verb and the status semantics, but there is no explicit guidance on when to use this tool versus gambot_update_user, nor any warning not to use it on already-active users. No alternatives or exclusions are provided.

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

gambot_exchange_waba_tokenExchange Meta code (connect WhatsApp)B

Complete Meta Embedded Signup by exchanging the authorization code returned by the Facebook popup. Registers the WABA, subscribes webhooks and registers the phone number.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesAuthorization code from the Meta Embedded Signup popup.
wabaIdNo
isCoexistingNo
organizationYes
phoneNumberIdNo
coexistingPhoneNumberNo

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of behavioral disclosure. It discloses the actions (registers, subscribes) but omits critical details such as whether the operation is destructive, reversible, requires specific permissions, or what happens on failure. There is no mention of rate limits, idempotency, or side effects beyond the stated registration steps, leaving the agent without safety 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 concise, two sentences, with the primary action front-loaded. It avoids unnecessary words and efficiently communicates the core purpose and subsequent steps. This is appropriately sized for the complexity.

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

Completeness1/5

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

Given the tool's complexity (6 parameters, no output schema, no annotations, and low schema coverage), the description is severely incomplete. It does not describe return values, error conditions, parameter interactions, or the overall flow beyond the exchange step. An agent would struggle to understand required inputs (besides code) and expected outcomes, making this inadequate for reliable invocation.

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

Parameters1/5

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

Schema description coverage is only 17% (only 'code' is described). The description explains the 'code' parameter implicitly by referencing the authorization code, but it does not clarify the meaning or role of the other five parameters: wabaId, isCoexisting, organization, phoneNumberId, and coexistingPhoneNumber. With such low schema coverage, the description fails to compensate, leaving most parameters undefined and the tool hard to call correctly.

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 clear, specific action: exchanging the Meta authorization code from the Facebook popup to complete embedded signup, then explicitly lists the subsequent effects (registers WABA, subscribes webhooks, registers phone number). This verb+resource is distinct from sibling tools like gambot_get_waba_connect_link, 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 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 after obtaining the authorization code from the Facebook popup, but it does not explicitly mention prerequisites, alternatives, or when not to use it. It lacks guidance on when to choose this tool over others, though the context of 'authorization code returned by the Facebook popup' gives a clear trigger condition.

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

gambot_generate_organization_nameGenerate organization nameB

Generate a unique organization name from a company name + tax id (adds a suffix if taken).

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYes
companyIdNumberYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose the key behavioral trait (appends a suffix when the base name is already taken, guaranteeing uniqueness), which is genuinely useful. However, it doesn't cover potential side effects, auth requirements, or what happens on failure. The suffix behavior is the most important trait and it is disclosed, so a 3 is appropriate.

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

Conciseness5/5

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

A single efficient sentence with zero wasted words. The core purpose is front-loaded, and the uniqueness behavior is appended compactly. Every element 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?

For a simple 2-parameter generation tool with no annotations and no output schema, the description covers purpose, inputs, and uniqueness behavior adequately. The main gap is that it doesn't describe the return format, which the agent would need to know how to consume the result, though a name generator's output is fairly predictable.

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 0%, so the description must compensate. It maps 'company name' to companyName and 'tax id' to companyIdNumber, clarifying their roles in the generation process. However, it doesn't add format, length, or constraint details beyond the self-explanatory parameter names. It partially compensates for the coverage gap but not fully.

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 states a specific verb+resource: 'Generate a unique organization name from a company name + tax id'. It clearly communicates the tool's function and the uniqueness guarantee (adds a suffix if taken). It implicitly distinguishes itself from all siblings, none of which perform name generation, though it doesn't explicitly name an alternative.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, and no exclusions or prerequisites are stated. The description is purely functional and leaves the agent to infer appropriate usage context on its own.

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

gambot_get_campaignGet campaignA

Get a single campaign by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaignIdYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states the action and target, without mentioning whether the operation is read-only, any permission requirements, potential side effects, or what happens if the campaign is not found. For a getter, this is a minimal disclosure but lacks depth beyond the obvious.

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 with no filler. It front-loads the action and target, and the qualifier 'by id' is essential. Every word earns its place, making it exceptionally concise and well-structured.

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 get-by-ID operation with one parameter and no output schema, the description is nearly complete. It implies the return value (the campaign) and the input (the id). The lack of annotations means some behavioral context is missing, but the tool's simplicity and the clarity of 'Get a single campaign' cover the essentials. Minor gap: no mention of error behavior or pagination, but these are not critical for a single-object getter.

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 has one required parameter, campaignId (type string), with 0% coverage from the description. The description's phrase 'by id' does imply campaignId is the identifier, adding slight meaning beyond the schema. However, it does not elaborate on the format, constraints, or how to obtain the ID. Since the parameter name is self-explanatory and there is only one, this is sufficient but not exceptional.

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 ('Get') and resource ('a single campaign'), and clarifies the key qualifier 'by id'. This clearly distinguishes it from siblings like gambot_list_campaigns (which retrieves multiple) and gambot_get_campaign_results (which retrieves results). The purpose is unambiguous and immediately actionable.

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 (when you need a specific campaign by ID) but does not explicitly state exclusions or alternatives. The name itself suggests the use case, and siblings are listed, but no explicit guidance is given about when NOT to use this vs. list or results tools. This is adequate but relies on inference.

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

gambot_get_campaign_resultsGet campaign resultsB

Get the run results/report for a campaign (sent/delivered/read/replies/clicks).

ParametersJSON Schema
NameRequiredDescriptionDefault
campaignIdYes

TDQS

B3.4/5.0
Behavior3/5

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

There are no annotations, so the description carries the full behavioral disclosure burden. It does clearly imply a read-only retrieval of campaign run metricsaine, but it does not disclose response format, whether the report is generated on demand or precomputed, pagination, error behavior, or what happens if no results exist yet.

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?

One crisp sentence, front-loaded with the action and resource, and the parenthetical adds useful specificity without wasted words. No redundancy or filler.

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 single-parameter read tool, the description gives the core purpose and key result dimensionshare. However, with no output schema and no annotations, an agent still lacks guidance on parameter source, response shape, and edge cases like unfinished campaigns, so the definition is adequate but not complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate by explaining campaignId. It does not even mention that the tool takes a campaign ID, leaving the schema property name as the only signal. The description adds no semantic detail beyond what the parameter name already reveals.

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 and resource: 'Get the run results/report for a campaign,' and enumerates the exact metrics returned (sent/delivered/read/replies/clicks). This clearly differentiates it from sibling gambot_get_campaign, which would likely return campaign configuration rather than execution report data.

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 states what the tool does, but gives no guidance about when to choose it over alternatives such as gambot_get_campaign or gambot_list_campaigns. There are no prerequisites, exclusions, or context about campaign status requirements (e.g., must have been run already).

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

gambot_get_caseGet caseC

Get a single case by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseIdYes

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the operation ('Get') without disclosing any behavioral traits such as return format, error conditions, authentication requirements, or side effects. While 'Get' implies read-only, there is no explicit statement about that or about what the response contains.

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, direct sentence with no wasted words. It is appropriately concise for a simple getter, though it borders on under-specification. The structure is clean and front-loaded with the primary action.

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 absence of annotations and an output schema, the description is too thin to fully inform an agent. It does not describe the return value, error cases, or any nuances of retrieving a case. For a tool with a single parameter, this might be borderline acceptable, but the lack of any response information makes it insufficient for confident invocation.

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

Parameters2/5

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

The schema defines a single required parameter 'caseId' with no description, and schema description coverage is 0%. The tool description does not elaborate on what 'caseId' represents, how to obtain it, or any expected format. The agent is left to infer meaning solely from the parameter name, which is minimal.

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 'Get a single case by id' clearly states the verb (get) and the resource (a single case), and distinguishes it from sibling tools like gambot_list_cases (plural) and gambot_create_case/gambot_update_case (mutations). It is not a tautology and conveys the core operation.

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

Usage Guidelines1/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. For example, it does not explain when to use get_case instead of list_cases, nor does it mention any prerequisites or context. The agent receives no direction on selection.

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

gambot_get_case_fieldsGet case fieldsA

Get case (פנייה) field definitions: { baseFields, customFields }. Custom case values are stored under a nested 'customFields' map — pass them the same way on create/update.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It does disclose a key structural/behavioral trait: custom case values are stored under a nested 'customFields' map and must be passed the same way on create/update. However, it does not explicitly state read-only semantics, absence of side effects, or any limits/pagination, so transparency is adequate but incomplete.

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

Conciseness5/5

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

Two sentences with no filler. The first sentence states the purpose and return shape; the second adds the critical customFields usage note. Every sentence earns its place, and the most important information is front-loaded.

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

Completeness4/5

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

For a zero-parameter getter with no output schema, the description is largely complete: it names the returned sections and explains the important customFields convention. It could define 'baseFields' more explicitly, but the overall complexity is low and the agent has enough to invoke the 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, so there is no parameter ambiguity. The baseline for zero-parameter tools is 4, and the description adds context about the return structure without needing to explain 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 states a clear verb-resource pair ('Get case ... field definitions') and the exact output shape ('{ baseFields, customFields }'). Adding the Hebrew term 'פנייה' removes ambiguity. It is clearly distinguishable from sibling tools like get_lead_fields and get_contact_fields because it explicitly targets cases.

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 retrieve case field definitions before creating or updating a case, especially because custom values must be passed inside a nested 'customFields' map. It does not explicitly name alternatives, but the context is strong enough for an agent to know this is the case-specific field lookup.

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

gambot_get_contactGet contactA

Fetch a contact by phone number.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesPhone number, ideally E.164 international format (country code, digits only, no leading 0), e.g. 972501234567 or 12025551234. A local/national number (e.g. leading 0) is accepted when a country is provided — or when the organization has a saved country from onboarding; otherwise it's rejected as ambiguous.

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations and no output schema, the description carries the full burden, but 'Fetch a contact' largely restates the tool's name and does not disclose behavior such as not-found handling, exact vs. partial match, authorization requirements, or return shape. It implies read-only, but adds little beyond the title.

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?

One sentence, front-loaded, and free of filler; every word contributes. It is appropriately sized for a simple single-parameter lookup 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?

The definition is largely complete for a one-parameter read operation: the schema fully describes the phone format, and the description states the operation and key. The absence of return-shape or not-found behavior is a minor gap given no output schema, but the simple getter context makes the tool callable without further information.

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 the only parameter with rich E.164/national format guidance, so the description does not need to add parameter details. It reinforces that 'phone' is the lookup key, but does not add 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?

Description uses a specific verb ('Fetch'), a clear resource ('contact'), and the lookup criterion ('by phone number'), which distinguishes it from siblings such as gambot_get_contact_fields or other getters. The tool's intent is immediately actionable.

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 'by phone number' gives a clear trigger condition: use this tool when you need a contact record and have a phone number. It does not enumerate when-not-to-use alternatives, but no competing get-contact-by-other-key tool exists among the siblings, so exclusions are not strongly needed.

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

gambot_get_contact_fieldsGet contact fieldsA

Get contact field definitions (base + custom/dynamic). Contacts store custom values as top-level keys — pass them via 'customFields' on create/update.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It reveals the return subject (base and custom/dynamic definitions), the storage convention for custom values, and the relevant create/update field. For a no-parameter read operation, this is adequate, though it does not detail auth or response shape.

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 tight, front-loaded sentences. The first states the purpose clearly; the second adds meaningful operational context about how field definitions relate to create/update calls. No filler 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 zero-parameter, no-annotation getter, the description is nearly complete: it explains what is returned and how the output connects to customFields usage. The only minor gap is the lack of an exact shape for a field definition object, but the tool remains fully callable and understandable.

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 is an empty object with zero parameters, so there are no parameter semantics for the description to add. It still contributes useful context about the 'customFields' key, but no parameter documentation is 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 verb and resource: 'Get contact field definitions (base + custom/dynamic)'. It distinguishes itself from sibling tools like get_lead_fields and get_case_fields by naming the contact resource, and from get_contact by clarifying it returns definitions, not values.

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 downstream context: custom contact values are stored as top-level keys and should be passed via 'customFields' on create/update. This implies when the output matters, but it does not explicitly name alternative field-definition tools or state when not to use this one.

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

gambot_get_conversation_messagesGet conversation messagesC

Read the message history for a single conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNo
phoneYesPhone number, ideally E.164 international format (country code, digits only, no leading 0), e.g. 972501234567 or 12025551234. A local/national number (e.g. leading 0) is accepted when a country is provided — or when the organization has a saved country from onboarding; otherwise it's rejected as ambiguous.
beforeNo
pageSizeNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. It confirms the operation is read-only by saying 'Read', but it does not disclose ordering, pagination semantics, the meaning of `after`/`before`, or how the phone number identifies a conversation.

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

Conciseness5/5

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

The description is a single clear sentence with no waste. It front-loads the core action and object, making the purpose immediately readable.

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 low schema coverage, absence of annotations, and absence of an output schema, the description is too sparse. It should compensate by explaining the `phone`-to-conversation mapping, the meaning of `after`/`before`, and pagination behavior, especially because `pageSize` has no description.

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

Parameters1/5

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

Only 25% of the parameters have schema descriptions, and the tool description adds no parameter-level meaning. `after`, `before`, and `pageSize` are left entirely to their schema types, and the description does not clarify how `phone` selects a conversation or how the temporal filters interact.

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's action ('Read') and resource ('message history for a single conversation'), so an agent can tell this is a read-only message retrieval tool. It does not explicitly contrast it with the adjacent `gambot_list_conversations`, but the singular 'single conversation' plus 'messages' makes the core purpose specific enough.

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 gives only a high-level purpose and no explicit guidance on when to use this tool versus alternatives such as `gambot_list_conversations` or the other `gambot_get_*` tools. It could be improved by noting, for example, that this Tool should be used when a conversation has already been identified and its full message history is needed.

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

gambot_get_documentGet document templateC

Get a single document template.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It only restates the read operation and says nothing about the response shape, missing-template behavior, permissions, or whether the tool returns template content versus metadata.

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 only six words, front-loaded, and free of filler, which is appropriate for a simple getter. It loses a point only because the extreme brevity leaves important usage and behavioral details unstated.

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 one-parameter getter with no annotations and no output schema, the description is minimally usable: an agent can infer that templateId identifies the template to fetch. However, it does not distinguish this from gambot_get_template or indicate what the response contains.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain templateId beyond what the property name implies. It does not specify the expected format, where the ID comes from, or how it relates to a document template.

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 uses a specific verb ('Get') and a specific singular resource ('single document template'), so the basic action is clear. However, it does not differentiate this tool from closely named siblings such as gambot_get_template or gambot_get_document_submissions.

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 instead of alternatives like gambot_list_documents, gambot_get_template, or gambot_get_document_submissions. No mention is made of prerequisites, such as how templateId should be obtained.

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

gambot_get_document_submissionsGet document template submissionsC

Get fill-only submissions generated from a document template.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
templateIdYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that it retrieves fill-only submissions, but doesn't mention pagination behavior, limits, error handling, or what constitutes a 'fill-only' submission. No details about response format or potential edge cases are given, leaving significant behavioral ambiguity.

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 that front-loads the core action. It avoids verbosity and gets straight to the point. However, it is under-specified, so while concise, it sacrifices essential details.

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 absence of an output schema, annotations, and parameter descriptions, this tool is incompletely specified. The description doesn't explain what the submissions contain, how they are returned, or any constraints (e.g., time range, ordering). For a tool with only two parameters, an agent needs more context to use it correctly, especially since sibling tools like gambot_get_form_submissions may have richer descriptions.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the description adds no meaning to the parameters. The description doesn't explain what templateId refers to (beyond the obvious) or what the limit parameter controls (e.g., default value, maximum behavior). The agent must rely solely on the parameter names and types, which is inadequate for correct invocation, especially for the optional limit.

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 a specific verb ('Get'), a specific resource ('fill-only submissions'), and its source ('document template'). It distinguishes itself from generic submission retrieval by specifying 'fill-only' and 'document template', which helps differentiate from sibling tools like gambot_get_form_submissions. However, it does not explicitly name the alternative, so it falls short of a perfect 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. It doesn't mention conditions, exclusions, or reference any sibling tools. An agent would have to infer usage context from the name alone, which is insufficient for a tool with many similar getters.

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

gambot_get_formGet web formC

Get a single web form definition.

ParametersJSON Schema
NameRequiredDescriptionDefault
formIdYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the basic retrieval action and gives no detail about what the definition contains, whether the operation has side effects, what errors may occur, or what the response looks like. The verb 'Get' implies read-only behavior, but that is not made explicit.

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 no filler or repetition. It front-loads the core action and resource. It is appropriately brief for such a simple single-parameter tool, though it could have used the space to add more behavioral or parameter context.

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 no annotations, no output schema, and no parameter description, the definition is under-specified. The agent is left without information about the return value, possible failure modes, or how formId should be supplied. More context is needed for reliable invocation.

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

Parameters2/5

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

Schema description coverage is 0%, yet the description adds no meaning about the formId parameter beyond what its name implies. It does not explain how to obtain formId, its format, or its role in retrieving the definition. With no schema description and no parameter detail in the tool description, the agent gets minimal semantic help.

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 uses a specific verb ('Get') and resource ('single web form definition'), clearly indicating this tool retrieves one form by ID. The word 'single' differentiates it from gambot_list_forms, and 'definition' separates it from form links or submissions. This is clear, though it does not explicitly name sibling alternatives.

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 about when to use this tool versus siblings like gambot_list_forms, gambot_get_form_link, or gambot_get_form_submissions. No prerequisites, alternatives, or exclusions are mentioned. Usage is only weakly implied by the phrase 'single web form definition.'

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

gambot_get_form_submissionsGet web form submissionsB

Get submissions (results) for a web form.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
formIdYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behavior. It only says 'Get submissions' and does not mention pagination behavior, how `limit` affects results, default ordering, response shape, or error conditions. For a retrieval tool this is a mild but real transparency gap.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. The parenthetical '(results)' usefully clarifies that 'submissions' refers to the submitted data. All words earn their 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?

For a simple get-by-form operation with two parameters and no output schema, the description is minimally sufficient: it names the resource and what is returned. Still, it omits practical context like pagination/default ordering and how `limit` interacts with retrieval, leaving an agent to infer behavior.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain either `formId` or `limit` beyond the raw schema. The description adds no parameter meaning; it does not state that formId identifies the web form, that limit caps returned results, or what the limit's maximum of 5000 implies.

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 ('Get') and a specific resource ('submissions (results) for a web form'). This clearly distinguishes it from siblings like gambot_get_document_submissions and gambot_get_form because it targets web-form submissions rather than document submissions or form metadata.

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 clearly implies when to use this tool: whenever submission results for a web form are needed. However, it does not explicitly state when not to use it or mention alternatives such as gambot_get_document_submissions, so the guidance is adequate but implicit.

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

gambot_get_invoiceGet invoiceB

Get a single invoice by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceIdYes

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral burden. 'Get' clearly implies a read-only operation, but the description does not disclose response shape, error behavior, permissions, or whether the full invoice object is returned.

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 short sentence with no filler. The key information is front-loaded and the phrasing is appropriately compact for a simple one-parameter getter.

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 is adequate for a simple one-parameter retrieval tool, but with no output schema and no annotations, the agent is left to assume the return object and error behavior. A brief note about the response would make it complete.

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

Parameters2/5

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

Schema description coverage is 0%, and the only parameter invoiceId has no description. Saying 'by id' adds minimal meaning beyond the property name, but it does not specify the expected identifier format or how to obtain it, so the description does not sufficiently compensate.

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

Purpose4/5

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

The description clearly states the action (Get), the resource (invoice), and the selection mechanism (single by id). It is distinct from list_invoices and update_invoice, though it does not explicitly name those sibling tools.

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

Usage 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 like gambot_list_invoices or gambot_update_invoice. 'Single' implies a one-record fetch, but the agent must infer the appropriate context without explicit direction.

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

gambot_get_leadGet leadA

Get a single lead by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
leadIdYes

TDQS

A3.5/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden. 'Get' clearly communicates a non-mutating read operation, and 'by id' indicates the selection mechanism. Still, it does not disclose error behavior, authorization requirements, or response shape, leaving some behavioral details implicit.

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 filler or redundant phrasing. It immediately conveys the essential operation and is appropriately sized for a simple one-parameter lookup tool.

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

Completeness3/5

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

For a one-parameter read operation, this definition is workable: the resource, ID parameter, and read semantics are clear. However, with no annotations and no output schema, the description leaves return format and edge-case behavior to the agent's assumptions, making it adequate but not complete.

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

Parameters3/5

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

The schema only defines leadId as a required string; the description's 'by id' tells the agent that leadId is the identifier used to look up the lead. This adds a bit of meaning beyond the schema, but the description does not provide format, source, or additional constraints, and schema description coverage is 0%.

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 states a specific action ('Get'), a resource ('a single lead'), and the lookup method ('by id'). This makes it clear that the tool retrieves one lead rather than listing leads, and it is distinguishable from siblings like gambot_list_leads and gambot_get_lead_fields, though it does not name them explicitly.

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 usage context is implied: use this when you have a specific lead ID and need that single lead. However, the description gives no explicit when-to-use/when-not-to-use guidance or alternatives, so the agent must infer the appropriate choice from the name and schema.

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

gambot_get_lead_fieldsGet lead fieldsA

Get lead field definitions: { baseFields, customFields }. Custom lead values are stored under a nested 'customFields' map — pass them the same way on create/update.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden and does a solid job: it explains that custom lead values are stored under a nested 'customFields' map and that the same structure must be used on create/update. It does not explicitly state that the call is read-only, but the tool name and lack of parameters make that reasonably clear.

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 tight sentences with no filler. The core purpose is front-loaded, and the nested customFields guidance earns its place by preventing a common create/update mistake.

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 parameterless getter with no output schema, the description is complete: it names the response components, explains the nested structure, and connects that structure to related create/update tools. There are no missing inputs to clarify and no output schema to compensate for.

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 the baseline is 4; there is nothing the description needs to clarify about inputs. The description instead adds value by explaining the semantic structure of the returned fields, which is more useful than repeating parameter schema information.

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 and resource: retrieving lead field definitions, and it specifies the exact returned shape as { baseFields, customFields }. It is clearly distinguishable from sibling tools like gambot_get_lead (retrieving a lead record) and gambot_get_contact_fields (different entity) without needing to open schemas.

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 noting that custom field values must be passed the same way on create/update, which tells the agent when the returned definitions are relevant. However, it does not explicitly say when to prefer this tool over alternatives or mention any exclusion criteria.

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

gambot_get_orderGet orderB

Get a single order by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderIdYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does communicate a read-only, single-result operation, but it says nothing about not-found behavior, return structure, idempotency, or any side effects. The behavioral info is minimal.

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

Conciseness5/5

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

The description is a single front-loaded sentence with zero filler. Every word contributes to the tool's core purpose, which is appropriate for such a simple one-parameter getter.

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 trivial one-parameter read operation, the description is minimally viable: the agent knows what to call and which argument is required. However, it lacks any mention of output shape, error cases, or distinction from list_orders, so it is not fully complete for an agent navigating many sibling tools.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only restates that the order is fetched 'by id' and adds no meaning beyond the parameter name 'orderId' already present in the schema. No format, source, or validation context is provided.

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 and resource: 'Get a single order by id.' It clearly distinguishes this from list_orders, update_order, and other order-related tools while matching the get-by-id pattern of sibling tools.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus list_orders or other alternative tools. It implies a single-order lookup but never states exclusions or conditions, leaving the agent to infer the appropriate context.

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

gambot_get_quoteGet quoteC

Get a single quote by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must carry the behavioral disclosure burden. It only conveys a read-style operation through the word 'Get' and says nothing about response format, not-found behavior, permissions, or potential 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?

One short, front-loaded sentence with no filler. It conveys the essential operation efficiently.

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 tool is simple and the description is enough to make a plausible call with quoteId, but there is no output schema, no annotations, and no guidance on where quoteId comes from or what the response contains. For a get-by-id tool this is barely adequate.

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

Parameters2/5

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

Schema description coverage is 0% and the only parameter has no description. The phrase 'by id' adds only minimal semantic weight because the parameter name quoteId is already self-describing; no format, source, or example is given.

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 states a specific action ('Get'), a clear resource ('a single quote'), and the retrieval key ('by id'). It is distinguishable from list_quotes by the 'single' qualifier, though it does not explicitly name sibling alternatives.

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 about when to use this tool instead of list_quotes, update_quote, or create_quote. The only implied context is that you already have a quoteId, but no when-not-to-use or alternative routing is provided.

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

gambot_get_signatureGet signature documentB

Get a single e-signature document, including its signing results.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full behavioral burden. It states it includes signing results, which is useful, but does not disclose whether the operation is read-only, requires specific permissions, or what happens if the document is not found. It fails to mention any side effects or limitations.

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

Conciseness5/5

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

The description is concise and front-loaded: it states the primary function and a key detail (signing results). No fluff or redundancy.

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?

As a simple get-by-id tool with one parameter required allem in schema, the description is minimally sufficient to understand the basic operation Dove. However, given no output schema and no annotations, adding context about response format or errors would improve completeness.

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

Parameters2/5

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

Schema coverage is 0%, so the description must explain the parameter. It does not elaborate on the documentId format (e.g., is it a UUID?) or any constraints. The name implies the documentId identifies the signature document, but that is minimal.

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 it retrieves a single e-signature document with its signing results, using a specific verb 'Get' and resource 'e-signature document'. It distinguishes from siblings like gambot_list_signatures (list all) and gambot_get_signature_link (get link), though it doesn't explicitly name them.

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 it is used for retrieving a specific signature document by ID, given the required documentId parameter. However, it does not explicitly state when to use this over siblings like gambot_list_signatures or gambot_get_signature_link, nor provide any alternative context.

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

gambot_get_taskGet taskA

Get a single task by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of conveying behavior. 'Get' clearly indicates a read operation and implies non-destructive behavior, but the description does not disclose what happens for missing IDs, authorization requirements, or response shape. This is acceptable for a simple get-by-id tool but not richly transparent.

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 filler. Every word adds meaning: 'Get' states the action, 'single task' states the resource scope, and 'by id' states the lookup key. It is concise without being under-specified.

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 one required parameteraine and no output schema, the description is largely sufficient: the agent knows what action to take and which parameter to fill. It does not cover edge cases like task-not-found or authorization, but given the low complexity of a single-id lookup, the missing information is relatively minor.

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 0%, so the description must compensate. It adds 'by id,' which maps directly to the taskId parameterBern, but it does not explain the format, expected value semantics, or any constraints beyond the schema's required field declaration. The parameter name is self-explanatory, but the description provides minimal 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 and resource: 'Get a single task by id.' It clearly states the tool returns one task rather than a list, which distinguishes it from list_tasks, create_task, and update_task. The phrase 'single' and 'by id' adds precision beyond the title.

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 appropriate use case: retrieving exactly one task when the task ID is known. It does not explicitly name alternatives or exclusions, but the 'single task by id' wording provides clear context for when this tool should be selected over list_tasks or update_task.

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

gambot_get_templateGet templateA

Get a single template by id, including Meta approval status.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations present, the description carries the behavioral burden. It communicates that this is a read operation (get) and that the result includes Meta approval status, which is useful. However, it does not disclose authentication needs, error behavior, or response format implications.

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 filler. It communicates the core operation and a valuable extra detail compactly.

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 get-by-id tool with one required parameter, the description is mostly adequate. However, with no output schema and no mention of response shape or where the template ID comes from, an agent still has meaningful gaps that the description does not close.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the undocumented templateId parameter. 'By id' merely restates the parameter name and does not explain the ID format, its origin, or how it relates to other template operations. This is insufficient for a low-coverage schema.

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

Purpose5/5

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

The description states a specific operation ('Get a single template by id') on a clear resourceressing. The phrase 'including Meta approval status' adds a distinctive detail that separates it from generic listing tools and other getters. It is unambiguous and immediately tells an agent what this tool does.

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?

'Get a single template by id' clearly establishes that this tool is for retrieving one specific template when the caller has a templateId. It does not explicitly name alternatives like list_templates or get_template_variables, but the singular 'by id' condition makes the intended use clear.

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

gambot_get_template_variablesGet template variablesC

Get the dynamic variables of a template.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYes

TDQS

C2.2/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It only states the purpose (getting dynamic variables) but does not mention that this is a read-only operation, whether it requires any permissions, or what the response format looks like. No behavioral traits are disclosed beyond the action itself.

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 with no superfluous words, making it concise and front-loaded. It is appropriately sized for the simplicity of the tool, though the brevity limits its informativeness.

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

Completeness2/5

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

Given the tool's simplicity (one parameter, no output schema), the minimal description is barely adequate. However, it omits any details about the return value structure, whether the template must already exist, or any preconditions. For an agent to call it correctly, more context would be helpful, especially given the large sibling toolset.

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

Parameters1/5

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

The input schema has 0% description coverage, and the description does not explain the 'templateId' parameter at all. The tool name and description do not hint at what kind of identifier is expected (e.g., a GUID, a numeric ID) or how it relates to templates. The description adds no value beyond the schema definition.

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 verb 'Get' and the resource 'dynamic variables of a template', making the tool's purpose transparent. However, it does not explicitly differentiate from sibling tools like gambot_get_template, relying on the tool name rather than description to set it apart.

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

Usage Guidelines1/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, such as whether it should be called before sending a template to obtain required variables, or if it overlaps with gambot_get_template. The description provides no context or exclusions.

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

gambot_get_userGet userA

Get a single user by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. 'Get' and 'single...by id' convey a read-only, one-record lookup, but the description does not mention possible 404 behavior, required authorization, or the shape of the returned user. This is acceptable for a simple getter but not richly transparent.

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: 'Get a single user by id.' Every word adds relevant information and there is no filler or repetition.

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 get-by-id tool with one parameter, the description is close to adequate. However, there is no output schema and no mention of what the response contains or what happens when the user does not exist, so the contextual picture is 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 schema has no parameter descriptions, but the description clarifies that the sole parameter, userId, is the id of the user to retrieve. This adds some meaning beyond the bare schema, yet it does not explain id format or any constraints, leaving the parameter semantics minimally viable.

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 and resource: 'Get a single user by id.' The word 'single' distinguishes it from list-style tools like gambot_list_users, and it is clearly scoped to the user resource rather than the many other get_* siblings.

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

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 it: when a single user is needed by id. However, it does not explicitly mention alternatives like gambot_list_users for fetching multiple users or gambot_get_contact for non-user lookups, so the usage guidance is merely implied rather than stated.

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

gambot_issue_invoiceIssue invoiceB

Issue an invoice — locks it and assigns the official document number.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceIdYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It usefully discloses that the operation locks the invoice and assigns an official number, implying irreversibility. However, it does not mention error conditions, permissions, or what happens if the invoice is already issued.

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 tight sentence with no filler. The core action is front-loaded, and the distinguishing effect follows immediately in the em-dash clause.

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 one-parameter tool with no output schema, the description covers the essential action and its main side effect. Still, it lacks a note about required prior state or irreversibility, which would make it fully complete for an agent deciding to call it.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate. It does not explicitly explain that invoiceId is the identifier of the invoice to lock and number, though the singular parameter name makes this partially inferable.

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 states a specific action ('Issue an invoice') and clarifies the key effect: 'locks it and assigns the official document number.' This distinguishes it from create/update/list/get invoice siblings, though it never names an alternative explicitly.

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 gives no guidance on when to use this tool versus create_invoice, update_invoice, or other invoice tools. It implies finalization via 'locks it' but never states prerequisites, such as the invoice being a draft or not already issued.

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

gambot_list_campaignsList campaignsB

List all broadcast campaigns for the organization.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only says 'List all broadcast campaigns' and does not disclose whether this is read-only, whether it returns paginated results, what fields are included, or whether it includes scheduled/draft campaigns. The word 'broadcast' adds some scope but not behavioral detail.

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?

One sentence, no filler, and the key scope ('broadcast campaigns') is front-loaded. 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?

For a zero-parameter list tool, the description is minimally adequate: it names the resource and scope. However, with no output schema and no annotations, it would benefit from stating whether the result is a list of campaign IDs/names and whether any filtering or pagination applies. The sibling list shows many campaign-related tools, so a bit more differentiation 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 there is no parameter semantics burden. The description's mention of 'broadcast campaigns' clarifies the resource scope, which is the only semantic context needed. Baseline 4 for zero params 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 states a specific verb ('List') and resource ('broadcast campaigns') and scopes it to the organization. It is clear enough to distinguish from related tools like gambot_list_scheduled_campaigns and gambot_get_campaign, though it does not explicitly name those siblings.

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: call this when you need all broadcast campaigns for the organization. It does not explicitly state when to prefer this over gambot_list_scheduled_campaigns or gambot_get_campaign, nor does it mention any exclusions or alternatives.

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

gambot_list_casesList casesC

List cases (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo
pageSizeNo
pageNumberNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must carry the full behavioral burden. It only discloses that results are paginated; it does not mention ordering, defaults, what search filters against, or whether this is a read-only operation.

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 words and every word earns its place. It is front-loaded and contains no filler or repetition.

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 is too sparse for a tool with three parameters and no output schema. It omits pagination defaults, the semantics of the search parameter, and any indication of what the response contains.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no meaning to any parameter. 'search' remains ambiguous, and pageSize/pageNumber are only self-explanatory by their names, not by the description.

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 names a specific verb ('List') and resource ('cases'), making the core action clear. It also notes pagination, which distinguishes it from the singular gambot_get_case, though it does not explicitly contrast with any sibling.

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 like gambot_get_case or gambot_list_leads. Usage context is only implied by the name and title, not actually stated.

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

gambot_list_conversationsList conversationsC

List conversations (contacts) ordered by most recent message.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo
pageSizeNo
pageNumberNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It provides one behavioral detail: conversations are ordered by most recent message. However, it does not disclose pagination defaults, search behavior, return shape, or any side effects. For a list operation, this is thinner than the safety-critical information the tool.

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, front-loaded sentence with no filler, which makes it concise and easy to parse. It does not devote space to unnecessary explanations. However, the conciseness crosses into under-specification—the sentence is too short to cover the tool's important parameter and behavioral details.

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 tool has 3 parameters, no output schema, and no annotations, so the description must provide all usage context. It does not explain return values, the search filter's behavior, pagination defaults, or any execution context. An agent cannot build a correct invocation from this description and the bare schema alone.

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

Parameters1/5

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

All three parameters (search, pageSize, pageNumber) have zero schema descriptions, and the tool description mentions none of them. The description adds no meaning beyond the parameter names in the schema, and since schema_description_coverage is 0%, this is a critical gap—the agent has no way to understand what 'search' filters, default page size, or how pagination works.

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

Purpose4/5

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

The description clearly states the action (list), resource (conversations), and even clarifies that conversations are contacts. It also specifies ordering by most recent message, which helps differentiate it from the broad set of sibling list tools. However, it doesn't explicitly distinguish itself from related tools like gambot_get_conversation_messages by name, so the differentiation is implicit.

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 given about when to use this tool versus alternatives, when to use the search parameter, or how pagination should be handled. The description simply states what it does, leaving the agent to infer the appropriate use context from the tool name. Many siblings exist, but none are referenced as alternatives.

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

gambot_list_documentsList document templatesC

List document templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations at all, the description carries full responsibility for behavioral disclosure. It merely states the action without revealing what the tool returns (e.g., list structure, pagination), whether it is read-only, or any limits beyond the schema's maximum. The lack of any behavioral detail leaves a significant gap.

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

Conciseness3/5

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

The description is extremely concise, consisting of a single sentence with no wasted words. However, it is under-specifying rather than appropriately concise; it lacks necessary context for effective tool selection. Conciseness is achieved at the expense of informativeness.

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 listing tool with one optional parameter and no output schema, the description does not provide enough context for an agent to know what to expect. It does not mention the response format, whether results are paginated, or how to interpret the limit parameter. Given the presence of similar sibling tools, more differentiation is needed.

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

Parameters2/5

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

Schema description coverage is 0% because the description does not mention the 'limit' parameter. The schema defines it as an integer with a maximum of 1000, but the description adds no meaning about how it affects results (e.g., pagination, default behavior). Since coverage is low, the description should compensate but does not.

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 verb and resource: 'List document templates.' It is specific enough to indicate the action, but it does not differentiate from the sibling tool gambot_list_templates, which may refer to a different type of template (e.g., WhatsApp message templates). The purpose is clear but lacks distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like gambot_list_templates or gambot_get_document. The agent must infer based on naming, which is not reliable. There are no mentions of exclusions or prerequisites.

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

gambot_list_formsList web formsC

List web forms.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action and gives no information about pagination, return format, authentication requirements, or whether results are limited. It does not contradict annotations (none exist), but it fails to reveal any behavioral traits beyond the implied read-only nature of 'list'.

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

Conciseness2/5

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

The description is extremely short (three words), but it is under-specified rather than concise. It essentially repeats the title and adds no value. Every sentence should earn its place; this one does not, as it provides no information beyond the tool's name. There is no front-loading of useful details because there are none.

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

Completeness2/5

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

Given the tool's simplicity (one optional parameter, no output schema, no annotations), the description is incomplete for an agent to correctly invoke it. The agent does not know what a 'web form' is in this context, what the response structure looks like, or how to paginate using the limit parameter. Sibling tools like gambot_get_form and gambot_get_form_submissions further complicate selection, but the description offers no clarifications.

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

Parameters1/5

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

The schema has one parameter (limit, integer, max 1000) with 0% description coverage. The description does not mention the limit parameter at all, nor does it explain its purpose or effect. Since the schema lacks descriptions, the description must compensate but does not, leaving the agent without any understanding of how to use the limit parameter.

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 'List web forms' clearly states a specific verb (list) and resource (web forms), distinguishing it from sibling tools like gambot_get_form (retrieve a single form) and gambot_get_form_submissions (get submissions). It is not a tautology because it names the resource explicitly, though it lacks additional qualifiers such as 'all' or 'available'.

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. It does not mention, for example, that gambot_get_form should be used for a single form, or that gambot_get_form_submissions is for submissions. The description provides no contextual cues for selection among the many list/get siblings.

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

gambot_list_invoicesList invoicesC

List invoices (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
searchNo
statusNo
pageSizeNo
pageNumberNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It mentions 'paginated', which hints at paging, but does not disclose any other behaviors such as filtering, ordering, default page size, limits, or whether it returns only non-deleted invoices. For a tool with five optional parameters, this is a significant gap.

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

Conciseness3/5

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

The description is a single, concise sentence that gets to the point. It is appropriately sized for the minimal info it conveys, but it is not over-bloated. However, it earns no credit for adding extra structure or front-loading important disclaimers; it's just a bare statement.

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

Completeness1/5

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

Given the tool's complexity—five optional parameters, no output schema, and no schema descriptions—the description is woefully incomplete. It omits any mention of the parameters, return format, pagination mechanics, or any filtering capabilities. Compared to sibling list tools, it lacks the context needed to choose and use it correctly.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no parameter information whatsoever. The schema lists parameters like 'type', 'search', 'status', 'pageSize', and 'pageNumber', but the description doesn't explain what these do or how to use them. An agent would have no way to correctly fill in these parameters based on the description alone.

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 verb 'List' and the resource 'invoices', which distinguishes it from other invoice-related tools like get_invoice or update_invoice. However, it doesn't explicitly differentiate from other list tools (e.g., list_campaigns), though the resource name alone is sufficient to identify its purpose. It also mentions pagination, which is a specific behavior.

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 like get_invoice or list_campaigns. It doesn't state that this is for retrieving multiple invoices, nor does it mention any preconditions, such as needing an organization context. The description implies a listing operation but gives no contextual cues.

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

gambot_list_leadsList leadsC

List leads (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo
pageSizeNo
pageNumberNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description alone must disclose behavior. It reveals only that results are paginated; it does not state read-only status, default page size/page number, behavior with no arguments, or whether search filters server-side or client-side. This is minimal behavioral disclosure.

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

Conciseness3/5

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

The description is very short and front-loaded, with no filler words. However, it is mostly a repetition of the title with only '(paginated)' as new content, and it lacks enough structure to qualify as a genuinely helpful definition.

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 three optional parameters, no output schema, and no annotations, this description is under-specified. It omits search semantics, pagination defaults, result format, and any guidance about large result sets. An agent can issue the call but cannot fully predict or control its behavior.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain 'search', the meaning of pageSize/pageNumber, or pagination defaults. The parenthetical 'paginated' hints at the pagination parameters but adds no semantic detail beyond what the schema already shows.

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 uses a specific verb and resource ('List leads') and adds the key qualifier 'paginated'. Among the many sibling list_* tools, the resource name clearly differentiates this operation. However, it doesn't describe the lead scope, filters, or return shape, so it falls short of a full 5.

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 vs alternatives, no exclusions, and no mention of complementary tools like gambot_get_lead or gambot_create_lead. With dozens of sibling list tools, an agent gets no routing help beyond the resource name.

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

gambot_list_ordersList ordersC

List orders (optionally filtered by status / store / date range).

ParametersJSON Schema
NameRequiredDescriptionDefault
dateToNo
statusNo
storeIdNo
dateFromNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'List orders' and mentions filters; it does not disclose whether the operation is read-only (though listing implies it), whether results are paginated, what the response shape is, or any side effects. This is a minimal description that leaves the agent guessing about behavior.

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, compact sentence that front-loads the core action and lists filters in parentheses. It is appropriately sized for a simple list operation, though it could add a bit more behavioral context without becoming bloated.

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 list tool with no annotations, no output schema, and 0% schema description coverage, the description is too thin. An agent needs to know whether results are paginated, what the response format is, and what valid status values are. The sibling list tools (e.g., gambot_list_campaigns, gambot_list_leads) suggest a pattern, but the description itself does not provide enough context.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the four parameters. It mentions 'status / store / date range' which covers status, storeId, and dateFrom/dateTo conceptually, but it does not explain the expected format for dates, whether status values are enumerated, or whether storeId is an ID string. The description adds some meaning but leaves significant gaps.

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 states a clear verb ('List') and resource ('orders'), and mentions optional filters (status, store, date range) that map to the parameters. It is distinguishable from siblings like gambot_get_order (singular) and gambot_create_order, though it doesn't explicitly name them.

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 this is the tool for retrieving multiple orders, and the optional filters suggest when to use them. However, it provides no explicit guidance on when to prefer this over gambot_get_order or other list tools, and no context about pagination or result limits.

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

gambot_list_quotesList quotesC

List price quotes (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo
statusNo
pageSizeNo
pageNumberNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It reveals only that the result is paginated, which is a minor behavioral trait. It does not disclose return format, authentication requirements, side effects, ordering, or any constraints beyond pagination. For a list operation with no annotation coverage, this is insufficient.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no filler words. It is appropriately concise for a simple list operation, though it borders on under-specification. For a tool with only a name and title, it conveys the core purpose efficiently.

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 no output schema, no annotations, and four optional parameters with no descriptions, the description is far from complete. It does not explain the response structure (beyond pagination), how filters work, or any constraints like the pageSize maximum (even though the schema includes max: 200). An agent would not have enough context to call this tool correctly without additional inference.

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

Parameters1/5

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

The schema has 0% description coverage, and the description does not mention any of the four parameters (search, status, pageSize, pageNumber). It fails to explain what these parameters mean or how they affect results. Since the description provides no semantic value beyond the parameter names, it does not compensate for the lack of schema descriptions.

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

Purpose4/5

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

The description clearly states the action ('List') and the resource ('price quotes'), and adds the pagination detail. It is specific enough to distinguish from other list tools in the sibling set like list_leads or list_cases, though it does not explicitly contrast with get_quote. The verb and object are clear and not a tautology.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., get_quote for a single quote, or list_invoices for a different resource). There is no mention of scenarios where this tool is appropriate or when another should be chosen. The description offers no context on filtering or typical use cases.

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

gambot_list_scheduled_campaignsList scheduled campaignsA

List scheduled campaigns that are waiting to run.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. The verb 'List' implies a read-only operation and 'waiting to run' clarifies the campaign state, but the description does not mention response shape, pagination, or other behaviors. This is minimally adequate for a simple no-parameter list operation.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every word adds meaning by identifying the operation, the resource, and the relevant state.

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 list operation, the description is nearly complete: an agent knows what to expect and how to invoke it. The main gap is the lack of differentiation from gambot_list_campaigns and the absence of any return-format hints, but the tool's low complexity reduces the impact of these omissions.

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 properties, so there are no parameters to document. The baseline for a no-parameter tool is 4, and the description's 'scheduled campaigns waiting to run' effectively defines the implicit selection criteria.

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 'List' and identifies a precise resource: scheduled campaigns that are waiting to run. It clearly distinguishes this from the sibling gambot_list_campaigns by narrowing to the scheduled/waiting state.

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 gives no guidance on when to use this tool instead of gambot_list_campaigns or other campaign-related tools. It does not state any exclusions, prerequisites, or alternative conditions, leaving the choice to inference.

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

gambot_list_signaturesList signature documentsB

List e-signature documents (newest first).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. 'List' implies a non-destructive read and 'newest first' discloses ordering, but the description does not mention pagination, response shape, or any side effects/authorization requirements.

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

Conciseness5/5

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

One short sentence with the key action and ordering front-loaded; no filler.

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 list tool, the description is minimally viable: it names the resource and order. It is incomplete because it does not clarify the default/meaning of limit, pagination, or how this relates to the sibling document/signature tools.

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?

The schema describes only 'limit' with a maximum of 1000 and no textual description, and the tool description does not mention it. The parameter is fairly self-explanatory and constrained, but the description adds no semantic value for it.

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 uses a specific verb ('List') and a specific resource ('e-signature documents'), and adds a sort order ('newest first'), so an agent knows what the tool returns. It does not distinguish itself from the sibling gambot_list_documents, so it misses the top level of differentiation.

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 statement of when to use this tool versus gambot_list_documents, gambot_get_signature, or gambot_get_signature_link. The ordering hint implies a listing use case, but no explicit when/when-not guidance is present.

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

gambot_list_tasksList tasksB

List tasks for the organization.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must carry behavioral disclosure, but it only says 'List tasks'. It does not mention result format, pagination, whether all tasks are returned, or whether the operation is a safe read; this is a meaningful gap for a listing operation.

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 entire description is a single sentence with no filler; the verb and resource are front-loaded. It is concise, though it sacrifices behavioral context for brevity.

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 zero-parameter list operation, 'List tasks for the organization' is a minimum viable description: there are no inputs to specify. However, without an output schema or annotations, it does not state what the returned task data looks like or any list limits, leaving moderate 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?

The tool has zero parameters and an empty input schema, so there is no parameter semantics for the description to clarify. Per the 0-parameter baseline, the lack of parameter details is acceptable and non-penalizing.

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 names a specific action ('List') and resource ('tasks') with an organizational scope, which makes the basic purpose clear. It is distinguishable from sibling list tools because the resource is explicit. It does not, however, elaborate on whether this includes all task states or only active tasks.

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 choose list_tasks over alternatives like get_task, list_leads, or list_campaigns. There are no stated exclusions or conditions, so an agent must infer usage solely from the name.

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

gambot_list_templatesList templatesA

List all WhatsApp templates for the organization.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 'List' clearly indicates a read-only operation)Skip plausible destructive behavior, and 'all' signals broad scope. Yet it does not disclose potential pagination, output shape, authentication requirements, or any rate limits, though these are minor for such a simple operation.

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?

ExampleSingle sentence with no wasted words. The key components (verb, resource, scope) are front-loaded and clearly presented. Every part 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 zero-parameter list operation with no output schema, the description is nearly complete. An agent can confidently call it, knowing it returns all WhatsApp templates. Minor gaps exist around what template details are included (e.g., status, language) but these are not critical for the basic operation.

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 takes no parametersgit, and schema description coverage is 100% vacuously. With zero parameters, the expected baseline is 4. The description adds no parameter-specific semantics but provides organizational context ('WhatsApp templates') that frames the output, which is sufficient.

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 ('List') with a clear resource ('WhatsApp templates') and scope ('for the organization'). It clearly distinguishes itself from siblings like gambot_get_template (single template) and gambot_create_template (create), establishing a distinct purpose without needing to reference them.

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 it lists all templates, so an agent can infer to use this when a complete collection is needed. However, it gives no explicit guidance on when to prefer this over gambot_get_template or other template-related tools, nor does it mention any exclusions or alternatives.

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

gambot_list_usersList usersA

List organization users (excluding system bots).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral disclosure burden. It does add one useful filter ('excluding system bots'), but it does not mention response format, read-only guarantees, ordering, or pagination. This is adequate for a simple list call but not richly transparent.

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 filler. The verb, resource, and scope qualifier are immediately visible, and every word adds value.

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

Completeness3/5

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

For a zero-parameter tool, invocation requirements are fully specified. However, with no output schema, the description does not indicate what a successful response contains or whether limits/pagination apply, leaving a mild but real gap for an agent planning to consume the result.

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 an empty input schema, so there is nothing the description needs to clarify about parameters. The baseline of 4 applies because no parameter semantics are required.

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 ('List') and resource ('organization users'), and adds a meaningful scope qualifier ('excluding system bots'). This clearly distinguishes it from user-management siblings like get_user, create_user, update_user, delete_user, enable_user, and disable_user.

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 for enumerating organization users, but it does not explicitly state when to use it over get_user or other user-related tools. No alternatives or when-not-to-use conditions are named, so usage context is only implied through the verb/resource pair.

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

gambot_run_campaignRun campaignA

Run an existing (saved) campaign by id now (resolves recipients and executes).

ParametersJSON Schema
NameRequiredDescriptionDefault
campaignIdYes

TDQS

A3.5/5.0
Behavior3/5

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

The description discloses that the tool 'resolves recipients and executes', which implies side effects (sending messages). With no annotations provided, this is useful but minimal. It doesn't mention irreversibility, rate limits, or that it may send real messages to real recipients.

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?

One sentence, front-loaded with the action and resource, and includes the key behavioral note about resolving recipients and executing. No wasted words.

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

Completeness3/5

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

For a single-parameter action tool with no output schema, the description is adequate but thin. It doesn't mention that this is a real-world send action with potential cost/impact, nor does it reference how to obtain campaignId. Given the tool's side-effect nature, more context would help.

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 0%, so the description must compensate. It explains that campaignId refers to an existing saved campaign, which adds some meaning beyond the bare schema. However, it doesn't specify the format or where to find the ID (e.g., via list_campaigns).

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 states a specific verb ('Run') and resource ('an existing (saved) campaign by id'), and clarifies that it resolves recipients and executes. It distinguishes from create/update/test/list campaign siblings, though it doesn't explicitly name them.

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 for executing a saved campaign immediately, which is a clear context. However, it doesn't explicitly state when not to use it or mention alternatives like test_campaign or send_campaign_from_excel.

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

gambot_search_available_numbersSearch phone numbers to buy (by country)A

List phone numbers available to purchase for a country (via Twilio), so you can pick one to buy as the account's SIM/number. Pass the chosen phoneNumber to gambot_create_trial_account / gambot_create_paid_account as simInfo.selectedSimNumber with simInfo.purchaseInTwilio=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberTypeNoDefault local.
countryCodeYesISO-3166 alpha-2 country code, e.g. "US", "GB", "IL".

TDQS

A4/5.0
Behavior3/5

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

Annotations are absent, so the description must carry the full behavioral burden. 'List' implies a read-only operation, which is helpful, but it does not disclose the output format (fields like phone number, price, or availability), pagination, rate limits, or any authentication requirements. The downstream usage adds context but does not compensate for the missing behavioral details.

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

Conciseness5/5

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

Two sentences with zero waste. The first sentence states the action and purpose; the second gives concrete next-step guidance. Every sentence earns its place, and the structure is front-loaded with the primary 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?

Given the tool's low complexity (2 params, 1 required) and full schema coverage, the description provides enough context: it names the source (Twilio), the purpose, and how to use the result. It does not describe the output fields (e.g., whether the list includes pricing), but this is reasonably inferable for a listing tool. Overall, it is sufficiently complete for an agent to call 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%, so both parameters (countryCode and numberType) are already fully described in the schema. The description adds no extra meaning for the parameters themselves; it only explains how the output is consumed. Thus 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 a specific verb ('List'), a clear resource ('phone numbers available to purchase'), and the purpose ('so you can pick one to buy as the account's SIM/number'). It clearly differentiates from the many create/update siblings by focusing on the search step, and it even names the downstream tools that consume the result.

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 provides clear usage context: use this tool when you need to find a phone number to purchase for an account. It gives explicit downstream instructions (pass the chosen phoneNumber to gambot_create_trial_account/gambot_create_paid_account with simInfo.selectedSimNumber and purchaseInTwilio=true). It does not explicitly mention alternatives, but no direct alternative exists among siblings, so this is adequate.

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

gambot_send_campaignSend ad-hoc campaignA

Run an ad-hoc campaign WITHOUT saving it first. Provide an audience (recipientPhoneNumbers, excelRecipients or filters) and the message (messageType='Template'+templateId, or 'regular'+message). Compliance is built in: every org has an ACTIVE opt-out flow (recipients reply הסר/stop/unsubscribe to be excluded from future broadcasts); the response echoes it under optOut (enabled=true) and your consent-to-mail under consent.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNoCRM segment { filters:[...], logic } → resolved to phones.
messageNo
templateIdNo
messageTypeYes
fromNumberIdNo
defaultCountryNoISO-3166 alpha-2 (e.g. 'US','IL') to internationalize local/national recipient numbers. Optional if the organization has a saved country (set at onboarding); otherwise numbers must be full E.164 or the send is rejected.
excelRecipientsNoPer-recipient: [{ phone, variables:{var1:..}, rowData:{} }].
consentConfirmedNoAssert you have consent to mail this audience. Defaults to true. Recipients can always opt out (see `optOut` in the response).
recipientPhoneNumbersNoExplicit phone list.

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and covers key traits: the campaign is not persisted, opt-out is active for every org, and the response exposes optOut and consent. It does not detail irreversibility of sends, rate limits, or authorization requirements, but it adds substantial behavioral context beyond a simple action statement.

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 two sentences, front-loads the primary purpose, and each clause adds useful content: audience, message, and compliance behavior. The compliance sentence is dense but informative, so the length is justified.

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 9-parameter tool with no output schema or annotations, the description gives the essential calling pattern but leaves gaps: it never explains how fromNumberId is used, what the full response contains, or exact constraints on nested filters/excelRecipients. It is adequate for a first call but not fully 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 only 56%, but the description explains the two valid message configurations (Template+templateId vs regular+message) and the three audience alternatives, which is non-obvious from required=messageType alone. It does not clarify all remaining parameters such as fromNumberId or the exact shape of filters, but it compensates for the main ambiguity.

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 opens with a specific action and resource: run an ad-hoc campaign without saving it. It names the audience and message options, which makes the tool's scope clear, though it does not explicitly contrast itself with siblings like gambot_run_campaign or gambot_send_campaign_from_excel.

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 clearly states when to use the tool: send a campaign immediately without a saved draft, and it tells the caller what inputs they are expected to supply (audience plus message). It gives context but no explicit when-not-to-use or alternative tool names.

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

gambot_send_campaign_from_excelSend / schedule a template broadcast from an Excel/CSVA

Broadcast a WhatsApp TEMPLATE to everyone in an Excel/CSV the user gave you — the easiest way to do a mail-merge blast. YOU (the agent) read the sheet and pass: rows (one object per row, keyed by the column header), phoneColumn (which column holds the phone), and the variable mapping — either variableColumns (ordered: 1st column → {{1}}, 2nd → {{2}}, …) or variableMapping ({ var1:'ColName', var2:'ColName2' }). TIP: call gambot_get_template_variables first to see how many variables the template expects, then map columns to them. Sends immediately by default; to SCHEDULE add scheduling fields (scheduleType:'once' + runAt + timezone, or scheduleType:'repeated' + interval/intervalNumber/endCondition) — scheduled sends are saved as a campaign. Every original column is also stored per-recipient (rowData) so later automations can use any value by name. Compliance is built in: the org's ACTIVE opt-out flow (reply הסר/stop/unsubscribe) auto-excludes recipients from future broadcasts; the response echoes it under optOut (enabled=true) and your consent under consent.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsYesThe sheet rows as objects keyed by column header, e.g. [{ "Name":"Dana", "Phone":"972501234567", "Order":"A-11" }].
runAtNoFirst/only run datetime, e.g. 2026-07-01T09:00:00 (interpreted in `timezone`).
messageNoFree-text message (used only when templateId is not provided).
intervalNo
timezoneNoIANA timezone, e.g. Asia/Jerusalem, America/New_York.
templateIdNoTemplate id to broadcast (messageType=Template). Omit and set `message` for free text.
phoneColumnYesThe column header that holds the phone number, e.g. 'Phone'.
campaignNameNoIf set (or any scheduling field is set) the campaign is SAVED; otherwise it's an immediate ad-hoc send.
endConditionNo{ type:'none'|'until'|'count', value:'...' }
fromNumberIdNoSender Meta phone_number_id (multi-number orgs).
scheduleTypeNo
defaultCountryNoISO-3166 alpha-2 (e.g. 'US','IL') to internationalize local/national phone numbers in the sheet. Optional if the organization has a saved country (set at onboarding); otherwise numbers must be full E.164 or the send is rejected.
intervalNumberNoEvery N intervals (recurring).
variableColumnsNoOrdered column headers mapped to template variables: [ col→{{1}}, col→{{2}}, … ].
variableMappingNoAlternative to variableColumns: { var1:'ColName', var2:'ColName2' } (keys 'var1' or '1').
consentConfirmedNoAssert you have consent to mail this list. Defaults to true. Recipients can always opt out (see `optOut` in the response).
contactFieldColumnsNoOptional { contactFieldName: 'ColName' } — saved onto the contact (e.g. { email:'Email' }).

TDQS

A4.9/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full behavioral burden — and it delivers. It discloses that scheduled sends are saved as a campaign, that every original column is stored per-recipient as rowData for later automations, that the org's opt-out flow auto-excludes recipients, that the response echoes optOut/consent, and that numbers without a saved org country must be full E.164 or the send is rejected. This is rich, honest behavioral disclosure for a mutation tool.

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

Conciseness4/5

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

The description is a dense block but every sentence earns its place given 17 parameters and no annotations. It front-loads the core purpose before diving into parameter mechanics, scheduling, and compliance. It is efficient rather than padded, though it could be broken into cleaner sub-sections for readability. No waste, just length justified by complexity.

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 17 params, nested objects, no output schema, and no annotations, this is about as complete as it gets. It covers core usage, both variable-mapping strategies, scheduling semantics, rowData persistence, compliance/opt-out, consent, and the defaultCountry rejection rule. It even previews response fields (optOut, consent) despite the lack of an output schema. Nothing an agent needs to call it correctly is missing.

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?

Despite 88% schema coverage, the description adds substantial meaning: it explains the rows structure (one object per row keyed by column header), the ordered vs named distinction between variableColumns (1st column → {{1}}) and variableMapping, the semantics of scheduling fields, and the defaultCountry internationalization caveat. It clarifies relationships the schema leaves implicit (variableColumns vs variableMapping as alternatives, scheduling fields forcing campaign save).

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 leads with a specific verb+resource: 'Broadcast a WhatsApp TEMPLATE to everyone in an Excel/CSV' and frames it as a 'mail-merge blast', which instantly distinguishes it from the single-recipient siblings gambot_send_template and gambot_send_text. The title also adds the scheduling dimension ('Send / schedule'). Purpose is unambiguous and well-differentiated from a large sibling list.

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

Usage Guidelines5/5

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

It explicitly instructs the agent to read the sheet and pass specific fields, gives a concrete TIP to call gambot_get_template_variables first to learn the expected variable count, and clearly separates immediate sends from scheduled ones ('Sends immediately by default; to SCHEDULE add...'). The 'easiest way to do a mail-merge blast' framing implies the alternative is the single-recipient send tools. Both when and how are covered.

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

gambot_send_templateSend WhatsApp templateA

Send an approved WhatsApp template with variables. Can initiate a conversation even outside the 24-hour window.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesPhone number, ideally E.164 international format (country code, digits only, no leading 0), e.g. 972501234567 or 12025551234. A local/national number (e.g. leading 0) is accepted when a country is provided — or when the organization has a saved country from onboarding; otherwise it's rejected as ambiguous.
countryNoISO-3166 alpha-2 (e.g. 'US','IL') to internationalize a local/national number in `to`. Optional if the organization has a saved country (set at onboarding).
variablesNoBody variables in order
templateIdYesTemplate id/name

TDQS

A4/5.0
Behavior3/5

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

There are no annotations, so the description must carry the behavioral burden. It usefully notes that the template must be approved and that this can initiate a conversation outside the 24-hour window, but it does not mention side effects, delivery semantics, or failure 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?

Two short sentences with no filler. The main action is front-loaded and the unique policy detail is stated immediately after.

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 straightforward send action, the description plus the fully documented schema is enough for an agent to invoke it correctly. Minor gaps remain around requiring an existing templateId and matching variable counts, but 'approved' and the schema mitigate this.

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% and the parameters are already well documented. The description only reinforces that variables accompany the template and does not add meaningful parameter-level detail 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 uses a specific verb ('send') and resource ('approved WhatsApp template with variables'), which clearly distinguishes it from sibling tools like gambot_send_text. The added note about the 24-hour window further pinpoints the tool's unique purpose.

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

Usage Guidelines4/5

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

It gives a clear use context: sending templates, including outside the 24-hour customer-service window. It does not explicitly name alternatives or state when not to use it, so it falls just short of full when/when-not guidance.

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

gambot_send_textSend WhatsApp textA

Send a free-text WhatsApp message. Only works inside the 24-hour customer service window; outside it, use gambot_send_template.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesPhone number, ideally E.164 international format (country code, digits only, no leading 0), e.g. 972501234567 or 12025551234. A local/national number (e.g. leading 0) is accepted when a country is provided — or when the organization has a saved country from onboarding; otherwise it's rejected as ambiguous.
textYesMessage body
countryNoISO-3166 alpha-2 (e.g. 'US','IL') to internationalize a local/national number in `to`. Optional if the organization has a saved country (set at onboarding).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations are absent, so the description carries the behavioral disclosure burden. It discloses a critical WhatsApp policy constraint—the 24-hour window—and notes the fallback path for out-of-window sends. It does not describe response behavior or delivery semantics, but the core behavioral trait is clearly surfaced.

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, tight sentence with the core action first and the constraint/alternative immediately after. Every word earns its place, and there is no redundant restatement of the title or schema.

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 send tool with fully documented parametershare, the description covers the main selection logic and behavioral constraint. It omits what the response contains or whether delivery is guaranteed, but those are secondary given the simplicity of the operation and the rich 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%, and the schema already explains `to`, `text`, and `country` in detail, including E.164 formatting and country ambiguity handling. The description adds little parameter-level information beyond calling the message 'free-text', so a 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 states a specific action ('Send a free-text WhatsApp message') and clearly names the resource. It also distinguishes this tool from gambot_send_template by emphasizing 'free-text', so an agent can tell them apart at a glance.

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

Usage Guidelines5/5

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

The description gives an explicit condition for use ('inside the 24-hour customer service window') and names the exact alternative for the opposite case ('use gambot_send_template'). This is direct when-to-use and when-not-to-use guidance.

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

gambot_test_campaignTest campaign (single recipient)A

Send a single-recipient TEST of a template or free-text message. Great for previewing before a full broadcast.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesPhone number, ideally E.164 international format (country code, digits only, no leading 0), e.g. 972501234567 or 12025551234. A local/national number (e.g. leading 0) is accepted when a country is provided — or when the organization has a saved country from onboarding; otherwise it's rejected as ambiguous.
countryNoISO-3166 alpha-2 (e.g. 'US','IL') to internationalize a local/national number in `to`. Optional if the organization has a saved country (set at onboarding).
messageNo
variablesNoTemplate variables, e.g. { var1: 'Dana' }.
templateIdNo
messageTypeNoDefaults to Template if templateId is set.
fromNumberIdNo

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. 'TEST', 'single-recipient', and 'previewing' disclose that this is a scoped, non-broadcast action, but it does not clarify side effects such as whether a real message is delivered, whether a campaign record is created, or how results are returned.

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 operation and followed by the usage context. No filler or redundancy.

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 is sufficient for tool selection and basic invocation, and the schema documents several parameters well. But with no output schema and no annotations, important context is missing: what the tool returns, whether the test message is actually sent, and whether the operation has side effects beyond the single recipient.

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 description adds useful high-level meaning by indicating that either a template or a free-text message can be sent, which guides the use of templateId vs message. However, schema coverage is only 57%, and the description does not compensate for undocumented parameters like fromNumberId or clarify the messageType behavior further.

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 ('Send') and resource ('single-recipient TEST of a template or free-text message'), and clearly scopes the operation as a preview rather than a full broadcast. This differentiates it from siblings like gambot_send_template and gambot_send_campaign 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?

It explicitly identifies the intended context: 'Great for previewing before a full broadcast.' This gives clear when-to-use guidance, though it does not state exclusions or explicitly name alternative tools.

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

gambot_update_campaignUpdate campaignB

Update a campaign (send the full campaign object).

ParametersJSON Schema
NameRequiredDescriptionDefault
campaignYesThe full campaign object to save.
campaignIdYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It hints at full-replacement semantics ('send the full campaign object') but does not explain side effects, error behavior, auth requirements, or that missing fields may be reset. This is insufficient for a mutation tool.

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

Conciseness5/5

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

The description is a single, tightly written sentence that immediately conveys the essential operation and the key requirement. Every word earns its place, with no filler or redundancy.

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 a nested, arbitrary-property object and no output schema, the description is too sparse. It does not explain the structure of the 'campaign' object, what happens on success or failure, or the role of 'campaignId'. An agent would have insufficient information to construct a valid request without external guidance.

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 50% (only 'campaign' has a description). The description clarifies that 'campaign' must be the full object, adding meaning beyond the schema. However, it provides no additional context for 'campaignId', which is described only as required in the schema without any description. The added value is partial.

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 ('Update') and the resource ('a campaign'), and specifies that it requires the full campaign object, distinguishing it from create or delete operations. It's specific and not a tautology.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like create_campaign or delete_campaign. It does not mention conditions, alternatives, or when not to use it, leaving the agent to infer usage solely from the name.

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

gambot_update_caseUpdate caseA

Update a case — only the provided fields are changed. Accepts base fields plus a nested 'customFields' object (merged with existing custom values).

ParametersJSON Schema
NameRequiredDescriptionDefault
caseIdYes
stageIdNo
subjectNo
categoryNo
priorityNo
statusIdNo
descriptionNo
customFieldsNo

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral burden. It discloses two important traits: unspecified base fields are left untouched, and customFields are merged rather than replaced. This addresses the main destructive risks, though it does not cover auth, error behavior, or return values.

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

Conciseness5/5

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

Two sentences with no filler. The critical partial-update guarantee is front-loaded, and the second sentence adds the non-obvious customFields merge behavior without redundancy.

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

Completeness4/5

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

For a moderate-complexity update tool with 8 parameters and no output schema, the description covers the essential invocation semantics: required caseId is in the schema, partial update behavior is explicit, and customFields merge behavior is clear. It stops short of describing return values or error conditions, but an agent can call the tool correctly with the given information.

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 0%, so the description must compensate. It adds useful meaning by categorizing top-level properties as 'base fields' and clarifying that customFields is nested and merged with existing values. It does not, however, explain the semantics of individual base fields, though their names are self-explanatory.

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?

States a specific verb ('Update') and resource ('case'), and adds a precise semantic: only the provided fields are changed. This clearly differentiates it from create/list/get case tools and from a hypothetical full-replace 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 intended use is implied: modify an existing case by passing caseId plus optional fields. However, the description does not explicitly mention when not to use it, such as 'use gambot_create_case when the case does not exist yet,' nor does it name alternatives among the sibling tools.

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

gambot_update_contactUpdate contactA

Update a contact — only the provided fields are changed. Custom fields go under 'customFields'.

ParametersJSON Schema
NameRequiredDescriptionDefault
keysNo
nameNo
emailNo
phoneYesPhone number, ideally E.164 international format (country code, digits only, no leading 0), e.g. 972501234567 or 12025551234. A local/national number (e.g. leading 0) is accepted when a country is provided — or when the organization has a saved country from onboarding; otherwise it's rejected as ambiguous.
customFieldsNo

TDQS

A3.5/5.0
Behavior3/5

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

There are no annotations provided, so the description carries the full burden. It discloses partial update behavior ('only the provided fields are changed') which is good, but it doesn't state whether the update is idempotent, what happens with invalid or missing fields, whether it requires authentication, or what the response looks like. It adds some value beyond the schema.

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

Conciseness5/5

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

The description is a single sentence that is direct and front-loads the key behavior. No fluff, 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?

Given the tool has 5 parameters and no output schema, the description is sparse. It tells the agent the core behavior but lacks guidance on how to identify the contact (e.g., use 'keys'), what 'customFields' expects, or any restrictions. It's adequate but leaves notable 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 coverage is only 20%, and the description adds minimal parameter semantics beyond the schema. It only mentions custom fields explicitly; it doesn't elaborate on 'keys' or other parameters. However, the schema already has a detailed description for 'phone', but the others are bare. The description doesn't compensate for the low coverage.

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 updates a contact and specifies that only provided fields are changed, distinguishing it from create_contact and get_contact. It mentions custom fields are handled under 'customFields'. This is clear but doesn't explicitly differentiate among the many update_* siblings.

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?

It implies that you use this tool to update an existing contact's fields, and that only provided fields are changed, which is useful guidance. However, it doesn't explicitly state when to use it over create_contact or get_contact, nor mention any prerequisites like needing an existing contact ID (though 'keys' parameter hints at that).

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

gambot_update_invoiceUpdate invoiceB

Update invoice fields (blocked once issued/locked).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYes
invoiceIdYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It adds one genuine behavioral fact — updates are rejected once issued/locked — which is valuable. However, it does not disclose whether the `fields` payload merges with or fully replaces existing values, nor any permission requirements or side effects of the mutation.

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 six-word sentence with the action front-loaded and the critical constraint packaged in a parenthetical. Every word earns its place with zero filler, though it is quite terse.

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 no annotations, no output schema, and two undocumented parameters (one a nested object), the description supplies only the lock constraint. It omits fields-object semantics, merge/overwrite behavior, and return-value expectations, so an agent lacks enough detail to safely invoke it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the undocumented parameters. It clarifies that `fields` holds updatable invoice fields, but it does not specify what keys are valid inside the object nor the expected format of `invoiceId`, leaving an agent to guess the payload shape for a nested-object parameter.

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 states a specific verb ('Update') and resource ('invoice fields'), and adds a differentiating constraint: '(blocked once issued/locked)'. This clearly separates it from siblings like gambot_create_invoice and gambot_issue_invoice, though it does not name them explicitly.

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 parenthetical '(blocked once issued/locked)' implies the tool is only usable on unissued/unlocked invoices, giving a useful when-not-to-use signal. However, it never explicitly mentions alternatives such as gambot_create_invoice or gambot_issue_invoice, leaving routing between siblings to inference.

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

gambot_update_leadUpdate leadA

Update a lead — only the provided fields are changed. Accepts any base field plus a nested 'customFields' object (merged with existing custom values).

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
notesNo
titleNo
valueNo
leadIdYes
statusNo
stageIdNo
priorityNo
customFieldsNo

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations to lean on, the description discloses the key behavioral trait: a partial update that preserves unspecified fields and merges customFields rather than replacing them. This is essential for an agent to avoid accidental overwrites, even though permissions, error handling, and side effects are not addressed.

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 26 words across two sentences: purpose first, then the one crucial non-obvious detail (partial update plus customFields merge). There is no redundant text; every clause contributes to correct usage without going long.

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 nine parameters, one nested object, no output schema, and no annotations, the description is too thin. It omits how leadId must refer to an existing lead, what a successful response looks like, whether updates are idempotent, and what happens when leadId or values are invalid, leaving the agent with significant uncertainty.

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?

The schema has 0% description coverage, so the description must carry parameter meaning; it only adds 'base field' vs 'customFields' split and the merge behavior. It does not explain what specific fields like stageId, value, priority, or status mean, leaving the agent to guess allowed formats or values.

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 clear verb and resource, 'Update a lead,' and immediately identifies the tool as mutating the lead entity, distinguishing it from create/get/list siblings by resource and action. Adding the partial-update semantic ('only the provided fields are changed') makes the specific method of update unmistakable.

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 this tool is for modifying an existing lead by passing only desired fields, and it clarifies how customFields are handled. However, it never explicitly names alternatives like 'create a a lead with gambot_create_lead' or excludes other update tools, leaving the when-not-to-use nuance to inference.

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

gambot_update_orderUpdate orderB

Update order fields (merge).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYes
orderIdYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. The term 'merge' is genuinely useful because it discloses that the operation patches/merges fields rather than replacing the whole order. However, it does not disclose side effects, permission requirements, idempotency, or response behavior.

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 extremely concise and front-loads the core action and resource. It contains no wasted words, but it is so minimal that it borders on under-specification rather than efficient completeness.

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 2-parameter tool with no annotations, no output schema, and a free-form fields object, this description is not sufficient for an agent to call the tool confidently. It leaves unclear what fields are supported, what a successful update returns, and what error or authorization behavior to expect.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only adds the word 'merge' and the phrase 'order fields.' It does not explain what fields are valid, how the fields object should be structured, or what orderId represents beyond the parameter name. The schema's bare object type provides little help.

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 and resource ('Update order fields') and adds the merge qualifier, making it clear this is a partial-modification tool rather than a create or retrieval operation. This differentiates it from siblings like gambot_create_order and gambot_get_order, and resource naming separates it from other update_* 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?

The description does not state when to use this tool versus alternatives such as gambot_create_order, gambot_get_order, or other update tools. The word 'merge' implies an existing order, but no explicit context, prerequisites, or exclusions are provided.

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

gambot_update_quoteUpdate quoteC

Update quote fields (partial).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYes
quoteIdYes

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It reveals that the update is partial (likely meaning only provided fields are changed), but omits side effects, error behavior, permissions, or return format. This is a minimal disclosure that barely exceeds what the name implies.

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

Conciseness2/5

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

The description is a single short sentence, but it is under-specified rather than appropriately concise. It fails to provide necessary context about parameters or usage, so it is not well-structured for guiding an agent.

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

Completeness1/5

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

Given the tool's complexity (nested object, no annotations, no output schema), this description is severely incomplete. It lacks any information about allowed field names, data types, error conditions, or return values, making it insufficient for correct invocation.

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

Parameters1/5

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

The schema has 0% description coverage and the description adds no meaning to the parameters. It does not explain what quoteId represents or the structure/expected keys of the 'fields' object. The agent cannot infer how to construct valid inputs from this description.

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 identifies the action (update) and the resource (quote fields), and adds 'partial' to indicate a scoped update. This distinguishes it from create_quote and other update tools, though it doesn't enumerate specific updatable fields.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like create_quote or get_quote. There is no mention of prerequisites, conditions, or exclusions, leaving the agent to infer usage from the name alone.

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

gambot_update_taskUpdate taskB

Update a task — only the provided fields are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
statusNo
taskIdYes
dueDateNo
priorityNo
descriptionNo
assignedToIdNo
assignedToNameNo

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the full disclosure burden. It does reveal partial-update behavior ('only the provided fields are changed'), which is genuinely useful. However, it does not disclose mutation safety, permission requirements, reversibility, or response behavior for a mutation tool, leaving significant gaps.

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

Conciseness5/5

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

A single, front-loaded sentence with zero filler. The core action and the partial-update caveat are stated immediately, achieving maximum efficiency. This is genuinely concise rather than merely under-specified.

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 an 8-parameter mutation tool with no annotations, no output schema, and no parameter documentation, the description is inadequate. An agent cannot determine valid status values, date formatting, or how partial updates interact with required fields. The description is too thin relative to the tool's complexity.

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

Parameters2/5

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

Schema description coverage is 0% and the description adds no parameter-level meaning. It does not clarify the free-form 'status' string, the dueDate format, the relationship between assignedToId and assignedToName, or that only taskId is required. With 8 parameters and zero coverage, the description fails to compensate.

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?

States a specific verb (update) and resource (task), and adds the useful nuance 'only the provided fields are changed,' which clarifies partial-update semantics. It is distinct from gambot_create_task but doesn't explicitly differentiate among the many sibling update_* tools, though the resource naming largely self-selects.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as gambot_update_contact or gambot_get_task. There is no mention of prerequisites (e.g., task must exist), no exclusions, and no note about what happens to unset fields beyond the single partial-update hint. Usage context is entirely left to inference.

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

gambot_update_userUpdate userC

Update user fields — only the provided ones are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNo
emailNo
statusNo
userIdYes
fullNameNo
languageNo
lastNameNo
userNameNo
firstNameNo
phoneNumberNo
securityRoleNo

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral transparency burden. It does disclose one important behavioral trait: only provided fields are changed, signaling PATCH-like semantics. However, it says nothing about required permissions, validation behavior, side effects, or response format, leaving significant gaps for a mutation tool.

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

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words, and the key partial-update behavior is front-loaded. It is appropriately concise, though it could still include more behavioral context without becoming bloated.

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?

An 11-parameter update tool with no schema descriptions, no annotations, and no output schema needs far more context to be reliably invoked. The description only covers patch semantics and leaves field meanings, required constraints, and return behavior entirely unaddressed.

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

Parameters2/5

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

Schema description coverage is 0% with 11 parameters and no parameter documentation in the schema. The description adds general partial-update semantics but does not explain any individual field such as role, status, email, or securityRole. This is insufficient compensation for the complete lack of per-parameter documentation.

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 states a clear action and resource: 'Update user fields'. It also adds the key partial-update semantic, 'only the provided ones are changed', which distinguishes it from create/delete or full replacement operations. It does not explicitly name sibling tools, but the intent is unambiguous enough.

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 gives no guidance on when to use this tool versus alternatives like gambot_disable_user, gambot_enable_user, gambot_delete_user, or gambot_create_user. The partial-update phrasing implies it is for field-level updates, but no exclusions or alternative routing are provided.

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

gambot_upload_template_mediaUpload template mediaA

Upload a public media URL (image/video/document) to Meta and get a reusable header_handle for a template's media HEADER. Use the returned headerHandle inside a HEADER component: {type:'HEADER',format:'IMAGE',example:{header_handle:[headerHandle]}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic URL of the media to upload.
typeNoOptional MIME type, e.g. image/png, video/mp4, application/pdf.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry transparency. It does disclose the external write ('Upload ... to Meta') and that the handle is reusable, which is useful. However, it does not mention permissions, rate limits, irreversibility, or failure modes, leaving some side-effect behavior undisclosed.

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 with no filler. The primary action is front-loaded, and the usage example is compact and immediately actionable. 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?

Since there is no output schema, explaining the return value is essential—the description does this and even demonstrates how to use the header_handle. It lacks minor details like supported MIME type examples or whether the URL must be globally accessible, but these are partially covered by the schema and are not blocking.

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%, and both parameters already have clear descriptions. The description adds no additional meaning beyond the schema; it reinforces that the URL must be public, but that is already stated. 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?

States a specific operation ('Upload a public media URL ... to Meta'), the resource (media for a template header), and the output ('reusable header_handle'). It clearly differentiates from sibling tools by focusing on the media upload step for a HEADER component, rather than template creation or messaging.

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

Usage Guidelines4/5

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

Provides clear context: this tool is for obtaining a header_handle, and the description shows exactly how to embed it in a HEADER component. It implies the workflow (upload first, then reuse handle in template) but does not explicitly name alternatives or say 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 78 tool updatesv1.0.0
    • First observedgambot_add_payment_method
    • First observedgambot_check_organization
    • First observedgambot_create_campaign
    • First observedgambot_create_case
    • First observedgambot_create_contact
    • First observedgambot_create_document_link
    • First observedgambot_create_invoice
    • First observedgambot_create_lead
    • First observedgambot_create_order
    • First observedgambot_create_paid_account
    • First observedgambot_create_payment_link
    • First observedgambot_create_quote
    • First observedgambot_create_task
    • First observedgambot_create_template
    • First observedgambot_create_trial_account
    • First observedgambot_create_user
    • First observedgambot_delete_campaign
    • First observedgambot_delete_user
    • First observedgambot_disable_user
    • First observedgambot_enable_user
    • First observedgambot_exchange_waba_token
    • First observedgambot_generate_organization_name
    • First observedgambot_get_campaign
    • First observedgambot_get_campaign_results
    • First observedgambot_get_case
    • First observedgambot_get_case_fields
    • First observedgambot_get_contact
    • First observedgambot_get_contact_fields
    • First observedgambot_get_conversation_messages
    • First observedgambot_get_document
    • First observedgambot_get_document_submissions
    • First observedgambot_get_form
    • First observedgambot_get_form_link
    • First observedgambot_get_form_submissions
    • First observedgambot_get_invoice
    • First observedgambot_get_lead
    • First observedgambot_get_lead_fields
    • First observedgambot_get_order
    • First observedgambot_get_quote
    • First observedgambot_get_signature
    • First observedgambot_get_signature_link
    • First observedgambot_get_task
    • First observedgambot_get_template
    • First observedgambot_get_template_variables
    • First observedgambot_get_user
    • First observedgambot_get_waba_connect_link
    • First observedgambot_issue_invoice
    • First observedgambot_list_campaigns
    • First observedgambot_list_cases
    • First observedgambot_list_conversations
    • First observedgambot_list_documents
    • First observedgambot_list_forms
    • First observedgambot_list_invoices
    • First observedgambot_list_leads
    • First observedgambot_list_orders
    • First observedgambot_list_quotes
    • First observedgambot_list_scheduled_campaigns
    • First observedgambot_list_signatures
    • First observedgambot_list_tasks
    • First observedgambot_list_templates
    • First observedgambot_list_users
    • First observedgambot_run_campaign
    • First observedgambot_search_available_numbers
    • First observedgambot_send_campaign
    • First observedgambot_send_campaign_from_excel
    • First observedgambot_send_template
    • First observedgambot_send_text
    • First observedgambot_test_campaign
    • First observedgambot_update_campaign
    • First observedgambot_update_case
    • First observedgambot_update_contact
    • First observedgambot_update_invoice
    • First observedgambot_update_lead
    • First observedgambot_update_order
    • First observedgambot_update_quote
    • First observedgambot_update_task
    • First observedgambot_update_user
    • First observedgambot_upload_template_media

TDQS

C2.9/5.0

Scored across 78 tools

Disambiguation4/5

Most tools are cleanly separated by resource and action, so an agent can usually pick the right one. The main ambiguity is around the campaign/messaging cluster: gambot_send_campaign, gambot_run_campaign, gambot_test_campaign, gambot_send_campaign_from_excel, and gambot_send_template could be confused, though the descriptions do draw useful boundaries.

Naming Consistency5/5

All tool names follow the gambot_<verb>_<object> snake_case pattern with consistent verbs like get, list, create, update, delete, send, run, and test. Even longer names like get_signature_link and send_campaign_from_excel are predictable extensions of the same convention.

Tool Count1/5

78 tools is far beyond a practical MCP surface and beyond the 50+ calibration threshold. The server merges many products (CRM, campaigns, documents, signatures, billing, onboarding, payments) into one namespace, which will likely overwhelm agent context and select a request. Consolidating related tools into smaller servers or higher-level operations would be far more appropriate.

Completeness2/5

The surface is broad but has significant lifecycle gaps: no list_contacts, no delete/update for many templates, no deletion for quotes/invoices/orders/tasks/leads/cases, and form/document/signature tools are mostly read/link-only rather than fully managed. These gaps will typically cause agent failures when users attempt standard cleanups or changes.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    Not graded
    maintenance
    Connects AI agents to the WhatsApp Business Cloud API, allowing them to send messages, manage templates, and retrieve account analytics. It facilitates automated customer interaction and marketing campaign management through the Model Context Protocol.
    16
    -
  • A
    license
    A
    quality
    D
    maintenance
    Connects AI assistants to the official Meta WhatsApp Cloud API for managing conversations and sending various message types through natural language. It provides tools for media management, template messages, and real-time webhook processing without the risk of account bans.
    18
    11 npm
    23
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Integrates WhatsApp with AI agents, enabling message sending, chat search, media sharing, approval workflows, and activity summaries via any MCP client.
    1
    Apache 2.0