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?
The annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds that it is 'lighter and faster' but does not disclose any additional behavioral traits such as data freshness, pagination, or scoping constraints. With the annotation covering the safety profile, the description adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence comprising two clauses, providing all essential information without redundancy. It is front-loaded with 'Quick business overview' and includes specific metrics. 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 that the tool has an output schema (not shown), the description does not need to explain return values. It sufficiently lists the metrics returned (total leads, quotes, jobs, revenue, leads this week, chart data) and notes performance characteristics. For a simple dashboard tool with one optional parameter, 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 description coverage is 100% for the single parameter 'days', with full details in the schema. The description does not add any additional meaning or context to the parameter beyond what the schema provides. 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 it provides a 'Quick business overview' listing specific metrics (total leads, quotes, jobs, revenue, leads this week, chart data). It distinguishes from sibling tools like analytics.detailed and analytics.financials by noting it is 'Lighter and faster than full analytics.' This makes the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies this tool is for a quick, lightweight overview, contrasting with 'full analytics.' However, it does not explicitly state when to avoid this tool or name alternatives, though the sibling tool names provide context. Still, the guidance is clear enough for an agent to infer appropriate use.
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, which aligns with the analytics nature. The description adds a behavioral detail (subscription plan requirement) not covered by annotations, 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 succinct sentences convey the purpose, scope, and access requirement with zero redundancy or unnecessary 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 output schema exists and only one parameter, the description adequately covers the tool's functionality. It could mention that data is read-only (but annotations handle that) or typical use cases, but overall 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 description coverage is 100% with a well-described enum parameter. The tool description adds no additional meaning 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 uses a specific verb ('Detailed business analytics') and enumerates concrete metrics (conversion funnel, revenue trends, etc.), clearly distinguishing it from sibling tools like analytics.dashboard (likely overview) and analytics.financials (likely financial-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 only states a precondition ('Requires Growth plan or above') but provides no explicit guidance on when to use this tool versus alternatives like analytics.dashboard 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.
analytics.financialsARead-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 and openWorldHint=false, so the description's job is reduced. It adds context about the summary contents but does not disclose additional behavioral traits like authorization requirements or rate limits. This is adequate given 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?
A single, front-loaded sentence that efficiently conveys the tool's purpose and key metrics. No unnecessary words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only summary tool with one parameter and an existing output schema, the description is nearly complete. It could be enhanced by noting that the tool aggregates data over a time period, but the time period parameter is already in 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%, so the description need not add parameter information. It does not mention the 'days' parameter, but the schema already provides a clear description and constraints. 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 provides a financial summary and lists specific metrics: revenue, quote volume, conversion rate, lead count, and paid invoices. This specificity distinguishes it from sibling tools like analytics.dashboard and analytics.detailed, which are more generic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as analytics.dashboard or analytics.detailed. The description only explains what the tool does, not the context or conditions for its use.
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 discloses that the tool returns a URL for human browser payment, implying no immediate charge. Annotations (readOnlyHint=false, openWorldHint=true) already indicate a write operation with external effects. The description adds context about the payment flow but doesn't detail idempotency or error states. 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 short sentences, front-loaded with the core action and purpose. Every sentence adds value: what it does, what it returns, and how it's used. 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 presence of an output schema (not shown), the description appropriately explains the key return value (a URL) and the overall user flow. It's complete for a tool that initiates a payment session, though it could mention session expiration or webhook callbacks.
Complex tools with many parameters or behaviors need more documentation. 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 for both parameters. The description adds minimal extra meaning beyond the schema, only hinting at 'upgrading or purchasing' to contextualize plan_slug. Baseline of 3 is appropriate as the schema 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 explicitly states the verb 'create', resource 'Stripe Checkout session', and purpose 'upgrading or purchasing a plan'. It distinguishes from sibling tools like billing.get_portal and billing.list_plans by clearly focusing on the payment initiation step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indicates when to use this tool (for human payment via Checkout), but it does not explicitly mention when not to use it or point to alternatives like billing.get_portal for subscription changes. The 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.
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 provide readOnlyHint: true and openWorldHint: true, so the description's role is reduced. The description adds value by specifying the requirement of an existing subscription and that it returns a URL for human interaction. There is no contradiction with annotations. The behavioral disclosure is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly crafted sentence that front-loads the core purpose, lists capabilities, and states the requirement. No extraneous words or redundancy. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter tool with an output schema (indicated by context), the description is fully complete. It explains what the tool does, what is required, and what the output is (a URL for human management). There are no gaps 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?
The tool has no parameters, so baseline score is 4 per guidelines. The description does not need to add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get'), the resource ('Stripe Billing Portal URL'), and the purpose ('for the human to manage their subscription'). It lists specific actions the portal enables (update payment methods, view invoices, change plans, or cancel), distinguishing it from sibling tools like billing.create_checkout or billing.status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states a precondition: 'Requires an existing Stripe subscription.' This provides clear context on when the tool is applicable. However, it does not explicitly mention when not to use it or point to alternative tools, though the context is sufficient given the tool's simplicity.
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 declare readOnlyHint=true, so the description's 'Public information' adds limited value. It does not contradict annotations but also does not disclose additional behavioral traits 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?
The description is two short sentences that are front-loaded with the tool's purpose and end with a use case. Every word contributes, and there is no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, an output schema (not shown but noted), and annotations covering safety, the description is complete. It explains the data returned and the appropriate context for use, leaving no significant 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?
There are no parameters, and schema description coverage is 100%. The description adds no parameter-level detail, which is acceptable since there are none. The baseline for zero parameters is 4, and the description does not detract.
Input schemas describe structure but not intent. Descriptions should explain 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 'List' and resource 'all available plans with pricing, features, limits, and feature flags'. It clearly distinguishes this from other billing tools like 'billing.status' or 'billing.usage' by focusing on plan discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the tool is for discovering plans before purchasing or upgrading, providing clear context. However, it does not explicitly mention when not to use it or name alternatives, so it stops short of fully comprehensive guidelines.
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 already declare readOnlyHint=true, and the description adds behavioral context by detailing what the tool checks (plan details, feature access). No contradictions. Adds value 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: first enumerates checked items, second states purpose. No wasted words, front-loaded with key functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and an output schema present, the description adequately covers what the tool does and why it is useful. No missing information for an agent to select and invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so schema coverage is 100%. Description explains what the tool returns (status, plan, billing cycle, feature access), adding meaning beyond the empty input schema. Baseline adjusted to 4 for zero-param case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description specifies verb 'Check' and resource 'subscription status, plan details, billing cycle, and feature access'. Clearly states what the tool does and distinguishes from siblings like billing.list_plans (listing plans) and billing.usage (usage) 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?
Explicitly states when to use: 'useful for understanding what the business can and cannot do on their current plan'. Provides clear context, though does not mention when not to use or list alternative tools.
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?
Annotations already declare readOnlyHint=true, so the description adds value by specifying exactly which resources are checked (API calls, SMS, email, LLM calls), going beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence that front-loads the purpose with no redundancy 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?
Given zero parameters and an existing output schema, the description sufficiently explains the tool's purpose. It could mention that it returns current usage and limits, but the output schema likely covers return 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?
With zero parameters, baseline is high, and the description adds meaning by listing what will be returned (usage vs limits for specific resources).
Input schemas describe structure but not intent. Descriptions should explain 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 ('Check') and lists exact resources (API calls, SMS credits, etc.), clearly distinguishing it from sibling billing tools like billing.status or billing.list_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 (checking usage vs limits) but provides no explicit guidance on when to use this tool versus alternatives like analytics.dashboard or billing.status.
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, confirming no destructive behavior. The description adds value by detailing the output (forecast and time-saving metric), but does not disclose limitations like data recency or recalculation frequency. 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 paragraph that efficiently front-loads the core purpose and then lists the included data points. It is appropriately sized—no wasted sentences—though a bulleted list might improve scannability without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters and an output schema exists, the description provides all necessary context: the forecast scope, included metrics, and even a note on the value context. It fully equips 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?
The input schema has no parameters, so baseline is 4. No parameter information is needed, and the description does not attempt to add any, which 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 provides a '30-day cash flow forecast with weekly breakdown' and enumerates specific financial metrics (revenue, outstanding invoices, overdue invoices, etc.), distinguishing it from sibling tools like analytics.financials or analytics.dashboard which serve broader analytical purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly calls out its use for answering questions like 'Can I afford to hire?' or 'How's my cash flow?', providing clear context. However, it does not specify when not to use it or mention alternatives, though the sibling list offers other analytics tools that might be used for different financial questions.
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 mark the tool as read-only, and the description adds that it returns aggregated metrics. However, it does not disclose pagination, ordering, or other behavioral traits. The added value beyond annotations is moderate.
Agents need to know what a tool does to the 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: the first defines the tool's primary action, the second explains its utility. 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?
For a simple list tool with good annotations and an output schema, the description provides sufficient context: what is returned and its use case. Minor omissions like ordering or pagination details are non-critical.
Complex tools with many parameters or behaviors need more documentation. 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 'limit', and the schema description already details its range and default. The tool description adds no further parameter context 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 defines 'clients' as leads with at least one job, and lists the included aggregated fields (job count, quote count, total revenue). This distinguishes it from siblings like 'leads.list' and 'jobs.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 phrase 'Useful for identifying repeat customers' provides context on when to use the tool, but does not explicitly state when not to use or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
Annotations already declare readOnlyHint=true, so the description's statement 'View sent ... history' aligns and adds minor context about the scope (sent messages, audit use). No additional behavioral details like pagination, rate limits, or data freshness are provided, but given the annotation coverage, the description suffices without contradicting 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 two sentences, starting with the main action and followed by filtering options and use case. It is concise but contains an inaccurate claim ('delivery status') that could have been avoided. Still, it is front-loaded and generally 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 read-only list tool with 100% schema coverage and an output schema, the description covers the essential purpose and suggests a use case. However, the incorrect claim about delivery status undermines completeness. The description could be improved by accurately listing filterable parameters and noting defaults like limit=50.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage, so the baseline is 3. However, the description adds 'Filter by ... delivery status' which is not a parameter in the schema, creating confusion. It does not provide any meaningful details beyond the schema for the actual parameters (type, limit, channel). The description misleads about available filtering options, reducing its 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 'View sent SMS and email message history', specifying the verb (view) and resource (history of sent messages). It also mentions filtering options, distinguishing it from sibling tools comms.send_email and comms.send_sms which are for sending, not viewing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tool is useful for auditing communications and describes filtering by channel, message type, or delivery status. However, it does not provide explicit when-not-to-use or alternative tools, and the claim about 'delivery status' is misleading because the input schema does not include a delivery_status parameter. This omission impacts clarity on when to use this tool effectively.
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?
Discloses monthly email quota and HTML support, adding value beyond annotations (readOnlyHint=false indicates mutation). Does not describe success/failure, rate limits, 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?
Three concise, front-loaded sentences. 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?
Covers core action, quota, HTML support. No mention of sending behavior (immediate/scheduled) or response but output schema exists. Minor gaps but largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all 6 parameters described). Description adds only 'HTML body supported' which relates to body param but doesn't significantly augment schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Send an email on behalf of the company.' Distinct from sibling comms.send_sms. Constraints (quota, HTML support) add clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for official company emails but no explicit when-to-use or when-not-to-use. No mention of alternatives like comms.send_sms.
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 already indicate mutation (readOnlyHint=false) and open world (openWorldHint=true). Description adds quota and number format constraints, but lacks details on failure modes, idempotency, or side effects beyond the quota note.
Agents need to know what a tool does to the 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 constraints. No filler, 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?
With output schema present, return value explanation is unnecessary. Description covers key constraints (Australian number, quota) and purpose, but could mention character limit explicitly (though schema covers it). Adequate for this 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%, so baseline is 3. Description does not add semantic value beyond the schema descriptions (e.g., 'Australian mobile number' is already in the to parameter description).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Send an SMS message to a phone number on behalf of the company.' Distinguishes from sibling tools like comms.send_email and comms.list by specifying the channel (SMS) and constraints (Australian number, quota).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when to use (send SMS) and implicit constraints (Australian number, monthly quota). Does not explicitly exclude scenarios or contrast with alternatives like email, but context is sufficient for basic guidance.
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?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the tool is safe. The description adds valuable behavioral context: the output is an AI draft that must be reviewed by a competent person and requires a specific plan, which annotations lack.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with purpose and compliance, then content, then critical warning. No wasted words; every sentence adds essential 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's complexity (7 parameters, output schema exists), the description is complete: it explains the regulatory basis, document contents, draft nature, and plan requirement. It doesn't detail output format, but the output schema likely covers that. Slight gap in not mentioning file format or return type.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds regulatory context (compliance details) but does not repeat or enhance parameter semantics beyond what the schema provides. 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 generates a site-specific SWMS compliant with WHS Regulations and Safe Work Australia standards, with explicit details about content (hazards, controls, PPE, emergency procedures). The verb 'generate' and resource 'SWMS' are specific and distinguish this from sibling tools, which are unrelated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: the output is an AI draft that must be reviewed and signed, and a Growth+ plan is required. It implies when to use (for generating SWMS) but does not explicitly exclude alternatives or compare to other tools, though no direct sibling exists.
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 a write operation (readOnlyHint=false) and not destructive (destructiveHint=false). Description adds that it auto-generates folder paths. However, it does not disclose behaviors like file overwrite, size limits, or error handling. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences (25 words) conveying the core functionality. Front-loaded with action and outcome. 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?
With 3 parameters and an output schema (not shown), description covers the main purpose and auto-folder generation. Lacks mention of prerequisites (e.g., cloud storage connection) but overall comprehensive given low 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 covers all 3 parameters with descriptions (100% coverage). Description adds context that folder paths are based on entityType, which clarifies its role. However, no extra detail on entityId or fileName beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool files a document to cloud storage with auto-generated folder paths. The verb 'file' and resource 'document' are specific. It distinguishes from sibling tools by focusing on document organization and cloud storage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. No mentions of prerequisites (e.g., cloud storage setup), or when to avoid it. Only implies use for filing documents to organized folders.
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 provide readOnlyHint=true. The description adds context about return values (link and code) and business logic (commission). However, it does not disclose additional behavioral traits like auth needs or rate limits, which is acceptable for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the core action and then add context. Every word adds value with zero 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 the tool has no parameters and an output schema exists, the description adequately explains the tool's purpose and business context (commission, sharing). It could mention that it's read-only, but annotations already cover that. 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?
The tool has zero parameters, and schema coverage is 100%. The description does not need to add parameter details beyond what the schema provides, and the baseline for zero 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?
The description clearly states the tool's purpose: 'Get the company referral link and code.' It uses a specific verb (get) and resource (referral link/code), and adds context about commission and sharing, which helps differentiate it from other tools like workflows.referral_program.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (when you need a referral link to share), but does not explicitly state when to use this tool versus alternatives, nor provide any exclusions or comparison to sibling tools.
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 already declare readOnlyHint=true, so the agent knows it's a safe read. The description adds that the return includes a complete checklist with time estimates and costs, providing behavioral context beyond the annotation. 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, both front-loaded and concise. Every sentence adds value: first states the main purpose, second expands on content. 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 tool has an output schema, the description need not detail return values. It covers the checklist's scope (categories) and key features (time estimates, costs). The information is sufficient for an agent to understand what the tool provides.
Complex tools with many parameters or behaviors need more documentation. 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 (state and trade). The description does not add new parameter semantics beyond restating 'specific trade and state', 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 returns a step-by-step business formation checklist for a given trade and state, listing included categories (ABN, GST, licensing, etc.) and mentioning time estimates and costs. This distinguishes it from siblings like formation.requirements or formation.guided_setup, which focus on specific aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 should be used when a comprehensive checklist with time/costs is needed, but it does not explicitly state when not to use it or name alternative sibling tools. Usage guidelines are present but minimal.
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 provide readOnlyHint and openWorldHint, which the description aligns with. The description adds geographical scope ('across Australian regions') but lacks details on data freshness, pagination, or any side effects, which would improve 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?
The description is two sentences, front-loading the core function and then providing usage context. No extraneous words, making it 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?
Given the existence of an output schema, the description appropriately lists return fields without unnecessary detail. It adequately covers purpose, usage, and key aspects for a simple data retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already documents both parameters. The description does not add new meaning or constraints beyond what is in the schema, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain 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 demand hotspots across Australian regions, listing specific data points (demand scores, shortage severity, etc.). It distinguishes itself from sibling formation tools like formation.recommend_trade by focusing on location-based demand data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using it for advising where to start a trade business, providing clear contextual guidance. However, it does not explicitly mention when to avoid using it or suggest alternative tools, leaving some ambiguity among siblings like formation.location_score.
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, indicating a safe read operation. The description adds no conflicting or additional behavioral traits beyond the read-only nature and the optional filtering capability. It does not mention any limitations or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the purpose and filter capability. No unnecessary words or repetitions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (not shown but inferred), the description is sufficient for a simple list tool. However, it could more explicitly state that it returns a list of programs, and mention that the filter narrows results. Overall adequate for the 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 input schema covers the single optional parameter 'category' with 100% description coverage. The description repeats the filter categories listed in the schema but does not add new semantic details such as format constraints or special values.
Input schemas describe structure but not intent. Descriptions should explain 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 Australian government grants and funding programs for trade businesses, with a specific verb 'Get' and resource 'grants, incentives, and funding programs'. It distinguishes from sibling tools like 'funding.eligibility_scan' and 'funding.program_details' by focusing on listing available programs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'funding.eligibility_scan' (which likely checks eligibility) or 'funding.program_details' (which likely gives details on a specific program). The description does not mention prerequisites or exclusions.
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?
Describes the input (person context) and output (formation plan with specific sections) in detail. Annotations indicate readOnlyHint=true, which is consistent 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?
Single paragraph with front-loaded 'RECOMMENDED ENTRY POINT' and a numbered list of outputs. Every sentence contributes meaning; 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 tool's complexity (13 params, output schema), the description covers purpose, usage, and outputs comprehensively. It explains what the plan contains, including follow-up questions and recommended next steps, making it self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds value by summarizing key parameter groups (trade, state, qualifications, budget, goals) and hinting at usage context, but does not detail each of the 13 parameters individually.
Input schemas describe structure but not intent. Descriptions should explain 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 intelligent business formation engine that produces a personalised plan with six specific components. It distinguishes itself from sibling tools by being the recommended entry point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'RECOMMENDED ENTRY POINT' and 'Call this FIRST, then use the recommended tool chain for deeper dives', providing clear when-to-use and sequential 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?
Annotations already indicate readOnlyHint=true. The description adds value beyond annotations by stating the return includes a score breakdown and recommendation, providing behavioral context about output. No side effects or additional traits are disclosed, but the safety profile is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two focused sentences: the first clearly states the core function, and the second adds relevant context (factors and return). No filler or repetition, earning full marks.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 assumed), the description adequately covers the tool's purpose, input hints, factors considered, and return type. For a simple scoring tool with two string parameters, this is fully complete and leaves no ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both 'trade' (list of allowed categories) and 'region' (slug format, hints for discovery). The description mentions factors used in scoring but does not add new parameter-level details 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?
The description clearly states the tool calculates an opportunity score (0-100) for a trade+region combination, using specific verb 'Calculate' and resource 'opportunity score'. It distinguishes from sibling tools like formation.demand_hotspots (region discovery) and formation.recommend_trade (trade recommendation), making its role unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tool considers factors like shortage severity and growth trends, and explicitly directs users to use formation.demand_hotspots to discover regions. However, it does not provide explicit guidance on when not to use this tool or compare it to other scoring or recommendation tools.
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?
Annotations confirm readOnlyHint=true (safe, non-destructive). The description adds detail about the scoring process (4 factors, all 9 trades, top 5 results) and output fields (startup costs, revenue scenarios, etc.), leaving no behavioral surprises.
Agents need to know what a tool does to the 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 but efficiently packs information: purpose, input specifics, scoring details, output fields, and use case. It is front-loaded and each sentence adds value, though slightly longer than minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (14 parameters, output schema exists, read-only), the description covers the core functionality and output. It mentions the 9 trades and 4 factors not in schema, and the output schema covers return structure. Missing edge cases or error conditions, but adequate for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds value by introducing the 4 scoring factors (budget fit, time to revenue, revenue upside, barrier to entry) and grouping inputs conceptually, which goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a trade recommendation engine that takes user inputs (budget, state, goals, etc.) and returns ranked recommendations with specific output details. It distinguishes itself from siblings like formation.checklist or formation.demand_hotspots by focusing on trade selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'Perfect for "what trade should I start?" questions', indicating when to use. However, it does not provide explicit when-not-to-use guidelines or compare with alternative tools, though siblings are available.
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 indicate readOnlyHint=true, so the tool is known to be safe. The description adds value by detailing the returned data including government links and trade insights, providing context beyond safety. 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 a single, informative sentence that front-loads the purpose, but it is somewhat long (three lines). It could be split for readability while remaining concise overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, the description need not detail return fields. It effectively summarizes the rich output including trade-specific insights and government links, making the tool's value complete 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 describes both parameters (state and trade) with full coverage. Description does not add significant extra meaning beyond what schema provides, earning 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 an Australian state, listing specific outputs like licence type, requirements, cost estimates, and trade insights. This is distinct from sibling tools like formation.checklist or formation.funding, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for getting licensing requirements but does not provide explicit guidance on when to use this tool versus alternatives like formation.recommend_trade or formation.guided_setup. No when-not-to-use or context for exclusions are given.
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?
Annotations provide readOnlyHint=true (safe read) and openWorldHint=false. The description adds valuable behavioral context: it uses real Australian 2025-26 tax brackets, 10% GST, 12% super rate, and trade-specific cost profiles. 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 a single paragraph of 4-5 sentences, front-loaded with purpose, and includes all key details without unnecessary words. It earns its place but could be slightly more structured (e.g., bullet points for outputs).
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, 8 required) and the existence of an output schema (referenced), the description is comprehensive: it lists output categories, input parameters, and geographical/regulatory context. It provides enough information for an agent to understand what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds context for some parameters (e.g., 'Reduces vehicle costs' for hasVehicle, 'Override average job value' for averageJobValue) but does not significantly enhance meaning 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 it is a '12-Month Business Simulator' for 'Australian trade businesses'. It lists specific inputs (trade, state, startup capital, etc.) and outputs (gross revenue, expenses, GST, etc.), distinguishing it from sibling formation tools like formation.checklist or formation.recommend_trade, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for financial projections but does not explicitly state when to use this tool vs alternatives. There is no 'when to use' or 'when not to use' guidance, nor mention of related siblings.
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 already indicate readOnlyHint=true, so the description adds value by specifying the types of programs included (federal, state, apprenticeship incentives, etc.) and the output of estimated total funding. 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 concise sentences: first for main action, second enumerates program types, third for output. No fluff, front-loaded with the most important 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 (not shown but indicated), the description sufficiently covers the tool's scope, program categories, and output. It is complete for a scanning tool with 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?
Schema description coverage is 100%, so baseline is 3. The description does not add additional meaning or constraints beyond what the schema already provides for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Scan' and clearly identifies the resource as 'government funding programs' with a defined scope (trade business eligibility). It distinguishes itself from the sibling tool 'funding.program_details' which likely provides details on individual programs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 broad eligibility scanning but does not explicitly state when to use this tool versus alternatives like 'funding.program_details' or when not to use it. No exclusions 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.
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 declare readOnlyHint=true, so the read‑only nature is already conveyed. The description adds that it returns eligibility criteria, application process, tips, and links, but does not disclose other behavioral traits like rate limits or authentication requirements. 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?
A single, well‑structured sentence that front‑loads the core purpose ('Get detailed information') and enumerates key content types. 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?
For a simple tool with one required parameter and an output schema, the description sufficiently covers what the tool returns. Annotations handle safety, and no additional information is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description for programId is generic ('Program ID'), but the description provides concrete examples (e.g., 'kap') and advises using eligibility_scan to discover values, 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 tool retrieves detailed information about a specific funding program, including eligibility, application process, tips, and links. This distinguishes it from sibling 'funding.eligibility_scan' which discovers programs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. However, the parameter description hints at using 'funding.eligibility_scan' for discovery, implying this tool for known programs. No explicit when-not or exclusion criteria are provided in the description field.
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?
Annotations already indicate readOnlyHint=true, so the description's claim of getting data is consistent. It adds the context of Australian trade businesses and the six steps, but no additional behavioral details like permissions or side effects 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?
The description is concise (two sentences) and front-loaded with the main action. Every sentence adds value, and the bullet list of covered areas is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and two optional parameters, the description covers the overall workflow and its contents sufficiently. No missing information that would hinder invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, meaning the JSON schema already describes both parameters. The description mentions specific step numbers and trade categories, which aligns with the schema but does not add significant new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the complete 6-step apprenticeship workflow for Australian trade businesses, listing the specific areas covered. It is distinct from sibling tools like 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 clearly indicates the tool is for getting the apprenticeship workflow. While it doesn't explicitly exclude alternatives, the context of sibling tools and the specific coverage makes its use clear. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
The description describes a read-only analysis operation, which matches the readOnlyHint annotation. No additional behavioral details are provided beyond what the annotation already conveys, but there is 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 a single sentence that clearly states the purpose and key outputs. It is front-loaded and contains no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main outputs and is sufficient given the presence of a detailed input schema and output schema. It could mention the required parameters, but the 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?
The input schema has 100% coverage for all 9 parameters with descriptions. The tool description itself does not add any additional meaning to the parameters beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes capacity utilization for solo tradespeople and returns specific metrics (capacity score, burnout risk, lost revenue, hiring urgency). This distinguishes it from sibling tools like hiring.readiness_score or hiring.cost_calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to determine if a tradesperson has hit their capacity ceiling, but it does not provide explicit guidance on when to use this versus other hiring or analytics tools, nor any 'when-not-to-use' scenarios.
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; description adds value by detailing covered areas (NES, Awards, etc.), enhancing understanding of scope 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?
Description is a single sentence with a bullet-list of topics. No wasted words, 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?
Given one optional parameter, 100% schema coverage, read-only annotation, and simple return type (checklist), the description fully covers the tool's scope and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes the single parameter fully (category filter). Description does not add new meaning beyond what the schema provides, so baseline score 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 Fair Work compliance checklist for hiring in Australia, listing specific topics covered. It distinguishes from siblings like compliance.generate_swms or formation.checklist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 hiring compliance needs but provides no explicit when-to-use or alternatives. It could mention not to use for SWMS or formation.
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, indicating this is a calculation without side effects. The description adds behavioral context by listing all cost components included (super, workers comp, etc.) and mentioning state-specific calculations, which goes 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, no wasted words. The first sentence states the core purpose, and the second lists key components. Ideal front-loading and length for an AI agent to quickly understand the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 high schema coverage, the description is complete. It explains what the tool does, what inputs are relevant, and includes cross-references to another tool (hiring.wage_data). No gaps identified.
Complex tools with many parameters or behaviors need more documentation. 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 7 parameters. The description adds value by explaining the purpose of 'baseSalary' (use hiring.wage_data for market rates) and the 'trade' parameter (incentive calculation), enriching the schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates the true cost of hiring an employee or apprentice in an Australian state, listing specific components like super, payroll tax, and incentives. This distinguishes it from sibling tools like hiring.capacity_analysis or hiring.compliance_checklist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (cost calculation) but does not explicitly exclude alternatives or specify when not to use it. The sibling list suggests many other hiring tools, so adding explicit guidance would improve this dimension.
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 include readOnlyHint=true, and the description ('Calculate... Recommends') confirms read-only behavior. The description adds context about the recommendation output but does not disclose additional traits like required inputs or edge cases 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, front-loading the primary action in the first sentence. 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 existence of an output schema (not shown) and high schema coverage, the description adequately covers the tool's purpose and output recommendation. It lacks details on expected parameter ranges or usage context but remains sufficient for selection.
Complex tools with many parameters or behaviors need more documentation. 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 10 parameters have descriptions in the input schema (100% coverage). The tool description adds no additional parameter-level information, so it meets the baseline expectation 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 states 'Calculate hiring readiness score' and specifies it 'Recommends apprentice vs employee vs contractor vs admin-first hire', providing a specific verb and resource. It distinguishes from the sibling 'scaling.readiness_score' by focusing on hiring dimensions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 hiring readiness assessment but does not explicitly state when to use this tool versus alternatives like 'scaling.readiness_score' or other analytics tools. No when-not or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 include readOnlyHint=true, consistent with listing. Description adds details on what fields are shown (name, category, auth type, features, adapter status). 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 with no filler. Front-loaded with the essential action and output 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?
Description covers purpose, usage, and output fields. With an output schema present and annotations providing safety cues, 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%, so baseline 3. Description adds value by listing example categories (accounting, communication, marketing, etc.), providing useful 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?
Description clearly states it lists all available integration providers, not just connected ones. It distinguishes from sibling tools like integrations.list_connections which lists connected ones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'Use this to help users discover what they can connect', giving clear context. While it doesn't mention when not to use, the purpose is well differentiated from sibling tools.
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 the description adds behavioral detail about what the status includes (sync results, error logs). No contradictions. However, it does not mention authentication or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action and key details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter and an output schema, the description covers what the tool does, its return data, and its use case. Adequately 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 single parameter providerId is well-described in the schema with examples in the description. Schema coverage is 100%, so baseline is 3; the description adds value by listing valid examples (xero, slack, etc.).
Input schemas describe structure but not intent. Descriptions should explain 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 detailed status for a specific integration connection, listing included data (last sync results, error logs, supported operations) and the use case (diagnosing sync failures). It distinguishes from siblings like integrations.list_connections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 ('diagnosing sync failures') but does not explicitly state when not to use or compare with alternatives like integrations.sync. Still, the context is useful.
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 declare readOnlyHint=true, so safety is clear. Description adds output fields but says 'active' connections first, while schema allows filtering by other statuses. This could mislead about default behavior, lowering transparency slightly.
Agents need to know what a tool does to the 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. No wasted words. Efficient and immediately 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?
With only two optional parameters well-documented in schema and an output schema present, the description covers the essential context. Slight issue with 'active' vs default unfiltered behavior, 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 good parameter descriptions. Description does not add additional meaning beyond what 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?
Clearly states 'List all active integration connections' with explicit verb and resource. Distinguishes from siblings by noting use case for discovering connections before push/pull, differentiating from push, sync, and status tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use case: 'Use this to discover what external systems are connected before pushing/pulling data.' Implicitly tells when to use, though does not mention alternatives like integrations.connection_status.
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 idempotent, non-destructive, and not read-only. Description adds that it requires an active connection, but does not disclose further behavioral traits (e.g., error handling, side effects, or rate limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, followed by examples and requirement. No redundant 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?
Description is adequate for a tool with an output schema. It covers purpose and key requirement. Could mention immediate vs queued execution or error scenarios, but overall satisfactory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds no additional meaning beyond what schema provides; it lists entityType examples but omits some enum values (contact, payment).
Input schemas describe structure but not intent. Descriptions should explain 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 'push' and the resource 'specific entity', lists examples (lead, job, invoice), and differentiates from sibling tools like integrations.sync by requiring an active connection with push capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: requires an active connection with push capability for the entity type. Gives example use cases (push job to Slack, invoice to Xero). However, does not explicitly state when not to use or compare with alternatives 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 already provide readOnlyHint=false, destructiveHint=false, etc. The description adds the behavioral detail that the tool pulls or pushes depending on provider config, and mentions the need for an active connection. However, it does not explain non-idempotency or open-world effects beyond what annotations 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 two sentences: first states the primary action, second adds behavioral nuance and a prerequisite. No unnecessary 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?
Given the presence of an output schema and annotations covering safety, the description adequately explains the tool's function, prerequisite, and basic behavior. It could be more explicit about the effects of repeated calls or concurrency, but overall 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?
Input schema documentation covers 100% of parameters, each with a description. The tool description does not add additional parameter-level detail beyond what the schema provides, so it meets baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain 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 triggers a sync operation for a specific integration connection, and explains it pulls or pushes entities based on provider configuration. This distinguishes it from sibling tools like push_entity which is more specific, and list_connections which is read-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 a prerequisite (requires an active connection) but does not explicitly state when to use this tool versus alternatives like push_entity. The context of synchronization is implied, but no when-not or explicit comparisons are provided.
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?
Annotations indicate mutability (readOnlyHint=false), and the description confirms sending emails/SMS, logging, and tracking recovery. It adds context like Stripe payment link and 48-hour recovery metrics. 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 detailed but front-loaded with the core purpose. Each sentence adds value (modes, escalation, revenue impact). Could be slightly more structured with bullets, but overall concise given the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers both modes, escalation details, output format (days overdue, chase level, total outstanding), and side effects (logging, tracking). With an output schema present, the description is thoroughly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning: explains tone as escalation level, jobId as mode switch, sendSms default behavior. This goes beyond the schema's enum and type 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 finds and chases overdue invoices, with two distinct modes (GET and SEND). It specifies the resource (invoices) and actions (list, send reminders), differentiating it from siblings like invoicing.recovery or 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 explains when to use GET mode (list overdue) vs SEND mode (with jobId and tone). It provides escalation levels and their thresholds. However, it does not explicitly exclude cases where alternative tools (e.g., comms.send_email) might be preferred.
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 mutation (readOnlyHint=false) and non-destructive (destructiveHint=false). Description adds behavior: conditional creation of payment link if Stripe Connect is active, and returns specific fields. 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, front-loaded with purpose, no fluff. Every sentence adds value: purpose, conditional behavior, prerequisites, next step.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and annotations, description provides prerequisites, conditional behavior, return values, and next step. Complete for a single-param 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?
Single parameter jobId has 100% schema coverage. The description restates that it is required and job must be Completed, but does not add new semantics beyond the schema. 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 generates an invoice for a completed job, distinguishing it from siblings like invoicing.chase and invoicing.recovery. It mentions the conditional Stripe Connect behavior, adding specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (job must be 'Completed'), requires jobId from jobs.list, and suggests next step (payments.send_link). This provides clear guidance on usage and alternatives.
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 declare readOnlyHint=true and openWorldHint=false. The description adds that the tool returns recovered amount and count from auto-chase reminders, confirming it is a read-only aggregation with a fixed scope. No contradictions; the description provides useful 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 sentences with no wasted words. The first sentence states the purpose and outputs, the second provides context and a use-case hook. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no input params, no nested objects) and the existence of an output schema, the description fully explains what the tool returns and why it matters. 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 input schema has no parameters (coverage 100%), so the description need not add parameter details. It implicitly justifies the lack of parameters by making the tool a fixed dashboard metric. Score 4 reflects the baseline for zero-param tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: 'Track how much money has been recovered through auto-chase reminders.' It specifies the return values (total $ and count) and distinguishes it from sibling tools like invoicing.chase, which triggers chases, and invoicing.generate, which creates invoices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description frames the tool as 'the proof the platform pays for itself' metric, implicitly guiding use to demonstrate ROI to users. While it doesn't explicitly state when not to use it or provide direct alternatives, the context is clear enough for an AI 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.
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?
Annotations already indicate the tool is not read-only (readOnlyHint false), not destructive (destructiveHint false), and idempotent. The description adds context about triggering review requests but does not disclose irreversibility or permanent state changes beyond what the 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?
The description is concise, with two sentences followed by clear bullet points for prerequisites and next steps. Every sentence is informative and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters and an output schema, the description covers the core functionality, prerequisite, and recommended workflow. It does not elaborate on return values (but an output schema exists) or error handling, but is sufficient for typical 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?
The input schema already describes all parameters (100% coverage). The description adds a summary of optional behaviors (satisfaction rating and review request) but does not provide new semantics 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 marks a job as completed, optionally records satisfaction, and triggers a review request. It differentiates itself from sibling tools like jobs.create and jobs.update by explicitly being the 'recommended end-of-job 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 advises when to use it ('recommended end-of-job action') and provides a prerequisite ('Requires: job_id from jobs.list') and recommended next steps. However, it does not specify when not to use it or explicitly compare to alternatives like jobs.update.
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?
Describes auto-set status behavior (Scheduled vs Quoted) based on date input, going beyond annotations. No contradictions with annotations. Could mention if any destructive action occurs, but none expected.
Agents need to know what a tool does to the 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 succinct sentences with front-loaded purpose, efficient use of words, no 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?
Covers purpose, parameters, prerequisites, and next steps; adequate for a creation tool with output schema and good 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 covers all parameters with descriptions (100% coverage). Description adds context on status auto-setting and lead_id source, enhancing understanding 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 the tool creates/schedules a job for a lead, with optional linking to quote and assigning technician. Differentiated from siblings like jobs.update and jobs.complete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states prerequisite (lead_id from leads.list) and recommended next steps (jobs.update → jobs.complete → invoicing.generate), providing clear when-to-use and workflow context.
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?
Annotations already declare readOnlyHint=true. The description adds context about included linked data and cursor-based pagination, which are useful for agent behavior understanding.
Agents need to know what a tool does to the 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 conveys essential information efficiently 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 existence of an output schema, the description adequately covers the scope of returned data and pagination. It is 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 description coverage is 100%, so the schema already documents all parameters. The tool description adds no additional parameter-level information beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists jobs with specific fields (status, scheduled dates, technician assignment, invoice info) and includes linked lead and quote data. It distinguishes from sibling tools like jobs.create or jobs.complete by being a read-only list operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. It implies usage for listing jobs, but lacks when-not or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jobs.profit_summaryBRead-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. The description adds context about the returned data (sorted by profit, identifies winners/losers) but does not disclose any 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?
The description is reasonably concise, with key information front-loaded. Minor promotional language ('The insight that separates surviving tradies') adds slight fluff but does not detract significantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 an output schema exists, the description need not explain return values, but it does, listing them in useful detail. It covers the tool's purpose and output. No mention of scope (e.g., time period) but acceptable given no 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?
There are 0 parameters (schema coverage 100% trivially). Per guidelines, baseline for 0 params is 4. Description does not add parameter semantics because none exist.
Input schemas describe structure but not intent. Descriptions should explain 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 'Per-job profit analysis for completed jobs' and enumerates the return fields (revenue, cost, profit, margin, breakdown by service type). It has a specific verb and resource, distinguishing it from sibling analytics tools, though it does not explicitly contrast with 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 provides no guidance on when to use this tool versus alternatives like analytics.dashboard or analytics.financials. It does not state prerequisites, when-not-to-use, or any context for selection.
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?
Annotations indicate it's not read-only, not destructive, and not idempotent. The description adds no further behavioral details beyond the notification action. It does not disclose if the job status changes or if contact info is used.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus a benefit phrase, front-loaded with the core action. Every word is purposeful 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 simple tool (2 params, output schema exists), the description provides sufficient context for purpose and benefit. It does not need to explain return values due to 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 description does not add any additional meaning beyond the schema. The schema already describes both parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain 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 (send notification), the resource (client), and the context (on my way with optional ETA). It distinguishes from sibling tools like comms.send_email and comms.send_sms by being specific to the 'on my way' scenario.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you want to notify the client en route, mentioning the benefit of reducing no-shows. However, it does not explicitly state when NOT to use the tool or provide alternatives among siblings.
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 idempotent=true and readOnly=false, so the description's mention of 'Progress jobs through the pipeline' adds context about allowed status transitions. No contradictions, and it provides useful behavioral cues 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, front-loaded with key purpose, and no extra words. Every sentence adds value: the first lists updatable fields, the second explains the pipeline progression.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (5 parameters, 1 required, enums, output schema exists), the description covers the essential behaviors. It doesn't explain return values, but the output schema likely handles that. Sufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters have descriptions in the schema (100% coverage), so the description's value is limited. However, it adds pipeline ordering context and explicitly advises using jobs.complete for completion flow, which enhances understanding of the status enum.
Input schemas describe structure but not intent. Descriptions should explain 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 'job', lists specific fields (status, schedule, notes, technician) that can be updated, and indicates the pipeline progression. This distinguishes it from sibling tools like jobs.complete and jobs.create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool (for updating job details or progressing through pipeline) and provides a clear alternative: 'Use jobs.complete for the full completion flow with review requests.'
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 provide readOnlyHint=false and destructiveHint=false. Description adds auto-assignment to authenticated company and source defaulting to 'mcp', which are useful behavioral traits 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. Front-loaded with main purpose, 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?
With 8 parameters (2 required) and an output schema, the description covers key behaviors but doesn't mention return value format or error cases. Still adequate for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the description only mentions source defaults, which is already in schema. No new parameter meaning added beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Create a new lead/prospect' with specific verb and resource. Adds auto-assignment and default source, distinguishing from siblings like leads.update 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?
No explicit guidance on when to use this tool versus alternatives (e.g., leads.update or other creation tools). Does not state prerequisites or exclusions.
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?
Consistent with readOnlyHint; describes returned fields and pagination support, adding valuable behavioral context beyond the annotation.
Agents need to know what a tool does to the 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 brief sentences and a tip, efficiently communicating purpose, returned data, and usage hint. 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 presence of an output schema and full parameter documentation, this description sufficiently covers filtering, pagination, and the specific data returned. 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% so baseline is 3; the description adds 'filtering and cursor-based pagination' context but does not deepen understanding beyond what schema descriptions provide.
Input schemas describe structure but not intent. Descriptions should explain 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 leads and prospects' and specifies returned fields. The tip mentioning leads.create distinguishes this read operation from its write sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 implicit usage guidance via tip linking leads.create to leads.list for verification. Does not explicitly state when not to use or name alternatives like clients.list.
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 provide safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true). Description adds key behavioral detail 'Only provided fields are updated', consistent with idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, front-loaded with purpose and behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and annotations present, the description is adequate for a simple update operation. Could mention that lead must exist, but not critical.
Complex tools with many parameters or behaviors need more documentation. 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 100% with descriptions. Description adds value by clarifying that only provided fields are updated, which is important for understanding the id and optional 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?
Description clearly states verb 'Update', resource 'lead', and the partial update behavior. 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?
Provides clear usage: pass lead ID and any fields to change. Implicitly covers when to use this tool for updating leads. Could add when not to use, but sufficient.
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, so the description's mention of 'returns' is consistent. It adds value by detailing the output structure (current stage, signals, triggers, recommendations, blockers), which supplements 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?
Two sentences cover purpose, stages, and outputs with no redundant words. Every sentence provides essential information, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (13 parameters, 5 stages) and the presence of an output schema, the description adequately maps inputs to outputs. It briefly mentions 'provide business metrics' and lists all outputs. Could slightly improve by hinting at required inputs (hasABN, hasLicence) but schema covers 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 description coverage is 100%, so the schema already documents all 13 parameters fully. The description does not add semantic detail beyond listing the stage names. 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 uses a specific verb ('assess') and resource ('business lifecycle stage'), explicitly lists the five stages, and mentions the readiness score and specific outputs. It clearly distinguishes from sibling tools like scaling.readiness_score or formation.checklist by its comprehensive lifecycle focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but offers no guidance on when to use it vs. sibling tools like scaling.readiness_score or formation.checklist. There are no explicit when-to-use or when-not-to-use indications, leaving the agent to infer context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
Description contradicts annotations: it describes generating new content (a write operation) but annotations include readOnlyHint=true and idempotentHint=true. This is a serious inconsistency that misleads the agent about the tool's 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?
Four sentences, front-loaded with purpose, no filler. Every sentence adds value: supported channels, generated content details, A/B variations, plan requirement. Efficient 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?
Given the tool complexity (6 parameters, output schema present), the description covers supported channels and generated content, and mentions A/B tests and plan requirement. However, the contradiction with annotations and lack of clarity on idempotency reduce completeness. The output schema likely explains return values, so no deduction there.
Complex tools with many parameters or behaviors need more documentation. 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 with descriptions and enums. The description adds general context about what is generated but does not add specific parameter-level meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it generates marketing content for specific channels, lists supported channels (Google Ads, Facebook, etc.), and specifies output components (headline, body, CTA, SMS version). This distinguishes it from the sibling 'marketing.strategy' which likely focuses on strategy rather than content 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?
Description explicitly says when to use (generate content for a channel) and mentions the Pro plan requirement. It does not explicitly state when not to use it, but the channel list and output description make the usage context clear. A brief exclusion of alternative tools would elevate it to a 5.
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 readOnlyHint=true and idempotentHint=true. The description adds behavioral context by stating it requires a Pro plan (authorization constraint) and detailing the analysis process, which goes 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?
The description is three sentences long, front-loaded with the main purpose. Each sentence adds value: core function, analysis details, additional outputs and requirement. 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 presence of output schema, the description adequately covers inputs, outputs (channels, costs, ROI, content ideas), and prerequisites (Pro plan). It is sufficiently complete for an agent to understand the tool's purpose and invocation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents each parameter. The description mentions 'trade, region, demand intelligence' which maps to parameters, but adds no syntax or format details beyond the 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?
The description clearly states it is an 'AI-powered lead generation strategy engine' that analyzes trade, region, demand intelligence, and historical lead data to recommend marketing channels with costs and ROI. It distinguishes itself from siblings like 'marketing.generate_content' by focusing on strategy and channel recommendations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 generating a marketing strategy and mentions the Pro plan requirement, but it does not explicitly compare with sibling tools or state when not to use it. Usage context is inferred rather than explicit.
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 and openWorldHint=false, making the tool's non-destructive nature clear. The description adds behavioral context about cross-company aggregation but does not disclose details like data freshness or response structure. Given the annotations, the description provides moderate additional 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?
A single sentence that is front-loaded with the main action and resource, followed by specific metric examples. No extraneous 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?
The tool has no parameters and an output schema exists. The description lists the key metrics returned (revenue, profit, win rates, pipeline, revenue waterfall), providing sufficient context for an AI agent to understand the tool's purpose and capabilities.
Complex tools with many parameters or behaviors need more documentation. 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 no parameters (100% schema coverage by default). Per guidelines, 0 parameters yields a baseline of 4. The description compensates by enumerating the output metrics, adding value 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 the verb 'Get', the resource 'unified dashboard metrics', and the scope 'across all operator companies'. It lists specific metrics (YTD/MTD revenue, profit, win rates, pipeline, revenue waterfall), distinguishing it from the sibling 'analytics.dashboard' which likely covers a different 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 the tool aggregates data across multiple operator companies, implying its use for cross-company views. However, it does not explicitly state when to avoid this tool or suggest alternatives like 'analytics.dashboard' for single-company analytics. Context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 indicate readOnlyHint=true, confirming the tool is safe to use. The description adds value by specifying the returned metrics (lead/quote/job counts), but does not mention potential limitations like pagination or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key action and output. Every word serves a purpose, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an existing output schema, the description fully explains what the tool returns. It provides sufficient context for an agent to understand the tool's functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is 100%. According to guidelines, the baseline is 4 for zero-parameter tools, and the description does not need to add parameter 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 'list', the resource 'companies in the operator's portfolio', and the specific metrics (lead/quote/job counts). It effectively distinguishes from sibling tools like operator.dashboard by specifying the scope and output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines on when to use this tool versus alternatives or when not to use it. Although its purpose is clear, the lack of usage context limits guidance for the agent.
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?
Annotations declare idempotentHint=true and destructiveHint=false, and the description confirms a non-destructive state change. It adds value by explaining that the switch persists across calls, which annotations do not capture. 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: the first defines the action, the second explains the effect. It is front-loaded, efficient, and contains no superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, state-changing tool, the description adequately covers the purpose and side effect. The output schema (present but not shown) likely documents the return value, so the description need not. A minor gap is the lack of mention of error conditions or idempotency, but annotations fill some of 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 coverage is 100% with a clear description for companyId. The tool description does not add parameter-level context beyond the schema, which already states the parameter is required and must be in the operator's portfolio. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Switch the active company context') and its effect on subsequent tool calls. It differentiates from sibling tools like operator.dashboard or operator.get_portfolio, which are read-only context queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 consequence of use—'All subsequent tool calls will execute in the new company context'—which implies when to switch. However, it does not explicitly state when not to use it or provide alternatives, though no direct alternative exists among siblings.
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 indicate readOnlyHint=false (write operation), which is consistent with 'generate' and 'send'. The description adds prerequisite info but does not detail side effects, idempotency, or error behavior. Since output schema exists, return value details are not needed, but behavioral traits beyond annotations are minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is remarkably concise: two sentences plus a prerequisite and a tip, all front-loaded. Every word serves a purpose; no fluff or repetition. It efficiently communicates core functionality and 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 tool has 4 parameters, a prerequisite, and an output schema, the description covers key aspects: main function, optional sending, prerequisite, and a sequencing tip. It does not mention error cases or the output format, but the output schema likely covers return values. Overall, it is fairly complete for the 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 the description adds minimal value beyond the schema. It restates the required job_id and implies optional sending flags, but the schema already details defaults and amount fallback logic. Baseline 3 is appropriate as the schema carries the semantic 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 generates a payment link and optionally sends it via SMS/email. It specifies a prerequisite (Stripe Connect) and distinguishes from invoicing tools by focusing on payment links. The verb 'Generate' and resource 'payment link' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear prerequisite (Stripe Connect active) and a usage tip ('Use after invoicing.generate for the smoothest flow'), which guides sequencing. It does not explicitly list when not to use it or alternatives (e.g., billing.create_checkout), but the tip offers contextual guidance.
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 indicate a write operation (readOnlyHint=false). The description adds value by specifying that it creates company-level items and applies default markup. However, it does not discuss rate limits, idempotency, or failure modes. With annotations, the bar is lowered, but the description still lacks some behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action. It is concise and well-structured, though slightly more detail could be added without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and moderate complexity, the description covers the core functionality. It explains the main behavior and touches on defaults, making it fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is described. The description adds context about the default markup but does not significantly enhance the schema descriptions for 'itemIds' or 'supplierId'. 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 imports products from the global supplier catalog into the company's price book, creating company-level supplier and catalog items. It uses a specific verb ('import') and resource, distinguishing it from sibling tools 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 describes the action but does not provide explicit guidance on when to use this tool versus alternatives (e.g., should it be used before search? Are there prerequisites?). The context is implied but not clearly stated.
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 indicate readOnlyHint: true, and the description adds that it returns RRP and typical trade cost, providing concrete behavioral context beyond the annotation. 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 succinct sentences that front-load the purpose and scope. 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?
With 5 parameters fully described, an output schema present, and a clear explanation of return values (RRP and typical trade cost), the description is complete for a search tool. It covers what the tool does, what it returns, and how to filter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents parameters well. The description adds minor context (e.g., 'Australian supplier catalog' and returned data) but does not significantly enhance parameter 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 searches an Australian supplier catalog with specific details on product count and wholesalers. It distinguishes itself from sibling tools like pricebook.import by focusing on search, and uses specific verbs like 'Search' and '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?
The description implies usage for searching the catalog but provides no guidance on when to use this tool versus alternatives (e.g., pricebook.import). No explicit when-not-to-use or comparisons with siblings.
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 already indicate readOnlyHint=true and idempotentHint=true. The description adds valuable behavioral context: it is AI-powered, uses specific data sources, returns line items, adjustments, market context, and confidence scores. It also notes compliance and plan requirements, exceeding 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?
The description is four sentences long, front-loaded with the main purpose, and includes necessary details without 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 the existence of an output schema and annotations, the description provides sufficient context: data sources, return types, compliance, and plan requirement. It does not discuss limits or pagination, but for a suggestion tool, this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is documented. The description does not significantly elaborate on parameter meanings beyond the schema, but the tool purpose and return types are clear. 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: 'AI-powered pricing intelligence' that analyzes supplier catalog, price book, and historical quotes to suggest optimal pricing. It distinguishes itself from sibling tools like quotes.create by emphasizing it is a suggestion tool, not a quote creation tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (for price suggestions before finalizing a quote) and mentions ACCC compliance and human decision requirement, but does not explicitly state alternatives or when not to use it. Sibling tool names provide context for differentiation.
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?
The description adds context beyond annotations by stating the quote is created in Draft status and requires the lead to belong to the authenticated company. 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 extremely concise with two sentences that front-load the purpose and essential details, 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 tool's simplicity (3 parameters, no nesting), the description covers purpose, prerequisites, and next steps sufficiently; an output schema exists but is not needed for 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?
While the schema covers 100% of parameters, the description adds meaning by explaining line items structure and the source of lead_id, enhancing the schema's bare 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 explicitly states 'Create a quote for a lead' with specific details on line items and draft status, clearly distinguishing it from sibling tools like quotes.send and quotes.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?
It provides clear prerequisites (lead_id from leads.list or leads.create) and a next step (quotes.send), but does not explicitly state when not to use this tool versus alternatives.
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 indicate read-only behavior. The description adds that the tool supports status filtering and cursor-based pagination, and returns specific data fields, providing valuable 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 two short sentences plus a tip, all front-loaded with essential information. No 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?
The description covers the key aspects: what data is returned, filtering, pagination, and a helpful tip. An output schema exists, so return value details are not needed. Completeness is high.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already well-documented. The description mentions filtering by status and pagination, which adds minimal extra meaning over the schema. Score is baseline at 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 lists quotes with specific details (line items, totals, status, linked lead info), and mentions filtering and pagination. This differentiates it from sibling tools like quotes.create and quotes.update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tip provides context on creating quotes and the prerequisite for leads, but does not explicitly state when to use this tool versus other list tools. However, the description is clear enough for standard usage.
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?
The description discloses key behavioral traits: it marks the quote as Sent, returns a public URL, and consumes SMS/email credits. These details go beyond annotations (readOnlyHint, destructiveHint, idempotentHint) and provide operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that front-load the primary action and include key details. No redundant words, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters with full schema coverage, annotations, and an output schema, the description is complete. It covers the action, side effects (credit consumption), and result (public 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 clear parameter descriptions. The description adds minimal extra meaning (e.g., 'optionally' is already in schema defaults). Baseline scoring applies as schema handles the semantic 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 action: generating a shareable link for a quote and optionally sending it via SMS/email. It distinguishes from sibling tools like quotes.create, quotes.list, and quotes.update by focusing on sharing and sending.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (to share and optionally send a quote) but does not explicitly state when not to use it or mention alternatives. However, the action is well-defined and context from sibling tools implies differentiation.
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 it's a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds no further behavioral details beyond stating it's an update.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two short sentences with no redundant information. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 4-parameter tool with an output schema, the description covers the essential purpose and usage. Could mention idempotency or prerequisite state, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description doesn't need to elaborate. It mentions the parameters (status, line items, total) but adds no additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'quote', lists the fields that can be updated (status, line items, total), and distinguishes from siblings like quotes.create (new) and quotes.send (sending).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by indicating 'Use to progress quotes through the pipeline', implying it's used for workflow progression. However, no explicit comparison with alternatives or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
Annotations indicate a modification operation (readOnlyHint=false). The description adds valuable behavioral context: reminders appear in the dashboard and can trigger notifications. This goes beyond the annotations, though it omits specifics like idempotency or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste. The first sentence states the action and resource, the second adds context. It is front-loaded and 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 6 parameters are fully described in the schema and there is an output schema (implied), the description adequately covers the tool's purpose and behavior. It does not discuss errors or permissions, but for a create tool this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds marginal value by mentioning that reminders can be linked to a lead or job, which aligns with leadId and jobId parameters, but does not provide additional semantics beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Schedule' and the resource 'reminder', and distinguishes it by noting it can be linked to a lead or job. It avoids tautology and provides enough specificity to differentiate 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 implies usage for scheduling follow-up reminders and mentions optional linking to leads/jobs, but does not explicitly state when to use this tool over alternatives or provide exclusions. The context is clear but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reminders.listBRead-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?
Annotations already mark the tool as read-only, and the description adds that results are sorted by date and include linked lead/job info. However, it does not mention pagination behavior (default limit of 20), which is relevant for understanding tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, front-loaded sentences with no extraneous information. Every sentence adds value (listing action, sorting, and context inclusion).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 optional params, existence of output schema), the description adequately covers the tool's purpose and output context. It could mention the default limit or pagination, but the output schema likely covers return fields.
Complex tools with many parameters or behaviors need more documentation. 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 both parameters. The description adds no additional parameter-specific details beyond implying the default status is 'pending' (via 'upcoming'). This matches the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('scheduled reminders'), and adds sorting and context info. It is distinct from sibling tools like reminders.create, but does not explicitly differentiate from other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., reminders.create for creating, or other list tools). The description only states what it does, not when 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.
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 provide readOnlyHint=true. Description adds that it returns URLs and examples, confirming safe read 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, no wasted words. First sentence states action and examples, second provides utility. Well-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 zero parameters, output schema present, and annotations covering safety, the description fully informs the agent of purpose and output.
Complex tools with many parameters or behaviors need more documentation. 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 is 100% trivially. Description adds value by describing output content, exceeding baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain 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 configured review platforms with examples (Google, Hipages, Facebook) and their URLs. It distinguishes from sibling tool reviews.request by focusing on listing rather than sending.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says 'useful for knowing where to direct review requests', implying use before sending reviews. It does not explicitly exclude alternatives, 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.
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?
Discloses that it sends emails and optionally SMS, and that sendSms consumes 1 SMS credit. This adds behavioral context beyond annotations (readOnlyHint=false, openWorldHint=true) 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?
Three sentences, zero waste. Purpose in first sentence, key requirement in second, helpful tip in third. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 parameters and an output schema, the description fully covers prerequisites, options, and cross-references a related tool. 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?
Description enriches both parameters: jobId requires completed job and lead email; sendSms consumes 1 SMS credit. Schema coverage is 100%, but description adds critical usage context not in 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 action (send review request), the resource (client after completed job), and the method (via email, optionally SMS). It distinguishes from siblings like reviews.platforms and comms.send_email/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?
Explicitly requires job_id from a completed job, and provides tip to use reviews.platforms for configured URLs. Does not explicitly say when not to use, 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.
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 already mark the tool as read-only (readOnlyHint: true). The description adds context about the evaluation areas (financial strength, systems maturity, team capability, market demand) but does not disclose calculation methods, output format, or rate limits. It adds moderate value 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 exceptionally concise: two sentences that are front-loaded. The first sentence states the core purpose and target user, the second lists the dimensions evaluated. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, output schema exists), the description is fairly complete. It covers the goal, target, and evaluation areas. However, it could mention required parameters (annualRevenue, employeeCount) and that the tool returns a readiness score. Still, with output schema handling return info, it is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all 8 parameters have descriptions). The tool description groups parameters into four categories, but does not add specific meaning beyond what the schema already provides. 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: assessing readiness to scale a trade business from solo to multi-crew operation. It uses a specific verb ('assess') and resource ('readiness to scale'), and the categorization into four evaluation areas distinguishes it from sibling analytics 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?
No explicit guidance is provided on when to use this tool versus alternatives like analytics.dashboard or formation.location_score. The description implies a use case but does not give conditions, prerequisites, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
services.createBInspect
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 indicate readOnlyHint=false and destructiveHint=false, so the description's claim of adding a service is consistent but adds no additional behavioral traits such as audit logging, authorization requirements, or side effects beyond basic mutation.
Agents need to know what a tool does to the 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 of 13 words that front-loads the core purpose. It could be slightly more structured (e.g., listing parameters), but it is not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, high schema coverage, and an existing output schema, the description covers the basic action but lacks context on what occurs after creation (e.g., service becomes available in catalog) or error conditions. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description's mention of 'name, description, price range, and category' adds no new meaning beyond what the parameter descriptions already convey. 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 'Add' and resource 'service to the company catalog', distinguishing it from siblings like services.list and services.update. The fields to include are listed briefly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 creation via the phrase 'Add a new service', but provides no explicit guidance on when to use this tool versus alternatives (e.g., services.update), nor any prerequisites or exclusions.
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, so the tool is read-only. The description adds that it lists all services, which implies no side effects, but does not provide additional behavioral details beyond what annotations indicate.
Agents need to know what a tool does to the 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, direct and concise. Every sentence earns its place without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and an output schema, the description is complete. It explains the tool's purpose and typical use case without 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?
The input schema is empty, so there are no parameters. The description adds value by listing the data returned (prices, descriptions, categories), which helps the agent understand what to expect from the output.
Input schemas describe structure but not intent. Descriptions should explain 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 lists all services with prices, descriptions, and categories, clearly identifying what it does. It distinguishes itself from sibling tools like services.create and services.update, which are write operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it is 'useful for accurate quoting and understanding what the business offers,' providing context for when to use. It does not explicitly mention when not to use or alternatives, but the purpose is clear.
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 indicate readOnlyHint=false, idempotentHint=true, destructiveHint=false. The description adds value by clarifying that setting active=false performs a soft-delete/disable, which is non-destructive. This context complements the annotations well, though 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?
A single, concise sentence that front-loads the purpose. Every word adds value; no redundancy. Ideal for agent quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, full schema coverage, annotations, and an output schema (not shown but present), the description is adequate. It covers key update scenarios but does not mention partial updates or idempotency. Reasonably complete for a straightforward update tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters documented. The description mentions 'price, description, or toggle active/inactive status' but omits other parameters like name, unit, category, priceMax, priceMin. It adds minimal meaning beyond the schema, earning 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 verb 'update' and the resource 'service in the catalog', and provides concrete examples like 'Change price, description, or toggle active/inactive status'. Among siblings (services.create, services.list), this is distinct and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like services.create or services.list. It does not mention prerequisites or contexts for use, leaving the agent to infer from the action. Lacks exclusion or comparison with siblings.
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?
Adds value beyond annotations by specifying SMS notification, record creation, and subcontractor status requirement. 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 sentences, all essential, no redundancy. Front-loaded with 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?
Covers core action, side effects, prerequisites, and return value. Output schema exists, so description is complete 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 coverage is 100%, but description adds context for sendSms (defaults true) and clarifies that description is for the subcontractor, enhancing 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?
Clearly states action ('dispatch a job to a subcontractor'), specifies side effects (SMS, dispatch record), and distinguishes from sibling tools like list, register, verify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when to use (dispatching a job) and includes prerequisite (subcontractor must be active/verified), but lacks explicit guidance on when not to use or direct comparison with siblings.
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 indicate readOnlyHint=true, and the description adds 'Returns license, insurance, service areas, ratings, and job history,' providing useful behavioral context beyond the annotation.
Agents need to know what a tool does to the 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 filtering, 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 an output schema and 100% parameter coverage, the description is sufficient. It adds mention of return fields, enhancing 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%, so the description only summarizes filtering options without adding new 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 'List registered subcontractors' with a specific verb and resource. It distinguishes from sibling tools like subcontractors.dispatch, register, and verify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 filtering options but does not explicitly state when to use vs alternatives. However, the context of sibling tools makes the usage clear.
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?
Annotations show readOnlyHint=false and destructiveHint=false, implying creation without destruction. The description adds that registration starts in 'pending' status and requires a specific plan, providing 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?
Three concise sentences with no superfluous information. The action 'Register' is front-loaded, and each sentence adds value: what, what data, status, requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 covers purpose, prerequisites, status, and data captured. It is sufficient for an agent to understand when and why to invoke 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 description coverage is 100%, so each parameter's purpose is already clear. The description summarizes the types of data captured (business details, trade license, etc.), matching the parameters without adding extra semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Register' and the resource 'subcontractor', specifies it's for the 'vetted network', and lists captured details. It distinguishes from siblings like subcontractors.list and subcontractors.verify by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: starts in 'pending' status and requires Growth+ plan. While it doesn't explicitly state when not to use, the sibling list implies alternatives for verification and listing.
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?
Annotations indicate readOnlyHint=false, idempotentHint=true, destructiveHint=false. The description adds that it 'Records verification timestamp', providing a specific side effect beyond what annotations convey. 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 two sentences, no fluff, and front-loaded with the primary purpose. 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 complexity (3 params, enum status, output schema present), the description adequately covers usage, status transitions, and timestamp recording. It could optionally mention idempotency, but that is already annotated.
Complex tools with many parameters or behaviors need more documentation. 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 described clearly. The tool description groups the enum values into actions (verify, activate, etc.) but does not add significant new meaning beyond the schema's descriptions. 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 'Update' and the resource 'subcontractor's verification status', and enumerates specific actions: verify (check license/insurance), activate, suspend, or deactivate. This distinguishes it from sibling tools like subcontractors.list (read) and subcontractors.register (create).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (to change verification status) but does not provide explicit guidance on when not to use it or alternatives. For example, it does not mention that registering a new subcontractor should use subcontractors.register instead. The 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.
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 already declare readOnlyHint=true. The description adds value by disclosing that the tool is free and includes lifetime stats and recent transactions, enhancing transparency beyond 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 extremely concise with two sentences, front-loading the main purpose and adding essential cost context. 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 that an output schema exists, the description adequately covers the tool's purpose, cost, and key data provided. It is complete enough for a simple read 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 schema covers both parameters with 100% description coverage. The description adds no additional meaning 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 tool retrieves current wallet balance, lifetime stats, and recent transactions, providing a specific verb+resource combination that distinguishes it from sibling tools like wallet.history or wallet.deposit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes that wallet operations are free and provides cost context for other tools, guiding when to use this read-only tool. It does not explicitly exclude alternatives but gives sufficient context for selection.
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?
With minimal annotations (readOnlyHint false), the description adds value by stating the outcome: returns a payment address and amount, and that the wallet is credited on blockchain confirmation via webhook. It could mention network fees or confirmation times, but the provided transparency is 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?
Two sentences deliver the essential information without wasted words. The structure is clear: action, accepted coins, return values, and confirmation mechanism.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the presence of an output schema, the description covers the basic flow. However, it fails to differentiate from sibling wallet.deposit and does not address the schema contradiction, leaving context gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description contradicts the schema by stating only USDC and USDT are accepted, while the enum includes BTC and ETH. This misalignment undermines parameter understanding. No additional semantic detail is provided beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a cryptocurrency payment to top up a wallet, with a specific verb ('create') and resource ('cryptocurrency payment'). It distinguishes from siblings by specifying the payment method (crypto vs fiat), but the discrepancy between the description (USDC and USDT only) and the input schema enum (includes BTC and ETH) reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like wallet.deposit, which likely handles fiat deposits. No exclusions, prerequisites, or context for choosing crypto over other deposit methods are given.
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?
The description states that the wallet is credited automatically on successful payment and returns a client_secret. Annotations indicate mutation (readOnlyHint=false) and side effects (openWorldHint=true). No mention of failure cases or authorization, but the core behavior is 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: first states the purpose and key output, second adds constraints and success behavior. No unnecessary words; each 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 low complexity, high schema coverage, and presence of output schema, the description covers the essential aspects: purpose, constraints, return value, and automatic crediting. 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 detailed descriptions for both parameters. The description repeats the min amount and confirms the default currency, but adds little beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a Stripe PaymentIntent to top up the wallet with credits, which is a specific verb+resource. It differentiates from sibling wallet tools like wallet.balance, wallet.history, wallet.transfer, and wallet.crypto_deposit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 minimum and maximum amounts ($5 to $10,000) but does not explicitly compare to alternatives like wallet.crypto_deposit or wallet.transfer. The context implies it is for fiat credit top-up, but when-to-use guidance could be clearer.
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 declare readOnlyHint=true, and the description aligns as a read operation. It adds specific transaction types, but does not elaborate on pagination, rate limits, or data freshness beyond what annotations already cover.
Agents need to know what a tool does to the 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 core purpose and add a usage hint, 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 read-only nature, complete annotations, 100% parameter coverage, and presence of an output schema, the description adequately explains the tool's function and purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no new meaning beyond the schema. The types listed are already in the enum, and limit/cursor are not explained 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 clearly states it retrieves detailed transaction history, listing specific types (deposits, deductions, transfers, refunds), and explicitly distinguishes from sibling tools like wallet.balance by focusing on history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'useful for cost analysis and budgeting,' indicating when to use it, but does not provide explicit when-not-to-use guidance or alternatives.
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?
The description adds the max transfer limit ($5,000) beyond the annotations (readOnlyHint=false). However, it does not disclose whether the transfer is reversible, any fees, or confirmation requirements. For a mutation tool, this is acceptable but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loading the core action and then providing context. Every sentence adds value: purpose, use case, and constraint. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters (all documented), an output schema (exists), and no nested objects, the description provides a reasonable amount of context. It covers purpose, use case, and a critical constraint. It does not detail return values or errors, but that is acceptable with an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds value by specifying a maximum amount ($5,000) which constrains amount_cents. It does not repeat parameter descriptions from 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 'Transfer credits from your wallet to another company' and provides a specific use case ('agent-to-agent settlement'). It distinguishes the tool from siblings like wallet.balance, wallet.deposit, and wallet.history by specifying the action and 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 gives a clear context for usage (agent-to-agent settlement, paying subcontractors) and specifies a maximum amount ($5,000). However, it does not explicitly state when not to use this tool or mention alternatives (e.g., payments.send_link). The example partially compensates.
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 and openWorldHint=false. Description adds 'active' and 'for this company' as behavioral context, but does not disclose pagination or rate limits. With annotations present, the description provides moderate 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?
Single sentence, front-loaded with verb and resource. No wasted words, highly concise and 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?
Tool has no parameters and output schema exists. Description is adequate for a simple list tool, though could mention pagination if applicable. Given lack of complexity, completeness 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?
No parameters in input schema, so parameter semantics are trivial. Schema coverage is 100% (no params). Baseline score of 4 applies as no further info 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 'List all active webhook subscriptions for this company', specifying verb (list), resource (webhook subscriptions), and scope (active, company). Distinguishes 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 guidance on when to use this tool vs alternatives like webhooks.subscribe. Implies read-only usage but does not provide context or exclusions.
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?
Annotations indicate write operation (readOnlyHint=false) and unknown side effects (openWorldHint=true). The description adds key behavioral details: POST events as JSON with HMAC-SHA256 signature, informing agents of security and format. 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 purpose, followed by crucial behavioral detail. No redundant phrases, 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 complexity (4 params, nested objects, output schema exists), the description covers event types and webhook format. It does not explain output schema, but that is provided separately. Sufficient for effective tool 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 describes all parameters (100% coverage). The description lists events but does not add meaning beyond the schema enum. Parameter semantics are adequate but not enhanced.
Input schemas describe structure but not intent. Descriptions should explain 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 registers a webhook URL for real-time event notifications, with specific verb and resource. It lists available events, distinguishing it from siblings like 'webhooks.list' 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 (e.g., webhooks.list, webhooks.unsubscribe). The description implies usage for subscribing to events, but lacks conditions or prerequisites.
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?
Description explicitly says 'stops all future event deliveries' which adds behavioral context beyond the readOnlyHint=false annotation. It is clear this is a destructive mutation, but lacks details on reversibility or immediate 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 with no wasted words. Immediately states the action and effect. 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?
For a simple tool with one parameter and an output schema, the description covers the core behavior. Could mention potential errors or idempotency, but not necessary 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% and the parameter 'id' is well-documented with description and required flag. The description adds no additional semantics beyond 'by ID', which is implicit in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (remove a webhook subscription by ID) and the effect (stops all future event deliveries to that URL). It distinguishes from siblings like webhooks.list and webhooks.subscribe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or alternatives. Usage is implied by the action, but agents may benefit from knowing when not to use this tool or how it relates to other webhook tools.
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 the immediate execution after approval, which is key behavior beyond annotations. Annotations mark it as not read-only and not destructive, and the description adds timing 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, front-loaded with verb and resource, no unnecessary information. 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 existing output schema, the description is adequate. It covers purpose and key behavior but could mention error states or prerequisites like action must be pending.
Complex tools with many parameters or behaviors need more documentation. 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 schema description for actionId is clear. The description adds no new parameter details beyond reinforcing that it is a draft action ID.
Input schemas describe structure but not intent. Descriptions should explain 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: 'Approve a pending draft action' and lists specific examples (quote, invoice, review request, SMS). It distinguishes from sibling tools like workflows.reject_action by focusing on approval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 approving draft actions but does not explicitly state when not to use it or contrast with alternatives such as workflows.reject_action. No prerequisites or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
Annotations show destructiveHint=false and readOnlyHint=false, indicating mutation but not destruction. The description adds that the tool sends escalating reminders and includes Stripe links, but does not detail what happens to records or whether actions are reversible. 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 sentences, front-loaded with main action, no extraneous detail. Each sentence adds value: action, usage, requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 zero required params, full schema coverage, and an output schema, the description is complete. It covers purpose, usage, and prerequisites without 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% and both parameters have clear descriptions. The description adds context about escalation tones, but does not significantly extend beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Auto-chase overdue invoices with escalating SMS + email reminders (friendly → firm → final). Includes Stripe payment links.' It identifies the resource (overdue invoices) and the specific behavior (escalating reminders with payment links). Differentiates from sibling 'invoicing.chase' by mentioning escalation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instructions: 'Pass jobId to chase specific invoice, or omit to scan all overdue.' It also states the requirement 'Requires Growth+ plan.' However, it does not explicitly mention when not to use or compare to sibling tools like invoicing.chase.
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 via SMS and team channels, which are side effects beyond the read/write hints. It also mentions the plan requirement. However, it does not detail what happens if called multiple times (idempotency) or potential 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, no wasted words, front-loaded with the core purpose and key details. 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 tool with three optional parameters and an output schema, the description covers the key aspects: summary content, delivery methods, and plan requirement. It might miss mentioning that it's likely a one-time generation (not scheduling), 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?
The schema has 100% description coverage for all three parameters, so the baseline is 3. The description does not add significant new meaning beyond the schema, as the schema already describes each parameter's purpose.
Input schemas describe structure but not intent. Descriptions should explain 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 end-of-day business summary with specific content (leads, quotes, jobs, revenue, schedule) and sends it via SMS and team channels. The verb 'generate' and resource 'daily summary' are specific, and the description distinguishes it from the many sibling 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 usage at end-of-day and mentions a plan requirement ('Requires Starter+ plan'), but does not explicitly state when to use this tool versus 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.
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?
Discloses key behaviors beyond annotations: sends escalating nudge messages (up to 3), auto-scans pending quotes if quoteId omitted, and requires a specific plan. Annotations only hint at non-readOnly and non-idempotent; description adds actionable detail.
Agents need to know what a tool does to the 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 packing critical info: first sentence states purpose and limit, second explains parameter usage and requirement. No filler, fully 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?
Covers all essential aspects: action, resource, mode selection, requirement, and nudge limit. Does not describe output format (but output schema exists) or error conditions, but for a tool of this complexity, it's 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 coverage is 100% with clear property description. The tool description repeats the schema info but adds no new parameter-specific semantics beyond what the schema already 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?
Clearly states 'Follow up on unsigned/pending quotes' with specific mechanism 'escalating nudge messages (up to 3 follow-ups)'. Distinguishes from siblings like quotes.send or workflows.chase_payment by specifying automated, escalating nudges with a cap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 describes when to use (for unsigned/pending quotes) and provides two modes (specific quoteId vs auto-scan all pending). Mentions requirement 'Requires Growth+ plan'. Lacks explicit when-not or comparisons to alternative tools, 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.
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 already indicate non-readonly, open-world, non-idempotent behavior. The description adds specific pipeline steps (AI summary, auto-quote, auto-schedule, SMS, team notify) and tagging behavior, which provides useful behavioral context beyond what annotations offer. However, it does not disclose failure modes 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?
The description is a single, well-structured sentence that front-loads the purpose and efficiently lists the pipeline steps. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives a good high-level overview of the pipeline stages and output tagging. However, it omits prerequisites (e.g., lead must exist) and conditional behavior, which would improve completeness 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%, baseline 3. The description adds meaning by linking 'auto-quote' and 'auto-schedule' steps to the corresponding boolean parameters, and 'ad campaign attribution' to the adCampaign parameter. This provides practical context 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's purpose: processing a Google Ads lead through a full zero-touch pipeline with specific steps listed. It distinguishes itself from sibling tools like 'workflows.process_lead' by specifying the Google Ads context and pipeline stages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 about when to use this tool (for Google Ads leads needing full automated processing) but does not explicitly rule out alternatives or mention when not to use it. The absence of exclusionary guidance prevents a perfect score.
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?
Annotations indicate non-destructive, non-idempotent, and open-world behavior. The description adds useful context: 30-second guarantee, branded templates, and optional WhatsApp. 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?
Two sentences, both substantive. No redundant information. Front-loaded with key action and timing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and presence of output schema, the description covers core behavior. Missing mention of error handling or idempotency considerations, but not critical for an instant response 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 has 100% coverage for all three parameters. Description adds 'optional WhatsApp follow-up' aligning with includeWhatsApp but does not enhance meaning of leadId or customMessage 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 sends an instant SMS and optional WhatsApp to a new lead within 30 seconds, with branded templates for Growth+ plans. This distinguishes it from siblings like comms.send_sms by specifying target audience and timing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 new leads needing immediate response but does not explicitly state when to use this tool versus alternatives like comms.send_sms. No exclusion guidance or when-not-to-use is provided.
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 declare readOnlyHint=true and idempotentHint=true, covering safety. The description adds that it returns specific fields (trigger events, action types, enabled status), but does not mention pagination, rate limits, or other behavioral traits. Provides some value 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?
Single sentence, 14 words, front-loaded with verb and resource. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one optional parameter), presence of annotations, and an output schema, the description is complete. It conveys the purpose, scope, and returned fields without needing elaboration on return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the only parameter 'enabled' is fully described in the schema. The description does not add any additional meaning or usage context 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 uses the verb 'List' and the resource 'workflow templates (automations)', specifying the scope 'for the company' and indicating the returned fields (trigger events, action types, enabled status). This clearly distinguishes it from sibling 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?
No explicit guidance on when to use this tool versus alternatives among many sibling workflow tools. The usage context is implied by the resource being templates, but no direct comparisons or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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=true and idempotentHint=true. Description adds value by explaining that actions are 'auto-generated by the workflow engine' and require manual review, providing context 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 concise sentences with no waste. First sentence captures purpose and resource, second adds necessary context about origin and need for review. 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 that an output schema exists, description adequately covers purpose and context. Could mention ordering or pagination but not essential for a simple list tool with limit 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 coverage is 100%, so baseline is 3. Description does not elaborate on parameters beyond what schema provides; both 'limit' and 'status' are well-documented in the schema with defaults and enums.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List' and resource 'pending workflow actions', provides concrete examples (draft quotes, invoices, review requests, SMS), and distinguishes from sibling tools like workflows.approve_action and workflows.reject_action by indicating these are actions needing approval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states actions are 'awaiting approval' and 'need manual review', implying when to use. Lacks explicit exclusions or comparisons with other list tools, but 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.
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?
The description lists all pipeline steps, disclosing side effects (job creation, SMS, calendar sync, notifications). Annotations declare readOnlyHint=false and destructiveHint=false, which are consistent. However, it does not discuss failure handling or reversibility, which would add transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first is a bullet list of steps, the second is a concise tagline. No wasted words, 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?
Given the tool's complexity (multi-step pipeline with multiple parameters) and the presence of an output schema, the description covers the overall process and key steps. It lacks mention of prerequisites (e.g., lead must exist) but is generally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for each parameter (leadId, autoQuote, notifyTeam, autoSchedule, notifyCustomer). The description ties them to the pipeline flow (e.g., autoQuote → auto-quote step), adding value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it processes a new lead through a full pipeline (AI analysis, auto-quote, job creation, calendar sync, notifications), distinguishing it from sibling workflow tools like workflows.quote_to_invoice or workflows.schedule_job which handle only part of the process.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 to use this for 'Full pipeline processing for a new lead,' but does not explicitly mention when to avoid it or alternatives like individual workflow steps. However, the context signals from sibling names give implicit guidance.
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 discloses behavioral traits beyond annotations: it creates/updates jobs, syncs to accounting, generates payment links, and sends notifications. Annotations show destructiveHint=false and readOnlyHint=false, consistent with mutation without destruction. 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 paragraph of three sentences, front-loading the main purpose and listing actions efficiently. Every sentence adds value; no 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?
Given the complexity of a multi-step pipeline, the description summarizes the end-to-end process well. Output schema exists, so return values are covered. Lacks details on prerequisites (e.g., quote must be in 'accepted' status) and error conditions, but overall sufficient for an agent to understand scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description only mentions the parameters by name in context ('quoteId,' 'discount,' 'customDueDate') without adding semantics beyond the schema. No added 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's purpose: converting an accepted quote into a full invoice pipeline. It enumerates specific steps (create/update job, sync to accounting, generate payment link, notify customer, alert team), which distinguishes it from sibling tools like invoicing.generate or workflows.trigger_invoice that perform subparts of this 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 the quote must be accepted ('Convert an accepted quote') and that the tool handles the full 'quote-accepted → paid lifecycle.' It does not explicitly state when not to use alternatives, but the sibling tools provide context. Without explicit exclusions, it loses one point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.referral_programAInspect
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?
The description adds context beyond annotations: it specifies that actions involve generating codes (write), sending SMS (destructive potential?), tracking, and checking. It also notes the plan requirement. Annotations already indicate non-read-only and non-destructive, so the description complements without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently covers the tool's core functionality and a prerequisite. It is front-loaded with the main verb 'manage' and lists actions compactly. Minor improvement could be structuring as bullet points, but it is concise and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 the description covers the main actions and a requirement, it is fairly complete. It doesn't detail return values, but the output schema likely handles that. Overall, 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% and each parameter is already described. The description restates the actions but does not add new semantic details beyond the enum values. Baseline 3 is appropriate given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain 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: managing a referral program. It lists specific actions (generate codes, send invites, track usage, check rewards) which distinguishes it from potential siblings like ecosystem.referral_link that may only handle link generation. The verb 'manage' and resource 'referral program' provide a specific 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 includes a key prerequisite ('Requires Growth+ plan') and lists the available actions, giving clear usage context. While it doesn't explicitly exclude alternatives, the actions are well-defined, helping an agent decide when to invoke this tool over other workflow or referral tools.
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?
Adds that the action will not be executed, which clarifies the consequence. Annotations already indicate idempotent and non-destructive behavior. No side effects or permissions mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two-sentence description, 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?
Adequate for a simple tool with output schema. Could mention that the draft action is removed from pending list, 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 100% with descriptions for both parameters. Description adds no 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?
Clearly states the action (reject/ignore) and the resource (a pending draft action). Distinguishes from the sibling workflows.approve_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 explicit guidance on when to use vs alternatives. The purpose is implied by the name and description, but lacks when-not and explicit context.
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 already provide safety hints (non-destructive, idempotent). The description adds valuable context: it sends an SMS, includes specific content, and has a plan requirement. It does not contradict annotations and provides behavioral details beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the primary action and include key details (content, prerequisite). Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, output schema present), the description covers the essential aspects: what it does, when it runs, what it includes, and requirements. No gaps are evident for an agent to misuse the 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 the baseline is 3. The description does not add new meaning beyond the schema; it echoes the parameter purposes (jobId for the job, delayMinutes for waiting). No additional parameter semantics are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear verb ('Send') and resource ('automated review request SMS'), explicitly states the context ('after job completion'), and differentiates from sibling tools like comms.send_sms by mentioning the review-specific content (Google Review link, AI-suggested text) and plan requirement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by stating it is for after job completion and requires a Growth+ plan with SMS automations. However, it does not explicitly mention when not to use this tool or provide direct comparisons to alternative tools (e.g., comms.send_sms or reviews.request).
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 discloses multiple side effects beyond annotations: auto-picks next business day, syncs to Google Calendar, generates Calendly link, sends SMS. Annotations only indicate non-readonly and non-destructive, so description adds essential 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?
Single sentence effectively front-loads the main action and lists automated outcomes. Slightly long but no wasted words; could be split for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description covers key behaviors and outputs. Output schema exists to document return values. Missing some edge cases (e.g., error handling when lead not found) but adequate for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions in the schema. The description mentions defaults (next business day, 9am) but does not add new parameter semantics 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?
Description clearly states the tool's purpose: smart-schedule a job for a lead with automatic next business day selection, Google Calendar sync, Calendly link generation, and SMS confirmation. Distinct from sibling 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?
Description indicates when to use (scheduling a job for a lead) but does not explicitly state when not to use or mention alternatives among sibling tools.
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 convey readOnlyHint=false, destructiveHint=false, idempotentHint=true. Description reinforces idempotency by mentioning retrying, and adds context about syncing to multiple integrations. No contradiction detected.
Agents need to know what a tool does to the 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 sentence defines the action, second sentence lists use cases. Extremely concise with no unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required parameter, output schema present, and clear annotations, the description fully covers what the agent needs: purpose, use cases, and scope. 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% for a single parameter. The description does not add significant meaning beyond the schema's description, but baseline is 3 given full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (force-sync), resource (lead/contact), and scope (all connected integrations). Distinguishes itself from similar sibling tools like workflows.process_lead by emphasizing forced synchronization and listing integration types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 lists use cases: retrying failed syncs and manually triggering sync for existing leads. Provides clear context for when to use, though it does not mention alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.team_notifyBInspect
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 declare readOnlyHint=false and destructiveHint=false, so the agent knows it's a non-readonly, non-destructive write operation. The description adds context about auto-enrichment and multi-channel delivery, but does not disclose potential side effects like rate limits or state changes beyond sending.
Agents need to know what a tool does to the 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 wasted words. Front-loaded with the verb and resource, immediately conveying the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and full parameter coverage, the description provides enough context for basic usage but lacks information on configuration prerequisites, error handling, or edge cases (e.g., when no channels are connected).
Complex tools with many parameters or behaviors need more documentation. 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 4 parameters are documented in the schema. The description does not add significant new meaning beyond the schema's parameter descriptions, 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 action ('Send') and resource ('rich, contextual notification to all connected team channels'). It also mentions auto-enrichment with AI summaries. However, it does not explicitly distinguish itself from sibling tools like comms.send_email or other workflow notifications that might also send messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as comms.send_email or workflows.daily_summary. There is no mention of prerequisites, exclusions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows.toggleBIdempotentInspect
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 provide idempotentHint=true, indicating safe repeated calls. The description only restates the obvious toggle action and does not add extra context like side effects, permission requirements, or state change implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that conveys the core action without any wasted words. It is appropriately brief for a simple toggle operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and an output schema, the description covers the basic purpose but lacks usage guidelines and behavioral context. It is minimally adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters (enabled and workflowId). The description adds no additional semantic value beyond what the schema already 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?
The description clearly states the verb 'Enable or disable' and the resource 'workflow template', making the purpose specific and distinguishable from sibling tools that list, approve, or chase 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 provides no guidance on when to use this tool versus alternatives (e.g., workflows.list for checking status, or other workflow actions). No when-not-to-use or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
Discloses multiple side effects beyond annotations: auto-push to accounting, Stripe link generation, SMS notification to customer, and team alert. Annotations (readOnlyHint=false) align with mutating behavior; 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 with no fluff. First sentence immediately states action and key behaviors; second summarizes pipeline. 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?
Covers purpose, pipeline steps, prerequisites, and important behaviors. Does not mention error handling or dependency on accounting connection, but output schema likely fills gaps. Good overall 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 descriptions. The description adds business context (e.g., the pipeline steps) that helps interpret parameters, though it largely restates schema defaults. Adds value beyond raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'Generate and send an invoice for a completed job' with specific verb and resource. The 'Full pipeline' detail distinguishes it from sibling invoicing tools like invoicing.generate or invoicing.chase, making the purpose unique and clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes prerequisite 'The job should be in Completed status with a linked quote for line items' from the schema, implying when to use. However, lacks explicit guidance on when NOT to use (e.g., when accounting integration is absent) and does not name alternative tools. Still helpful.
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 already indicate readOnlyHint=false, so the tool modifies data. The description adds that it can 'auto-generate draft quotes', which is a key behavioral trait. However, it does not elaborate on side effects (e.g., creation of quotes, potential duplicates) or other behaviors beyond what annotations 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 three sentences with no unnecessary words. It front-loads the purpose, then details functionality, then adds a requirement. Every sentence adds value and there is 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 tool has 3 parameters and an output schema, the description covers the core functionality (suggesting upsells, auto-quoting) and the requirement. It does not explain return values, but the presence of an output schema handles that. It is mostly complete for an agent to understand what the tool does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains parameters (jobId, leadId, autoQuote) well. The description mentions analyzing job history and auto-generating quotes, which aligns with the schema, but does not add new 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 the tool is an 'AI-powered upsell/cross-sell engine' that analyzes job history against a service catalog to suggest services and can auto-generate quotes. This is a specific verb and resource, and it distinguishes from siblings like 'quotes.ai_price_suggestion' which focuses on pricing, not suggestions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'Requires Pro plan' as a prerequisite, but gives no guidance on when to use this tool versus alternatives, nor when not to use it. Sibling tools like 'quotes.create' or 'workflows.follow_up_quote' are related but not discussed.
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!
Related MCP Servers
- AlicenseAqualityAmaintenanceGTM signal intelligence suite for AI agents. Six tools: hiring signals, tech stack detection, company-to-LinkedIn resolution, ICP scoring, job board scanning, and a combined signals aggregator. Built for outbound sales workflows.117371MIT

industrylens-mcpofficial
Flicense-qualityCmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
Sociality MCPofficial
Alicense-qualityDmaintenanceSocial media analytics, post insights, and competitor benchmarking for AI agents.6MIT- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.1761MIT