Admin Substitute
Server Details
AI-powered MCP server for trade businesses. Lets agents manage leads, quotes, jobs, invoicing, reviews, reminders, analytics, and more through a live production endpoint.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.1/5 across 95 of 95 tools scored. Lowest: 3.3/5.
Most tools have distinct resource+action naming (e.g., leads.create, jobs.list), but some overlap exists in analytics tools (dashboard, detailed, financials) and workflow automations (process_lead vs google_ads_pipeline). Descriptions clarify purposes, so slight confusion is possible but limited.
All tools follow a consistent `domain.action` pattern (e.g., leads.create, billing.status). No mixing of camelCase or snake_case. Even complex names like lifecycle.assess or scaling.readiness_score adhere to the convention.
95 tools is far beyond typical well-scoped servers (3-15). While the server aims to cover an entire business management platform, this volume is overwhelming for an agent, making selection and memory difficult.
The tool surface is exceptionally comprehensive, covering formation, hiring, compliance, funding, leads, quotes, jobs, invoicing, payments, marketing, analytics, integrations, webhooks, workflows, and more. Almost no obvious gaps in the lifecycle of running a trade business.
Available Tools
102 toolsanalytics.dashboardARead-onlyInspect
Quick business overview: total leads, quotes, jobs, revenue, leads this week, and chart data. Lighter and faster than full analytics.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Dashboard period: 7, 30, or 90 days. Defaults to 7. |
Output Schema
| Name | Required | Description |
|---|---|---|
| revenue | No | Revenue in AUD |
| chartData | No | Daily data points for charts: [{date, leads, quotes, revenue}] |
| totalJobs | No | Total jobs in period |
| totalLeads | No | Total leads in period |
| totalQuotes | No | Total quotes in period |
| leadsThisWeek | No | Leads received in the current week |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description is consistent. The description adds the specific output fields (e.g., chart data) but does not disclose additional behavioral traits beyond what annotations provide. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. The first sentence front-loads the core value proposition and returned data, the second adds a comparative advantage. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional param, clear annotations, output schema present), the description fully covers what the tool does and returns. No missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'days', which includes its own description (enum values 7,30,90 and default). The tool description does not add further parameter meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Quick business overview' and lists specific metrics (total leads, quotes, jobs, revenue, leads this week). It distinguishes itself from the sibling 'analytics.detailed' by claiming to be 'lighter and faster than full analytics', leaving no ambiguity about its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for quick overviews versus detailed analysis, but does not explicitly state when not to use or name the exact alternative. The sibling name 'analytics.detailed' provides context, but explicit guidance is lacking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics.detailedARead-onlyInspect
Detailed business analytics: conversion funnel, revenue trends, lead sources, response times, outstanding invoices, and communication stats. Requires Growth plan or above.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Analysis period: 30, 60, or 90 days. Defaults to 30. |
Output Schema
| Name | Required | Description |
|---|---|---|
| funnel | No | Lead → Quote → Job → Paid conversion funnel with counts and rates |
| revenue | No | Revenue breakdown: total, average job value, outstanding |
| leadSources | No | Lead count by source (website, referral, hipages, etc) |
| responseTimes | No | Average response time to new leads |
| communications | No | SMS and email send counts and delivery stats |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the tool is known to be read-only. The description adds the behavioral context that it requires a specific subscription plan, which is useful information beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that covers the tool's purpose and a key requirement. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter with full schema coverage, an output schema, and clear annotations, the description is complete enough. It lists the analytics domains covered, and the schema details the period parameter. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'days' is fully covered by the input schema (enum, type, description). The main description does not add any additional meaning about parameters, but with 100% schema coverage, this is acceptable. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides 'Detailed business analytics' and lists specific types (conversion funnel, revenue trends, etc.), distinguishing it from siblings like analytics.dashboard (likely high-level) and analytics.financials (likely finance-only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the requirement 'Requires Growth plan or above' which is a usage prerequisite. However, it does not provide explicit guidance on when to use this tool versus its siblings (analytics.dashboard, analytics.financials), so usage context is implied but not contrastive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics.financialsBRead-onlyInspect
Financial summary: revenue, quote volume, conversion rate, lead count, and paid invoices for a time period.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback period in days. Defaults to 30. Max 365. |
Output Schema
| Name | Required | Description |
|---|---|---|
| period | No | Human-readable period description |
| revenue | No | Total revenue in AUD from paid invoices |
| leadCount | No | New leads in period |
| quoteVolume | No | Total value of quotes sent |
| paidInvoices | No | Number of invoices paid |
| conversionRate | No | Quote-to-job conversion rate as percentage |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't need to reiterate safety. It adds value by specifying the metrics included, which goes beyond annotations. However, it doesn't describe other behavioral traits like pagination, data freshness, or aggregation method.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that immediately states the tool's purpose and lists key metrics. It is front-loaded and contains no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter and an output schema (indicated). The description adequately covers the purpose and metrics. It omits details about output formatting, but that is handled by the output schema. It feels complete for the complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'days', so the description adds no new semantic information beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a financial summary with specific metrics: revenue, quote volume, conversion rate, lead count, and paid invoices for a time period. It distinguishes from sibling analytics tools like 'analytics.dashboard' and 'analytics.detailed' by listing concrete metrics, but doesn't explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks any guidance on when to use this tool versus alternatives. There is no mention of usage context, prerequisites, or exclusions. The agent must infer purpose from the metric list alone, which is insufficient for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing.create_checkoutAInspect
Create a Stripe Checkout session for upgrading or purchasing a plan. Returns a URL to present to the human operator for payment. The human completes payment in their browser.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_slug | Yes | Plan slug to purchase (e.g. "starter", "professional", "business") | |
| billing_cycle | No | Billing cycle. Defaults to "monthly". |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | Stripe Checkout URL — present this to the human |
| expires_at | No | When the checkout session expires (ISO 8601) |
| session_id | No | Checkout session ID for tracking |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by stating the output is a URL for the human to complete payment, clarifying the tool's role is to initiate but not finalize the transaction. Annotations already indicate a write operation (readOnlyHint=false), and no contradictions are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that front-load the action and output. Every sentence provides necessary information without redundancy or unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema coverage and presence of an output schema, the description sufficiently explains the tool's purpose and output (URL). It lacks details on error handling or post-payment behavior, but for a straightforward checkout creation tool, the information is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, with clear parameter descriptions (plan_slug with examples, billing_cycle with enum and default). The tool description does not add further parameter semantics beyond the schema, but it adequately reinforces the context of plan purchase/upgrade.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a Stripe Checkout session for upgrading or purchasing a plan,' which precisely identifies the action and resource. It distinguishes itself from sibling tools like billing.get_portal and billing.list_plans by specifying it initiates a payment flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains the tool produces a URL for the human operator to complete payment in a browser, indicating when to use it. However, it doesn't explicitly list alternatives or when not to use it, though context from sibling tools provides some differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing.get_portalARead-onlyInspect
Get a Stripe Billing Portal URL for the human to manage their subscription — update payment methods, view invoices, change plans, or cancel. Requires an existing Stripe subscription.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | Stripe Billing Portal URL — present this to the human |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description confirms it's a read operation returning a URL. It adds value by detailing what the portal allows (update payment methods, view invoices, change plans, cancel). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and resource, no extraneous words. Every sentence serves a purpose: what it does and what it requires.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no params, read-only, output schema present), the description is complete. It covers purpose, preconditions, and what the portal enables.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (schema empty, coverage 100%). Baseline for 0 params is 4. Description naturally adds no parameter info, which is acceptable here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets a Stripe Billing Portal URL for managing subscriptions, with specific actions listed (update payment methods, view invoices, etc.). It distinguishes from siblings like billing.create_checkout (new subscriptions) and billing.status (status checks).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Requires an existing Stripe subscription,' which sets a clear precondition. It implies use when a human needs to manage billing, but does not explicitly mention alternatives (e.g., billing.create_checkout for new subscriptions, billing.list_plans for browsing). Slight gap, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing.list_plansARead-onlyInspect
List all available plans with pricing, features, limits, and feature flags. Public information — useful for discovering what plans exist before purchasing or upgrading.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| plans | No | Array of plan objects with slug, name, price, features, limits, feature_flags |
| currency | No | Currency code (AUD) |
| billing_cycles | No | Available billing cycles |
| yearly_discount_pct | No | Yearly billing discount percentage |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. The description adds that the data is 'public information,' reinforcing the read-only and non-destructive nature. It does not mention rate limits or caching, but the combination with annotations is sufficient for transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences. The first sentence states the purpose and content, the second provides context. Every word earns its place; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, a valid output schema (as indicated in context), and annotations, the description fully covers what the tool does and what data it returns. No gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema description coverage is 100% by default. The description adds value by explaining what the output contains (pricing, features, limits, feature flags) and that it is public, which goes beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all available plans with pricing, features, limits, and feature flags. This is a specific verb (list) on a specific resource (plans) with detailed content. It distinguishes from sibling tools like billing.create_checkout and billing.status, which are for purchasing and status respectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Public information — useful for discovering what plans exist before purchasing or upgrading.' This gives clear context on when to use the tool (before purchase/upgrade). It does not explicitly mention when not to use or alternatives, but the context is sufficiently clear for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing.statusARead-onlyInspect
Check subscription status, plan details, billing cycle, and feature access. Useful for understanding what the business can and cannot do on their current plan.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| plan | No | Current plan name (e.g. "Growth") |
| status | No | Subscription status (active, trialing, past_due, cancelled) |
| features | No | Feature flags: {restApiAccess, mcpAccess, webhookInbound, ...} |
| monthlyPrice | No | Monthly price in AUD |
| nextBillingDate | No | Next billing date in ISO 8601 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true; description aligns with 'check' and adds 'feature access' context. Consistent, no contradiction, but does not add extra behavioral detail beyond read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with action and resource, no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and presence of output schema, description adequately covers tool purpose. Could mention that it returns current plan details, but output schema handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, schema coverage 100%. As per guidelines, baseline 4 for zero params. Description adds no param info (not needed).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'check' specifying what is checked: subscription status, plan details, billing cycle, feature access. No sibling duplicates this exact function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States usefulness for understanding capabilities on current plan, but does not explicitly differentiate from siblings like billing.list_plans or billing.usage. No when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing.usageARead-onlyInspect
Check current API and resource usage vs plan limits: API calls, SMS credits, email credits, LLM calls remaining.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| apiCalls | No | {used, limit, remaining} |
| llmCalls | No | {used, limit, remaining} |
| smsCredits | No | {used, limit, remaining} |
| emailCredits | No | {used, limit, remaining} |
| billingPeriod | No | Current billing period date range |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations: it specifies what metrics are checked (API calls, SMS, email, LLM credits) and the comparison against plan limits. The annotations already declare readOnlyHint=true, which aligns with the check operation. The description provides useful behavioral details without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the purpose and lists key metrics. Every part is meaningful, no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has zero parameters and an output schema (though not detailed here), so the description adequately covers the operation. It identifies the specific usage categories checked. Slightly more detail on the return format (e.g., usage vs limits) could be added, but with the output schema present, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema coverage is 100%. Baseline for zero parameters is 4. The description does not need to document parameters and appropriately focuses on the operation. No additional parameter meaning is necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Check' and specifies the resource 'API and resource usage vs plan limits', listing concrete items like API calls, SMS credits, email credits, and LLM calls remaining. It effectively distinguishes from sibling billing tools such as billing.status (likely overall status) and billing.list_plans (listing plans).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (checking usage against limits) but does not explicitly exclude alternatives or mention when not to use this tool. The context is clear enough for the agent to infer typical usage, but lacks explicit guidance on sibling tools like billing.status or analytics.dashboard.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cashflow.forecastARead-onlyInspect
30-day cash flow forecast with weekly breakdown. Shows: revenue received (last 30 days), outstanding invoices, overdue invoices (with $ amount at risk), quote pipeline value, upcoming scheduled job revenue, projected inflow/profit, average days to payment, and 4-week forward forecast. Returns value context showing exactly how much time this saved vs doing it manually in a spreadsheet. Essential for answering "Can I afford to hire?" or "How's my cash flow?"
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description adds value by detailing the return content (revenue, invoices, etc.) and mentioning a 'value context' showing time saved. This complements the annotations without contradiction, though it lacks explicit discussion of any edge cases 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear opening sentence and a bullet-like list of outputs. It is informative but not overly verbose. A slight improvement could be trimming the final sentence's redundancy, but overall it is concise and organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description covers the key return elements and use cases. It addresses common cash flow questions. However, it does not mention any configuration options or variations in the forecast period, which could be needed for full context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters with 100% coverage, so no parameter explanation is needed. The description focuses on what the tool returns rather than parameters, which is appropriate. It does not add parameter semantics because there are none, but this is fine.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as a 30-day cash flow forecast with a weekly breakdown, listing specific financial elements. It distinguishes itself from sibling tools like analytics.dashboard by focusing specifically on cash flow, and it includes explicit use cases ('Can I afford to hire?'), making the purpose highly specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear use cases ('Essential for answering...'). However, it does not explicitly state when not to use this tool or compare it to alternatives like analytics.financials, which could clarify when to choose this over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clients.listARead-onlyInspect
List clients — leads who have at least one job. Includes job count, quote count, and total revenue per client. Useful for identifying repeat customers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of clients to return. Defaults to 50, capped at 100. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Total clients returned |
| clients | No | List of {id, name, phone, email, jobCount, quoteCount, totalRevenue} objects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. Description lists additional output fields (job count, quote count, revenue) but does not disclose rate limits, pagination behavior, or data freshness. Adds minimal behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that immediately state purpose and utility. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, description adequately covers filtering criteria and extra fields. Sufficient for a list tool with no complex side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single 'limit' parameter has 100% schema description coverage, so the schema already documents its meaning. The tool description adds no extra semantics for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specifies verb 'list', resource 'clients', and clarifies that it only includes leads with at least one job, distinguishing it from leads.list. Provides additional context on returned data fields (job count, quote count, revenue).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'useful for identifying repeat customers' but does not explicitly mention when to use vs alternatives or when not to use. No alternative tools named or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
comms.listARead-onlyInspect
View sent SMS and email message history. Filter by channel, message type, or delivery status. Useful for auditing communications.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by message type (e.g. "quote_sent", "review_request", "on_my_way"). Optional. | |
| limit | No | Maximum number of messages to return. Defaults to 50, capped at 100. | |
| channel | No | Filter by communication channel. Omit for all channels. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Total messages returned |
| messages | No | List of {id, channel, type, recipient, subject, status, sentAt} objects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the readOnlyHint annotation by stating 'View' history, implying no destructive actions. It adds filtering capabilities but does not disclose other behavioral traits like rate limits, authentication needs, or return format. Since annotations already convey read-only nature, the description provides minor added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, no unnecessary words. It front-loads the purpose and filtering options, then adds a use case. Every sentence contributes value, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 optional parameters and an output schema. The description covers purpose and filtering but omits details like sorting, pagination (limit is explained in schema), and the fact that 'delivery status' is not a filter. The error about delivery status reduces completeness. Overall, adequate but with a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description claims filtering by 'delivery status,' but the schema does not include such a parameter, creating misleading information. The schema covers all three parameters (type, limit, channel) with descriptions, so baseline is 3, but the inaccuracy reduces it to 2. The description adds the 'auditing' use case but fails to accurately reflect available filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'View sent SMS and email message history.' It specifies filtering options ('Filter by channel, message type, or delivery status') and a use case ('Useful for auditing communications'). This distinguishes it from sibling tools like comms.send_email and comms.send_sms, which are for sending, not listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use the tool ('auditing communications') and implicitly differentiates it from sending tools. However, it does not explicitly state when not to use it or mention alternative tools for similar purposes. Given the clear domain (communications history), the guidance is adequate but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
comms.send_emailAInspect
Send an email on behalf of the company. Subject to monthly email quota. HTML body supported.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient email address. Required. | |
| body | Yes | Email body in HTML format. Required. | |
| jobId | No | Optional job ID to link this email to. | |
| leadId | No | Optional lead ID to link this email to. | |
| subject | Yes | Email subject line. Required. | |
| messageType | No | Type of email for logging/analytics. Defaults to "manual". |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message if send failed |
| success | No | Whether the email was sent successfully |
| messageId | No | Email message ID for tracking |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false) and side effects (openWorldHint=true). Description adds quota and HTML support but lacks details on quota enforcement, error handling, or cost implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (two sentences) with main action first. No unnecessary words. Front-loaded with clear purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core function and key constraints (quota, HTML) but insufficient for a mutation tool with open world hint. Missing details on quota limits, error states, and side effects. Output schema exists but not described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters completely (100% coverage). Description redundantly notes 'HTML body supported' which matches schema body description. No additional semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Send an email on behalf of the company,' which is a specific verb+resource. Distinguishes from sibling comms.send_sms by being for email, without needing explicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for sending emails, but no explicit guidance on when to use vs alternatives (e.g., send_sms) or when not to use. Mentions quota as a constraint but not how to handle it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
comms.send_smsAInspect
Send an SMS message to a phone number on behalf of the company. Requires a valid Australian mobile number. Subject to monthly SMS quota.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Australian phone number to send to (e.g. "0412345678" or "+61412345678"). Required. | |
| body | Yes | SMS message body. Max 1600 characters. Required. | |
| jobId | No | Optional job ID to link this message to. | |
| leadId | No | Optional lead ID to link this message to. | |
| messageType | No | Type of message for logging/analytics. Defaults to "manual". |
Output Schema
| Name | Required | Description |
|---|---|---|
| sid | No | Twilio message SID for tracking |
| error | No | Error message if send failed |
| success | No | Whether the SMS was sent successfully |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and openWorldHint=true. The description adds behavioral context: the SMS must be to an Australian mobile number and is subject to a monthly quota. It does not contradict annotations and provides useful constraints beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the primary purpose and then add constraints. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity (5 parameters, with output schema), the description is fairly complete. It covers the core action, key constraints, and scope. Minor gaps exist in explaining optional parameters (jobId, leadId, messageType) but the schema covers those.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description does not add significant parameter-level meaning beyond the schema, but does provide overarching context (e.g., Australian number requirement relates to 'to' parameter). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'send', the resource 'an SMS message', and the scope 'on behalf of the company'. It also specifies constraints (Australian mobile number, quota). This distinguishes it from sibling tools like comms.send_email.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the requirement for a valid Australian mobile number and monthly quota, giving context for when to use. However, it does not explicitly differentiate from comms.send_email or provide when-not-to-use guidance, which would strengthen the dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliance.generate_swmsARead-onlyIdempotentInspect
Generate a site-specific SWMS (Safe Work Method Statement) compliant with WHS Regulations 2017 s.299-303 and Safe Work Australia standards. AI drafts the document with hazards, controls, PPE (with AS/NZS standards), and emergency procedures. CRITICAL: Output is an AI DRAFT only — must be reviewed and signed by a competent person before use. Requires Growth+ plan.
| Name | Required | Description | Default |
|---|---|---|---|
| trade | Yes | Trade type (plumbing, electrical, hvac, carpentry, roofing, painting, landscaping). Required. | |
| startDate | No | Planned start date (ISO 8601). Optional. | |
| siteAddress | No | Site address where work will be performed. Optional. | |
| highRiskWork | No | Is this high-risk construction work per WHS Regs s.291? If unsure, set to true. Optional. | |
| specificRisks | No | Any specific risks already identified. Optional. | |
| jobDescription | Yes | Detailed description of the work to be performed. Be specific about location, equipment, and methods. Required. | |
| supervisorName | No | Name of the site supervisor. Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| document | No | Full SWMS document |
| warnings | No | Legal and compliance warnings |
| requiresHumanReview | No | Always true — human sign-off is mandatory |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description transparently indicates the output is a draft requiring human review, and references standard regulations. Although annotations include readOnlyHint=true, the generation of a document is not clearly contradictory; the description adds context beyond annotations about the draft nature and plan requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences convey purpose, regulatory compliance, draft nature, and plan requirement. Every word adds value; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage and an output schema, the description covers necessary context: regulatory compliance, draft alert, and plan requirement. It is complete enough for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds minimal to parameter semantics, briefly noting output content (hazards, controls, PPE, emergency procedures) but not directly enhancing parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it generates a site-specific SWMS compliant with specific regulations and standards. The verb 'generate' and resource 'SWMS' are clear, and the regulatory references differentiate it from any siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the output is an AI draft that must be reviewed and signed, and requires a Growth+ plan. However, it does not explicitly state when not to use it or compare to alternatives, which is acceptable given no direct siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
documents.auto_fileAInspect
File a document to connected cloud storage (Google Drive/Dropbox) in an organised company folder structure. Auto-generates folder paths based on entity type.
| Name | Required | Description | Default |
|---|---|---|---|
| entityId | Yes | Related entity ID (job/quote/invoice). Required. | |
| fileName | No | Override auto-generated filename. Optional. | |
| entityType | Yes | Document type. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| success | No | |
| dropboxPath | No | |
| googleDriveFileId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and openWorldHint=true, consistent with the description of writing to external storage. The description adds auto-generation behavior but lacks details on side effects like file overwrite behavior or error handling. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasteful words. Front-loaded with the key action and destination, followed by the auto-generation detail. Every sentence adds necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema (which presumably documents return values), the description covers the essential input and behavior. It could mention whether the file URL is returned, but completeness is adequate for a filing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already documents parameters. The description adds value by explaining that entityType drives auto-generated folder paths, enhancing understanding beyond the schema. This justifies a score above baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (file a document) and the destination (connected cloud storage) with specific resources (Google Drive/Dropbox). It distinguishes from sibling tools by mentioning organized company folder structure and auto-generation based on entity type, which no other sibling tool covers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (filing documents to cloud storage with automatic organization) but does not explicitly state when to use this tool over alternatives or provide exclusions. No mention of prerequisites or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecosystem.referral_linkARead-onlyInspect
Get the company referral link and code. Share with other tradies — when they sign up via this link, the referring company earns commission. Agents can refer other agents and businesses.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| referralUrl | No | Full referral URL to share |
| referralCode | No | Unique referral code |
| totalReferrals | No | Number of successful referrals to date |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds behavioral context beyond that by explaining the referral commission mechanism and that agents can refer other agents and businesses. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences that front-load the purpose and add relevant context. Every word earns its place; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no parameters and an existing output schema, the description covers all necessary context: what it retrieves, why it's used, and the commission mechanism. Complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100% trivially. Per guidelines, baseline is 4 for zero params. The description adds no parameter info as none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the company referral link and code, with a specific verb 'Get' and resource. It differentiates itself by explaining its purpose in generating commission for referrals, which no sibling tool directly addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for use (sharing with tradies to earn commission) and mentions target users (agents, businesses). However, it lacks explicit alternatives or when-not-to-use conditions, though the tool's simplicity and lack of similar siblings make this less critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation.checklistARead-onlyInspect
Get a complete step-by-step business formation checklist for a specific trade and state. Includes ABN registration, GST, licensing, insurance, WHS, banking, operations setup, and client acquisition — with time estimates and costs.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Australian state/territory: NSW, VIC, QLD, SA, WA, TAS, NT, ACT | |
| trade | Yes | Trade category: plumbing, electrical, hvac, painting, roofing, landscaping, carpentry, cleaning, general-building |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description's 'Get a checklist' is consistent with a read operation. The description adds value beyond annotations by detailing the checklist content (steps, time, costs), but does not mention any edge cases 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 20 words, front-loaded with the main verb and resource, and includes key specifics without extraneous information. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (indicated by 'Has output schema: true'), the description does not need to explain return values. It covers the checklist scope comprehensively for a formation tool, and annotations provide read safety context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – both 'state' and 'trade' parameters are documented. The tool description does not add significant new meaning beyond the schema, only contextualizing that they are used for generating a checklist. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a 'complete step-by-step business formation checklist' for a specific trade and state, listing included items (ABN registration, GST, licensing, etc.) and mentioning time estimates and costs. This is specific and distinct from sibling tools like formation.requirements or formation.demand_hotspots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing a formation checklist, but does not provide explicit guidance on when to use this tool versus alternatives (e.g., formation.requirements, formation.funding). No exclusions or conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation.demand_hotspotsARead-onlyInspect
Get trade demand hotspots across Australian regions. Returns demand scores, shortage severity, hourly rates, competition levels, growth trends, and opportunity notes. Use to advise where to start a trade business for maximum impact.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10, max 30). | |
| trade | Yes | Trade category: electrical, plumbing, hvac, painting, roofing, landscaping, carpentry, cleaning, general-building. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint: true and openWorldHint: false, so the description does not need to repeat that. It adds context about the output fields and regional scope, but no additional behavioral traits like rate limits or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, all necessary: it states the action, lists returned data, and gives a use case. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (unseen but implied), the description adequately covers purpose, output fields, and use case. It could mention that results are per trade regionally, but it is sufficiently complete for most scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-defined in the schema. The description does not add significant meaning beyond what the schema provides, but it does imply the use of 'trade' and 'limit' contextually.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a clear resource 'trade demand hotspots across Australian regions', and explicitly states the return fields and use case. It distinguishes itself from sibling tools like formation.location_score and analytics.dashboard by focusing on trade-specific demand analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit usage guidance: 'Use to advise where to start a trade business for maximum impact.' This clearly indicates when to use the tool, though it does not mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation.fundingARead-onlyInspect
Get available Australian government grants, incentives, and funding programs for starting or growing a trade business. Filter by category: apprenticeship, small-business, export, digital, training.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Funding category filter (optional): apprenticeship, small-business, export, digital, training. Omit for all. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds context: it's for Australian government programs targeting trade businesses, and filtering by category. No behavioral surprises beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no unnecessary words. First sentence states purpose and scope; second explains filtering. Information is front-loaded effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and an output schema, the description covers purpose, scope, filtering, and target audience. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with description for the 'category' parameter. The description adds value by listing the valid categories (apprenticeship, small-business, export, digital, training) which helps the agent understand available filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action 'Get' and specific resource 'Australian government grants, incentives, and funding programs'. It distinguishes from sibling tools like funding.eligibility_scan and funding.program_details by indicating it retrieves a broad list with optional category filter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains when to use this tool (when needing available funding programs) and how to filter by category. However, it lacks explicit guidance on when not to use it or alternatives like funding.eligibility_scan or funding.program_details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation.guided_setupARead-onlyInspect
RECOMMENDED ENTRY POINT — Intelligent business formation engine. Provide context about the person (trade, state, qualifications, budget, goals) and get a personalised formation plan with: (1) auto-detected pathway (licensed contractor, fresh start, or investor/operator), (2) task list split into AI-actionable vs human-required, (3) direct government portal links, (4) trade-specific insights (common first jobs, suppliers, rates, growth tips), (5) recommended next tool calls, (6) follow-up questions to ask. Call this FIRST, then use the recommended tool chain for deeper dives.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Australian state/territory: NSW, VIC, QLD, SA, WA, TAS, NT, ACT | |
| trade | Yes | Trade category: plumbing, electrical, hvac, painting, roofing, landscaping, carpentry, cleaning, general-building | |
| budget | No | Available startup capital in AUD | |
| hasABN | No | Already have an ABN? | |
| pathway | No | Override auto-detection: licensed_contractor (already qualified), fresh_start (needs everything), investor_operator (hiring qualified people). Usually omit and let the engine detect. | |
| hiringPlan | No | solo, subcontractors, employees, or apprentices | |
| hasInsurance | No | Already have business insurance? | |
| targetRevenue | No | Annual revenue target in AUD | |
| yearsExperience | No | Years of experience in the trade | |
| businessStructure | No | Preferred structure: sole_trader, company, partnership, trust, undecided | |
| isExistingBusiness | No | Converting from employee to contractor/business owner? | |
| hasContractorLicence | No | Do they already hold a contractor licence? | |
| hasTradeQualification | No | Does the person have a Certificate III or equivalent trade qualification? |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses outputs and non-modifying nature (read-only plan generation), aligning with readOnlyHint annotation. Adds context about return structure without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose, compact single paragraph listing six output types. Slightly dense but efficient, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, inputs, outputs (including output schema existence), and usage order. Adequately complete for a complex tool with high parameter coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description need not repeat parameter details. Description summarizes key parameters (trade, state, qualifications, budget, goals) but adds little beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it is the recommended entry point for business formation, lists specific outputs (pathway, task list, portal links, etc.), and distinguishes itself from siblings like formation.checklist and formation.requirements by being the first call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Directly instructs to call this FIRST and then use the recommended tool chain for deeper dives, providing clear when-to-use and alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation.location_scoreARead-onlyInspect
Calculate an opportunity score (0-100) for a specific trade + region combination. Factors in shortage severity, growth trend, hourly rates, competition level, and construction growth. Returns score breakdown and recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| trade | Yes | Trade category: electrical, plumbing, hvac, painting, roofing, landscaping, carpentry, cleaning, general-building. | |
| region | Yes | Region slug (e.g., sunshine-coast, pilbara, western-sydney, greater-brisbane). Use formation.demand_hotspots to discover available regions. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond the readOnlyHint annotation, including the score range (0-100), the factors considered, and the return of a score breakdown and recommendation. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences that front-load the core purpose and include key details about factors and return. Every sentence is valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 2 parameters, an output schema (implied by title), and clear mention of score breakdown and recommendation, the description is complete for a scoring tool. No missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides detailed descriptions for both parameters (trade lists categories, region describes slug format). The description does not add new meaning beyond the schema, so baseline 3 is appropriate given 100% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates an opportunity score (0-100) for a specific trade+region combination, with factors and return details. It distinguishes from sibling formation tools like formation.demand_hotspots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage: it's for a specific trade and region combination, and it cross-references formation.demand_hotspots to discover regions. However, it does not explicitly state when not to use this tool or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation.recommend_tradeARead-onlyInspect
AI Trade Recommendation Engine — "I have $X and want to start a trade business" → ranked recommendations. Takes budget, state, goals, physical capability, risk tolerance and preferences, then scores ALL 9 trade categories across 4 factors (budget fit, time to revenue, revenue upside, barrier to entry) and returns top 5 ranked recommendations with: startup costs, licence requirements, projected Year 1 revenue (3 scenarios), break-even timeline, quick-win first actions, risks, and scalability rating. Perfect for "what trade should I start?" questions.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Australian state/territory: NSW, VIC, QLD, SA, WA, TAS, NT, ACT. Required. | |
| budget | Yes | Available startup budget in AUD. Required. | |
| suburb | No | Optional suburb for demand matching. | |
| hasVehicle | No | Already has a work vehicle? | |
| preferIndoor | No | Prefers indoor work? | |
| preferOutdoor | No | Prefers outdoor work? | |
| riskTolerance | Yes | Risk appetite. Required. | |
| existingSkills | No | Freetext existing skills list. | |
| timeCommitment | Yes | How involved they want to be. Required. | |
| physicalCapability | Yes | Can they do physical work? Required. | |
| wantsLicencedTrade | No | Open to 3-4yr apprenticeship for licensed trade? | |
| wantsToHireQuickly | No | Wants to scale with employees fast? | |
| targetMonthlyRevenue | No | Target monthly revenue in AUD. | |
| wantsRecurringRevenue | No | Prefers recurring/maintenance revenue streams? |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the tool's behavior: it scores all 9 trade categories across 4 factors and returns top 5 ranked recommendations with detailed outputs. Annotations already indicate readOnlyHint=true, and the description does not contradict them. It adds value by explaining the scoring mechanism and output structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that is informative and front-loaded with the purpose. It uses clear language and covers necessary details without being overly verbose. Could be slightly more structured, but efficiency is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (14 parameters, AI recommendation), the description provides a complete picture of functionality and output. It lists the output details (startup costs, licence requirements, revenue scenarios, etc.), which compensates for the presence of an output schema. The tool's purpose and behavior are fully covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents all 14 parameters. The description mentions some key inputs (budget, state, goals) but does not add significant new meaning beyond the schema. A baseline score of 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: an AI trade recommendation engine that takes user inputs and returns ranked recommendations. It specifies the verb 'recommend', the resource 'trade', and the output (top 5 with detailed factors). This distinguishes it from sibling tools like formation.requirements or formation.demand_hotspots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a usage hint: 'Perfect for "what trade should I start?" questions.', implying the tool is for broad trade recommendations. However, it does not explicitly state when not to use it or provide alternatives among the many sibling formation tools. The guideline is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation.requirementsARead-onlyInspect
Get trade licensing and compliance requirements for a specific Australian state. Returns licence type, licensing body, requirements, cost estimates, renewal period, PLUS trade-specific insights (common first jobs, typical rates, key suppliers, trade associations, growth tips) and direct government portal links for the state.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Australian state/territory: NSW, VIC, QLD, SA, WA, TAS, NT, ACT | |
| trade | Yes | Trade category: plumbing, electrical, hvac, painting, roofing, landscaping, carpentry, cleaning, general-building |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds value by detailing the rich output (licence type, cost estimates, insights, links). It does not conflict with annotations and provides transparency about the toolboxwithout mentioning side effects, which is appropriate for a read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the core purpose. It uses a list format to enumerate return items, which is efficient. Minor improvement would be brevity, but overall it is well-structured and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and annotations, the description covers the tool's purpose, inputs, and outputs comprehensively. It lacks mention of error handling or prerequisites, but for a straightforward data retrieval tool, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear parameter descriptions. The tool description adds no new semantic information about parameters beyond what the schema already provides, maintaining the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves trade licensing and compliance requirements for Australian states, with a specific verb ('get') and resource. It distinguishes from sibling formation tools by detailing unique return content including trade-specific insights and government links, which are not mentioned in other formation tool descriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining requirements but does not explicitly state when to use this tool over alternatives like formation.checklist or formation.recommend_trade. No exclusions or contextual cues are provided, leaving the agent to infer based on tool name and return content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation.simulate_businessARead-onlyInspect
12-Month Business Simulator — financial projection engine for Australian trade businesses. Input a trade, state, startup capital, working hours, and scenario (conservative/realistic/optimistic) to get month-by-month projections including: gross revenue, all expense categories, GST collected/owing, income tax estimates, superannuation, net profit, cash balance, and milestone detection (break-even month, capacity ceiling, hire trigger). Uses real Australian 2025-26 tax brackets, 10% GST, 12% super rate, and trade-specific cost profiles. Returns year-end summary with effective hourly rate, total take-home, and ROI on startup capital.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Australian state/territory: NSW, VIC, QLD, SA, WA, TAS, NT, ACT. Required. | |
| trade | Yes | Trade category: electrical, plumbing, hvac, painting, roofing, landscaping, carpentry, cleaning, general-building. Required. | |
| scenario | Yes | Projection scenario. Required. | |
| hasVehicle | No | Already has a work vehicle? Reduces vehicle costs. | |
| weeksPerYear | Yes | Working weeks per year (typically 46-48). Required. | |
| hasAccountant | No | Has an accountant? Adds $200/month accounting cost. | |
| startupCapital | Yes | Starting capital in AUD. Required. | |
| averageJobValue | No | Override average job value in AUD (otherwise uses trade average). | |
| monthlyToolCost | No | Monthly tool replacement/upgrade budget in AUD. | |
| businessStructure | Yes | Business structure for tax calculations. Required. | |
| leadConversionRate | No | Lead conversion rate 0-100 (default 40%). | |
| monthlyVehicleCost | No | Monthly vehicle lease/loan/fuel cost in AUD. | |
| billableHoursPerWeek | Yes | Target billable hours per week. Required. | |
| marketingBudgetMonthly | No | Monthly marketing budget in AUD (default $300). | |
| monthlyPersonalExpenses | Yes | Monthly living expenses they need to cover in AUD. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides rich behavioral context beyond annotations: it discloses that it uses real Australian 2025-26 tax brackets, 10% GST, 12% super rate, and trade-specific cost profiles. It lists all output categories and milestone detection, making the behavior fully transparent and consistent with readOnlyHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized (~140 words) and front-loaded with the core purpose. Every sentence adds value: defining the tool, listing inputs, detailing outputs, and noting data sources. No redundant or wasteful text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (15 parameters, business logic, output schema exists), the description provides sufficient context for an AI agent: it explains what the tool does, the domain (Australian trade businesses), and what outputs to expect. It covers the key decision factors without needing to elaborate on return format or every parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% so the baseline is 3. The description only mentions a subset of parameters (trade, state, startup capital, working hours, scenario) and does not add meaning beyond what the schema already provides for the other parameters. It adds value by summarizing key inputs but does not enhance parameter understanding further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it is a '12-Month Business Simulator — financial projection engine for Australian trade businesses' and lists specific inputs and outputs. It clearly distinguishes itself from sibling tools like cashflow.forecast by covering a broader scope and specific Australian tax context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (e.g., for Australian trade business projection) but does not explicitly state when not to use it or mention alternatives among siblings like cashflow.forecast or analytics.financials. Usage context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
funding.eligibility_scanARead-onlyInspect
Scan 20+ government funding programs and return which ones a specific trade business is eligible for. Includes federal grants, state programs, apprenticeship incentives, tax offsets, and digital adoption support. Returns estimated total funding available.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Business state: NSW, VIC, QLD, SA, WA, TAS, NT, ACT | |
| trade | Yes | Trade category | |
| businessAge | No | Business age in months | |
| wantsToHire | No | Planning to hire an apprentice/employee? | |
| employeeCount | No | Number of employees | |
| hasApprentice | No | Already has an apprentice? | |
| annualTurnover | No | Annual turnover ($) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, consistent with 'scan' and 'return' verbiage. No side effects described. Adds context about estimated total funding, enhancing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, immediately informative. Front-loaded with key action and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, complete schema descriptions, output schema present, and clear annotations, description covers the purpose and output sufficiently. Does not detail return format but output schema handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage. Description adds context that tool is for trade businesses, complementing schema. No parameter details beyond schema, but overall adds value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it scans over 20 funding programs and returns eligibility for a specific trade business, listing program types and output. Distinguishes from sibling funding.program_details by focusing on broad eligibility vs. specific program details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use case (trade business eligibility check) but does not explicitly state when not to use or mention alternatives like funding.program_details. Lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
funding.program_detailsARead-onlyInspect
Get detailed information about a specific government funding program including full eligibility criteria, application process, tips, and relevant links.
| Name | Required | Description | Default |
|---|---|---|---|
| programId | Yes | Program ID (e.g., kap, rd-tax-incentive, instant-asset-writeoff, nsw-small-business-fees). Use funding.eligibility_scan to discover programs. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds specific behavioral context: what information is returned (eligibility, process, tips, links). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence covering purpose and content efficiently. Could be slightly more structured but is clear and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool (1 param, output schema present). Description adequately covers what the tool provides without needing to detail return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (programId). Schema description covers it fully (examples, reference to eligibility_scan). Description adds no additional parameter details beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets detailed information about a specific government funding program, listing included content (eligibility, process, tips, links). Distinguishes from sibling funding.eligibility_scan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use when a specific program is known, but does not explicitly state when to use vs. alternatives. The input schema hints at using eligibility_scan first, but the description itself lacks this guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hiring.apprentice_workflowARead-onlyInspect
Get the complete 6-step apprenticeship workflow for Australian trade businesses. Covers: finding an Apprentice Connect provider, recruitment, training contract, STP/payroll setup, government incentive claims, and onboarding.
| Name | Required | Description | Default |
|---|---|---|---|
| step | No | Specific step number (1-6) for detailed info. Omit for full workflow. | |
| trade | No | Trade category for trade-specific incentive info |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context about the workflow steps but does not disclose behavioral traits beyond what the readOnlyHint annotation already provides. It doesn't mention permissions, rate limits, or side effects, though the annotation indicates it is a safe read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the purpose. Every word adds value; no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and schema documentation covers parameters, the description fully explains the tool's domain and scope. It is complete for an agent to understand when and why to use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter names and descriptions. The description adds overall context (Australian trade businesses, incentive claims) that helps understand the purpose of the parameters, but does not add syntactic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the complete 6-step apprenticeship workflow for Australian trade businesses, listing specific covered steps (finding provider, recruitment, etc.). This is specific and distinguishes from sibling tools that focus on other workflows or analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for apprenticeship workflow but does not explicitly state when to use this tool versus alternatives or when not to use it. No exclusion criteria or alternative suggestions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hiring.capacity_analysisARead-onlyInspect
Analyse a solo tradesperson's capacity utilisation and determine if they've hit the ceiling. Returns capacity score (0-100), burnout risk, estimated lost revenue from declined work, and hiring urgency level.
| Name | Required | Description | Default |
|---|---|---|---|
| avgWaitDays | No | Average days before a new job can start | |
| jobsPerWeek | No | Average jobs completed per week | |
| reviewTrend | No | Are reviews trending up, flat, or down? | |
| avgReviewScore | No | Average review score (1-5) | |
| monthlyRevenue | Yes | Average monthly revenue ($) | |
| averageJobValue | Yes | Average value of a job ($) | |
| leadDeclineRate | No | Percentage of leads turned away (0-100) | |
| weeklyAdminHours | Yes | Hours per week on admin (quoting, invoicing, scheduling) | |
| weeklyBillableHours | Yes | Hours per week doing billable trade work |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description adds transparency by detailing the outputs (capacity score, burnout risk, lost revenue, urgency). It accurately portrays a read-only analysis without contradicting annotations, though it does not mention potential side effects or data sources.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that immediately states the tool's purpose and outputs. It is concise with no unnecessary words, well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters and an output schema, the description provides a solid overview of what it does and returns. However, it lacks details on when to use it relative to other similar tools, which would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so parameters are already documented. The description does not add extra meaning beyond the schema. It lists required fields in the schema but not in the description, offering no additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes a solo tradesperson's capacity utilization and returns specific metrics like capacity score, burnout risk, lost revenue, and hiring urgency. It is distinct from siblings like 'hiring.readiness_score' which likely assesses general readiness, making the purpose specific and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus others such as 'hiring.cost_calculator' or 'hiring.readiness_score'. The description only states what it does without indicating prerequisites or contexts where it is most appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hiring.compliance_checklistARead-onlyInspect
Get the Fair Work compliance checklist for hiring employees in Australia. Covers NES, Modern Awards, STP, superannuation, WHS, workers comp, contractor vs employee classification, and record keeping.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category: all, nes, award, stp, super, whs, workers-comp, contractor-v-employee, records |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint: true. The description adds value by listing the specific compliance areas covered (NES, Modern Awards, STP, etc.), giving the agent a clear understanding of the checklist's content. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys purpose and scope without extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, output schema exists), the description sufficiently covers what the tool does, its geographic scope, and the compliance areas included. No gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 100% with a description for the only parameter 'category' listing valid values. The description adds minimal extra meaning beyond the schema; it restates filtering. With high coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the Fair Work compliance checklist for hiring employees in Australia,' specifying the verb and resource. It distinguishes itself from siblings like formation.checklist and compliance.generate_swms, which are in different domains or generate different outputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when needing a compliance checklist for Australian hiring, but it does not explicitly compare with alternatives or provide when-not-to-use guidance. The context is clear, but lacks direct differentiation from other compliance tools like compliance.generate_swms.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hiring.cost_calculatorARead-onlyInspect
Calculate the true cost of hiring an employee or apprentice in a specific Australian state. Includes base salary, super (12%), workers comp, payroll tax, leave provisions, tools, vehicle, and government incentives.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Australian state: NSW, VIC, QLD, SA, WA, TAS, NT, ACT | |
| trade | Yes | Trade category for incentive calculation | |
| baseSalary | Yes | Annual base salary ($). Use hiring.wage_data to find market rates. | |
| includeTools | No | Include tool costs? | |
| isApprentice | No | Is this an apprentice? | |
| apprenticeYear | No | Apprenticeship year (1-4). Only if isApprentice=true. | |
| includeVehicle | No | Include vehicle costs? |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description aligns with a read-only calculation. However, the description adds no behavioral details beyond what annotations provide (e.g., no mention of auth needs or rate limits). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose and scope, second lists included components. Front-loaded with essential information, no extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers overall purpose and key cost components. Output schema exists to handle return values. Could mention state-specific variations or edge cases for completeness, but sufficient for a calculator tool given schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining baseSalary context ('Use hiring.wage_data to find market rates') and listing included components (super, workers comp, etc.), enhancing parameter meaning beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates the true cost of hiring an employee or apprentice in an Australian state, with specific verb 'calculate' and resource 'cost'. It distinguishes from sibling tools like hiring.apprentice_workflow and hiring.capacity_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for cost estimation but provides no explicit guidance on when to use vs alternatives like hiring.capacity_analysis or when not to use. No exclusions or context-specific recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hiring.readiness_scoreARead-onlyInspect
Calculate hiring readiness score across financial, operational, and systems dimensions. Recommends apprentice vs employee vs contractor vs admin-first hire based on business metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| avgJobValue | No | Average job value ($) | |
| weeklyHours | Yes | Owner weekly hours | |
| monthlyProfit | Yes | Average monthly profit ($) | |
| monthlyRevenue | Yes | Average monthly revenue ($) | |
| pipelineMonths | No | Months of work in pipeline | |
| adminHoursPercent | No | Percentage of time on admin (0-100) | |
| cashReserveMonths | No | Months of cash reserves | |
| declinedLeadPercent | No | Percentage of leads declined (0-100) | |
| hasDocumentedProcesses | No | Are core processes documented? | |
| hasJobManagementSoftware | No | Using job management software? |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, consistent with the description's calculation purpose. The description adds context about the output (hire-type recommendation) but does not disclose any behavioral traits beyond what annotations provide. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core action and outcome. Every word contributes meaning; there is no redundant or verbose phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and an existing output schema, the description adequately covers the tool's purpose and outcome. It does not detail all parameters but groups them meaningfully by dimension. The output schema handles return structure, so the description is sufficiently complete for an agent to understand the tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, parameters are fully described in the schema. The description adds value by grouping parameters into three dimensions (financial, operational, systems), providing a high-level semantic structure that aids interpretation beyond individual parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: calculating a hiring readiness score across three specified dimensions (financial, operational, systems) and making a hire-type recommendation. It uses a specific verb ('calculate') and resource ('readiness_score'), and the output recommendation distinguishes it from sibling tools like scaling.readiness_score or hiring.capacity_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used for assessing business metrics to inform hiring decisions, but it does not explicitly state when to use it versus alternatives like hiring.capacity_analysis or hiring.cost_calculator. The context is clear but lacks direct exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
integrations.available_providersARead-onlyInspect
List all available integration providers (not just connected ones). Shows name, category, auth type, features, and whether an adapter is implemented. Use this to help users discover what they can connect.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category (accounting, communication, marketing, project_management, crm, hr, payments, etc.). Omit to return all. | |
| hasAdapter | No | If true, only return providers with live adapter implementations. If false, include coming-soon providers. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Total providers returned |
| providers | No | Provider definitions |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds that the tool shows adapter implementation status (live vs coming-soon). This adds value beyond annotations by clarifying the data scope without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first is a clear, informative statement of the tool's action, and the second provides usage guidance. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complete schema descriptions, annotations, and presence of an output schema, the description covers purpose, usage, and key output features, making it fully adequate for a read-only discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for parameters is 100%, so the description does not need to add meaning. It correctly implies filtering options but does not expand beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all available integration providers (not just connected ones), specifying the returned information (name, category, auth type, features, adapter status). It distinguishes from sibling tools like integrations.list_connections by emphasizing 'available' vs 'connected'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using the tool to help users discover what they can connect, providing clear context. While it does not explicitly exclude alternative tools, the purpose is self-evident given sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
integrations.connection_statusARead-onlyInspect
Get detailed status for a specific integration connection, including last sync results, error logs, and supported operations. Useful for diagnosing sync failures.
| Name | Required | Description | Default |
|---|---|---|---|
| providerId | Yes | The provider ID (e.g., xero, slack, myob, hubspot). Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| connection | No | Connection details with status and metadata |
| recentSyncs | No | Recent sync log entries |
| capabilities | No | Entity types and operations this connection supports |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false. The description adds value by specifying the data included (last sync results, error logs, supported operations). No contradictions. It provides useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, no fluff, front-loaded with the core action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema (1 param), high schema coverage, and existence of output schema, the description adequately covers what the tool does and returns. It mentions key return elements. Could be slightly more explicit about prerequisites (e.g., connection must exist), but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has high coverage (100%) with one parameter (providerId) described clearly. The description does not add further parameter details beyond what the schema provides, so baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed status for a specific integration connection, listing concrete data (sync results, error logs, supported operations). It distinguishes from siblings like integrations.list_connections (list) and integrations.sync (trigger).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use case: 'diagnosing sync failures'. This gives clear context for when to use the tool. It doesn't explicitly list when not to use or alternatives, but the purpose is distinct enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
integrations.list_connectionsARead-onlyInspect
List all active integration connections for the company. Shows provider name, status, last sync time, and supported entity types. Use this to discover what external systems are connected before pushing/pulling data.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by connection status. Omit to return all. | |
| category | No | Filter by provider category (e.g., accounting, communication, project_management). Omit to return all. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Total connections returned |
| connections | No | List of active connections |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true. The description adds value by specifying the fields returned and the discovery purpose. However, it slightly misstates the default scope ('active' connections) when the tool can return all statuses, creating minor inconsistency with the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The first sentence states the primary purpose, and the second adds usage context. Perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, output fields, and usage context. With an output schema present, it does not need to detail return values. For a simple list tool with two optional filters, the description is fully adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description does not add additional parameter semantics beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and resource 'integration connections', specifies the returned fields (provider name, status, last sync time, entity types), and distinguishes from sibling tools like integrations.push_entity and integrations.sync by advising use before pushing/pulling data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use the tool ('before pushing/pulling data'), but does not explicitly mention when to use alternatives like integrations.connection_status. The guidance is practical but lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
integrations.push_entityAIdempotentInspect
Push a specific entity (lead, job, invoice) to a connected integration. For example, push a completed job to Slack as a notification, or push an invoice to Xero. Requires an active connection with push capability for the entity type.
| Name | Required | Description | Default |
|---|---|---|---|
| entityId | Yes | The local entity ID to push. Required. | |
| entityType | Yes | The type of entity to push. Required. | |
| providerId | Yes | The provider ID to push to (e.g., slack, xero, discord). Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | Human-readable result message |
| success | No | Whether the push succeeded |
| externalId | No | ID of the entity in the external system |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds valuable context by stating the requirement for an active connection with push capability, which helps agents anticipate failure cases. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences plus an example and a prerequisite. It front-loads the core purpose and uses clear, direct language without any redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage and existence of an output schema, the description covers the essential aspects: purpose, examples, and a key prerequisite. It does not address error handling or rate limits, but the annotations (openWorldHint=true) suggest some flexibility. Overall, it is sufficiently complete for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all three parameters. The description further clarifies the entity types with real-world examples (lead, job, invoice) and mentions provider IDs like slack, xero, discord, adding context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool pushes a specific entity to a connected integration, provides concrete examples (push job to Slack, invoice to Xero), and distinguishes it from sibling tools like integrations.sync, which likely handles bulk syncs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies a prerequisite (active connection with push capability) and gives examples of when to use. However, it does not explicitly state when not to use or mention alternative tools like integrations.sync for bulk operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
integrations.syncAInspect
Trigger a sync operation for a specific integration connection. Pulls or pushes entities depending on the provider configuration. Requires an active connection.
| Name | Required | Description | Default |
|---|---|---|---|
| direction | No | Sync direction. Defaults to the provider's default direction. | |
| entityType | No | Entity type to sync. Omit to sync all supported entity types. | |
| providerId | Yes | The provider ID to sync (e.g., xero, myob, hubspot). Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | No | Total records processed |
| failed | No | Records that failed to sync |
| status | No | Sync status (success, partial, error) |
| syncId | No | Sync log ID for tracking |
| synced | No | Records successfully synced |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide basic safety hints (readOnlyHint=false, destructiveHint=false). The description adds that behavior depends on provider configuration and requires active connection, but lacks details on side effects like overwriting or creation. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each providing essential information: action, behavior, prerequisite. Front-loaded with core purpose. No redundant or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main function and prerequisite. With an output schema present, return values are not required. It lacks explicit mention of error handling or timeouts, but is adequate for a sync trigger tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have descriptions in the input schema (100% coverage). The description adds no new parameter-specific meaning beyond mentioning 'direction' implicitly, but baseline is 3 due to full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (trigger sync), resource (integration connection), and scope (pulls/pushes entities). It distinguishes from siblings like integrations.push_entity by focusing on bulk sync rather than individual entity pushes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions prerequisite (active connection) but does not explicitly state when to use this tool versus alternatives like push_entity or list_connections. Usage context is implied rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoicing.chaseAInspect
Find and chase overdue invoices. GET mode (no jobId): returns all overdue invoices with days overdue, chase level (friendly/firm/final), and total $ outstanding. SEND mode (with jobId + tone): sends a payment reminder via email (+ optional SMS) with 3-tier escalation — friendly (7+ days), firm (14+ days), final (30+ days). Includes Stripe payment link if connected. Each chase sent is logged and tracked for recovery metrics. The single most revenue-generating tool — 60-70% of friendly reminders result in payment within 48 hours.
| Name | Required | Description | Default |
|---|---|---|---|
| tone | No | Chase escalation level. Required when sending (with jobId). | |
| jobId | No | Job ID to chase. Omit to list all overdue invoices instead. | |
| sendSms | No | Also send SMS reminder (default true if phone available). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses all key behaviors: GET returns overdue invoice details, SEND triggers email/SMS with 3-tier escalation, logging, and recovery tracking. It includes a performance metric (60-70% payment within 48 hours) and notes Stripe integration. Annotations (readOnlyHint: false) are consistent, and the description adds substantial context beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fairly long but well-organized, with the main purpose stated upfront, followed by mode-specific details. Every sentence adds value, though it could be slightly tightened without losing clarity. Given the tool's complexity, the length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers both modes completely: GET mode return format (overdue invoices with days, chase level, total $), and SEND mode side effects (email/SMS, logging, recovery metrics, payment link). With 3 parameters fully described and an output schema present, no gaps remain for effective usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter schema coverage is 100%, and the description enriches every parameter: explains that omitting jobId lists all invoices, includes jobId triggers send, clarifies tone enum values with concrete day thresholds (7+, 14+, 30+), and describes sendSms default behavior. This adds significant meaning beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds and chases overdue invoices with two distinct modes: GET (list overdue) and SEND (send reminders). It uses specific verbs and resources, and differentiates from sibling tools like invoicing.recovery by detailing the dual-mode functionality and escalation levels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use GET mode (no jobId) vs SEND mode (with jobId + tone), providing clear context. However, it does not explicitly mention when to prefer this tool over similar sibling tools like invoicing.recovery or workflows.chase_payment, which would have strengthened the guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoicing.generateAInspect
Generate an invoice for a completed job. If Stripe Connect is active, automatically creates a payment link. Returns invoice number, total, and payment URL. Requires: job_id from jobs.list (job must be status=Completed). Next step: payments.send_link if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID to invoice. Required. The job should be in Completed status. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | No | Invoice total in AUD |
| status | No | Invoice status (typically "sent") |
| invoiceId | No | Generated invoice record ID |
| paymentUrl | No | Stripe payment link URL (null if Stripe Connect not configured) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutability and potential side effects (readOnlyHint=false, openWorldHint=true). The description adds specific behavioral details: creates a payment link if Stripe Connect is active, and returns invoice number, total, and payment URL. It does not describe failure modes or behavior if Stripe is not active, so adequate but not high.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences covering purpose, behavior with Stripe, required input, and next step. No unnecessary words, efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers the main use case, requirements, and output. It lacks details on error scenarios or what happens when Stripe Connect is inactive, but overall it's sufficiently complete given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for jobId: 'Job ID to invoice. Required. The job should be in Completed status.' The tool description adds context (e.g., requires from jobs.list) but does not significantly enhance parameter semantics beyond the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Generate', the resource 'invoice', and the specific condition 'for a completed job'. It distinguishes itself from siblings by mentioning automatic payment link creation via Stripe Connect, contrasting with tools like payments.send_link. The return values are also listed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly requires 'job_id from jobs.list (job must be status=Completed)' and suggests 'Next step: payments.send_link if needed'. This tells when to use and what to do next, though it does not explicitly list when not to use beyond the requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoicing.recoveryARead-onlyInspect
Track how much money has been recovered through auto-chase reminders. Returns total $ recovered and count of invoices that were overdue, got chased, and then got paid. This is the "proof the platform pays for itself" metric — show users exactly how much money Admin Substitute put back in their pocket.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint: true. The description adds value by detailing the two returned metrics (total $ and count), which is beyond what annotations provide. However, it does not disclose whether data is real-time or cached, or scope limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste. First sentence states purpose, second adds value proposition. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and presence of output schema, the description is mostly complete. It specifies what the tool returns. However, it lacks time period scope (e.g., all time, current month) and whether it is company-specific.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema is empty, so no parameters to describe. Per guidelines, baseline is 4. The description effectively adds meaning about what the tool returns, compensating for lack of params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool tracks recovered money from auto-chase reminders, specifying outputs: total $ and count of invoices that were overdue, chased, then paid. It distinguishes from sibling tools like invoicing.chase and analytics.financials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a 'proof the platform pays for itself' metric but does not explicitly state when to use it versus alternatives or provide when-not guidance. Among many analytics siblings, no differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jobs.completeAIdempotentInspect
Mark a job as completed. Optionally record satisfaction rating and trigger an automatic review request. This is the recommended end-of-job action. Requires: job_id from jobs.list. Next steps: invoicing.generate → payments.send_link → reviews.request.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID to mark as completed. Required. | |
| notes | No | Completion notes (e.g. "Replaced hot water system, tested and working"). Optional. | |
| satisfaction | No | Client satisfaction rating from 1 (poor) to 5 (excellent). Optional. | |
| sendReviewRequest | No | Automatically send a review request to the client after completion. Defaults to true. Consumes email + optional SMS credits. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | Updated job marked as Completed |
| invoice | No | Invoice details if auto-generated (null if not) |
| reviewSent | No | Whether a review request was sent to the client |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that sendReviewRequest defaults to true and consumes email/SMS credits, and that satisfaction rating is optional. Annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false) align, and description adds resource consumption details beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: first states purpose and options, second recommends usage, third provides dependencies and next steps. No wasted words, front-loaded with core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations, full schema, and output schema present, the description covers main behavior, options, and workflow. Agent can confidently understand when, how, and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description reinforces key parameter context: jobId from jobs.list, notes as completion notes, satisfaction rating range, and sendReviewRequest default and cost. Adds meaningful value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool marks a job as completed, with optional satisfaction rating and auto review request. It is a specific verb+resource and distinguishes from sibling tools like jobs.create, jobs.list, and jobs.update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'This is the recommended end-of-job action' and provides a clear workflow: requires jobId from jobs.list, then next steps of invoicing.generate → payments.send_link → reviews.request. This provides strong when-to-use and sequence guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jobs.createAInspect
Schedule a job for a lead. Optionally link to a quote and assign a technician. Status is auto-set to "Scheduled" if a date is provided, otherwise "Quoted". Requires: lead_id from leads.list. Next steps: jobs.update → jobs.complete → invoicing.generate.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Job notes or special instructions for the technician. Optional. | |
| leadId | Yes | Lead ID to create the job for. Required. The lead must belong to the authenticated company. | |
| quoteId | No | Optional quote ID to link. Links the job to an existing quote for pricing context. | |
| scheduledDate | No | ISO 8601 date/time for the job (e.g. "2026-06-15T09:00:00+10:00"). Optional — if omitted, status is "Quoted". | |
| assignedTechnician | No | Name of the technician assigned to this job. Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | Created job with id, status, scheduledDate, assignedTechnician, notes, leadId, quoteId, createdAt |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) are consistent. The description adds behavioral context about auto-set status based on date and requirements beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with core purpose, no redundancy. Every sentence adds value (purpose, status rules, prerequisites/next steps).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers creation, status, requirements, and workflow. Output schema exists, so return values need not be explained. Minor gaps: no mention of confirmation or error cases, but overall complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds extra value by explaining the status logic based on scheduledDate and linking to quotes for pricing context, going beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Schedule a job for a lead' with options to link a quote and assign a technician, and distinguishes from sibling tools like jobs.update and jobs.complete by mentioning next steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit prerequisites ('Requires: lead_id from leads.list') and next steps (jobs.update → jobs.complete → invoicing.generate), but does not explicitly state when not to use the tool or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jobs.listARead-onlyInspect
List jobs with status, scheduled dates, technician assignment, and invoice info. Includes linked lead and quote data. Supports cursor-based pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of jobs to return. Defaults to 50, capped at 100. | |
| cursor | No | Pagination cursor from previous response. Pass to get next page of results. | |
| status | No | Filter by job status. Omit to return all statuses. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobs | No | List of job records with id, status, scheduledDate, completedDate, assignedTechnician, notes, lead, quote, invoiceAmount |
| count | No | Total jobs returned |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true, and the description adds value by stating it includes linked lead and quote data and supports cursor-based pagination. This provides behavioral context beyond the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, efficiently front-loading the main purpose and key details. Every sentence adds value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and full parameter documentation, the description covers the main return fields and pagination behavior. It is adequate but could mention ordering or default sorting for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already described (limit, cursor, status). The description adds no further parameter-level meaning beyond the schema, achieving baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists jobs with specific fields like status, dates, technician assignment, and invoice info, including linked lead and quote data. It distinguishes from sibling tools like jobs.create, jobs.update, etc., by using the verb 'list' and specifying the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing jobs and mentions cursor-based pagination, giving context for retrieval. However, it does not explicitly state when to use this tool over alternatives like other list tools or when not to use it, but the purpose is clear enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jobs.profit_summaryARead-onlyInspect
Per-job profit analysis for completed jobs. Returns: total revenue, total cost, total profit, average margin %, and breakdown by service type (sorted by profit). Each service type shows revenue, cost, profit, margin %, and job count. Identifies your most and least profitable service types so you can double down on winners and fix or drop losers. The insight that separates surviving tradies from thriving ones.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, ensuring safe read. Description adds behavioral detail: returns totals, breakdown by service type, and identifies profitable services. No hidden side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is moderately concise, front-loaded with purpose. The last sentence ('The insight that separates...') is somewhat fluff but not detrimental. Could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, output schema exists, annotations are present, and description covers return values and business purpose comprehensively. Complete for an agent to understand behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist in input schema (100% coverage by default). Baseline 4 applies per rule for zero parameters. Description adds no parameter info but is not needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Per-job profit analysis for completed jobs' with specific returns (revenue, cost, profit, margin). Distinguishes from sibling analytics tools by focusing on completed jobs and service type profitability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for profit analysis of completed jobs, but does not explicitly compare with alternatives like analytics.dashboard or analytics.financials. The context of 'completed jobs' provides some guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jobs.send_etaAInspect
Send an "on my way" notification to the client via SMS and/or email with an optional ETA. Improves customer experience and reduces no-shows.
| Name | Required | Description | Default |
|---|---|---|---|
| eta | No | Estimated arrival time as human-readable text (e.g. "15 minutes", "2:30 PM"). Optional. | |
| jobId | Yes | Job ID. Required. Must have a linked lead with contact info. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | Confirmation message |
| smsSent | No | Whether SMS was sent |
| emailSent | No | Whether email was sent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses the tool sends notifications and can include ETA, but does not detail side effects like overwriting previous notifications, behavior if contact info is missing, or whether it logs or triggers workflows. Annotations already indicate mutability (readOnlyHint=false) and non-destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy; states action, target, optional input, and benefit. Front-loaded with key verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple notification tool with two parameters and existing output schema, description covers core purpose and benefit. Could mention that it sends to multiple channels or constraints on job state, but still adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers both parameters with clear descriptions (e.g., 'human-readable text' for eta, 'Must have a linked lead with contact info' for jobId). Description does not add further semantic value beyond schema; baseline 3 is appropriate due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool sends an 'on my way' notification via SMS/email with optional ETA, distinguishing it from generic communication tools like comms.send_email or comms.send_sms by specifying the job-related context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While description implies usage for improving customer experience before a job, it lacks explicit guidance on when to use this tool over alternatives (e.g., comms.send_email for non-arrival messages) or when not to use it (e.g., if no client contact info).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jobs.updateAIdempotentInspect
Update job status, schedule, notes, or technician. Progress jobs through the pipeline: Scheduled → In Progress → Completed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID to update. Required. | |
| notes | No | Updated job notes or instructions. | |
| status | No | New job status. Use jobs.complete for the full completion flow with review requests. | |
| scheduledDate | No | Updated ISO 8601 date/time for rescheduling. | |
| assignedTechnician | No | Updated technician name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | Updated job with all fields |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds no behavioral traits beyond the expected update operation. It is consistent but does not disclose side effects or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler. The verb 'Update' is front-loaded, and the pipeline sequence is efficiently described.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the core update functionality and pipeline progression. Does not explain error cases or that status can also revert to Quoted or Cancelled, but output schema likely handles return details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions. The description adds pipeline progression context beyond the schema, enhancing understanding of status transitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates job status, schedule, notes, or technician and mentions pipeline progression (Scheduled → In Progress → Completed). However, it omits other valid statuses (Quoted, Cancelled) from the enum, which could mislead about allowed transitions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs siblings like jobs.create or jobs.list. The status parameter schema mentions using jobs.complete for full completion flow, but the description itself lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leads.createAInspect
Create a new lead/prospect. Auto-assigns to the authenticated company. Source defaults to "mcp" if not specified.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Full name of the prospect. Required. | |
| No | Email address for quote delivery and follow-ups. Optional. | ||
| phone | Yes | Australian phone number (e.g. 0412 345 678). Required. | |
| source | No | Where this lead came from (e.g. "referral", "website", "hipages", "mcp"). Defaults to "mcp". | |
| address | No | Job site or client address. Optional. | |
| message | No | Initial enquiry message or job description from the client. Optional. | |
| priority | No | Lead priority. Defaults to Medium if omitted. | |
| serviceType | No | Type of service needed (e.g. "Hot Water Replacement", "Roof Repair"). Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lead | No | Created lead with id, name, phone, email, serviceType, status, priority, source, createdAt |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds behavioral context beyond annotations, such as auto-assigning to the authenticated company and defaulting source to 'mcp'. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core purpose, and contains no extraneous words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description does not need to explain return values. It covers creation, auto-assignment, and source default. It could mention potential side effects or permissions, but it is generally complete for a create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explicitly noting the source default and auto-assignment behavior, which are not fully captured in the schema descriptions. However, it does not elaborate on other parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create' and the resource 'lead/prospect', and distinguishes itself from siblings like leads.list and leads.update by being the creation operation. It also adds specific context about auto-assignment and default source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating new leads but does not explicitly state when to use this tool vs alternatives like leads.list or leads.update. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leads.listARead-onlyInspect
List leads and prospects. Returns name, phone, email, service type, status, priority, source, and timestamps. Supports filtering and cursor-based pagination. Tip: Use leads.create to add new leads, then leads.list to verify.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of leads to return. Defaults to 50, capped at 100. | |
| cursor | No | Pagination cursor from previous response. Pass to get next page of results. | |
| status | No | Filter by lead pipeline stage. Omit to return all statuses. | |
| priority | No | Filter by priority level. Omit to return all priorities. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Total number of leads returned |
| leads | No | List of lead records |
| next_cursor | No | Cursor for next page. Null if no more results. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false. Description confirms the read-only nature but adds no additional behavioral context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a concise tip. Front-loaded with action and output, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema explaining return fields. Description covers key context: output fields, filtering, pagination. Complete for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters with clear meanings. Description adds a tip but no extra parameter semantics beyond schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists leads and prospects, specifies exact fields returned, and mentions filtering and pagination. Differentiates from sibling tools like leads.create and leads.update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a tip on using leads.create then leads.list to verify. However, does not compare to other list tools like jobs.list or clients.list for when to use this one instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leads.updateAIdempotentInspect
Update an existing lead. Pass the lead ID and any fields to change. Only provided fields are updated.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Lead ID to update. Required. | |
| name | No | Updated client name. | |
| No | Updated email address. | ||
| phone | No | Updated phone number. | |
| status | No | New pipeline stage for the lead. | |
| address | No | Updated address. | |
| message | No | Updated notes or message. | |
| priority | No | Updated priority level. | |
| serviceType | No | Updated service type. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lead | No | Updated lead with all fields |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show idempotent and non-destructive hints. The description adds 'Only provided fields are updated,' reinforcing partial update behavior and no side effects beyond the given fields. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, direct sentences with no wasted words. The essential information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and high schema coverage, the description is fully complete. It identifies the action, usage, and required parameter without needing to explain return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter has its own description. The description's general statement adds no extra meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing lead' with the verb and resource, and specifies the partial update behavior ('Only provided fields are updated'). It distinguishes from siblings like leads.create and leads.list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use ('Pass the lead ID and any fields to change') and implies context (updating leads). No explicit when-not or alternatives, but the sibling list makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lifecycle.assessARead-onlyInspect
Assess which business lifecycle stage a trade business is in (formation → survival → capacity → funding → scaling) and get readiness score for the next stage. Returns current stage, signals met/unmet, transition triggers, recommendations, and blockers.
| Name | Required | Description | Default |
|---|---|---|---|
| hasABN | Yes | Does the business have an ABN? | |
| totalJobs | No | Total jobs completed | |
| hasLicence | Yes | Does the business have a trade licence? | |
| avgWaitDays | No | Average customer wait time (days) | |
| reviewCount | No | Total reviews received | |
| totalQuotes | No | Total quotes sent | |
| hasInsurance | No | Has insurance been arranged? | |
| annualRevenue | No | Annual revenue ($) | |
| employeeCount | No | Number of employees (0 for solo) | |
| avgReviewScore | No | Average review score (1-5) | |
| monthlyRevenue | No | Average monthly revenue ($) | |
| ownerWeeklyHours | No | Owner weekly working hours | |
| declinedLeadPercent | No | Percentage of leads declined/lost |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds valuable behavioral context: it returns current stage, signals, transition triggers, recommendations, and blockers. No contradictions, and it enriches the agent's understanding of the tool's output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy. The first sentence states the core action and stages, the second lists the return content. Efficiently front-loads critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (13 parameters, output schema present), the description covers the tool's purpose and outputs thoroughly. It mentions all key return fields and the stage progression, leaving no major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all 13 parameters described. The description adds minimal extra meaning beyond the schema, only hinting that inputs are used to assess stages. Baseline 3 is appropriate as schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: assessing business lifecycle stage and returning readiness score, current stage, signals, triggers, recommendations, and blockers. It lists the specific stages (formation to scaling), making it highly specific and distinguishable from generic assessment tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for overall lifecycle assessment but lacks explicit guidance on when to use this tool versus siblings like 'scaling.readiness_score' or 'formation.checklist'. No when-not or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketing.generate_contentARead-onlyIdempotentInspect
Generate marketing content for a specific channel. Supports Google Ads, Facebook posts, SMS campaigns, email templates, Google Business posts, and website copy. Generates headline, body, CTA, and SMS-length version. Includes A/B test variations. Requires Pro plan.
| Name | Required | Description | Default |
|---|---|---|---|
| tone | No | Content tone. Defaults to "professional". | |
| trade | No | Trade type. Optional. | |
| promotion | No | Special offer or promotion to include. Optional. | |
| contentType | Yes | Type of content to generate. Required. | |
| targetAudience | No | Target audience description. Optional. | |
| serviceDescription | No | Specific service to promote (e.g. "hot water system replacement"). Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | No | Generated content with headline, body, callToAction, hashtags, smsVersion, variations, tips |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that it generates content and includes A/B test variations, which are consistent. No contradictions, but the description provides little additional behavioral context beyond what annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each adding necessary information: purpose, supported channels, output components, and a requirement. No redundant or unnecessary words, well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (context: output schema true), the description does not need to explain return values. It covers purpose, channels, outputs, and a requirement. It could mention if the content is AI-generated or uses templates, but it is sufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters with descriptions. The description adds no new parameter-specific semantics beyond listing supported channels and output components, which are already implied by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it generates marketing content for specific channels, lists supported channels (Google Ads, Facebook, etc.), and mentions output components (headline, body, CTA, SMS version). This clearly defines the tool's function and distinguishes it from siblings like marketing.strategy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the prerequisite 'Requires Pro plan', implying when it is available. It does not explicitly state when to use vs alternatives, but the sibling list shows marketing.strategy as the only other marketing tool, which likely has different purpose. Context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketing.strategyARead-onlyIdempotentInspect
AI-powered lead generation strategy engine. Analyses your trade, region, demand intelligence, and historical lead data to recommend marketing channels with estimated costs and ROI. Includes content ideas, quick wins, and seasonal tips. Requires Pro plan.
| Name | Required | Description | Default |
|---|---|---|---|
| trade | No | Trade type. Optional — auto-detected from company profile. | |
| budget | No | Marketing budget level. Defaults to "medium". | |
| region | No | Target region (e.g. "Sydney", "Sunshine Coast"). Optional. | |
| targetAudience | No | Target market. Defaults to "both". | |
| currentChannels | No | Channels you are already using (e.g. ["hipages", "Google Ads"]). Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| strategy | No | Full strategy with channelRecommendations, contentIdeas, quickWins, seasonalTips |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior. Description adds value by specifying output includes costs, ROI, content ideas, and the Pro plan requirement, enhancing transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the core purpose and add key features and requirements without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 optional parameters and an output schema, the description adequately explains the tool's capabilities and what it produces, though it could briefly mention output format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so the schema already documents parameters. Description does not add per-parameter details but gives overall context that maps to trade and region.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it is an 'AI-powered lead generation strategy engine' that analyzes data to recommend marketing channels with costs and ROI, distinguishing it from sibling tools like marketing.generate_content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions it requires a Pro plan and analyzes specific data (trade, region, demand), providing usage context but no explicit when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
operator.dashboardARead-onlyInspect
Get unified dashboard metrics across all operator companies: YTD/MTD revenue, profit, win rates, pipeline, and revenue waterfall.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is clear. The description adds that it returns specific metrics but does not disclose caching, rate limits, or other behavioral traits. This provides some additional context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the key purpose ('Get unified dashboard metrics') and efficiently lists the metrics included. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description sufficiently explains what the tool returns. It covers the scope (all operator companies) and specific metrics, making it complete for this simple read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100% by default. The description does not add parameter details, but baseline for 0 parameters is 4. It meets the requirement without needing further elaboration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves unified dashboard metrics across all operator companies, listing specific metrics like YTD/MTD revenue, profit, win rates, pipeline, and revenue waterfall. This distinguishes it from sibling tools such as analytics.dashboard (likely more general) and operator.get_portfolio (portfolio-specific).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is the top-level overview for operator metrics but does not explicitly state when to use this versus alternatives like analytics.financials or operator.get_shared_suppliers. No exclusions or when-not guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
operator.get_portfolioARead-onlyInspect
List all companies in the operator's portfolio with basic metrics (lead/quote/job counts).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description correctly implies a read operation without contradiction. It adds context about the returned metrics (lead/quote/job counts) but does not elaborate on ordering, pagination, or potential limits. This is adequate for such a simple tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that effectively communicates the purpose without unnecessary words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, an output schema (which likely explains the return structure), and annotations indicating it's a read-only operation, the description is largely complete. It could mention whether the list is paginated, but that may be inferred from the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is trivially 100%. The description adds value by specifying what the output contains (companies with lead/quote/job counts), which is beyond what the empty schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists companies in the operator's portfolio with specific basic metrics (lead/quote/job counts). The verb 'List' and resource 'companies in the portfolio' are precise, distinguishing it from sibling tools like operator.dashboard which likely provide broader analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving a curated list of portfolio companies with metrics, but it does not explicitly state when to use it versus alternatives like analytics.dashboard or operator.dashboard. No exclusions or alternative tool names are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
operator.switch_companyAIdempotentInspect
Switch the active company context for this operator. All subsequent tool calls will execute in the new company context.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | The ID of the company to switch to. Must be in the operator's portfolio. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations by stating that the change persists for subsequent tool calls. Annotations already indicate idempotency and non-destructiveness, and the description complements them without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each with clear purpose. No extraneous information. Front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple state-changing tool with one parameter and an output schema, the description is complete. It covers purpose, effect, and parameter constraint without gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description repeats the schema's constraint (company must be in portfolio). No additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('switch the active company context') and the resource ('for this operator'). It distinguishes from sibling tools like operator.dashboard and operator.get_portfolio by focusing on context mutation rather than reading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the effect (subsequent calls use new context), implying this tool is used before operations that depend on the current company. However, it doesn't explicitly mention when not to use it or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payments.send_linkAInspect
Generate a payment link for a job and optionally send it to the client via SMS and/or email. Requires Stripe Connect to be active on the company. Requires: job_id. Tip: Use after invoicing.generate for the smoothest flow.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID to create payment link for. Required. | |
| amount | No | Payment amount in AUD (e.g. 850.00). If omitted, uses job invoice total or quote total. | |
| sendSms | No | Send payment link via SMS to client. Default false. | |
| sendEmail | No | Send payment link via email to client. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| amount | No | Payment amount in AUD |
| actions | No | List of actions taken (SMS sent, email sent, etc.) |
| paymentUrl | No | Payment URL for the client |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, so the description's mention of 'Generate' and 'send' is expected. The description adds the prerequisite about Stripe Connect, which is useful behavioral context. However, it doesn't disclose potential side effects (e.g., whether previous links are invalidated) beyond what annotations imply. The description doesn't contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a requirement and a tip, all front-loaded with the core action. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description needn't detail return values. It covers prerequisites and a workflow tip. For a 4-parameter tool, it's adequately complete, though it could hint at the output format (e.g., 'Returns a payment link URL').
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description adds 'Requires: job_id' and a tip, but doesn't provide additional semantics beyond the schema. The baseline 3 applies because the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Generate a payment link for a job and optionally send it to the client via SMS and/or email.' It specifies the resource (payment link for a job) and distinguishes from sibling tools like billing.create_checkout (checkout session) or invoicing.generate (invoice generation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear prerequisite ('Requires Stripe Connect to be active on the company.') and a usage tip ('Use after invoicing.generate for the smoothest flow.'). It doesn't explicitly list when not to use, but the tip implies the ideal context. No alternatives are named, but the guidance is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricebook.importAInspect
Import products from the global supplier catalog into the company's own price book. Creates a company-level supplier and service catalog items. Applies default markup if specified.
| Name | Required | Description | Default |
|---|---|---|---|
| itemIds | Yes | Array of global catalog item IDs to import. Required. | |
| markupPct | No | Default markup percentage to apply (e.g. 30 for 30%). Defaults to 30. | |
| supplierId | Yes | Global supplier ID. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| skipped | No | Items skipped (already existed) |
| imported | No | Number of items imported |
| supplier | No | Company supplier name created/matched |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false). The description adds that it creates items and applies default markup, but does not disclose potential destructive actions or error handling beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no redundancy. Front-loaded with the primary action, followed by clarifying details. Efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (3 params, output schema present), the description covers the core behavior. However, it omits details about idempotency or what happens if items already exist, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description ties 'default markup' to markupPct but adds little extra meaning beyond the schema. It provides context for supplierId and itemIds by mentioning what is created.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (import), the source (global supplier catalog), and destination (company price book). It also mentions creating company-level supplier and service catalog items, which differentiates it from siblings like pricebook.search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (importing from global catalog), but lacks explicit guidance on when not to use, prerequisites, or behavior on duplicates. No alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricebook.searchARead-onlyInspect
Search the Australian supplier catalog — 930+ products from 24+ wholesalers (Reece, Bunnings, Middy's, Dulux, etc). Filter by trade, subcategory, or free-text search. Returns RRP and typical trade cost.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results. Default 50. | |
| trade | No | Filter by trade. | |
| search | No | Free-text search across product names, brands, SKUs, and descriptions. | |
| supplierId | No | Filter by specific global supplier ID. | |
| subcategory | No | Filter by subcategory (e.g. "Hot Water", "Cable & Wire", "Split Systems"). |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Total results |
| items | No | List of {id, name, brand, sku, description, typicalCostPrice, typicalSellPrice, unit, category, subcategory, supplier} objects |
| subcategories | No | Available subcategory filters |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint=true, so description adds context: returns RRP and typical trade cost, covers 930+ products from 24+ wholesalers. No contradictions. The description enriches behavioral understanding beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with front-loaded purpose. Every word adds value. Efficient structure with clear scope and capabilities.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, output schema exists, and no required params, the description covers scope, filters, and return values (RRP, trade cost). No gaps. Complex tool well described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters have descriptive names and descriptions. The tool description reiterates filtering but adds no new semantic detail beyond what schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Search the Australian supplier catalog' with specific resources (930+ products, 24+ wholesalers) and distinguishes from sibling pricebook.import. The verb 'search' is precise and matches the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions filtering options (trade, subcategory, free-text) which implicitly guide when to use. No explicit when-not-to or alternatives, but siblings are different tools (pricebook.import), so usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quotes.ai_price_suggestionARead-onlyIdempotentInspect
AI-powered pricing intelligence. Analyses the 930+ item supplier catalog, company price book, and historical quotes to suggest optimal pricing with detailed reasoning. Returns line items, adjustments (urgency/complexity/location), market context, and confidence scores. ACCC-compliant: suggestions only, human decides final price. Requires Growth+ plan.
| Name | Required | Description | Default |
|---|---|---|---|
| trade | No | Trade type (e.g. "plumbing", "electrical", "hvac"). Optional — auto-detected from company profile if omitted. | |
| leadId | No | Optional lead ID to pull additional context (customer name, service type, address). | |
| suburb | No | Suburb/location for area-based pricing adjustments (e.g. "Bondi", "Pilbara"). Optional. | |
| urgency | No | Job urgency level. "urgent" = same/next day (+15-25%). "emergency" = after-hours/immediate (+50-100%). Defaults to "standard". | |
| complexity | No | Job complexity. Affects labour time and pricing. Defaults to "moderate". | |
| description | Yes | Plain English job description. Be specific: include scope, materials, access conditions. Required. | |
| includeBreakdown | No | Include detailed material + labour breakdown. Defaults to true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| suggestion | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only and non-destructive. Description adds that it is ACCC-compliant and requires a Growth+ plan, providing useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, four sentences covering purpose, functionality, compliance, and access. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides sufficient context for the tool's role, outputs, and constraints. Output schema exists so return values are covered. Could mention integration with quotes.create but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters fully (100% coverage). Description does not add meaning beyond what the schema provides, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it is an AI-powered pricing suggestion tool that analyzes catalogs and historical data. Distinguishes from sibling tools like quotes.create by focusing on suggestion rather than creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for obtaining pricing suggestions before creating a quote, but no explicit comparison to alternatives like quotes.create or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quotes.createAInspect
Create a quote for a lead. Provide line items with description, quantity, unitPrice, and total. Created in Draft status. Requires: lead_id from leads.list or leads.create. Next step: quotes.send to deliver to client.
| Name | Required | Description | Default |
|---|---|---|---|
| total | Yes | Quote total in AUD including GST. Required. | |
| leadId | Yes | ID of the lead to quote. Required. The lead must belong to the authenticated company. | |
| lineItems | Yes | Array of line items. Each item needs description, quantity, unitPrice, and total. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| quote | No | Created quote with id, quoteNumber, status, total, lineItems, leadId, createdAt |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, but description adds that quotes are created in 'Draft status' and requires a lead from specific sources. This goes beyond minimal annotation disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no redundancy. First sentence captures purpose, second summarizes parameters, third gives workflow context. Very efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 required parameters and an output schema, the description covers all essential aspects: purpose, required inputs, workflow integration. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. Description reiterates that line items need description, quantity, unitPrice, and total, which is already in the schema. No additional meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Create a quote for a lead' with specific verb and resource. It distinguishes from siblings like quotes.update or quotes.send by mentioning creation for a lead and draft status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on prerequisite (lead_id from leads.list or leads.create) and next step (quotes.send). Tells agent when to use this tool but does not explicitly mention when not to use it; however, context from siblings and the workflow steps is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quotes.listARead-onlyInspect
List quotes with line items, totals, status, and linked lead info. Supports filtering by status and cursor-based pagination. Tip: Create quotes with quotes.create (requires a lead_id from leads.create or leads.list first).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of quotes to return. Defaults to 50, capped at 100. | |
| cursor | No | Pagination cursor from previous response. Pass to get next page of results. | |
| status | No | Filter by quote status. Omit to return all statuses. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Total quotes returned |
| quotes | No | List of quote records with nested lineItems and lead info |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and description confirms read-only listing. Adds return field details and pagination behavior beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. Each sentence provides useful information: purpose and a workflow tip. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, description adequately covers return fields. For a list tool with rich annotations and schema, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters with full descriptions (100% coverage). Description adds value by noting pagination type and not repeating schema. Baseline 3 is elevated due to concise additional context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List quotes' with specific fields (line items, totals, status, linked lead info) and filtering/pagination. Distinguishes from sibling tools like quotes.create, quotes.update, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions filtering by status and cursor-based pagination. The tip referencing quotes.create and leads provides context on workflow, but doesn't exclude use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quotes.sendAIdempotentInspect
Generate a shareable link for a quote and optionally send it to the client via SMS and/or email. Marks the quote as Sent. Returns the public URL clients can view and accept.
| Name | Required | Description | Default |
|---|---|---|---|
| quoteId | Yes | Quote ID to share. Required. Must be in Draft or Sent status. | |
| sendSms | No | Also send the quote link via SMS to the client phone number. Defaults to false. Consumes 1 SMS credit. | |
| sendEmail | No | Also send the quote link via email to the client email. Defaults to false. Consumes 1 email credit. |
Output Schema
| Name | Required | Description |
|---|---|---|
| smsSent | No | Whether SMS was sent successfully |
| quoteUrl | No | Public URL where the client can view and accept the quote |
| emailSent | No | Whether email was sent successfully |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes key effects: marks quote as Sent, consumes SMS/email credits, and returns a public URL. Annotations provide idempotentHint=true and destructiveHint=false, which are consistent. Adds value beyond annotations by detailing credit consumption.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with main action, no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage, output schema, and good annotations, the description is complete. It covers purpose, behavior, and return value without gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add extra parameter details beyond what schema already provides, which is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a shareable link for a quote, optionally sends via SMS/email, marks as Sent, and returns the public URL. It distinguishes from siblings like quotes.create or comms.send_email by combining these specific actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. Usage context is implied but alternatives like comms.send_email or workflows.follow_up_quote are not mentioned, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quotes.updateAIdempotentInspect
Update a quote's status, line items, or total. Use to progress quotes through the pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Quote ID to update. Required. | |
| total | No | Updated quote total in AUD. | |
| status | No | New quote status. | |
| lineItems | No | Replacement line items array. Overwrites existing items. |
Output Schema
| Name | Required | Description |
|---|---|---|
| quote | No | Updated quote with all fields |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the description's statement 'Update' is consistent but adds little. It provides business context ('progress quotes through the pipeline') but no additional behavioral traits like side effects or authorization needs. With annotations present, this is adequate but not above average.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that communicates both the action and the context efficiently. It is front-loaded and free of unnecessary words, earning a high score for conciseness, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and annotations, the description is fairly complete. It mentions the key updateable fields and the pipeline context. However, it omits details like the required 'id' parameter and the overwriting behavior of lineItems, which are covered in the schema but not reiterated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description merely lists the parameter types (status, line items, total) already described in the schema, adding no additional meaning or constraints. It does not compensate for any missing schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'a quote', and specifies the updatable fields (status, line items, total). It also provides business context ('progress quotes through the pipeline'). This distinguishes it from siblings like quotes.create, quotes.list, and quotes.send.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use the tool ('to progress quotes through the pipeline'), giving clear context. However, it does not explicitly state when not to use it or mention alternative tools (e.g., workflows.follow_up_quote), which would improve guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reminders.createAInspect
Schedule a follow-up reminder. Can be linked to a lead or job. Reminders appear in the dashboard and can trigger notifications.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Reminder category. Defaults to "custom". | |
| jobId | No | Link this reminder to a specific job. Optional. | |
| title | Yes | Short reminder title (e.g. "Follow up with Jake about roof quote"). Required. | |
| leadId | No | Link this reminder to a specific lead. Optional. | |
| message | No | Detailed reminder notes. Optional. | |
| scheduledDate | Yes | ISO 8601 date/time for the reminder (e.g. "2026-06-15T09:00:00+10:00"). Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| reminder | No | Created reminder with id, title, scheduledDate, type, status, leadId, jobId |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds value beyond annotations by noting that reminders appear in the dashboard and can trigger notifications. Annotations already indicate it is a write operation (readOnlyHint=false) and not destructive (destructiveHint=false), so the description complements well without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loading the core purpose without unnecessary detail. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (unknown but present) and annotations, the description sufficiently covers the tool's purpose and behavior. It explains scheduling, linking, and user-facing effects (dashboard, notifications). Minor gap: no mention of error conditions or permissions, but not critical for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all parameters (100% coverage), so the description does not add new semantics. The description mentions linking to lead or job, which aligns with schema's 'leadId' and 'jobId' fields, but no further detail is provided. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Schedule a follow-up reminder' with a specific verb and resource. It also mentions linking to lead or job, and distinguishes from sibling tools like reminders.list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use the tool (to schedule a follow-up reminder) and what it can link to (lead or job). However, it does not explicitly state when not to use it or provide alternatives, though the context implies alternatives like reminders.list for listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reminders.listARead-onlyInspect
List upcoming scheduled reminders, sorted by date. Includes linked lead/job info for context.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of reminders to return. Defaults to 20. | |
| status | No | Filter by reminder status. Defaults to "pending" (upcoming reminders). |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Total reminders returned |
| reminders | No | List of {id, title, scheduledDate, type, status, message, lead, job} objects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond annotations: sorting by date and inclusion of linked lead/job info. The readOnly hint is already declared, and description is consistent with it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences with no wasted words. The description efficiently conveys the core purpose and additional context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is nearly complete given the tool's simplicity, output schema existence, and annotation coverage. It could mention the status filter explicitly, but the default 'pending' aligns with 'upcoming'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description does not add extra meaning to the parameters beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'upcoming scheduled reminders', with sorting by date and included context. It distinguishes well from the sibling tool 'reminders.create' which focuses on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing upcoming reminders but does not provide explicit guidance on when to use this tool versus alternatives, such as comparing with other list tools or specifying exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reviews.platformsARead-onlyInspect
List configured review platforms (Google, Hipages, Facebook, etc) with their URLs. Useful for knowing where to direct review requests.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| platforms | No | List of {platform, url, enabled} objects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's claim of listing platforms without side effects is consistent. The description adds transparency about the output (platform URLs) and configuration aspect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two brief sentences, each adding value: the first states the action and examples, the second states the utility. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema present, the description provides complete context. It explains what the tool returns and why it's useful, covering all necessary information for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description has no burden to explain them. The rubric sets a baseline of 4 for zero parameters. The description adds no unnecessary detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: to list configured review platforms with their URLs, giving concrete examples (Google, Hipages, Facebook). This distinguishes it from sibling tools like reviews.request, which is for requesting reviews.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use it ('useful for knowing where to direct review requests'), which implicitly guides usage. It doesn't explicitly state when not to use it, but the context of sibling tools provides clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reviews.requestAInspect
Send a review request to a client after a completed job. Sends via email and optionally SMS with links to configured review platforms (Google, Hipages, etc). Requires: job_id from a completed job. Tip: reviews.platforms lists configured review URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID. Required. The job must be in Completed status. The linked lead must have an email address. | |
| sendSms | No | Also send the review request via SMS to the client phone. Defaults to false. Consumes 1 SMS credit. |
Output Schema
| Name | Required | Description |
|---|---|---|
| smsSent | No | Whether SMS was sent |
| emailSent | No | Whether email was sent |
| reviewLinks | No | Array of review platform URLs included in the message |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only and non-destructive. Description adds that it sends email and optionally SMS, which is beyond annotations. Could mention idempotency or that multiple sends possible, but not critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words. Front-loaded with the main purpose, then method, requirement, and tip. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity, the description covers purpose, prerequisites, and a useful tip. It does not detail error states or what happens if platforms are not configured, but output schema exists to handle return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes both parameters with 100% coverage. The description adds the operational tip about reviews.platforms, linking to another tool, which enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a review request after a completed job, specifying the verb and resource. It distinguishes from sibling tools like comms.send_email and reviews.platforms by focusing on the review request workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use after a completed job, requires job_id, and references reviews.platforms for review URLs. It lacks explicit when-not-to-use, but the context is sufficient for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scaling.readiness_scoreARead-onlyInspect
Assess if a trade business is ready to scale from solo/small operation to multi-crew operator mode. Evaluates financial strength, systems maturity, team capability, and market demand.
| Name | Required | Description | Default |
|---|---|---|---|
| profitMargin | No | Profit margin percentage (0-100) | |
| annualRevenue | Yes | Annual revenue ($) | |
| employeeCount | Yes | Current employee count | |
| avgMonthlyLeads | No | Average new leads per month | |
| repeatClientRate | No | Percentage of revenue from repeat clients (0-100) | |
| ownerOnToolsPercent | No | Percentage of time owner spends doing trade work vs managing (0-100) | |
| hasDocumentedProcesses | No | Are processes documented and delegatable? | |
| hasJobManagementSoftware | No | Using job management software? |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true; description adds context about evaluation scope and dimensions, no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences with no redundancy; front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return value documentation is handled; description gives sufficient high-level context for the 8 parameters, though score range or output format not mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with adequate parameter descriptions; description provides high-level grouping but does not add significant detail beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool assesses readiness to scale from solo/small to multi-crew operator, specifying evaluation dimensions (financial, systems, team, market). Name and description distinguish it from sibling tools like hiring.readiness_score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidelines; context implies use for scaling readiness assessment, but alternatives or prerequisites are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
services.createAInspect
Add a new service to the company catalog. Include name, description, price range, and category.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Service name (e.g. "Hot Water System Replacement", "Lawn Mowing — Large"). Required. | |
| unit | No | Pricing unit (e.g. "per job", "per hour", "per sqm", "per unit"). Optional. | |
| category | No | Service category. Defaults to "service". | |
| priceMax | No | Maximum price in AUD (e.g. 350.00). Optional. Can equal priceMin for fixed-price services. | |
| priceMin | No | Minimum price in AUD (e.g. 150.00). Optional. | |
| description | No | Detailed service description for quoting context. Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| service | No | Created service with id, name, description, priceMin, priceMax, unit, category, active |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, indicating a non-destructive write. The description adds minimal behavioral context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 13 words, no waste. Effectively communicates the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description need not explain return values. It covers the primary action and key fields. Could mention potential prerequisites or idempotency, but generally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The description reiterates some parameters but does not add additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a new service') and the resource ('company catalog'), and lists the key fields. It distinguishes from sibling tools like services.list and services.update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like services.update. It implies use for new services but lacks when-not or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
services.listARead-onlyInspect
List all services in the company catalog with prices, descriptions, and categories. Useful for accurate quoting and understanding what the business offers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Total active services |
| services | No | List of {id, name, description, priceMin, priceMax, unit, category, active} objects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds no extra behavioral traits (e.g., pagination, rate limits), just restates the listing behavior. This is adequate given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action ('List all services'), no redundancy, and earned its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an existing output schema, the description fully covers the tool's purpose and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description cannot add meaning beyond an empty schema. The baseline for 0 parameters is 4, and the description successfully explains what is returned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all services in the company catalog, specifying included fields (prices, descriptions, categories). It distinguishes from sibling tools like services.create and services.update by focusing on reading rather than writing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case ('useful for accurate quoting and understanding what the business offers') but does not explicitly mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
services.updateAIdempotentInspect
Update an existing service in the catalog. Change price, description, or toggle active/inactive status.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Service ID to update. Required. | |
| name | No | Updated service name. | |
| unit | No | Updated pricing unit. | |
| active | No | Set to false to soft-delete/disable this service. Set to true to re-enable. | |
| category | No | Updated category. | |
| priceMax | No | Updated maximum price in AUD. | |
| priceMin | No | Updated minimum price in AUD. | |
| description | No | Updated description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| service | No | Updated service with all fields |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (idempotentHint=true, destructiveHint=false) are present. The description adds context about the soft-delete behavior when setting active=false, which goes beyond the schema. However, it does not disclose permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action, no unnecessary words. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (update with one required param) and the presence of an output schema, the description covers key aspects: field updates and soft-delete. Could mention return value or error handling but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. The description briefly mentions changing price, description, or status but does not add meaning beyond the schema's field descriptions. It groups fields but lacks nuance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'update' and the resource 'existing service in the catalog'. It lists specific fields that can be changed (price, description, active status), distinguishing it from siblings like services.create and services.list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for modifying existing services but does not explicitly contrast with services.create or provide when-not-to-use guidance. No alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subcontractors.dispatchAInspect
Dispatch a job to a subcontractor. Sends SMS notification and creates a dispatch record for tracking. Subcontractor must be in "active" or "verified" status. Returns dispatch details.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | No | Link to existing job ID. Optional. | |
| amount | No | Agreed payment amount in AUD. Optional. | |
| leadId | No | Link to existing lead ID. Optional. | |
| sendSms | No | Send SMS notification to subcontractor. Defaults to true. | |
| description | Yes | Job description for the subcontractor. Required. | |
| scheduledDate | No | Scheduled date (ISO 8601). Optional. | |
| subcontractorId | Yes | ID of the subcontractor to dispatch to. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| dispatch | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals side effects ('Sends SMS notification', 'creates a dispatch record') and a prerequisite (subcontractor status) beyond what annotations provide. Annotations indicate write (readOnlyHint=false) and non-destructive (destructiveHint=false), which aligns with the description. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each serving a distinct purpose: stating the main action, detailing actions and conditions, and stating the return value. It is front-loaded with the verb and resource. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters (2 required), an output schema, and no nested objects, the description covers the core purpose, actions, prerequisite, and return value. It does not mention job status updates or handling of jobId, but the schema addresses that. The description is sufficiently complete for an agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already describes each parameter. The description adds marginal value by mentioning 'SMS notification' (relating to sendSms) and 'Subcontractor must be active/verified' (relating to subcontractorId). However, it does not elaborate on other parameters beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Dispatch' and the resource 'job to a subcontractor', distinguishing it from sibling tools like subcontractors.list (which lists subcontractors) and jobs.create (which creates a job without dispatching). The actions 'Sends SMS notification and creates a dispatch record' further specify the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear prerequisite: 'Subcontractor must be in "active" or "verified" status.' This tells the agent when the tool can be used. It does not explicitly list alternatives, but the sibling set makes the use case obvious. A slight improvement would be to state when not to use it, but the current guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subcontractors.listARead-onlyInspect
List registered subcontractors in the vetted network. Filter by trade, status, or availability. Returns license, insurance, service areas, ratings, and job history.
| Name | Required | Description | Default |
|---|---|---|---|
| trade | No | Filter by trade (e.g. "plumbing", "electrical"). Optional. | |
| search | No | Search by business name, contact name, phone, or email. Optional. | |
| status | No | Filter by verification status. Optional. | |
| availability | No | Filter by current availability. Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Total subcontractors returned |
| subcontractors | No | List of subcontractor records |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. Description adds value by specifying exact return fields (license, insurance, service areas, ratings, job history) and confirming it is a read-only list operation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and purpose. Every sentence is informative with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All parameters are optional and described fully in schema. Description mentions return fields. Output schema exists (per context signals), but description still provides enough context for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter already described. Description repeats 'Filter by trade, status, or availability' but does not add meaning beyond schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List registered subcontractors in the vetted network', specifying verb, resource, and scope. It lists filtering options and return fields, distinguishing it from sibling tools like subcontractors.register, .verify, and .dispatch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for querying subcontractors and lists filters, but does not explicitly state when to use vs. alternatives or provide exclusions. However, context from sibling names clarifies differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subcontractors.registerAInspect
Register a new subcontractor in the vetted network. Captures business details, trade license, insurance, service areas, and rates. Starts in "pending" status until verified. Requires Growth+ plan.
| Name | Required | Description | Default |
|---|---|---|---|
| abn | No | Australian Business Number. Optional but recommended. | |
| No | Contact email. Optional. | ||
| notes | No | Internal notes about this subcontractor. Optional. | |
| phone | Yes | Contact phone number. Required. | |
| trade | Yes | Primary trade (e.g. "plumbing", "electrical"). Required. | |
| dayRate | No | Standard day rate in AUD. Optional. | |
| hourlyRate | No | Standard hourly rate in AUD. Optional. | |
| contactName | Yes | Primary contact person name. Required. | |
| businessName | Yes | Subcontractor business name. Required. | |
| licenseState | No | State of license (e.g. "NSW", "VIC"). Optional. | |
| serviceAreas | No | List of suburbs/regions they service. Optional. | |
| licenseExpiry | No | License expiry date (ISO 8601). Optional. | |
| licenseNumber | No | Trade license number. Optional. | |
| insuranceExpiry | No | Insurance expiry date (ISO 8601). Optional. | |
| publicLiability | No | Public liability coverage amount in AUD. Optional. | |
| insurancePolicyNo | No | Insurance policy number. Optional. | |
| insuranceProvider | No | Insurance company name. Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| subcontractor | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral details beyond annotations: 'Starts in pending status until verified' and plan requirement. No contradictions with annotations (readOnlyHint=false, etc.).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise, front-loaded sentences covering purpose, content, and status/requirements with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential aspects for a creation tool: what is captured, initial status, plan requirement. Output schema likely handles return values, so no major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already described. The description summarizes categories but does not add new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Register a new subcontractor' and distinguishes from sibling tools like subcontractors.list and subcontractors.verify by mentioning 'pending status' and 'vetted network', making it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides important context like 'Requires Growth+ plan' and implies usage for onboarding new subcontractors, but does not explicitly state when not to use it or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subcontractors.verifyAIdempotentInspect
Update a subcontractor's verification status. Use to verify (check license/insurance), activate, suspend, or deactivate. Records verification timestamp.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Subcontractor ID. Required. | |
| notes | No | Verification notes. Optional. | |
| status | Yes | New status. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| subcontractor | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it records a verification timestamp and lists specific status transitions. Annotations already indicate idempotentHint=true and destructiveHint=false, which align with the description. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the core action 'Update a subcontractor's verification status' and efficiently lists use cases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but indicated), the description is adequate. It covers the tool's purpose and behavior, though it could mention what the tool returns on success or failure. Still, it is complete enough for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what is already in the schema for each parameter (id, notes, status). It mentions the status values but does not elaborate on notes or id constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a subcontractor's verification status and lists specific actions (verify, activate, suspend, deactivate). It distinguishes from sibling tools like subcontractors.list and subcontractors.register by focusing on status changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides use cases such as checking license/insurance, activating, suspending, or deactivating. However, it does not explicitly state when NOT to use this tool or mention alternatives among siblings, though the context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet.balanceARead-onlyInspect
Get the current wallet balance, lifetime stats, and recent transactions. Every MCP tool call costs credits (reads ~$0.01, writes ~$0.05). Free tools: discovery, formation, billing, wallet operations.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent transactions to include (default 10, max 100) | |
| cursor | No | Pagination cursor from previous response |
Output Schema
| Name | Required | Description |
|---|---|---|
| wallet | No | Wallet balance and status |
| nextCursor | No | Cursor for next page, null if no more |
| transactions | No | Recent transactions |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint: true and description says 'Get', consistent. Description adds that the tool returns lifetime stats and recent transactions, which is beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second provides cost context. Front-loaded, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, the description adequately covers what the tool does. It mentions balance, stats, transactions. Could be improved by noting pagination via cursor, but that's in schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with limit and cursor described. Description mentions 'recent transactions' which maps to limit, but adds no new semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets wallet balance, lifetime stats, and recent transactions. Verb 'Get' and resource are specific. Distinguishes from sibling wallet tools like wallet.history by including balance and stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides cost context (reads $0.01, writes $0.05) and notes that wallet operations are free, which is helpful. However, it does not explicitly state when to use this tool versus alternatives like wallet.history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet.crypto_depositBInspect
Create a cryptocurrency payment to top up your wallet. Accepts USDC and USDT stablecoins. Returns a payment address and amount. Wallet is credited on blockchain confirmation via webhook.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Cryptocurrency to pay with | |
| amount_cents | Yes | Amount in AUD cents to deposit (converted to crypto at current rate). Min 500. |
Output Schema
| Name | Required | Description |
|---|---|---|
| coin | No | |
| charge_id | No | |
| expires_at | No | |
| status_url | No | |
| amount_crypto | No | |
| payment_address | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value by explaining that wallet credit occurs after blockchain confirmation via webhook, indicating asynchronous behavior. However, it implies only stablecoins are accepted, while the schema includes BTC and ETH, creating a contradiction that may mislead an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, front-loaded with the primary purpose, and no extraneous information. Every sentence adds essential context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description covers key aspects: creation, accepted coins, returned data, and credit timing. However, the coin discrepancy reduces completeness, and authentication or fee details are omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with adequate descriptions for both parameters. The description does not enhance parameter semantics beyond the schema; it merely mentions returns (address and amount), which are output-related.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a cryptocurrency payment to top up a wallet, specifying stablecoins USDC and USDT. However, it does not explicitly differentiate from sibling wallet.deposit, and the mention of only stablecoins contradicts the schema's coin enum which includes BTC and ETH.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like wallet.deposit or wallet.transfer is provided. Prerequisites, exclusions, or context for using crypto deposit are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet.depositAInspect
Create a Stripe PaymentIntent to top up your wallet with credits. Returns a client_secret for completing payment via Stripe SDK. Min $5, max $10,000. Wallet is credited automatically on successful payment.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | Currency code (default: aud) | |
| amount_cents | Yes | Amount in cents to deposit (min 500 = $5.00) |
Output Schema
| Name | Required | Description |
|---|---|---|
| amount_cents | No | |
| client_secret | No | Stripe client_secret for payment completion |
| amount_formatted | No | |
| payment_intent_id | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint false) and side effects (openWorldHint true). Description adds: returns client_secret for Stripe SDK, wallet credited automatically on success, and amount limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with main action, no filler. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists and sibling tools, description covers purpose, return value, constraints, and post-payment behavior. Could mention prerequisites or error handling but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (descriptions for both parameters). Description adds dollar range (min $5, max $10,000) but otherwise doesn't add meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a Stripe PaymentIntent to top up wallet credits, distinguishing it from sibling tools like wallet.balance (read) and wallet.crypto_deposit (crypto).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear constraints (min $5, max $10,000) and outcome (auto-credit on success), but does not explicitly compare to alternatives like wallet.crypto_deposit for crypto deposits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet.historyARead-onlyInspect
Get detailed transaction history — deposits, deductions, transfers, refunds. Useful for cost analysis and budgeting.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by transaction type | |
| limit | No | Max transactions to return (default 50, max 100) | |
| cursor | No | Pagination cursor |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextCursor | No | Cursor for next page |
| transactions | No | Transaction records |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint=true and destructiveHint=false, so the read-only nature is clear. Description adds no further behavioral details (e.g., pagination behavior, ordering, rate limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and usage hint. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given presence of output schema and 100% parameter coverage, description covers core purpose and usage. However, it omits 'crypto_deposit' from the listed types, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 3 parameters. Description merely echoes transaction type examples already in the enum, adding no new semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get' and resource 'detailed transaction history', listing specific transaction types. Distinguishes from sibling tools like wallet.balance (balance check) and wallet.deposit (deposit action).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'Useful for cost analysis and budgeting' implying usage context, but does not explicitly define when to use vs. alternatives like wallet.balance for snapshot or wallet.transfer for specific operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet.transferAInspect
Transfer credits from your wallet to another company. Used for agent-to-agent settlement — e.g., paying a subcontractor agent for completed work. Max $5,000 per transfer.
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | Reason for transfer (e.g., "Payment for job #123") | |
| amount_cents | Yes | Amount in cents to transfer | |
| to_company_id | Yes | Target company ID to receive credits |
Output Schema
| Name | Required | Description |
|---|---|---|
| success | No | |
| amount_formatted | No | |
| to_balance_cents | No | |
| from_balance_cents | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false). The description adds value by disclosing a maximum per transfer ($5,000) and the target (another company), which are not in annotations. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no fluff, front-loaded with the core action and followed by use case and limit. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, use case, and a key constraint. It does not mention prerequisites like sufficient balance, but the output schema likely handles return values, making it fairly complete for a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by explaining the business context (agent-to-agent settlement) and constraining amount_cents with a max limit, enhancing parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Transfer credits from your wallet to another company,' providing a specific verb and resource. It distinguishes from sibling wallet tools like balance, history, and deposit by focusing on inter-company transfers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the tool is 'Used for agent-to-agent settlement — e.g., paying a subcontractor agent for completed work,' giving clear context. However, it does not explicitly state when not to use it or name alternatives, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webhooks.listARead-onlyInspect
List all active webhook subscriptions for this company.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Total webhooks |
| webhooks | No | List of {id, name, url, events, isActive, createdAt} objects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true; description adds no further behavioral context (e.g., pagination, response details). With annotations covering safety, a score of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with all necessary information, no redundancy or extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, existing output schema, and annotations, the description fully covers the tool's purpose and scope ('for this company') without missing essential information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100% vacuously; description does not need to add parameter info. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List all active webhook subscriptions for this company', specifying the verb (list) and resource (webhook subscriptions), distinguishing it from siblings like webhooks.subscribe and webhooks.unsubscribe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives, but the purpose is clear enough that it is implied for viewing existing subscriptions; lacks explicit when-not-to-use or alternative tool mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webhooks.subscribeAInspect
Register a webhook URL to receive real-time event notifications. Events are POST-ed as JSON with HMAC-SHA256 signature in X-Webhook-Signature header. Available events: lead_created, lead_updated, quote_created, quote_accepted, job_created, job_completed, invoice_sent, payment_received.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | HTTPS URL to receive webhook POST requests. Required. | |
| name | Yes | Human-readable name for this webhook (e.g. "My Agent Listener"). Required. | |
| events | Yes | Array of event types to subscribe to. Required. | |
| headers | No | Optional custom headers to include in webhook requests. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Webhook subscription ID |
| events | No | Subscribed event types |
| secret | No | HMAC-SHA256 signing secret. Store this — use it to verify webhook payloads. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond annotations: it explains that events are POST-ed as JSON with an HMAC-SHA256 signature in the header. This provides security context that annotations (readOnlyHint=false, openWorldHint=true) do not cover. It does not mention potential side effects like rate limits or retries, but the information is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the purpose, and includes a list of events. It is concise and efficient, though it could be slightly more structured by separating the event list into a bulleted format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main aspects: registration action, event delivery mechanism, and available events. With full schema coverage and an output schema present, it is fairly complete. It could mention that custom headers are supported and how to verify signatures, but overall it provides a solid understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all four parameters described in the schema. The description adds value by summarizing the event types and the security mechanism, but it does not significantly enhance parameter-level understanding beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'register' and the resource 'webhook URL', with the purpose of receiving real-time event notifications. It distinguishes itself from sibling tools like webhooks.list and webhooks.unsubscribe by specifying the action of subscribing to events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use this tool (to register a webhook for notifications) and implicitly separates from siblings, but does not explicitly list when not to use it or provide alternatives. Overall, the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webhooks.unsubscribeAInspect
Remove a webhook subscription by ID. Stops all future event deliveries to that URL.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook subscription ID to remove. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| removed | No | Whether the webhook was successfully removed |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is not read-only, and the description adds that it stops all future event deliveries, providing useful behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are direct and contain no superfluous information. The action and consequence are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter destructive tool, the description covers the basic behavior and effect. It does not mention error handling or ID format, but is adequate given the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter is well-documented. The description reinforces the role of the ID but adds no new semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (remove) and the resource (webhook subscription), and distinguishes it from the sibling tools webhooks.subscribe and webhooks.list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the need for a subscription ID (likely from webhooks.list), but does not explicitly state when to use it over alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.approve_actionAInspect
Approve a pending draft action (quote, invoice, review request, SMS). The action will be executed immediately after approval.
| Name | Required | Description | Default |
|---|---|---|---|
| actionId | Yes | Draft action ID to approve. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| success | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that approval leads to immediate execution, which is key behavioral transparency. Annotations provide basic safety info, and the description adds execution timing. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, each providing necessary information: what it does and the immediate consequence. No superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main functionality and outcome. With an output schema assumed, the description is sufficiently complete for a simple action. However, it could optionally mention prerequisites or error conditions, but not necessary for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the parameter fully with a description. The tool description does not add extra semantics about the parameter beyond what is in the schema, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action (approve), the resource (pending draft action), and provides examples (quote, invoice, etc.), making it clear and distinct from sibling tools like workflows.reject_action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates usage for approving pending actions but does not mention when not to use or suggest alternatives like workflows.reject_action for rejecting. More guidance on selection criteria would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.chase_paymentAInspect
Auto-chase overdue invoices with escalating SMS + email reminders (friendly → firm → final). Includes Stripe payment links. Pass jobId to chase specific invoice, or omit to scan all overdue. Requires Growth+ plan.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | No | Specific job ID to chase. Omit to auto-scan all overdue invoices. | |
| forceTone | No | Override tone: friendly, firm, or final. Auto-detected based on days overdue if omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | No | |
| success | No | |
| chasedCount | No | |
| totalOutstanding | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: escalating tone pattern, inclusion of Stripe payment links, and auto-detection behavior for forceTone. Annotations indicate non-readOnly and non-destructive, which aligns. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct: two sentences that front-load the core functionality and then cover usage variants and requirements. Every sentence provides essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and only two optional parameters, the description covers all essential aspects: purpose, usage modes, tone control, and plan requirement. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description enhances parameter understanding: for jobId, it clarifies 'Pass jobId to chase specific invoice, or omit to scan all overdue.' For forceTone, it notes 'Override tone: friendly, firm, or final. Auto-detected based on days overdue if omitted.' Schema coverage is 100%, so baseline is 3; the added nuance justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Auto-chase overdue invoices with escalating SMS + email reminders (friendly → firm → final). Includes Stripe payment links.' It specifies the resource (overdue invoices) and action (chase with reminders), distinguishing it from sibling workflows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (for overdue invoices) and how to invoke it (with optional jobId for specific invoice or omit to scan all overdue). It also mentions the requirement 'Requires Growth+ plan.' While it does not explicitly mention alternatives among siblings, the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.daily_summaryAInspect
Generate an AI-powered end-of-day business summary with today's leads, quotes, jobs, revenue, and tomorrow's schedule. Sends via SMS + team channels. Requires Starter+ plan.
| Name | Required | Description | Default |
|---|---|---|---|
| sendViaSms | No | Send summary via SMS to business owner. Default true. | |
| recipientPhone | No | Override owner phone number. Optional. | |
| sendToTeamChannels | No | Send to Slack/Discord/Teams. Default true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| smsSent | No | |
| success | No | |
| summary | No | |
| channelsSent | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool sends messages (SMS and team channels) and requires a Starter+ plan. Annotations confirm it is not read-only (readOnlyHint=false), non-destructive, and open-world. No contradictions exist. The description adds context about plan requirement and delivery methods beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, extremely concise, and front-loaded with the main purpose. Every word adds value, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (though not shown), the description sufficiently explains what the tool produces and delivers. It covers key aspects: content, delivery channels, and plan requirement. However, it omits details about error handling or delivery failures, but that is not critical for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with three optional parameters already described in the input schema. The description does not add details about parameter semantics (e.g., default values or constraints) beyond what the schema provides, so it meets the baseline but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates an AI-powered end-of-day business summary with specific content (leads, quotes, jobs, revenue, schedule) and delivery methods (SMS, team channels). It also mentions the Starter+ plan requirement, which distinguishes it from sibling analytics tools that provide on-demand reports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by indicating it is an automated daily summary sent via SMS and team channels. However, it does not explicitly state when to prefer this tool over siblings like analytics.dashboard or workflows.list, nor does it provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.follow_up_quoteAInspect
Follow up on unsigned/pending quotes with escalating nudge messages (up to 3 follow-ups). Pass quoteId for specific quote, or omit to scan all pending quotes past follow-up threshold. Requires Growth+ plan.
| Name | Required | Description | Default |
|---|---|---|---|
| quoteId | No | Specific quote ID to follow up. Omit to auto-scan all pending quotes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | No | |
| success | No | |
| followedUp | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false). The description adds behavioral details: escalating nudge messages up to 3 times, and scanning past a threshold. This goes beyond annotations, though it omits potential side effects like email sending logs or failure handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey purpose, behavior, parameter usage, and plan requirement with no redundancy. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one optional parameter, annotations, and likely an output schema, the description covers the core behavior, usage, and constraints. It lacks mention of return values or error states, but the output schema may compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single optional parameter quoteId has 100% schema description coverage. The tool description reinforces the usage pattern and introduces the concept of a 'follow-up threshold', adding meaningful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'follow up' and the resource 'unsigned/pending quotes', specifying the escalating nudge behavior up to 3 follow-ups. It distinguishes between targeting a specific quote via quoteId and auto-scanning all pending quotes, effectively differentiating from sibling tools like workflows.chase_payment or workflows.quote_to_invoice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to pass a specific quoteId versus omitting it to scan all pending quotes past a threshold, and mentions the Growth+ plan requirement. However, it does not explicitly state when not to use this tool or compare it to alternatives like sending an invoice or manual follow-up via comms.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.google_ads_pipelineAInspect
Process a Google Ads lead through the full zero-touch pipeline: AI summary → auto-quote → auto-schedule → SMS → team notify. Tags lead as High priority with ad campaign attribution.
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes | Lead ID. Required. | |
| adGroup | No | Ad group name. Optional. | |
| keyword | No | Keyword that triggered the ad. Optional. | |
| autoQuote | No | Auto-generate quote from service catalog. Default true. | |
| adCampaign | No | Google Ads campaign name. Optional. | |
| autoSchedule | No | Auto-schedule a job. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobId | No | |
| quoteId | No | |
| success | No | |
| aiSummary | No | |
| quoteTotal | No | |
| calendarSynced | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it's not read-only (false) and not idempotent (false), aligning with the description's list of write operations (e.g., auto-quote, auto-schedule, SMS). The description adds value by detailing the exact pipeline steps, which is beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the purpose, pipeline steps, and output tags. It is well front-loaded with the main verb and resource, and every element serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the pipeline stages and tagging behavior. An output schema exists, so return values are not needed. It does not mention prerequisites (e.g., lead must exist) but these are implied by the tool name and parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The tool description adds minimal extra meaning beyond listing the pipeline steps, and does not expand on parameter usage or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool processes a Google Ads lead through a specific pipeline, listing the steps (AI summary, auto-quote, etc.) and the outcome (tag as High priority with ad campaign attribution). This differentiates it from sibling tools like workflows.process_lead by specifying the source (Google Ads) and the full zero-touch pipeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for Google Ads leads needing automated processing, but does not explicitly state when to use this tool over alternatives like workflows.process_lead or workflows.instant_response. However, the specificity of the name and steps provides clear contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.instant_responseAInspect
Send an instant SMS + optional WhatsApp follow-up to a new lead within 30 seconds. Fires branded SMS templates for Growth+ plans.
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes | Lead ID. Required. | |
| customMessage | No | Override the auto-generated response message. Optional. | |
| includeWhatsApp | No | Send WhatsApp follow-up if connected. Default true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| smsSent | No | |
| success | No | |
| whatsAppSent | No | |
| templatesSent | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses timing (within 30 seconds) and plan restrictions (Growth+ plans), adding value beyond annotations which only indicate readOnlyHint=false and destructiveHint=false. However, it does not mention potential costs, rate limits, or prerequisites like lead existence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the key action and includes essential details (timing, plan). Every part earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and 100% schema coverage, the description is fairly complete. It covers the core functionality but could be enhanced by mentioning prerequisites (e.g., Growth+ plan required) or downstream effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter well. The description adds little beyond the schema, only hinting at 'optional WhatsApp follow-up' matching includeWhatsApp. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: sending an instant SMS and optional WhatsApp follow-up to a new lead within 30 seconds. It specifies the target (new lead) and timing, and mentions branded SMS templates for Growth+ plans, which distinguishes it from other communication tools like comms.send_sms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for quick responses to new leads within 30 seconds, but does not explicitly state when not to use it or provide alternatives. Sibling tools like comms.send_sms and comms.send_email exist but no guidance is given for choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.listARead-onlyIdempotentInspect
List all workflow templates (automations) for the company with their trigger events, action types, and enabled status.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | Filter by enabled status. Omit to return all. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| workflows | No | Array of workflow template objects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, so the description does not need to restate safety. It adds context about what fields are returned, which is useful beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the purpose and is concise with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool (one optional parameter, output schema exists), the description provides sufficient context for an agent to understand what the tool does and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description does not provide additional meaning beyond what the schema already says about the 'enabled' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all workflow templates and specifies the returned fields (trigger events, action types, enabled status). It uses a specific verb and resource, distinguishing it from other workflow action tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to list all templates) but does not explicitly exclude cases or mention alternatives. With many sibling workflow tools, explicit guidance would help but is not entirely missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.pending_actionsARead-onlyIdempotentInspect
List pending workflow actions awaiting approval (draft quotes, invoices, review requests, SMS). These are auto-generated by the workflow engine and need manual review.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results. Defaults to 20. | |
| status | No | Filter by status. Defaults to pending. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| actions | No | Array of draft action objects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. Description adds context that actions are auto-generated by the workflow engine and need manual review, enhancing transparency without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with key purpose and examples. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, presence of output schema, and thorough annotations, the description covers purpose, source, and scope completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema already describes both parameters with 100% coverage. Description does not add significant meaning beyond 'status' filter and 'limit' defaults, meeting baseline but not exceeding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'list pending workflow actions awaiting approval' and provides specific examples (draft quotes, invoices, review requests, SMS), distinguishing it from sibling tools like approve_action and reject_action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for viewing actions needing manual review, but does not explicitly state when not to use or list alternatives. Context from sibling names provides some differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.process_leadAInspect
Full pipeline processing for a new lead: AI analysis → auto-quote from service catalog → job creation → Google Calendar sync → customer SMS → team Slack/Discord notification. The 'one-tap' lead processing pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes | Lead ID to process. Required. | |
| autoQuote | No | Generate quote from service catalog match. Defaults to true. | |
| notifyTeam | No | Notify via Slack/Discord/Teams. Defaults to true. | |
| autoSchedule | No | Create tentative job and calendar event. Defaults to false. | |
| notifyCustomer | No | Send SMS to customer. Defaults to true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobId | No | Auto-created job ID |
| quoteId | No | Auto-generated quote ID |
| success | No | |
| aiSummary | No | AI-generated lead summary |
| quoteTotal | No | Quote total in AUD |
| calendarSynced | No | Whether calendar event was created |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutability (readOnlyHint: false) and non-destructiveness. The description adds behavioral context by enumerating the pipeline steps (AI analysis, auto-quote, job creation, etc.), which informs the agent about the tool's side effects beyond what annotations provide. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first lists the pipeline steps efficiently, and the second summarizes it as a 'one-tap' pipeline. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the end-to-end process and acknowledges the existence of an output schema (not shown but context confirms it exists). It lacks prerequisites (e.g., valid leadId) but is otherwise complete for a pipeline tool with well-documented parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is documented. The description further enhances meaning by mapping the parameters (autoQuote, notifyTeam, autoSchedule, notifyCustomer) to specific steps in the pipeline, reinforcing their purpose in the overall process.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Full pipeline processing for a new lead' and lists a sequence of specific actions (AI analysis, auto-quote, job creation, calendar sync, SMS, notifications), making it highly distinguishable from sibling tools that are narrower in scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates this is a 'one-tap' pipeline for new leads, implying it should be used for initial lead processing. While it doesn't explicitly list when not to use it, the context of siblings (e.g., workflows.chase_payment) provides natural differentiation, so the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.quote_to_invoiceAInspect
Convert an accepted quote into a full invoice pipeline: create/update job → sync invoice to accounting (Xero/QB/MYOB) → generate Stripe payment link → notify customer → alert team. Handles the entire quote-accepted → paid lifecycle.
| Name | Required | Description | Default |
|---|---|---|---|
| quoteId | Yes | Quote ID to convert. Required. | |
| discount | No | Percentage discount to apply (0-100). Optional. | |
| customDueDate | No | Custom due date in ISO 8601 format. Defaults to 14 days from today. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobId | No | |
| success | No | |
| paymentUrl | No | |
| invoiceTotal | No | |
| accountingSynced | No | Number of accounting platforms synced to |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fully discloses the multi-step pipeline, including side effects like creating/updating jobs, syncing to accounting systems, generating payment links, and sending notifications. This adds value beyond the annotations (readOnlyHint=false, destructiveHint=false) by detailing the specific actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and each sentence adds meaningful detail without redundancy. It is efficiently structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a multi-step workflow and the existence of an output schema, the description covers the entire lifecycle from quote acceptance to invoice payment. No additional context is needed for an agent to understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with descriptions (100% coverage). The description does not add significant new semantics beyond what the schema already provides, such as default due date behavior. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: converting an accepted quote into a full invoice pipeline. It lists specific steps (create/update job, sync to accounting, generate payment link, notify, alert), distinguishing it from other workflow tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when a quote is accepted) but does not explicitly state when not to use or mention alternative tools like workflows.trigger_invoice. However, the context is clear enough for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.referral_programBInspect
Manage referral program: generate referral codes for customers, send referral invites via SMS, track referral usage, and check rewards/stats. Requires Growth+ plan.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: generate_code, send_invite, track_referral, or check_rewards. Required. | |
| leadId | No | Customer lead ID (for generate_code, send_invite). | |
| referralCode | No | Referral code to track (for track_referral). | |
| recipientPhone | No | Override phone for send_invite. |
Output Schema
| Name | Required | Description |
|---|---|---|
| reward | No | |
| success | No | |
| referralCode | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only and non-destructive behavior. The description adds context about supported actions and the plan requirement, but does not detail side effects like SMS sending or code generation limits. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the main purpose and lists actions efficiently. It is concise without waste, though a structured format might improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to explain return values. It covers the overall purpose and plan requirement but does not explicitly link actions to their required parameters, which is partially handled by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter descriptions. The description groups actions but does not add additional semantics beyond what the schema already provides, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool manages a referral program with specific actions (generate codes, send invites, track usage, check rewards), providing a specific verb and resource. However, it does not differentiate from the sibling tool 'ecosystem.referral_link', which may have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing actions and mentions a plan requirement ('Requires Growth+ plan'), but it does not explicitly state when to use this tool versus alternatives, nor does it provide 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.
workflows.reject_actionAIdempotentInspect
Reject/ignore a pending draft action. The action will not be executed.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Optional reason for rejection. | |
| actionId | Yes | Draft action ID to reject. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| success | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate write operation, idempotent, and non-destructive. Description adds that the action will not be executed, which is consistent. However, no additional behavioral details such as side effects or state changes beyond the basic operation are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences succinctly convey the action and result with no unnecessary words. Information is front-loaded and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple rejection tool, the description covers the essential purpose and outcome. With an output schema present, no need to detail return values. Context is complete given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions of 'actionId' and 'reason'. The description does not add any additional meaning beyond what the schema already provides, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'reject/ignore' and the resource 'pending draft action'. It implicitly distinguishes from the sibling 'workflows.approve_action' by stating the action will not be executed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates the outcome (action not executed) but does not explicitly state when to use this tool over alternatives like 'workflows.approve_action'. No exclusion criteria or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.review_boosterAIdempotentInspect
Send an automated review request SMS to a customer after job completion. Includes Google Review link and AI-suggested review text. Requires Growth+ plan with SMS automations.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID to send review request for. Required. | |
| delayMinutes | No | Delay in minutes before sending. Defaults to company setting (typically 2 hours). |
Output Schema
| Name | Required | Description |
|---|---|---|
| sent | No | |
| success | No | |
| reviewUrl | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and destructiveHint=false. The description adds that it sends an SMS with specific content, but does not disclose potential costs, failure handling, or whether the SMS is always sent. This provides some additional context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The first sentence states the action and content, the second adds a requirement. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, full param coverage, and existence of an output schema, the description is largely complete. It covers purpose, trigger, content, and plan requirement. Missing details like handling of failures or retries, but these are not critical for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters (jobId required, delayMinutes with default). The description reinforces the meaning by stating the default is typically 2 hours, adding value over the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends an automated review request SMS after job completion, including a Google Review link and AI-suggested text. This distinguishes it from siblings like 'reviews.request', which may involve manual or different triggers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that the tool requires a Growth+ plan with SMS automations and implies usage after job completion. However, it does not explicitly mention when not to use it or alternatives like 'reviews.request' for manual requests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.schedule_jobAInspect
Smart-schedule a job for a lead — auto-picks next business day, syncs to Google Calendar, generates a Calendly booking link, and sends SMS confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Notes to attach to the job. Optional. | |
| leadId | Yes | Lead ID. Required. | |
| durationHours | No | Job duration in hours. Default 2. | |
| preferredDate | No | ISO date string for preferred date. Optional (defaults to next business day). | |
| preferredTime | No | "morning", "afternoon", "evening" or HH:mm. Optional (defaults to 9am). |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobId | No | |
| success | No | |
| calendlyLink | No | |
| scheduledDate | No | |
| calendarSynced | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds significant behavioral context beyond annotations: mentions external integrations (Google Calendar, Calendly, SMS) and temporal logic (auto-picks next business day). Annotations already indicate write and open-world, so description enriches transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single dense sentence front-loads the core purpose with a dash-separated list of features. No unnecessary words; efficient and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main behavior and side effects, but could mention prerequisites like requiring active Google Calendar/Calendly integrations. Output schema exists so return values are handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters have detailed descriptions in the schema, so the description provides no additional parameter-level value. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool 'Smart-schedule a job for a lead' and lists specific actions: auto-picks next business day, syncs to Google Calendar, generates Calendly link, sends SMS. This distinguishes it from siblings like jobs.create and other workflow tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description (scheduling a job with automated features), but no explicit guidance on when to use or not use it, nor comparisons to alternatives like jobs.create for simple creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.sync_contactAIdempotentInspect
Force-sync a lead/contact to all connected integrations (CRM, accounting, marketing, Google Sheets). Useful for retrying failed syncs or manually triggering sync for existing leads.
| Name | Required | Description | Default |
|---|---|---|---|
| leadId | Yes | Lead ID to sync. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| success | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (write), destructiveHint=false, and idempotentHint=true. The description adds that it's a 'force-sync' for retries, but does not elaborate further on side effects or permissions. Adequate given annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first defines the action and scope, the second gives use cases. No unnecessary words, highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers the purpose and typical use cases. It could mention that it syncs to all connected integrations (which it does), but this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the single required parameter 'leadId' with a clear description. The description does not add additional meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool force-syncs a lead/contact to all connected integrations, specifying verb (sync) and resource (lead/contact). It distinguishes from siblings like workflows.process_lead by focusing on syncing across integrations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says it's useful for retrying failed syncs or manually triggering sync for existing leads, providing clear context. It does not mention when not to use or alternatives, but the purpose is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.team_notifyAInspect
Send a rich, contextual notification to all connected team channels (Slack/Discord/Teams). Auto-enriches with AI summaries and action links based on event type.
| Name | Required | Description | Default |
|---|---|---|---|
| event | Yes | Event type: lead_created, quote_sent, quote_accepted, quote_rejected, job_scheduled, job_completed, invoice_sent, invoice_paid, payment_received, review_received, daily_summary, or custom. Required. | |
| entityId | No | Related entity ID (lead/quote/job). Optional. | |
| enrichWithAI | No | Add AI summary to notification. Default true. | |
| customMessage | No | Override auto-generated message. Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| success | No | |
| channelsSent | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false. The description adds that notifications are 'rich' and 'contextual' with AI enrichment, but does not detail behavioral aspects like required permissions, idempotency, or limits. With annotations present, a score of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that front-load the purpose. No redundant information is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions supported channels (Slack/Discord/Teams) and AI enrichment. An output schema exists to document return values. Additional context about error handling or rate limits would improve completeness, but the current level is adequate for a notification tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 4 parameters. The description mentions AI enrichment and contextual notifications, which aligns with the enrichWithAI parameter, but does not add substantial semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a notification to team channels (Slack/Discord/Teams) and mentions auto-enrichment with AI summaries and action links. It distinguishes from sibling communication tools like comms.send_email and comms.send_sms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool vs alternatives. There is no mention of prerequisites, exclusions, or specific scenarios, despite many sibling tools in the workflows namespace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.toggleAIdempotentInspect
Enable or disable a workflow template.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | True to enable, false to disable. Required. | |
| workflowId | Yes | Workflow template ID. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| success | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent and non-destructive behavior; the description confirms the toggle action but adds no further behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of seven words, front-loaded with the core action, no superfluous content. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple toggle tool with output schema present, the description is mostly adequate. It could mention effects on ongoing workflows but is sufficient for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions; the description does not add meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (enable or disable) and the resource (workflow template), distinguishing it from sibling tools like workflows.approve_action or workflows.reject_action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like workflows.approve_action or workflows.chase_payment. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.trigger_invoiceAInspect
Generate and send an invoice for a completed job. Auto-pushes to connected accounting software (Xero/QuickBooks/MYOB/FreshBooks), generates Stripe payment link, and notifies the customer via SMS. Full pipeline: invoice → accounting sync → payment link → customer notification → team alert.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID to invoice. Required. The job should be in Completed status with a linked quote for line items. | |
| dueInDays | No | Payment due in N days from today. Defaults to 14. | |
| includePaymentLink | No | Generate a Stripe payment link. Defaults to true if Stripe is connected. |
Output Schema
| Name | Required | Description |
|---|---|---|
| success | No | |
| paymentUrl | No | Stripe payment link URL |
| invoiceTotal | No | Invoice total in AUD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description details the full pipeline beyond annotations: auto-push to accounting, Stripe payment link generation, SMS notification, and team alert. Annotations confirm it is not read-only, not idempotent, and not destructive, and the description adds rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first provides the core action and summary, second enumerates the pipeline stages concisely. No extraneous words, and front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (multiple integrations, notifications) and presence of an output schema, the description covers the pipeline adequately. It could optionally mention prerequisites like accounting connection setup, but overall sufficient for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The tool description does not add new parameter-specific meaning beyond repeating 'jobId required, dueInDays default, includePaymentLink default'. The schema already captures parameter details well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates and sends an invoice for a completed job, with a detailed pipeline including accounting sync, Stripe payment link, SMS notification, and team alert. It distinguishes from siblings like 'invoicing.generate' by emphasizing the automated end-to-end workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for completed jobs requiring invoicing, but does not explicitly exclude alternatives like 'invoicing.generate' or 'billing.create_checkout'. No when-not or guidance on when to prefer this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.upsell_suggestAInspect
AI-powered upsell/cross-sell engine. Analyzes customer job history against service catalog to suggest additional services. Can auto-generate draft quotes. Requires Pro plan.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | No | Analyze specific completed job for upsell opportunities. | |
| leadId | No | Analyze all jobs for a specific customer. More comprehensive. | |
| autoQuote | No | Auto-generate draft quotes for suggestions. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| success | No | |
| suggestions | No | |
| quotesCreated | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations set readOnlyHint=false, which aligns with the description stating it can auto-generate draft quotes (a mutation). The description adds transparency by noting the Pro plan requirement and the ability to create quotes. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with four short sentences. It is front-loaded with the core purpose ('AI-powered upsell/cross-sell engine'), each sentence adds distinct information, and there is no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only 3 optional parameters and an output schema (not shown), the description adequately covers key aspects: purpose, parameter use cases, auto-quote capability, and plan requirement. It could be more complete by mentioning potential alternatives or limitations, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions. The description largely echoes the schema for each parameter (e.g., 'Analyze specific completed job' for jobId) but adds marginal context like 'More comprehensive' for leadId and the ability to auto-generate quotes. The baseline is 3 due to full schema coverage, and the description provides only slight additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Upsell Engine' and description clearly state it's an AI-powered upsell/cross-sell engine that analyzes customer job history against the service catalog to suggest additional services. It distinguishes itself from sibling tools like 'quotes.ai_price_suggestion' by focusing on job history analysis and auto-quote generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use jobId vs leadId ('Analyze specific completed job' vs 'More comprehensive for all jobs'), and mentions that autoQuote can auto-generate draft quotes. It also notes a prerequisite ('Requires Pro plan'), but does not explicitly state when not to use or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!