Skip to main content
Glama

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.

MCP client
Glama
MCP server

Full call logging

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

Tool access control

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

Managed credentials

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

Usage analytics

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

100% free. Your data is private.
Tool DescriptionsA

Average 4.1/5 across 95 of 95 tools scored. Lowest: 3.3/5.

Server CoherenceA
Disambiguation4/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.

Naming Consistency5/5

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.

Tool Count1/5

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.

Completeness5/5

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 tools
analytics.dashboardA
Read-only
Inspect

Quick business overview: total leads, quotes, jobs, revenue, leads this week, and chart data. Lighter and faster than full analytics.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDashboard period: 7, 30, or 90 days. Defaults to 7.

Output Schema

ParametersJSON Schema
NameRequiredDescription
revenueNoRevenue in AUD
chartDataNoDaily data points for charts: [{date, leads, quotes, revenue}]
totalJobsNoTotal jobs in period
totalLeadsNoTotal leads in period
totalQuotesNoTotal quotes in period
leadsThisWeekNoLeads received in the current week
Behavior2/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema description coverage is 100% for the single parameter '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.

Purpose5/5

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.

Usage Guidelines4/5

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.detailedA
Read-only
Inspect

Detailed business analytics: conversion funnel, revenue trends, lead sources, response times, outstanding invoices, and communication stats. Requires Growth plan or above.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoAnalysis period: 30, 60, or 90 days. Defaults to 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
funnelNoLead → Quote → Job → Paid conversion funnel with counts and rates
revenueNoRevenue breakdown: total, average job value, outstanding
leadSourcesNoLead count by source (website, referral, hipages, etc)
responseTimesNoAverage response time to new leads
communicationsNoSMS and email send counts and delivery stats
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.financialsA
Read-only
Inspect

Financial summary: revenue, quote volume, conversion rate, lead count, and paid invoices for a time period.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback period in days. Defaults to 30. Max 365.

Output Schema

ParametersJSON Schema
NameRequiredDescription
periodNoHuman-readable period description
revenueNoTotal revenue in AUD from paid invoices
leadCountNoNew leads in period
quoteVolumeNoTotal value of quotes sent
paidInvoicesNoNumber of invoices paid
conversionRateNoQuote-to-job conversion rate as percentage
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple, read-only 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_slugYesPlan slug to purchase (e.g. "starter", "professional", "business")
billing_cycleNoBilling cycle. Defaults to "monthly".

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNoStripe Checkout URL — present this to the human
expires_atNoWhen the checkout session expires (ISO 8601)
session_idNoCheckout session ID for tracking
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_portalA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNoStripe Billing Portal URL — present this to the human
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_plansA
Read-only
Inspect

List all available plans with pricing, features, limits, and feature flags. Public information — useful for discovering what plans exist before purchasing or upgrading.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
plansNoArray of plan objects with slug, name, price, features, limits, feature_flags
currencyNoCurrency code (AUD)
billing_cyclesNoAvailable billing cycles
yearly_discount_pctNoYearly billing discount percentage
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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

The description uses a specific verb 'List' and resource '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.

Usage Guidelines4/5

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.statusA
Read-only
Inspect

Check subscription status, plan details, billing cycle, and feature access. Useful for understanding what the business can and cannot do on their current plan.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
planNoCurrent plan name (e.g. "Growth")
statusNoSubscription status (active, trialing, past_due, cancelled)
featuresNoFeature flags: {restApiAccess, mcpAccess, webhookInbound, ...}
monthlyPriceNoMonthly price in AUD
nextBillingDateNoNext billing date in ISO 8601
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.usageA
Read-only
Inspect

Check current API and resource usage vs plan limits: API calls, SMS credits, email credits, LLM calls remaining.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
apiCallsNo{used, limit, remaining}
llmCallsNo{used, limit, remaining}
smsCreditsNo{used, limit, remaining}
emailCreditsNo{used, limit, remaining}
billingPeriodNoCurrent billing period date range
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.forecastA
Read-only
Inspect

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?"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.listA
Read-only
Inspect

List clients — leads who have at least one job. Includes job count, quote count, and total revenue per client. Useful for identifying repeat customers.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of clients to return. Defaults to 50, capped at 100.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoTotal clients returned
clientsNoList of {id, name, phone, email, jobCount, quoteCount, totalRevenue} objects
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple list tool with 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.listA
Read-only
Inspect

View sent SMS and email message history. Filter by channel, message type, or delivery status. Useful for auditing communications.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by message type (e.g. "quote_sent", "review_request", "on_my_way"). Optional.
limitNoMaximum number of messages to return. Defaults to 50, capped at 100.
channelNoFilter by communication channel. Omit for all channels.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoTotal messages returned
messagesNoList of {id, channel, type, recipient, subject, status, sentAt} objects
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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

For a simple read-only 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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient email address. Required.
bodyYesEmail body in HTML format. Required.
jobIdNoOptional job ID to link this email to.
leadIdNoOptional lead ID to link this email to.
subjectYesEmail subject line. Required.
messageTypeNoType of email for logging/analytics. Defaults to "manual".

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message if send failed
successNoWhether the email was sent successfully
messageIdNoEmail message ID for tracking
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesAustralian phone number to send to (e.g. "0412345678" or "+61412345678"). Required.
bodyYesSMS message body. Max 1600 characters. Required.
jobIdNoOptional job ID to link this message to.
leadIdNoOptional lead ID to link this message to.
messageTypeNoType of message for logging/analytics. Defaults to "manual".

Output Schema

ParametersJSON Schema
NameRequiredDescription
sidNoTwilio message SID for tracking
errorNoError message if send failed
successNoWhether the SMS was sent successfully
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tradeYesTrade type (plumbing, electrical, hvac, carpentry, roofing, painting, landscaping). Required.
startDateNoPlanned start date (ISO 8601). Optional.
siteAddressNoSite address where work will be performed. Optional.
highRiskWorkNoIs this high-risk construction work per WHS Regs s.291? If unsure, set to true. Optional.
specificRisksNoAny specific risks already identified. Optional.
jobDescriptionYesDetailed description of the work to be performed. Be specific about location, equipment, and methods. Required.
supervisorNameNoName of the site supervisor. Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
documentNoFull SWMS document
warningsNoLegal and compliance warnings
requiresHumanReviewNoAlways true — human sign-off is mandatory
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's complexity (7 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityIdYesRelated entity ID (job/quote/invoice). Required.
fileNameNoOverride auto-generated filename. Optional.
entityTypeYesDocument type. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successNo
dropboxPathNo
googleDriveFileIdNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

formation.checklistA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesAustralian state/territory: NSW, VIC, QLD, SA, WA, TAS, NT, ACT
tradeYesTrade category: plumbing, electrical, hvac, painting, roofing, landscaping, carpentry, cleaning, general-building

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both 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.

Purpose5/5

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

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

Usage Guidelines3/5

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_hotspotsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 10, max 30).
tradeYesTrade category: electrical, plumbing, hvac, painting, roofing, landscaping, carpentry, cleaning, general-building. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.fundingA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFunding category filter (optional): apprenticeship, small-business, export, digital, training. Omit for all.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as '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_setupA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesAustralian state/territory: NSW, VIC, QLD, SA, WA, TAS, NT, ACT
tradeYesTrade category: plumbing, electrical, hvac, painting, roofing, landscaping, carpentry, cleaning, general-building
budgetNoAvailable startup capital in AUD
hasABNNoAlready have an ABN?
pathwayNoOverride auto-detection: licensed_contractor (already qualified), fresh_start (needs everything), investor_operator (hiring qualified people). Usually omit and let the engine detect.
hiringPlanNosolo, subcontractors, employees, or apprentices
hasInsuranceNoAlready have business insurance?
targetRevenueNoAnnual revenue target in AUD
yearsExperienceNoYears of experience in the trade
businessStructureNoPreferred structure: sole_trader, company, partnership, trust, undecided
isExistingBusinessNoConverting from employee to contractor/business owner?
hasContractorLicenceNoDo they already hold a contractor licence?
hasTradeQualificationNoDoes the person have a Certificate III or equivalent trade qualification?

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_scoreA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tradeYesTrade category: electrical, plumbing, hvac, painting, roofing, landscaping, carpentry, cleaning, general-building.
regionYesRegion slug (e.g., sunshine-coast, pilbara, western-sydney, greater-brisbane). Use formation.demand_hotspots to discover available regions.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both '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.

Purpose5/5

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.

Usage Guidelines4/5

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_tradeA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesAustralian state/territory: NSW, VIC, QLD, SA, WA, TAS, NT, ACT. Required.
budgetYesAvailable startup budget in AUD. Required.
suburbNoOptional suburb for demand matching.
hasVehicleNoAlready has a work vehicle?
preferIndoorNoPrefers indoor work?
preferOutdoorNoPrefers outdoor work?
riskToleranceYesRisk appetite. Required.
existingSkillsNoFreetext existing skills list.
timeCommitmentYesHow involved they want to be. Required.
physicalCapabilityYesCan they do physical work? Required.
wantsLicencedTradeNoOpen to 3-4yr apprenticeship for licensed trade?
wantsToHireQuicklyNoWants to scale with employees fast?
targetMonthlyRevenueNoTarget monthly revenue in AUD.
wantsRecurringRevenueNoPrefers recurring/maintenance revenue streams?

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.requirementsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesAustralian state/territory: NSW, VIC, QLD, SA, WA, TAS, NT, ACT
tradeYesTrade category: plumbing, electrical, hvac, painting, roofing, landscaping, carpentry, cleaning, general-building

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_businessA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesAustralian state/territory: NSW, VIC, QLD, SA, WA, TAS, NT, ACT. Required.
tradeYesTrade category: electrical, plumbing, hvac, painting, roofing, landscaping, carpentry, cleaning, general-building. Required.
scenarioYesProjection scenario. Required.
hasVehicleNoAlready has a work vehicle? Reduces vehicle costs.
weeksPerYearYesWorking weeks per year (typically 46-48). Required.
hasAccountantNoHas an accountant? Adds $200/month accounting cost.
startupCapitalYesStarting capital in AUD. Required.
averageJobValueNoOverride average job value in AUD (otherwise uses trade average).
monthlyToolCostNoMonthly tool replacement/upgrade budget in AUD.
businessStructureYesBusiness structure for tax calculations. Required.
leadConversionRateNoLead conversion rate 0-100 (default 40%).
monthlyVehicleCostNoMonthly vehicle lease/loan/fuel cost in AUD.
billableHoursPerWeekYesTarget billable hours per week. Required.
marketingBudgetMonthlyNoMonthly marketing budget in AUD (default $300).
monthlyPersonalExpensesYesMonthly living expenses they need to cover in AUD. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_scanA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesBusiness state: NSW, VIC, QLD, SA, WA, TAS, NT, ACT
tradeYesTrade category
businessAgeNoBusiness age in months
wantsToHireNoPlanning to hire an apprentice/employee?
employeeCountNoNumber of employees
hasApprenticeNoAlready has an apprentice?
annualTurnoverNoAnnual turnover ($)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_detailsA
Read-only
Inspect

Get detailed information about a specific government funding program including full eligibility criteria, application process, tips, and relevant links.

ParametersJSON Schema
NameRequiredDescriptionDefault
programIdYesProgram ID (e.g., kap, rd-tax-incentive, instant-asset-writeoff, nsw-small-business-fees). Use funding.eligibility_scan to discover programs.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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

For a simple tool with 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_workflowA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepNoSpecific step number (1-6) for detailed info. Omit for full workflow.
tradeNoTrade category for trade-specific incentive info

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines4/5

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_analysisA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
avgWaitDaysNoAverage days before a new job can start
jobsPerWeekNoAverage jobs completed per week
reviewTrendNoAre reviews trending up, flat, or down?
avgReviewScoreNoAverage review score (1-5)
monthlyRevenueYesAverage monthly revenue ($)
averageJobValueYesAverage value of a job ($)
leadDeclineRateNoPercentage of leads turned away (0-100)
weeklyAdminHoursYesHours per week on admin (quoting, invoicing, scheduling)
weeklyBillableHoursYesHours per week doing billable trade work

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

The description covers the main 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description implies the tool is used to 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_checklistA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by category: all, nes, award, stp, super, whs, workers-comp, contractor-v-employee, records

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_calculatorA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesAustralian state: NSW, VIC, QLD, SA, WA, TAS, NT, ACT
tradeYesTrade category for incentive calculation
baseSalaryYesAnnual base salary ($). Use hiring.wage_data to find market rates.
includeToolsNoInclude tool costs?
isApprenticeNoIs this an apprentice?
apprenticeYearNoApprenticeship year (1-4). Only if isApprentice=true.
includeVehicleNoInclude vehicle costs?

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (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_scoreA
Read-only
Inspect

Calculate hiring readiness score across financial, operational, and systems dimensions. Recommends apprentice vs employee vs contractor vs admin-first hire based on business metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault
avgJobValueNoAverage job value ($)
weeklyHoursYesOwner weekly hours
monthlyProfitYesAverage monthly profit ($)
monthlyRevenueYesAverage monthly revenue ($)
pipelineMonthsNoMonths of work in pipeline
adminHoursPercentNoPercentage of time on admin (0-100)
cashReserveMonthsNoMonths of cash reserves
declinedLeadPercentNoPercentage of leads declined (0-100)
hasDocumentedProcessesNoAre core processes documented?
hasJobManagementSoftwareNoUsing job management software?

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_providersA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by category (accounting, communication, marketing, project_management, crm, hr, payments, etc.). Omit to return all.
hasAdapterNoIf true, only return providers with live adapter implementations. If false, include coming-soon providers.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoTotal providers returned
providersNoProvider definitions
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_statusA
Read-only
Inspect

Get detailed status for a specific integration connection, including last sync results, error logs, and supported operations. Useful for diagnosing sync failures.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerIdYesThe provider ID (e.g., xero, slack, myob, hubspot). Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
connectionNoConnection details with status and metadata
recentSyncsNoRecent sync log entries
capabilitiesNoEntity types and operations this connection supports
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_connectionsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by connection status. Omit to return all.
categoryNoFilter by provider category (e.g., accounting, communication, project_management). Omit to return all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoTotal connections returned
connectionsNoList of active connections
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityIdYesThe local entity ID to push. Required.
entityTypeYesThe type of entity to push. Required.
providerIdYesThe provider ID to push to (e.g., slack, xero, discord). Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNoHuman-readable result message
successNoWhether the push succeeded
externalIdNoID of the entity in the external system
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionNoSync direction. Defaults to the provider's default direction.
entityTypeNoEntity type to sync. Omit to sync all supported entity types.
providerIdYesThe provider ID to sync (e.g., xero, myob, hubspot). Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalNoTotal records processed
failedNoRecords that failed to sync
statusNoSync status (success, partial, error)
syncIdNoSync log ID for tracking
syncedNoRecords successfully synced
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toneNoChase escalation level. Required when sending (with jobId).
jobIdNoJob ID to chase. Omit to list all overdue invoices instead.
sendSmsNoAlso send SMS reminder (default true if phone available).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob ID to invoice. Required. The job should be in Completed status.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalNoInvoice total in AUD
statusNoInvoice status (typically "sent")
invoiceIdNoGenerated invoice record ID
paymentUrlNoStripe payment link URL (null if Stripe Connect not configured)
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.recoveryA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

Given the tool's simplicity (no 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.completeA
Idempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob ID to mark as completed. Required.
notesNoCompletion notes (e.g. "Replaced hot water system, tested and working"). Optional.
satisfactionNoClient satisfaction rating from 1 (poor) to 5 (excellent). Optional.
sendReviewRequestNoAutomatically send a review request to the client after completion. Defaults to true. Consumes email + optional SMS credits.

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobNoUpdated job marked as Completed
invoiceNoInvoice details if auto-generated (null if not)
reviewSentNoWhether a review request was sent to the client
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoJob notes or special instructions for the technician. Optional.
leadIdYesLead ID to create the job for. Required. The lead must belong to the authenticated company.
quoteIdNoOptional quote ID to link. Links the job to an existing quote for pricing context.
scheduledDateNoISO 8601 date/time for the job (e.g. "2026-06-15T09:00:00+10:00"). Optional — if omitted, status is "Quoted".
assignedTechnicianNoName of the technician assigned to this job. Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobNoCreated job with id, status, scheduledDate, assignedTechnician, notes, leadId, quoteId, createdAt
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.listA
Read-only
Inspect

List jobs with status, scheduled dates, technician assignment, and invoice info. Includes linked lead and quote data. Supports cursor-based pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of jobs to return. Defaults to 50, capped at 100.
cursorNoPagination cursor from previous response. Pass to get next page of results.
statusNoFilter by job status. Omit to return all statuses.

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobsNoList of job records with id, status, scheduledDate, completedDate, assignedTechnician, notes, lead, quote, invoiceAmount
countNoTotal jobs returned
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

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

Purpose5/5

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.

Usage Guidelines3/5

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_summaryB
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
etaNoEstimated arrival time as human-readable text (e.g. "15 minutes", "2:30 PM"). Optional.
jobIdYesJob ID. Required. Must have a linked lead with contact info.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNoConfirmation message
smsSentNoWhether SMS was sent
emailSentNoWhether email was sent
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description implies usage when you want to 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.updateA
Idempotent
Inspect

Update job status, schedule, notes, or technician. Progress jobs through the pipeline: Scheduled → In Progress → Completed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesJob ID to update. Required.
notesNoUpdated job notes or instructions.
statusNoNew job status. Use jobs.complete for the full completion flow with review requests.
scheduledDateNoUpdated ISO 8601 date/time for rescheduling.
assignedTechnicianNoUpdated technician name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobNoUpdated job with all fields
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's complexity (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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the verb 'update' and the resource '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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull name of the prospect. Required.
emailNoEmail address for quote delivery and follow-ups. Optional.
phoneYesAustralian phone number (e.g. 0412 345 678). Required.
sourceNoWhere this lead came from (e.g. "referral", "website", "hipages", "mcp"). Defaults to "mcp".
addressNoJob site or client address. Optional.
messageNoInitial enquiry message or job description from the client. Optional.
priorityNoLead priority. Defaults to Medium if omitted.
serviceTypeNoType of service needed (e.g. "Hot Water Replacement", "Roof Repair"). Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
leadNoCreated lead with id, name, phone, email, serviceType, status, priority, source, createdAt
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.listA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of leads to return. Defaults to 50, capped at 100.
cursorNoPagination cursor from previous response. Pass to get next page of results.
statusNoFilter by lead pipeline stage. Omit to return all statuses.
priorityNoFilter by priority level. Omit to return all priorities.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoTotal number of leads returned
leadsNoList of lead records
next_cursorNoCursor for next page. Null if no more results.
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.updateA
Idempotent
Inspect

Update an existing lead. Pass the lead ID and any fields to change. Only provided fields are updated.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLead ID to update. Required.
nameNoUpdated client name.
emailNoUpdated email address.
phoneNoUpdated phone number.
statusNoNew pipeline stage for the lead.
addressNoUpdated address.
messageNoUpdated notes or message.
priorityNoUpdated priority level.
serviceTypeNoUpdated service type.

Output Schema

ParametersJSON Schema
NameRequiredDescription
leadNoUpdated lead with all fields
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.assessA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hasABNYesDoes the business have an ABN?
totalJobsNoTotal jobs completed
hasLicenceYesDoes the business have a trade licence?
avgWaitDaysNoAverage customer wait time (days)
reviewCountNoTotal reviews received
totalQuotesNoTotal quotes sent
hasInsuranceNoHas insurance been arranged?
annualRevenueNoAnnual revenue ($)
employeeCountNoNumber of employees (0 for solo)
avgReviewScoreNoAverage review score (1-5)
monthlyRevenueNoAverage monthly revenue ($)
ownerWeeklyHoursNoOwner weekly working hours
declinedLeadPercentNoPercentage of leads declined/lost

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

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

Purpose5/5

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.

Usage Guidelines3/5

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

The description states what the tool does but 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_contentA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toneNoContent tone. Defaults to "professional".
tradeNoTrade type. Optional.
promotionNoSpecial offer or promotion to include. Optional.
contentTypeYesType of content to generate. Required.
targetAudienceNoTarget audience description. Optional.
serviceDescriptionNoSpecific service to promote (e.g. "hot water system replacement"). Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentNoGenerated content with headline, body, callToAction, hashtags, smsVersion, variations, tips
Behavior1/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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

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

Purpose5/5

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.

Usage Guidelines4/5

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.strategyA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tradeNoTrade type. Optional — auto-detected from company profile.
budgetNoMarketing budget level. Defaults to "medium".
regionNoTarget region (e.g. "Sydney", "Sunshine Coast"). Optional.
targetAudienceNoTarget market. Defaults to "both".
currentChannelsNoChannels you are already using (e.g. ["hipages", "Google Ads"]). Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
strategyNoFull strategy with channelRecommendations, contentIdeas, quickWins, seasonalTips
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

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

Purpose5/5

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.

Usage Guidelines3/5

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.dashboardA
Read-only
Inspect

Get unified dashboard metrics across all operator companies: YTD/MTD revenue, profit, win rates, pipeline, and revenue waterfall.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_portfolioA
Read-only
Inspect

List all companies in the operator's portfolio with basic metrics (lead/quote/job counts).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.get_shared_suppliersA
Read-only
Inspect

List all shared supplier discounts negotiated by this operator, including which companies are linked.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

The description is consistent with annotations (readOnlyHint=true) by stating 'List...' indicating a read operation. It adds that linked companies are included, but does not disclose any further behavioral traits such as authentication requirements or performance characteristics.

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

Conciseness5/5

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

The description is a single concise sentence of 15 words that effectively communicates the tool's purpose without redundancy. It is front-loaded with the verb and key resource.

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

Completeness5/5

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

Given the tool has no parameters and an output schema exists, the description sufficiently covers the purpose and scope (all discounts, linked companies). No additional information is needed for this simple retrieval tool.

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

Parameters4/5

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

The tool has no parameters, and the schema coverage is 100% trivially. The description does not need to explain parameters. According to guidelines, 0 parameters yields a baseline of 4.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'shared supplier discounts negotiated by this operator', including additional detail about linked companies. It is specific and distinguishes itself from sibling tools like 'operator.get_portfolio' which retrieves portfolio data.

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving shared supplier discounts, but it does not explicitly state when to use this tool over alternatives or any exclusions. No guidance on prerequisites or limitations.

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

operator.switch_companyA
Idempotent
Inspect

Switch the active company context for this operator. All subsequent tool calls will execute in the new company context.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyIdYesThe ID of the company to switch to. Must be in the operator's portfolio.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple one-parameter, 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.

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines4/5

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.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdsYesArray of global catalog item IDs to import. Required.
markupPctNoDefault markup percentage to apply (e.g. 30 for 30%). Defaults to 30.
supplierIdYesGlobal supplier ID. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
skippedNoItems skipped (already existed)
importedNoNumber of items imported
supplierNoCompany supplier name created/matched
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.searchA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results. Default 50.
tradeNoFilter by trade.
searchNoFree-text search across product names, brands, SKUs, and descriptions.
supplierIdNoFilter by specific global supplier ID.
subcategoryNoFilter by subcategory (e.g. "Hot Water", "Cable & Wire", "Split Systems").

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoTotal results
itemsNoList of {id, name, brand, sku, description, typicalCostPrice, typicalSellPrice, unit, category, subcategory, supplier} objects
subcategoriesNoAvailable subcategory filters
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

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

Purpose5/5

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.

Usage Guidelines3/5

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

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tradeNoTrade type (e.g. "plumbing", "electrical", "hvac"). Optional — auto-detected from company profile if omitted.
leadIdNoOptional lead ID to pull additional context (customer name, service type, address).
suburbNoSuburb/location for area-based pricing adjustments (e.g. "Bondi", "Pilbara"). Optional.
urgencyNoJob urgency level. "urgent" = same/next day (+15-25%). "emergency" = after-hours/immediate (+50-100%). Defaults to "standard".
complexityNoJob complexity. Affects labour time and pricing. Defaults to "moderate".
descriptionYesPlain English job description. Be specific: include scope, materials, access conditions. Required.
includeBreakdownNoInclude detailed material + labour breakdown. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
suggestionNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines4/5

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

The description implies when to use the tool (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.

ParametersJSON Schema
NameRequiredDescriptionDefault
totalYesQuote total in AUD including GST. Required.
leadIdYesID of the lead to quote. Required. The lead must belong to the authenticated company.
lineItemsYesArray of line items. Each item needs description, quantity, unitPrice, and total. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
quoteNoCreated quote with id, quoteNumber, status, total, lineItems, leadId, createdAt
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

Given the tool's simplicity (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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.listA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of quotes to return. Defaults to 50, capped at 100.
cursorNoPagination cursor from previous response. Pass to get next page of results.
statusNoFilter by quote status. Omit to return all statuses.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoTotal quotes returned
quotesNoList of quote records with nested lineItems and lead info
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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

Schema coverage is 100%, so parameters are already well-documented. The description 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.

Purpose5/5

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.

Usage Guidelines4/5

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.sendA
Idempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesQuote ID to share. Required. Must be in Draft or Sent status.
sendSmsNoAlso send the quote link via SMS to the client phone number. Defaults to false. Consumes 1 SMS credit.
sendEmailNoAlso send the quote link via email to the client email. Defaults to false. Consumes 1 email credit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
smsSentNoWhether SMS was sent successfully
quoteUrlNoPublic URL where the client can view and accept the quote
emailSentNoWhether email was sent successfully
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines4/5

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.updateA
Idempotent
Inspect

Update a quote's status, line items, or total. Use to progress quotes through the pipeline.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuote ID to update. Required.
totalNoUpdated quote total in AUD.
statusNoNew quote status.
lineItemsNoReplacement line items array. Overwrites existing items.

Output Schema

ParametersJSON Schema
NameRequiredDescription
quoteNoUpdated quote with all fields
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the verb 'Update' and the resource '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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoReminder category. Defaults to "custom".
jobIdNoLink this reminder to a specific job. Optional.
titleYesShort reminder title (e.g. "Follow up with Jake about roof quote"). Required.
leadIdNoLink this reminder to a specific lead. Optional.
messageNoDetailed reminder notes. Optional.
scheduledDateYesISO 8601 date/time for the reminder (e.g. "2026-06-15T09:00:00+10:00"). Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reminderNoCreated reminder with id, title, scheduledDate, type, status, leadId, jobId
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.listB
Read-only
Inspect

List upcoming scheduled reminders, sorted by date. Includes linked lead/job info for context.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of reminders to return. Defaults to 20.
statusNoFilter by reminder status. Defaults to "pending" (upcoming reminders).

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoTotal reminders returned
remindersNoList of {id, title, scheduledDate, type, status, message, lead, job} objects
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states the action ('List') and 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., 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.platformsA
Read-only
Inspect

List configured review platforms (Google, Hipages, Facebook, etc) with their URLs. Useful for knowing where to direct review requests.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
platformsNoList of {platform, url, enabled} objects
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob ID. Required. The job must be in Completed status. The linked lead must have an email address.
sendSmsNoAlso send the review request via SMS to the client phone. Defaults to false. Consumes 1 SMS credit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
smsSentNoWhether SMS was sent
emailSentNoWhether email was sent
reviewLinksNoArray of review platform URLs included in the message
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

For a simple tool with 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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_scoreA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
profitMarginNoProfit margin percentage (0-100)
annualRevenueYesAnnual revenue ($)
employeeCountYesCurrent employee count
avgMonthlyLeadsNoAverage new leads per month
repeatClientRateNoPercentage of revenue from repeat clients (0-100)
ownerOnToolsPercentNoPercentage of time owner spends doing trade work vs managing (0-100)
hasDocumentedProcessesNoAre processes documented and delegatable?
hasJobManagementSoftwareNoUsing job management software?

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines2/5

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

No explicit guidance is provided on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesService name (e.g. "Hot Water System Replacement", "Lawn Mowing — Large"). Required.
unitNoPricing unit (e.g. "per job", "per hour", "per sqm", "per unit"). Optional.
categoryNoService category. Defaults to "service".
priceMaxNoMaximum price in AUD (e.g. 350.00). Optional. Can equal priceMin for fixed-price services.
priceMinNoMinimum price in AUD (e.g. 150.00). Optional.
descriptionNoDetailed service description for quoting context. Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
serviceNoCreated service with id, name, description, priceMin, priceMax, unit, category, active
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.listA
Read-only
Inspect

List all services in the company catalog with prices, descriptions, and categories. Useful for accurate quoting and understanding what the business offers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoTotal active services
servicesNoList of {id, name, description, priceMin, priceMax, unit, category, active} objects
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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

For a simple list tool with 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.updateA
Idempotent
Inspect

Update an existing service in the catalog. Change price, description, or toggle active/inactive status.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesService ID to update. Required.
nameNoUpdated service name.
unitNoUpdated pricing unit.
activeNoSet to false to soft-delete/disable this service. Set to true to re-enable.
categoryNoUpdated category.
priceMaxNoUpdated maximum price in AUD.
priceMinNoUpdated minimum price in AUD.
descriptionNoUpdated description.

Output Schema

ParametersJSON Schema
NameRequiredDescription
serviceNoUpdated service with all fields
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the verb 'update' and the resource '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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdNoLink to existing job ID. Optional.
amountNoAgreed payment amount in AUD. Optional.
leadIdNoLink to existing lead ID. Optional.
sendSmsNoSend SMS notification to subcontractor. Defaults to true.
descriptionYesJob description for the subcontractor. Required.
scheduledDateNoScheduled date (ISO 8601). Optional.
subcontractorIdYesID of the subcontractor to dispatch to. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNo
dispatchNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.listA
Read-only
Inspect

List registered subcontractors in the vetted network. Filter by trade, status, or availability. Returns license, insurance, service areas, ratings, and job history.

ParametersJSON Schema
NameRequiredDescriptionDefault
tradeNoFilter by trade (e.g. "plumbing", "electrical"). Optional.
searchNoSearch by business name, contact name, phone, or email. Optional.
statusNoFilter by verification status. Optional.
availabilityNoFilter by current availability. Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoTotal subcontractors returned
subcontractorsNoList of subcontractor records
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
abnNoAustralian Business Number. Optional but recommended.
emailNoContact email. Optional.
notesNoInternal notes about this subcontractor. Optional.
phoneYesContact phone number. Required.
tradeYesPrimary trade (e.g. "plumbing", "electrical"). Required.
dayRateNoStandard day rate in AUD. Optional.
hourlyRateNoStandard hourly rate in AUD. Optional.
contactNameYesPrimary contact person name. Required.
businessNameYesSubcontractor business name. Required.
licenseStateNoState of license (e.g. "NSW", "VIC"). Optional.
serviceAreasNoList of suburbs/regions they service. Optional.
licenseExpiryNoLicense expiry date (ISO 8601). Optional.
licenseNumberNoTrade license number. Optional.
insuranceExpiryNoInsurance expiry date (ISO 8601). Optional.
publicLiabilityNoPublic liability coverage amount in AUD. Optional.
insurancePolicyNoNoInsurance policy number. Optional.
insuranceProviderNoInsurance company name. Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNo
subcontractorNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.verifyA
Idempotent
Inspect

Update a subcontractor's verification status. Use to verify (check license/insurance), activate, suspend, or deactivate. Records verification timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSubcontractor ID. Required.
notesNoVerification notes. Optional.
statusYesNew status. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNo
subcontractorNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's complexity (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.

Parameters3/5

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

Schema description coverage is 100% with each parameter 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.

Purpose5/5

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

The description clearly states the verb 'Update' and the resource '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.

Usage Guidelines3/5

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

The description implies when to use 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.balanceA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of recent transactions to include (default 10, max 100)
cursorNoPagination cursor from previous response

Output Schema

ParametersJSON Schema
NameRequiredDescription
walletNoWallet balance and status
nextCursorNoCursor for next page, null if no more
transactionsNoRecent transactions
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinNoCryptocurrency to pay with
amount_centsYesAmount in AUD cents to deposit (converted to crypto at current rate). Min 500.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNo
charge_idNo
expires_atNo
status_urlNo
amount_cryptoNo
payment_addressNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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

Given the tool's moderate complexity 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.

Parameters2/5

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.

Purpose4/5

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

The description clearly states the tool creates a 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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
currencyNoCurrency code (default: aud)
amount_centsYesAmount in cents to deposit (min 500 = $5.00)

Output Schema

ParametersJSON Schema
NameRequiredDescription
amount_centsNo
client_secretNoStripe client_secret for payment completion
amount_formattedNo
payment_intent_idNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool creates a 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.

Usage Guidelines4/5

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.historyA
Read-only
Inspect

Get detailed transaction history — deposits, deductions, transfers, refunds. Useful for cost analysis and budgeting.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by transaction type
limitNoMax transactions to return (default 50, max 100)
cursorNoPagination cursor

Output Schema

ParametersJSON Schema
NameRequiredDescription
nextCursorNoCursor for next page
transactionsNoTransaction records
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoReason for transfer (e.g., "Payment for job #123")
amount_centsYesAmount in cents to transfer
to_company_idYesTarget company ID to receive credits

Output Schema

ParametersJSON Schema
NameRequiredDescription
successNo
amount_formattedNo
to_balance_centsNo
from_balance_centsNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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

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

Purpose5/5

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.

Usage Guidelines4/5

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.listA
Read-only
Inspect

List all active webhook subscriptions for this company.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoTotal webhooks
webhooksNoList of {id, name, url, events, isActive, createdAt} objects
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesHTTPS URL to receive webhook POST requests. Required.
nameYesHuman-readable name for this webhook (e.g. "My Agent Listener"). Required.
eventsYesArray of event types to subscribe to. Required.
headersNoOptional custom headers to include in webhook requests.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoWebhook subscription ID
eventsNoSubscribed event types
secretNoHMAC-SHA256 signing secret. Store this — use it to verify webhook payloads.
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWebhook subscription ID to remove. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
removedNoWhether the webhook was successfully removed
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionIdYesDraft action ID to approve. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNo
successNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdNoSpecific job ID to chase. Omit to auto-scan all overdue invoices.
forceToneNoOverride tone: friendly, firm, or final. Auto-detected based on days overdue if omitted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsNo
successNo
chasedCountNo
totalOutstandingNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sendViaSmsNoSend summary via SMS to business owner. Default true.
recipientPhoneNoOverride owner phone number. Optional.
sendToTeamChannelsNoSend to Slack/Discord/Teams. Default true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
smsSentNo
successNo
summaryNo
channelsSentNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a tool with three optional parameters 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdNoSpecific quote ID to follow up. Omit to auto-scan all pending quotes.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsNo
successNo
followedUpNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
leadIdYesLead ID. Required.
adGroupNoAd group name. Optional.
keywordNoKeyword that triggered the ad. Optional.
autoQuoteNoAuto-generate quote from service catalog. Default true.
adCampaignNoGoogle Ads campaign name. Optional.
autoScheduleNoAuto-schedule a job. Default false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobIdNo
quoteIdNo
successNo
aiSummaryNo
quoteTotalNo
calendarSyncedNo
Behavior4/5

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.

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the 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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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

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

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
leadIdYesLead ID. Required.
customMessageNoOverride the auto-generated response message. Optional.
includeWhatsAppNoSend WhatsApp follow-up if connected. Default true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
smsSentNo
successNo
whatsAppSentNo
templatesSentNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.listA
Read-onlyIdempotent
Inspect

List all workflow templates (automations) for the company with their trigger events, action types, and enabled status.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNoFilter by enabled status. Omit to return all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
workflowsNoArray of workflow template objects
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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

Given the tool's low complexity (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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

List pending workflow actions awaiting approval (draft quotes, invoices, review requests, SMS). These are auto-generated by the workflow engine and need manual review.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results. Defaults to 20.
statusNoFilter by status. Defaults to pending.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
actionsNoArray of draft action objects
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
leadIdYesLead ID to process. Required.
autoQuoteNoGenerate quote from service catalog match. Defaults to true.
notifyTeamNoNotify via Slack/Discord/Teams. Defaults to true.
autoScheduleNoCreate tentative job and calendar event. Defaults to false.
notifyCustomerNoSend SMS to customer. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobIdNoAuto-created job ID
quoteIdNoAuto-generated quote ID
successNo
aiSummaryNoAI-generated lead summary
quoteTotalNoQuote total in AUD
calendarSyncedNoWhether calendar event was created
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's complexity (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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesQuote ID to convert. Required.
discountNoPercentage discount to apply (0-100). Optional.
customDueDateNoCustom due date in ISO 8601 format. Defaults to 14 days from today.

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobIdNo
successNo
paymentUrlNo
invoiceTotalNo
accountingSyncedNoNumber of accounting platforms synced to
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction: generate_code, send_invite, track_referral, or check_rewards. Required.
leadIdNoCustomer lead ID (for generate_code, send_invite).
referralCodeNoReferral code to track (for track_referral).
recipientPhoneNoOverride phone for send_invite.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rewardNo
successNo
referralCodeNo
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

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

Usage Guidelines4/5

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

Reject/ignore a pending draft action. The action will not be executed.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoOptional reason for rejection.
actionIdYesDraft action ID to reject. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNo
successNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob ID to send review request for. Required.
delayMinutesNoDelay in minutes before sending. Defaults to company setting (typically 2 hours).

Output Schema

ParametersJSON Schema
NameRequiredDescription
sentNo
successNo
reviewUrlNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

Given the tool's simplicity (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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoNotes to attach to the job. Optional.
leadIdYesLead ID. Required.
durationHoursNoJob duration in hours. Default 2.
preferredDateNoISO date string for preferred date. Optional (defaults to next business day).
preferredTimeNo"morning", "afternoon", "evening" or HH:mm. Optional (defaults to 9am).

Output Schema

ParametersJSON Schema
NameRequiredDescription
jobIdNo
successNo
calendlyLinkNo
scheduledDateNo
calendarSyncedNo
Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
leadIdYesLead ID to sync. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNo
successNo
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

For a tool with one 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventYesEvent 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.
entityIdNoRelated entity ID (lead/quote/job). Optional.
enrichWithAINoAdd AI summary to notification. Default true.
customMessageNoOverride auto-generated message. Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successNo
channelsSentNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 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.toggleB
Idempotent
Inspect

Enable or disable a workflow template.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesTrue to enable, false to disable. Required.
workflowIdYesWorkflow template ID. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNo
successNo
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both 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.

Purpose5/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob ID to invoice. Required. The job should be in Completed status with a linked quote for line items.
dueInDaysNoPayment due in N days from today. Defaults to 14.
includePaymentLinkNoGenerate a Stripe payment link. Defaults to true if Stripe is connected.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successNo
paymentUrlNoStripe payment link URL
invoiceTotalNoInvoice total in AUD
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdNoAnalyze specific completed job for upsell opportunities.
leadIdNoAnalyze all jobs for a specific customer. More comprehensive.
autoQuoteNoAuto-generate draft quotes for suggestions. Default false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successNo
suggestionsNo
quotesCreatedNo
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

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

Purpose5/5

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.

Usage Guidelines2/5

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.

Discussions

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

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    GTM 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.
    11
    737
    1
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources