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

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

Annotations already declare readOnlyHint=true, and the description is consistent. The description adds the specific output fields (e.g., chart data) but does not disclose additional behavioral traits beyond what annotations provide. No contradiction.

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

Conciseness5/5

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

Two sentences, no fluff. The first sentence front-loads the core value proposition and returned data, the second adds a comparative advantage. Every word earns its place.

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

Completeness5/5

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

Given the tool's simplicity (one optional param, clear annotations, output schema present), the description fully covers what the tool does and returns. No missing critical information.

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

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 'days', which includes its own description (enum values 7,30,90 and default). The tool description does not add further parameter meaning. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Quick business overview' and lists specific metrics (total leads, quotes, jobs, revenue, leads this week). It distinguishes itself from the sibling 'analytics.detailed' by claiming to be 'lighter and faster than full analytics', leaving no ambiguity about its purpose.

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

Usage Guidelines4/5

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

The description implies usage for quick overviews versus detailed analysis, but does not explicitly state when not to use or name the exact alternative. The sibling name 'analytics.detailed' provides context, but explicit guidance is lacking.

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

analytics.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, so the tool is known to be read-only. The description adds the behavioral context that it requires a specific subscription plan, which is useful information beyond annotations. No contradictions.

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

Conciseness5/5

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

The description is a single, clear sentence that covers the tool's purpose and a key requirement. No extraneous words.

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

Completeness5/5

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

Given the tool has one parameter with full schema coverage, an output schema, and clear annotations, the description is complete enough. It lists the analytics domains covered, and the schema details the period parameter. No gaps.

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

Parameters3/5

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

The single parameter 'days' is fully covered by the input schema (enum, type, description). The main description does not add any additional meaning about parameters, but with 100% schema coverage, this is acceptable. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool provides 'Detailed business analytics' and lists specific types (conversion funnel, revenue trends, etc.), distinguishing it from siblings like analytics.dashboard (likely high-level) and analytics.financials (likely finance-only).

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

Usage Guidelines3/5

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

The description mentions the requirement 'Requires Growth plan or above' which is a usage prerequisite. However, it does not provide explicit guidance on when to use this tool versus its siblings (analytics.dashboard, analytics.financials), so usage context is implied but not contrastive.

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

analytics.financialsB
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, so the description doesn't need to reiterate safety. It adds value by specifying the metrics included, which goes beyond annotations. However, it doesn't describe other behavioral traits like pagination, data freshness, or aggregation method.

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

Conciseness5/5

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

The description is a single, well-structured sentence that immediately states the tool's purpose and lists key metrics. It is front-loaded and contains no filler or redundancy.

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

Completeness4/5

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

The tool is simple with one optional parameter and an output schema (indicated). The description adequately covers the purpose and metrics. It omits details about output formatting, but that is handled by the output schema. It feels complete for the complexity level.

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

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', so the description adds no new semantic information beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool provides a financial summary with specific metrics: revenue, quote volume, conversion rate, lead count, and paid invoices for a time period. It distinguishes from sibling analytics tools like 'analytics.dashboard' and 'analytics.detailed' by listing concrete metrics, but doesn't explicitly contrast them.

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

Usage Guidelines2/5

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

The description lacks any guidance on when to use this tool versus alternatives. There is no mention of usage context, prerequisites, or exclusions. The agent must infer purpose from the metric list alone, which is insufficient for decision-making.

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

billing.create_checkoutAInspect

Create a Stripe Checkout session for upgrading or purchasing a plan. Returns a URL to present to the human operator for payment. The human completes payment in their browser.

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 adds value beyond annotations by stating the output is a URL for the human to complete payment, clarifying the tool's role is to initiate but not finalize the transaction. Annotations already indicate a write operation (readOnlyHint=false), and no contradictions are present.

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

Conciseness5/5

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

The description is two concise sentences that front-load the action and output. Every sentence provides necessary information without redundancy or unnecessary details.

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

Completeness4/5

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

Given the schema coverage and presence of an output schema, the description sufficiently explains the tool's purpose and output (URL). It lacks details on error handling or post-payment behavior, but for a straightforward checkout creation tool, the information is adequate.

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

Parameters3/5

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

Input schema has 100% description coverage, with clear parameter descriptions (plan_slug with examples, billing_cycle with enum and default). The tool description does not add further parameter semantics beyond the schema, but it adequately reinforces the context of plan purchase/upgrade.

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

Purpose5/5

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

The description clearly states 'Create a Stripe Checkout session for upgrading or purchasing a plan,' which precisely identifies the action and resource. It distinguishes itself from sibling tools like billing.get_portal and billing.list_plans by specifying it initiates a payment flow.

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

Usage Guidelines4/5

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

Description explains the tool produces a URL for the human operator to complete payment in a browser, indicating when to use it. However, it doesn't explicitly list alternatives or when not to use it, though context from sibling tools provides some differentiation.

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

billing.get_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
Behavior5/5

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

Annotations already declare readOnlyHint=true, and the description confirms it's a read operation returning a URL. It adds value by detailing what the portal allows (update payment methods, view invoices, change plans, cancel). No contradictions with annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with action and resource, no extraneous words. Every sentence serves a purpose: what it does and what it requires.

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

Completeness5/5

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

Given the simplicity (no params, read-only, output schema present), the description is complete. It covers purpose, preconditions, and what the portal enables.

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

Parameters4/5

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

There are no parameters (schema empty, coverage 100%). Baseline for 0 params is 4. Description naturally adds no parameter info, which is acceptable here.

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

Purpose5/5

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

The description clearly states it gets a Stripe Billing Portal URL for managing subscriptions, with specific actions listed (update payment methods, view invoices, etc.). It distinguishes from siblings like billing.create_checkout (new subscriptions) and billing.status (status checks).

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

Usage Guidelines4/5

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

The description says 'Requires an existing Stripe subscription,' which sets a clear precondition. It implies use when a human needs to manage billing, but does not explicitly mention alternatives (e.g., billing.create_checkout for new subscriptions, billing.list_plans for browsing). Slight gap, but context is clear.

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

billing.list_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
Behavior4/5

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

Annotations already provide readOnlyHint=true. The description adds that the data is 'public information,' reinforcing the read-only and non-destructive nature. It does not mention rate limits or caching, but the combination with annotations is sufficient for transparency.

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

Conciseness5/5

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

The description is two short sentences. The first sentence states the purpose and content, the second provides context. Every word earns its place; no fluff.

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

Completeness5/5

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

Given no parameters, a valid output schema (as indicated in context), and annotations, the description fully covers what the tool does and what data it returns. No gaps are apparent.

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

Parameters4/5

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

There are no parameters, so schema description coverage is 100% by default. The description adds value by explaining what the output contains (pricing, features, limits, feature flags) and that it is public, which goes beyond the empty schema.

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

Purpose5/5

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

The description clearly states it lists all available plans with pricing, features, limits, and feature flags. This is a specific verb (list) on a specific resource (plans) with detailed content. It distinguishes from sibling tools like billing.create_checkout and billing.status, which are for purchasing and status respectively.

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

Usage Guidelines4/5

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

The description says 'Public information — useful for discovering what plans exist before purchasing or upgrading.' This gives clear context on when to use the tool (before purchase/upgrade). It does not explicitly mention when not to use or alternatives, but the context is sufficiently clear for an agent.

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

billing.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 provide readOnlyHint=true; description aligns with 'check' and adds 'feature access' context. Consistent, no contradiction, but does not add extra behavioral detail beyond read-only nature.

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

Conciseness5/5

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

Two concise sentences, front-loaded with action and resource, no waste.

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

Completeness4/5

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

Given no parameters and presence of output schema, description adequately covers tool purpose. Could mention that it returns current plan details, but output schema handles that.

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

Parameters4/5

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

No parameters, schema coverage 100%. As per guidelines, baseline 4 for zero params. Description adds no param info (not needed).

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

Purpose5/5

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

Clear verb 'check' specifying what is checked: subscription status, plan details, billing cycle, feature access. No sibling duplicates this exact function.

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

Usage Guidelines3/5

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

States usefulness for understanding capabilities on current plan, but does not explicitly differentiate from siblings like billing.list_plans or billing.usage. No when-not guidance.

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

billing.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?

The description adds context beyond annotations: it specifies what metrics are checked (API calls, SMS, email, LLM credits) and the comparison against plan limits. The annotations already declare readOnlyHint=true, which aligns with the check operation. The description provides useful behavioral details without contradicting annotations.

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

Conciseness5/5

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

The description is a single sentence that front-loads the purpose and lists key metrics. Every part is meaningful, no redundant or filler content.

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

Completeness4/5

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

The tool has zero parameters and an output schema (though not detailed here), so the description adequately covers the operation. It identifies the specific usage categories checked. Slightly more detail on the return format (e.g., usage vs limits) could be added, but with the output schema present, it is sufficiently complete.

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

Parameters4/5

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

The input schema has zero parameters, and schema coverage is 100%. Baseline for zero parameters is 4. The description does not need to document parameters and appropriately focuses on the operation. No additional parameter meaning is necessary.

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

Purpose5/5

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

The description clearly states the verb 'Check' and specifies the resource 'API and resource usage vs plan limits', listing concrete items like API calls, SMS credits, email credits, and LLM calls remaining. It effectively distinguishes from sibling billing tools such as billing.status (likely overall status) and billing.list_plans (listing plans).

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

Usage Guidelines4/5

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

The description implies usage context (checking usage against limits) but does not explicitly exclude alternatives or mention when not to use this tool. The context is clear enough for the agent to infer typical usage, but lacks explicit guidance on sibling tools like billing.status or analytics.dashboard.

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

cashflow.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, and the description adds value by detailing the return content (revenue, invoices, etc.) and mentioning a 'value context' showing time saved. This complements the annotations without contradiction, though it lacks explicit discussion of any edge cases or limitations.

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

Conciseness4/5

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

The description is well-structured with a clear opening sentence and a bullet-like list of outputs. It is informative but not overly verbose. A slight improvement could be trimming the final sentence's redundancy, but overall it is concise and organized.

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

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 covers the key return elements and use cases. It addresses common cash flow questions. However, it does not mention any configuration options or variations in the forecast period, which could be needed for full context.

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

Parameters4/5

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

The input schema has zero parameters with 100% coverage, so no parameter explanation is needed. The description focuses on what the tool returns rather than parameters, which is appropriate. It does not add parameter semantics because there are none, but this is fine.

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

Purpose5/5

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

The description clearly defines the tool as a 30-day cash flow forecast with a weekly breakdown, listing specific financial elements. It distinguishes itself from sibling tools like analytics.dashboard by focusing specifically on cash flow, and it includes explicit use cases ('Can I afford to hire?'), making the purpose highly specific and actionable.

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

Usage Guidelines4/5

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

The description provides clear use cases ('Essential for answering...'). However, it does not explicitly state when not to use this tool or compare it to alternatives like analytics.financials, which could clarify when to choose this over others.

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

clients.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 indicate readOnlyHint=true. Description lists additional output fields (job count, quote count, revenue) but does not disclose rate limits, pagination behavior, or data freshness. Adds minimal behavioral context beyond annotations.

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

Conciseness5/5

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

Two concise sentences that immediately state purpose and utility. No redundant information.

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

Completeness5/5

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

With output schema present, description adequately covers filtering criteria and extra fields. Sufficient for a list tool with no complex side effects.

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

Parameters3/5

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

Single 'limit' parameter has 100% schema description coverage, so the schema already documents its meaning. The tool description adds no extra semantics for parameters.

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

Purpose5/5

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

Specifies verb 'list', resource 'clients', and clarifies that it only includes leads with at least one job, distinguishing it from leads.list. Provides additional context on returned data fields (job count, quote count, revenue).

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

Usage Guidelines3/5

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

States 'useful for identifying repeat customers' but does not explicitly mention when to use vs alternatives or when not to use. No alternative tools named or exclusions provided.

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

comms.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?

The description aligns with the readOnlyHint annotation by stating 'View' history, implying no destructive actions. It adds filtering capabilities but does not disclose other behavioral traits like rate limits, authentication needs, or return format. Since annotations already convey read-only nature, the description provides minor added value.

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

Conciseness5/5

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

The description is two sentences long, no unnecessary words. It front-loads the purpose and filtering options, then adds a use case. Every sentence contributes value, making it highly concise and well-structured.

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

Completeness3/5

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

The tool has 3 optional parameters and an output schema. The description covers purpose and filtering but omits details like sorting, pagination (limit is explained in schema), and the fact that 'delivery status' is not a filter. The error about delivery status reduces completeness. Overall, adequate but with a notable gap.

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

Parameters2/5

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

The description claims filtering by 'delivery status,' but the schema does not include such a parameter, creating misleading information. The schema covers all three parameters (type, limit, channel) with descriptions, so baseline is 3, but the inaccuracy reduces it to 2. The description adds the 'auditing' use case but fails to accurately reflect available filters.

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

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: 'View sent SMS and email message history.' It specifies filtering options ('Filter by channel, message type, or delivery status') and a use case ('Useful for auditing communications'). This distinguishes it from sibling tools like comms.send_email and comms.send_sms, which are for sending, not listing.

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

Usage Guidelines4/5

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

The description provides context for when to use the tool ('auditing communications') and implicitly differentiates it from sending tools. However, it does not explicitly state when not to use it or mention alternative tools for similar purposes. Given the clear domain (communications history), the guidance is adequate but lacks exclusions.

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

comms.send_emailAInspect

Send an email on behalf of the company. Subject to monthly email quota. HTML body supported.

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?

Annotations already indicate mutation (readOnlyHint=false) and side effects (openWorldHint=true). Description adds quota and HTML support but lacks details on quota enforcement, error handling, or cost implications.

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

Conciseness5/5

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

Extremely concise (two sentences) with main action first. No unnecessary words. Front-loaded with clear purpose.

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

Completeness3/5

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

Covers core function and key constraints (quota, HTML) but insufficient for a mutation tool with open world hint. Missing details on quota limits, error states, and side effects. Output schema exists but not described.

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

Parameters3/5

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

Schema covers all parameters completely (100% coverage). Description redundantly notes 'HTML body supported' which matches schema body description. No additional semantics beyond schema.

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

Purpose5/5

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

Clearly states 'Send an email on behalf of the company,' which is a specific verb+resource. Distinguishes from sibling comms.send_sms by being for email, without needing explicit contrast.

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

Usage Guidelines3/5

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

Implied usage for sending emails, but no explicit guidance on when to use vs alternatives (e.g., send_sms) or when not to use. Mentions quota as a constraint but not how to handle it.

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

comms.send_smsAInspect

Send an SMS message to a phone number on behalf of the company. Requires a valid Australian mobile number. Subject to monthly SMS quota.

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

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

Annotations indicate readOnlyHint=false and openWorldHint=true. The description adds behavioral context: the SMS must be to an Australian mobile number and is subject to a monthly quota. It does not contradict annotations and provides useful constraints beyond what annotations offer.

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

Conciseness5/5

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

Two concise sentences front-load the primary purpose and then add constraints. No redundant or extraneous information.

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

Completeness4/5

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

Given the tool complexity (5 parameters, with output schema), the description is fairly complete. It covers the core action, key constraints, and scope. Minor gaps exist in explaining optional parameters (jobId, leadId, messageType) but the schema covers those.

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

Parameters3/5

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

Schema coverage is 100% with all parameters described. The description does not add significant parameter-level meaning beyond the schema, but does provide overarching context (e.g., Australian number requirement relates to 'to' parameter). Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'send', the resource 'an SMS message', and the scope 'on behalf of the company'. It also specifies constraints (Australian mobile number, quota). This distinguishes it from sibling tools like comms.send_email.

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

Usage Guidelines4/5

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

The description mentions the requirement for a valid Australian mobile number and monthly quota, giving context for when to use. However, it does not explicitly differentiate from comms.send_email or provide when-not-to-use guidance, which would strengthen the dimension.

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

compliance.generate_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?

The description transparently indicates the output is a draft requiring human review, and references standard regulations. Although annotations include readOnlyHint=true, the generation of a document is not clearly contradictory; the description adds context beyond annotations about the draft nature and plan requirement.

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

Conciseness5/5

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

Two sentences convey purpose, regulatory compliance, draft nature, and plan requirement. Every word adds value; no redundancy.

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

Completeness4/5

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

With full schema coverage and an output schema, the description covers necessary context: regulatory compliance, draft alert, and plan requirement. It is complete enough for the tool's complexity.

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

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 to parameter semantics, briefly noting output content (hazards, controls, PPE, emergency procedures) but not directly enhancing parameter understanding.

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

Purpose5/5

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

The description explicitly states it generates a site-specific SWMS compliant with specific regulations and standards. The verb 'generate' and resource 'SWMS' are clear, and the regulatory references differentiate it from any siblings.

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

Usage Guidelines4/5

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

The description mentions the output is an AI draft that must be reviewed and signed, and requires a Growth+ plan. However, it does not explicitly state when not to use it or compare to alternatives, which is acceptable given no direct siblings.

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

documents.auto_fileAInspect

File a document to connected cloud storage (Google Drive/Dropbox) in an organised company folder structure. Auto-generates folder paths based on entity type.

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 readOnlyHint=false and openWorldHint=true, consistent with the description of writing to external storage. The description adds auto-generation behavior but lacks details on side effects like file overwrite behavior or error handling. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences with no wasteful words. Front-loaded with the key action and destination, followed by the auto-generation detail. Every sentence adds necessary information.

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

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 (which presumably documents return values), the description covers the essential input and behavior. It could mention whether the file URL is returned, but completeness is adequate for a filing tool.

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

Parameters4/5

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

With 100% schema coverage, the schema already documents parameters. The description adds value by explaining that entityType drives auto-generated folder paths, enhancing understanding beyond the schema. This justifies a score above baseline 3.

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

Purpose5/5

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

The description clearly states the action (file a document) and the destination (connected cloud storage) with specific resources (Google Drive/Dropbox). It distinguishes from sibling tools by mentioning organized company folder structure and auto-generation based on entity type, which no other sibling tool covers.

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

Usage Guidelines3/5

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

The description implies usage context (filing documents to cloud storage with automatic organization) but does not explicitly state when to use this tool over alternatives or provide exclusions. No mention of prerequisites or alternative tools.

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

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 declare readOnlyHint=true, and the description's 'Get a checklist' is consistent with a read operation. The description adds value beyond annotations by detailing the checklist content (steps, time, costs), but does not mention any edge cases or limitations.

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

Conciseness5/5

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

The description is a single sentence of 20 words, front-loaded with the main verb and resource, and includes key specifics without extraneous information. Every sentence earns its place.

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

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 (indicated by 'Has output schema: true'), the description does not need to explain return values. It covers the checklist scope comprehensively for a formation tool, and annotations provide read safety context.

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

Parameters3/5

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

Schema description coverage is 100% – both 'state' and 'trade' parameters are documented. The tool description does not add significant new meaning beyond the schema, only contextualizing that they are used for generating a checklist. Baseline score of 3 is appropriate.

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

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 'complete step-by-step business formation checklist' for a specific trade and state, listing included items (ABN registration, GST, licensing, etc.) and mentioning time estimates and costs. This is specific and distinct from sibling tools like formation.requirements or formation.demand_hotspots.

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

Usage Guidelines3/5

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

The description implies usage when needing a formation checklist, but does not provide explicit guidance on when to use this tool versus alternatives (e.g., formation.requirements, formation.funding). No exclusions or conditions are stated.

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

formation.demand_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 already declare readOnlyHint: true and openWorldHint: false, so the description does not need to repeat that. It adds context about the output fields and regional scope, but no additional behavioral traits like rate limits or pagination.

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

Conciseness5/5

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

The description is three short sentences, all necessary: it states the action, lists returned data, and gives a use case. No wasted words, front-loaded with key information.

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

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 (unseen but implied), the description adequately covers purpose, output fields, and use case. It could mention that results are per trade regionally, but it is sufficiently complete for most scenarios.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are well-defined in the schema. The description does not add significant meaning beyond what the schema provides, but it does imply the use of 'trade' and 'limit' contextually.

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

Purpose5/5

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

The description uses a specific verb 'Get' with a clear resource 'trade demand hotspots across Australian regions', and explicitly states the return fields and use case. It distinguishes itself from sibling tools like formation.location_score and analytics.dashboard by focusing on trade-specific demand analysis.

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

Usage Guidelines4/5

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

The description includes explicit usage guidance: 'Use to advise where to start a trade business for maximum impact.' This clearly indicates when to use the tool, though it does not mention alternatives or when not to use it.

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

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

Behavior4/5

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

Annotations already declare readOnlyHint=true. Description adds context: it's for Australian government programs targeting trade businesses, and filtering by category. No behavioral surprises beyond what annotations imply.

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

Conciseness5/5

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

Two concise sentences with no unnecessary words. First sentence states purpose and scope; second explains filtering. Information is front-loaded effectively.

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

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 optional parameter and an output schema, the description covers purpose, scope, filtering, and target audience. No critical information is missing.

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

Parameters4/5

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

Schema coverage is 100% with description for the 'category' parameter. The description adds value by listing the valid categories (apprenticeship, small-business, export, digital, training) which helps the agent understand available filters.

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

Purpose5/5

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

Description clearly states the action 'Get' and specific resource 'Australian government grants, incentives, and funding programs'. It distinguishes from sibling tools like funding.eligibility_scan and funding.program_details by indicating it retrieves a broad list with optional category filter.

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

Usage Guidelines4/5

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

Description explains when to use this tool (when needing available funding programs) and how to filter by category. However, it lacks explicit guidance on when not to use it or alternatives like funding.eligibility_scan or funding.program_details.

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

formation.guided_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

Behavior4/5

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

Description discloses outputs and non-modifying nature (read-only plan generation), aligning with readOnlyHint annotation. Adds context about return structure without contradicting annotations.

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

Conciseness4/5

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

Front-loaded purpose, compact single paragraph listing six output types. Slightly dense but efficient, earning its place.

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

Completeness4/5

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

Covers purpose, inputs, outputs (including output schema existence), and usage order. Adequately complete for a complex tool with high parameter coverage.

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

Parameters3/5

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

Schema coverage is 100%, so description need not repeat parameter details. Description summarizes key parameters (trade, state, qualifications, budget, goals) but adds little beyond schema.

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

Purpose5/5

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

The description explicitly states it is the recommended entry point for business formation, lists specific outputs (pathway, task list, portal links, etc.), and distinguishes itself from siblings like formation.checklist and formation.requirements by being the first call.

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

Usage Guidelines5/5

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

Directly instructs to call this FIRST and then use the recommended tool chain for deeper dives, providing clear when-to-use and alternative guidance.

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

formation.location_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?

The description adds behavioral details beyond the readOnlyHint annotation, including the score range (0-100), the factors considered, and the return of a score breakdown and recommendation. No contradiction with annotations.

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

Conciseness5/5

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

The description is very concise: two sentences that front-load the core purpose and include key details about factors and return. Every sentence is valuable.

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

Completeness5/5

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

With 2 parameters, an output schema (implied by title), and clear mention of score breakdown and recommendation, the description is complete for a scoring tool. No missing context.

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

Parameters3/5

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

The input schema already provides detailed descriptions for both parameters (trade lists categories, region describes slug format). The description does not add new meaning beyond the schema, so baseline 3 is appropriate given 100% coverage.

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

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 specific trade+region combination, with factors and return details. It distinguishes from sibling formation tools like formation.demand_hotspots.

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

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 usage: it's for a specific trade and region combination, and it cross-references formation.demand_hotspots to discover regions. However, it does not explicitly state when not to use this tool or compare to alternatives.

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

formation.recommend_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?

The description discloses the tool's behavior: it scores all 9 trade categories across 4 factors and returns top 5 ranked recommendations with detailed outputs. Annotations already indicate readOnlyHint=true, and the description does not contradict them. It adds value by explaining the scoring mechanism and output structure.

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

Conciseness4/5

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

The description is a single paragraph that is informative and front-loaded with the purpose. It uses clear language and covers necessary details without being overly verbose. Could be slightly more structured, but efficiency is good.

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

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 (14 parameters, AI recommendation), the description provides a complete picture of functionality and output. It lists the output details (startup costs, licence requirements, revenue scenarios, etc.), which compensates for the presence of an output schema. The tool's purpose and behavior are fully covered.

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

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 itself documents all 14 parameters. The description mentions some key inputs (budget, state, goals) but does not add significant new meaning beyond the schema. A baseline score of 3 is appropriate given high schema coverage.

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

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: an AI trade recommendation engine that takes user inputs and returns ranked recommendations. It specifies the verb 'recommend', the resource 'trade', and the output (top 5 with detailed factors). This distinguishes it from sibling tools like formation.requirements or formation.demand_hotspots.

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

Usage Guidelines4/5

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

The description includes a usage hint: 'Perfect for "what trade should I start?" questions.', implying the tool is for broad trade recommendations. However, it does not explicitly state when not to use it or provide alternatives among the many sibling formation tools. The guideline is clear but not exhaustive.

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

formation.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 declare readOnlyHint=true, so the description adds value by detailing the rich output (licence type, cost estimates, insights, links). It does not conflict with annotations and provides transparency about the toolboxwithout mentioning side effects, which is appropriate for a read-only tool.

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

Conciseness4/5

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

The description is a single sentence that is front-loaded with the core purpose. It uses a list format to enumerate return items, which is efficient. Minor improvement would be brevity, but overall it is well-structured and avoids redundancy.

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

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, the description covers the tool's purpose, inputs, and outputs comprehensively. It lacks mention of error handling or prerequisites, but for a straightforward data retrieval tool, it is sufficiently complete.

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

Parameters3/5

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

Schema description coverage is 100% with clear parameter descriptions. The tool description adds no new semantic information about parameters beyond what the schema already provides, maintaining the baseline score of 3.

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

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 Australian states, with a specific verb ('get') and resource. It distinguishes from sibling formation tools by detailing unique return content including trade-specific insights and government links, which are not mentioned in other formation tool descriptions.

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

Usage Guidelines3/5

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

The description implies usage for obtaining requirements but does not explicitly state when to use this tool over alternatives like formation.checklist or formation.recommend_trade. No exclusions or contextual cues are provided, leaving the agent to infer based on tool name and return content.

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

formation.simulate_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

Behavior5/5

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

The description provides rich behavioral context beyond annotations: it discloses that it uses real Australian 2025-26 tax brackets, 10% GST, 12% super rate, and trade-specific cost profiles. It lists all output categories and milestone detection, making the behavior fully transparent and consistent with readOnlyHint=true.

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

Conciseness5/5

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

The description is appropriately sized (~140 words) and front-loaded with the core purpose. Every sentence adds value: defining the tool, listing inputs, detailing outputs, and noting data sources. No redundant or wasteful text.

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

Completeness5/5

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

Given the complexity (15 parameters, business logic, output schema exists), the description provides sufficient context for an AI agent: it explains what the tool does, the domain (Australian trade businesses), and what outputs to expect. It covers the key decision factors without needing to elaborate on return format or every parameter.

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

Parameters3/5

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

Schema description coverage is 100% so the baseline is 3. The description only mentions a subset of parameters (trade, state, startup capital, working hours, scenario) and does not add meaning beyond what the schema already provides for the other parameters. It adds value by summarizing key inputs but does not enhance parameter understanding further.

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

Purpose5/5

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

The description explicitly states it is a '12-Month Business Simulator — financial projection engine for Australian trade businesses' and lists specific inputs and outputs. It clearly distinguishes itself from sibling tools like cashflow.forecast by covering a broader scope and specific Australian tax context.

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

Usage Guidelines3/5

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

The description implies when to use it (e.g., for Australian trade business projection) but does not explicitly state when not to use it or mention alternatives among siblings like cashflow.forecast or analytics.financials. Usage context is clear but lacks exclusions.

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

funding.eligibility_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 indicate readOnlyHint=true, consistent with 'scan' and 'return' verbiage. No side effects described. Adds context about estimated total funding, enhancing transparency beyond annotations.

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

Conciseness5/5

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

Two sentences, no fluff, immediately informative. Front-loaded with key action and scope.

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

Completeness4/5

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

Given 7 parameters, complete schema descriptions, output schema present, and clear annotations, description covers the purpose and output sufficiently. Does not detail return format but output schema handles that.

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

Parameters4/5

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

Schema has 100% description coverage. Description adds context that tool is for trade businesses, complementing schema. No parameter details beyond schema, but overall adds value.

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

Purpose5/5

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

Description clearly states it scans over 20 funding programs and returns eligibility for a specific trade business, listing program types and output. Distinguishes from sibling funding.program_details by focusing on broad eligibility vs. specific program details.

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

Usage Guidelines3/5

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

Implies use case (trade business eligibility check) but does not explicitly state when not to use or mention alternatives like funding.program_details. Lacks exclusion criteria.

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

funding.program_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

Behavior4/5

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

Annotations already declare readOnlyHint=true. Description adds specific behavioral context: what information is returned (eligibility, process, tips, links). No contradictions.

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

Conciseness4/5

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

Single sentence covering purpose and content efficiently. Could be slightly more structured but is clear and concise.

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

Completeness4/5

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

Simple tool (1 param, output schema present). Description adequately covers what the tool provides without needing to detail return values.

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

Parameters3/5

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

Only one parameter (programId). Schema description covers it fully (examples, reference to eligibility_scan). Description adds no additional parameter details beyond schema.

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

Purpose5/5

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

Description clearly states it gets detailed information about a specific government funding program, listing included content (eligibility, process, tips, links). Distinguishes from sibling funding.eligibility_scan.

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

Usage Guidelines3/5

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

Description implies use when a specific program is known, but does not explicitly state when to use vs. alternatives. The input schema hints at using eligibility_scan first, but the description itself lacks this guidance.

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

hiring.apprentice_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?

The description adds context about the workflow steps but does not disclose behavioral traits beyond what the readOnlyHint annotation already provides. It doesn't mention permissions, rate limits, or side effects, though the annotation indicates it is a safe read operation.

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

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

Given the output schema exists and schema documentation covers parameters, the description fully explains the tool's domain and scope. It is complete for an agent to understand when and why to use this tool.

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

Parameters4/5

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

Schema coverage is 100% with descriptive parameter names and descriptions. The description adds overall context (Australian trade businesses, incentive claims) that helps understand the purpose of the parameters, but does not add syntactic detail beyond the schema.

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

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 the complete 6-step apprenticeship workflow for Australian trade businesses, listing specific covered steps (finding provider, recruitment, etc.). This is specific and distinguishes from sibling tools that focus on other workflows or analytics.

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

Usage Guidelines3/5

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

The description implies usage for apprenticeship workflow but does not explicitly state when to use this tool versus alternatives or when not to use it. No exclusion criteria or alternative suggestions are provided.

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

hiring.capacity_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

Behavior4/5

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

Annotations indicate readOnlyHint=true, and the description adds transparency by detailing the outputs (capacity score, burnout risk, lost revenue, urgency). It accurately portrays a read-only analysis without contradicting annotations, though it does not mention potential side effects or data sources.

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

Conciseness5/5

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

The description is a single, clear sentence that immediately states the tool's purpose and outputs. It is concise with no unnecessary words, well-structured for quick comprehension.

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

Completeness4/5

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

Given the tool has 9 parameters and an output schema, the description provides a solid overview of what it does and returns. However, it lacks details on when to use it relative to other similar tools, which would enhance completeness.

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

Parameters3/5

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

The input schema has 100% description coverage, so parameters are already documented. The description does not add extra meaning beyond the schema. It lists required fields in the schema but not in the description, offering no additional semantic value.

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

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 a solo tradesperson's capacity utilization and returns specific metrics like capacity score, burnout risk, lost revenue, and hiring urgency. It is distinct from siblings like 'hiring.readiness_score' which likely assesses general readiness, making the purpose specific and differentiated.

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

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 others such as 'hiring.cost_calculator' or 'hiring.readiness_score'. The description only states what it does without indicating prerequisites or contexts where it is most appropriate.

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

hiring.compliance_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. The description adds value by listing the specific compliance areas covered (NES, Modern Awards, STP, etc.), giving the agent a clear understanding of the checklist's content. No contradictions.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys purpose and scope without extraneous words.

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

Completeness5/5

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

Given the tool's simplicity (one optional parameter, output schema exists), the description sufficiently covers what the tool does, its geographic scope, and the compliance areas included. No gaps are apparent.

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

Parameters3/5

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

The schema coverage is 100% with a description for the only parameter 'category' listing valid values. The description adds minimal extra meaning beyond the schema; it restates filtering. With high coverage, baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Get the Fair Work compliance checklist for hiring employees in Australia,' specifying the verb and resource. It distinguishes itself from siblings like formation.checklist and compliance.generate_swms, which are in different domains or generate different outputs.

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

Usage Guidelines3/5

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

The description implies use when needing a compliance checklist for Australian hiring, but it does not explicitly compare with alternatives or provide when-not-to-use guidance. The context is clear, but lacks direct differentiation from other compliance tools like compliance.generate_swms.

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

hiring.cost_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

Behavior3/5

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

Annotations declare readOnlyHint=true, and the description aligns with a read-only calculation. However, the description adds no behavioral details beyond what annotations provide (e.g., no mention of auth needs or rate limits). No contradiction.

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

Conciseness5/5

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

Two concise sentences: first states purpose and scope, second lists included components. Front-loaded with essential information, no extraneous text.

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

Completeness4/5

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

Covers overall purpose and key cost components. Output schema exists to handle return values. Could mention state-specific variations or edge cases for completeness, but sufficient for a calculator tool given schema and annotations.

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

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 value by explaining baseSalary context ('Use hiring.wage_data to find market rates') and listing included components (super, workers comp, etc.), enhancing parameter meaning beyond schema definitions.

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

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, with specific verb 'calculate' and resource 'cost'. It distinguishes from sibling tools like hiring.apprentice_workflow and hiring.capacity_analysis.

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

Usage Guidelines3/5

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

The description implies usage for cost estimation but provides no explicit guidance on when to use vs alternatives like hiring.capacity_analysis or when not to use. No exclusions or context-specific recommendations.

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

hiring.readiness_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 already declare readOnlyHint=true, consistent with the description's calculation purpose. The description adds context about the output (hire-type recommendation) but does not disclose any behavioral traits beyond what annotations provide. No contradiction with annotations.

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

Conciseness5/5

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

The description is two sentences, front-loading the core action and outcome. Every word contributes meaning; there is no redundant or verbose phrasing.

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

Completeness4/5

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

Given 10 parameters and an existing output schema, the description adequately covers the tool's purpose and outcome. It does not detail all parameters but groups them meaningfully by dimension. The output schema handles return structure, so the description is sufficiently complete for an agent to understand the tool's role.

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

Parameters4/5

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

With 100% schema coverage, parameters are fully described in the schema. The description adds value by grouping parameters into three dimensions (financial, operational, systems), providing a high-level semantic structure that aids interpretation beyond individual parameter descriptions.

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

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: calculating a hiring readiness score across three specified dimensions (financial, operational, systems) and making a hire-type recommendation. It uses a specific verb ('calculate') and resource ('readiness_score'), and the output recommendation distinguishes it from sibling tools like scaling.readiness_score or hiring.capacity_analysis.

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

Usage Guidelines4/5

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

The description implies the tool is used for assessing business metrics to inform hiring decisions, but it does not explicitly state when to use it versus alternatives like hiring.capacity_analysis or hiring.cost_calculator. The context is clear but lacks direct exclusionary guidance.

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

integrations.available_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
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds that the tool shows adapter implementation status (live vs coming-soon). This adds value beyond annotations by clarifying the data scope without contradiction.

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

Conciseness5/5

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

The description is two sentences: the first is a clear, informative statement of the tool's action, and the second provides usage guidance. No extraneous words.

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

Completeness5/5

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

Given complete schema descriptions, annotations, and presence of an output schema, the description covers purpose, usage, and key output features, making it fully adequate for a read-only discovery tool.

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

Parameters3/5

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

Schema coverage for parameters is 100%, so the description does not need to add meaning. It correctly implies filtering options but does not expand beyond the schema descriptions.

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

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 all available integration providers (not just connected ones), specifying the returned information (name, category, auth type, features, adapter status). It distinguishes from sibling tools like integrations.list_connections by emphasizing 'available' vs 'connected'.

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

Usage Guidelines4/5

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

The description advises using the tool to help users discover what they can connect, providing clear context. While it does not explicitly exclude alternative tools, the purpose is self-evident given sibling names.

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

integrations.connection_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 openWorldHint=false. The description adds value by specifying the data included (last sync results, error logs, supported operations). No contradictions. It provides useful behavioral context beyond the annotations.

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

Conciseness5/5

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

The description is extremely concise: two sentences, no fluff, front-loaded with the core action. Every word earns its place.

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

Completeness4/5

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

Given the simple schema (1 param), high schema coverage, and existence of output schema, the description adequately covers what the tool does and returns. It mentions key return elements. Could be slightly more explicit about prerequisites (e.g., connection must exist), but overall sufficient.

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

Parameters3/5

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

Schema has high coverage (100%) with one parameter (providerId) described clearly. The description does not add further parameter details beyond what the schema provides, so baseline score is appropriate.

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

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 status for a specific integration connection, listing concrete data (sync results, error logs, supported operations). It distinguishes from siblings like integrations.list_connections (list) and integrations.sync (trigger).

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

Usage Guidelines4/5

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

The description provides explicit use case: 'diagnosing sync failures'. This gives clear context for when to use the tool. It doesn't explicitly list when not to use or alternatives, but the purpose is distinct enough.

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

integrations.list_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
Behavior4/5

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

Annotations already mark readOnlyHint=true. The description adds value by specifying the fields returned and the discovery purpose. However, it slightly misstates the default scope ('active' connections) when the tool can return all statuses, creating minor inconsistency with the schema.

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

Conciseness5/5

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

Two concise sentences with no wasted words. The first sentence states the primary purpose, and the second adds usage context. Perfectly front-loaded.

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

Completeness5/5

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

The description covers purpose, output fields, and usage context. With an output schema present, it does not need to detail return values. For a simple list tool with two optional filters, the description is fully adequate.

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

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 does not add additional parameter semantics beyond the schema, so baseline score of 3 is appropriate.

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

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 resource 'integration connections', specifies the returned fields (provider name, status, last sync time, entity types), and distinguishes from sibling tools like integrations.push_entity and integrations.sync by advising use before pushing/pulling data.

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

Usage Guidelines4/5

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

Provides clear context for when to use the tool ('before pushing/pulling data'), but does not explicitly mention when to use alternatives like integrations.connection_status. The guidance is practical but lacks exclusion criteria.

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

integrations.push_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
Behavior4/5

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

Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds valuable context by stating the requirement for an active connection with push capability, which helps agents anticipate failure cases. It does not contradict the annotations.

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

Conciseness5/5

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

The description is extremely concise—two sentences plus an example and a prerequisite. It front-loads the core purpose and uses clear, direct language without any redundant information.

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

Completeness4/5

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

Given the high schema coverage and existence of an output schema, the description covers the essential aspects: purpose, examples, and a key prerequisite. It does not address error handling or rate limits, but the annotations (openWorldHint=true) suggest some flexibility. Overall, it is sufficiently complete for an agent to use the tool effectively.

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

Parameters5/5

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

The input schema has 100% coverage with descriptions for all three parameters. The description further clarifies the entity types with real-world examples (lead, job, invoice) and mentions provider IDs like slack, xero, discord, adding context beyond the schema.

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

Purpose5/5

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

The description clearly states the tool pushes a specific entity to a connected integration, provides concrete examples (push job to Slack, invoice to Xero), and distinguishes it from sibling tools like integrations.sync, which likely handles bulk syncs.

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

Usage Guidelines4/5

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

The description specifies a prerequisite (active connection with push capability) and gives examples of when to use. However, it does not explicitly state when not to use or mention alternative tools like integrations.sync for bulk operations.

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

integrations.syncAInspect

Trigger a sync operation for a specific integration connection. Pulls or pushes entities depending on the provider configuration. Requires an active connection.

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 provide basic safety hints (readOnlyHint=false, destructiveHint=false). The description adds that behavior depends on provider configuration and requires active connection, but lacks details on side effects like overwriting or creation. No contradiction with annotations.

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

Conciseness5/5

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

Three sentences, each providing essential information: action, behavior, prerequisite. Front-loaded with core purpose. No redundant or wasted words.

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

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 function and prerequisite. With an output schema present, return values are not required. It lacks explicit mention of error handling or timeouts, but is adequate for a sync trigger tool.

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

Parameters3/5

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

All three parameters have descriptions in the input schema (100% coverage). The description adds no new parameter-specific meaning beyond mentioning 'direction' implicitly, but baseline is 3 due to full schema coverage.

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

Purpose5/5

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

The description clearly states the verb (trigger sync), resource (integration connection), and scope (pulls/pushes entities). It distinguishes from siblings like integrations.push_entity by focusing on bulk sync rather than individual entity pushes.

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

Usage Guidelines3/5

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

The description mentions prerequisite (active connection) but does not explicitly state when to use this tool versus alternatives like push_entity or list_connections. Usage context is implied rather than explicitly guided.

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

invoicing.chaseAInspect

Find and chase overdue invoices. GET mode (no jobId): returns all overdue invoices with days overdue, chase level (friendly/firm/final), and total $ outstanding. SEND mode (with jobId + tone): sends a payment reminder via email (+ optional SMS) with 3-tier escalation — friendly (7+ days), firm (14+ days), final (30+ days). Includes Stripe payment link if connected. Each chase sent is logged and tracked for recovery metrics. The single most revenue-generating tool — 60-70% of friendly reminders result in payment within 48 hours.

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

Behavior5/5

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

The description discloses all key behaviors: GET returns overdue invoice details, SEND triggers email/SMS with 3-tier escalation, logging, and recovery tracking. It includes a performance metric (60-70% payment within 48 hours) and notes Stripe integration. Annotations (readOnlyHint: false) are consistent, and the description adds substantial context beyond them.

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

Conciseness4/5

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

The description is fairly long but well-organized, with the main purpose stated upfront, followed by mode-specific details. Every sentence adds value, though it could be slightly tightened without losing clarity. Given the tool's complexity, the length is justified.

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

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 completely: GET mode return format (overdue invoices with days, chase level, total $), and SEND mode side effects (email/SMS, logging, recovery metrics, payment link). With 3 parameters fully described and an output schema present, no gaps remain for effective usage.

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

Parameters5/5

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

Parameter schema coverage is 100%, and the description enriches every parameter: explains that omitting jobId lists all invoices, includes jobId triggers send, clarifies tone enum values with concrete day thresholds (7+, 14+, 30+), and describes sendSms default behavior. This adds significant meaning beyond the schema descriptions.

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

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 (list overdue) and SEND (send reminders). It uses specific verbs and resources, and differentiates from sibling tools like invoicing.recovery by detailing the dual-mode functionality and escalation levels.

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

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 (no jobId) vs SEND mode (with jobId + tone), providing clear context. However, it does not explicitly mention when to prefer this tool over similar sibling tools like invoicing.recovery or workflows.chase_payment, which would have strengthened the guidance.

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

invoicing.generateAInspect

Generate an invoice for a completed job. If Stripe Connect is active, automatically creates a payment link. Returns invoice number, total, and payment URL. Requires: job_id from jobs.list (job must be status=Completed). Next step: payments.send_link if needed.

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)
Behavior3/5

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

Annotations indicate mutability and potential side effects (readOnlyHint=false, openWorldHint=true). The description adds specific behavioral details: creates a payment link if Stripe Connect is active, and returns invoice number, total, and payment URL. It does not describe failure modes or behavior if Stripe is not active, so adequate but not high.

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

Conciseness5/5

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

Three sentences covering purpose, behavior with Stripe, required input, and next step. No unnecessary words, efficiently front-loaded.

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

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 main use case, requirements, and output. It lacks details on error scenarios or what happens when Stripe Connect is inactive, but overall it's sufficiently complete given the tool's simplicity.

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

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 jobId: 'Job ID to invoice. Required. The job should be in Completed status.' The tool description adds context (e.g., requires from jobs.list) but does not significantly enhance parameter semantics beyond the schema, meeting the baseline.

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

Purpose5/5

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

The description clearly states the verb 'Generate', the resource 'invoice', and the specific condition 'for a completed job'. It distinguishes itself from siblings by mentioning automatic payment link creation via Stripe Connect, contrasting with tools like payments.send_link. The return values are also listed.

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

Usage Guidelines4/5

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

Explicitly requires 'job_id from jobs.list (job must be status=Completed)' and suggests 'Next step: payments.send_link if needed'. This tells when to use and what to do next, though it does not explicitly list when not to use beyond the requirement.

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

invoicing.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 indicate readOnlyHint: true. The description adds value by detailing the two returned metrics (total $ and count), which is beyond what annotations provide. However, it does not disclose whether data is real-time or cached, or scope limitations.

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

Conciseness5/5

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

Two sentences with no waste. First sentence states purpose, second adds value proposition. Front-loaded and efficient.

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

Completeness4/5

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

Given zero parameters and presence of output schema, the description is mostly complete. It specifies what the tool returns. However, it lacks time period scope (e.g., all time, current month) and whether it is company-specific.

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

Parameters4/5

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

Input schema is empty, so no parameters to describe. Per guidelines, baseline is 4. The description effectively adds meaning about what the tool returns, compensating for lack of params.

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

Purpose5/5

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

The description clearly states the tool tracks recovered money from auto-chase reminders, specifying outputs: total $ and count of invoices that were overdue, chased, then paid. It distinguishes from sibling tools like invoicing.chase and analytics.financials.

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

Usage Guidelines3/5

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

The description implies usage as a 'proof the platform pays for itself' metric but does not explicitly state when to use it versus alternatives or provide when-not guidance. Among many analytics siblings, no differentiation is provided.

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

jobs.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
Behavior5/5

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

Discloses that sendReviewRequest defaults to true and consumes email/SMS credits, and that satisfaction rating is optional. Annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false) align, and description adds resource consumption details beyond annotations.

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

Conciseness5/5

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

Three concise sentences: first states purpose and options, second recommends usage, third provides dependencies and next steps. No wasted words, front-loaded with core purpose.

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

Completeness5/5

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

With annotations, full schema, and output schema present, the description covers main behavior, options, and workflow. Agent can confidently understand when, how, and what to expect.

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

Parameters5/5

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

Schema coverage is 100% and description reinforces key parameter context: jobId from jobs.list, notes as completion notes, satisfaction rating range, and sendReviewRequest default and cost. Adds meaningful value beyond schema.

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

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, with optional satisfaction rating and auto review request. It is a specific verb+resource and distinguishes from sibling tools like jobs.create, jobs.list, and jobs.update.

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

Usage Guidelines5/5

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

Explicitly says 'This is the recommended end-of-job action' and provides a clear workflow: requires jobId from jobs.list, then next steps of invoicing.generate → payments.send_link → reviews.request. This provides strong when-to-use and sequence guidance.

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

jobs.createAInspect

Schedule a job for a lead. Optionally link to a quote and assign a technician. Status is auto-set to "Scheduled" if a date is provided, otherwise "Quoted". Requires: lead_id from leads.list. Next steps: jobs.update → jobs.complete → invoicing.generate.

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?

Annotations (readOnlyHint=false, destructiveHint=false) are consistent. The description adds behavioral context about auto-set status based on date and requirements beyond the annotations.

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

Conciseness5/5

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

Three sentences, front-loaded with core purpose, no redundancy. Every sentence adds value (purpose, status rules, prerequisites/next steps).

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

Completeness4/5

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

Covers creation, status, requirements, and workflow. Output schema exists, so return values need not be explained. Minor gaps: no mention of confirmation or error cases, but overall complete for its complexity.

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

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 extra value by explaining the status logic based on scheduledDate and linking to quotes for pricing context, going beyond schema descriptions.

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

Purpose5/5

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

The description clearly states 'Schedule a job for a lead' with options to link a quote and assign a technician, and distinguishes from sibling tools like jobs.update and jobs.complete by mentioning next steps.

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

Usage Guidelines4/5

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

Provides explicit prerequisites ('Requires: lead_id from leads.list') and next steps (jobs.update → jobs.complete → invoicing.generate), but does not explicitly state when not to use the tool or provide alternatives.

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

jobs.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?

The annotations declare readOnlyHint=true, and the description adds value by stating it includes linked lead and quote data and supports cursor-based pagination. This provides behavioral context beyond the annotations without contradiction.

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

Conciseness5/5

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

The description is two sentences, efficiently front-loading the main purpose and key details. Every sentence adds value, with no redundancy or filler.

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

Completeness4/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 full parameter documentation, the description covers the main return fields and pagination behavior. It is adequate but could mention ordering or default sorting for full completeness.

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

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 already described (limit, cursor, status). The description adds no further parameter-level meaning beyond the schema, achieving baseline for high coverage.

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

Purpose5/5

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

The description clearly states it lists jobs with specific fields like status, dates, technician assignment, and invoice info, including linked lead and quote data. It distinguishes from sibling tools like jobs.create, jobs.update, etc., by using the verb 'list' and specifying the resource.

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

Usage Guidelines4/5

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

The description implies usage for viewing jobs and mentions cursor-based pagination, giving context for retrieval. However, it does not explicitly state when to use this tool over alternatives like other list tools or when not to use it, but the purpose is clear enough for selection.

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

jobs.profit_summaryA
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

Behavior4/5

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

Annotations already declare readOnlyHint=true, ensuring safe read. Description adds behavioral detail: returns totals, breakdown by service type, and identifies profitable services. No hidden side effects.

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

Conciseness4/5

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

Description is moderately concise, front-loaded with purpose. The last sentence ('The insight that separates...') is somewhat fluff but not detrimental. Could be tightened.

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

Completeness5/5

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

Given no parameters, output schema exists, annotations are present, and description covers return values and business purpose comprehensively. Complete for an agent to understand behavior.

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

Parameters4/5

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

No parameters exist in input schema (100% coverage by default). Baseline 4 applies per rule for zero parameters. Description adds no parameter info but is not needed.

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

Purpose5/5

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

Description clearly states 'Per-job profit analysis for completed jobs' with specific returns (revenue, cost, profit, margin). Distinguishes from sibling analytics tools by focusing on completed jobs and service type profitability.

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

Usage Guidelines4/5

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

Implies usage for profit analysis of completed jobs, but does not explicitly compare with alternatives like analytics.dashboard or analytics.financials. The context of 'completed jobs' provides some guidance.

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

jobs.send_etaAInspect

Send an "on my way" notification to the client via SMS and/or email with an optional ETA. Improves customer experience and reduces no-shows.

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?

Description discloses the tool sends notifications and can include ETA, but does not detail side effects like overwriting previous notifications, behavior if contact info is missing, or whether it logs or triggers workflows. Annotations already indicate mutability (readOnlyHint=false) and non-destructiveness.

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

Conciseness5/5

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

Two concise sentences with no redundancy; states action, target, optional input, and benefit. Front-loaded with key verb and resource.

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

Completeness4/5

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

For a simple notification tool with two parameters and existing output schema, description covers core purpose and benefit. Could mention that it sends to multiple channels or constraints on job state, but still adequate.

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

Parameters3/5

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

Input schema covers both parameters with clear descriptions (e.g., 'human-readable text' for eta, 'Must have a linked lead with contact info' for jobId). Description does not add further semantic value beyond schema; baseline 3 is appropriate due to high schema coverage.

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

Purpose5/5

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

Description clearly states the tool sends an 'on my way' notification via SMS/email with optional ETA, distinguishing it from generic communication tools like comms.send_email or comms.send_sms by specifying the job-related context.

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

Usage Guidelines3/5

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

While description implies usage for improving customer experience before a job, it lacks explicit guidance on when to use this tool over alternatives (e.g., comms.send_email for non-arrival messages) or when not to use it (e.g., if no client contact info).

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

jobs.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
Behavior3/5

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

Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds no behavioral traits beyond the expected update operation. It is consistent but does not disclose side effects or authorization needs.

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

Conciseness5/5

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

Two concise sentences with no filler. The verb 'Update' is front-loaded, and the pipeline sequence is efficiently described.

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

Completeness4/5

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

Covers the core update functionality and pipeline progression. Does not explain error cases or that status can also revert to Quoted or Cancelled, but output schema likely handles return details.

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

Parameters4/5

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

Schema coverage is 100% with good descriptions. The description adds pipeline progression context beyond the schema, enhancing understanding of status transitions.

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

Purpose4/5

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

The description clearly states the tool updates job status, schedule, notes, or technician and mentions pipeline progression (Scheduled → In Progress → Completed). However, it omits other valid statuses (Quoted, Cancelled) from the enum, which could mislead about allowed transitions.

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

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 siblings like jobs.create or jobs.list. The status parameter schema mentions using jobs.complete for full completion flow, but the description itself lacks usage context.

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

leads.createAInspect

Create a new lead/prospect. Auto-assigns to the authenticated company. Source defaults to "mcp" if not specified.

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 already indicate readOnlyHint=false and destructiveHint=false. The description adds behavioral context beyond annotations, such as auto-assigning to the authenticated company and defaulting source to 'mcp'. No contradictions.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the core purpose, and contains no extraneous words. Every sentence adds value.

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

Completeness4/5

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

With an output schema present, the description does not need to explain return values. It covers creation, auto-assignment, and source default. It could mention potential side effects or permissions, but it is generally complete for a create operation.

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

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 value by explicitly noting the source default and auto-assignment behavior, which are not fully captured in the schema descriptions. However, it does not elaborate on other parameters beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'create' and the resource 'lead/prospect', and distinguishes itself from siblings like leads.list and leads.update by being the creation operation. It also adds specific context about auto-assignment and default source.

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

Usage Guidelines3/5

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

The description implies usage for creating new leads but does not explicitly state when to use this tool vs alternatives like leads.list or leads.update. No prerequisites or exclusions are mentioned.

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

leads.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.
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false. Description confirms the read-only nature but adds no additional behavioral context beyond what annotations provide.

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

Conciseness5/5

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

Two sentences plus a concise tip. Front-loaded with action and output, no wasted words.

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

Completeness5/5

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

Has output schema explaining return fields. Description covers key context: output fields, filtering, pagination. Complete for a list tool.

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

Parameters3/5

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

Schema descriptions cover 100% of parameters with clear meanings. Description adds a tip but no extra parameter semantics beyond schema baseline.

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

Purpose5/5

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

Clearly states it lists leads and prospects, specifies exact fields returned, and mentions filtering and pagination. Differentiates from sibling tools like leads.create and leads.update.

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

Usage Guidelines4/5

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

Provides a tip on using leads.create then leads.list to verify. However, does not compare to other list tools like jobs.list or clients.list for when to use this one instead.

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

leads.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 show idempotent and non-destructive hints. The description adds 'Only provided fields are updated,' reinforcing partial update behavior and no side effects beyond the given fields. No contradiction.

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

Conciseness5/5

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

Two short, direct sentences with no wasted words. The essential information is front-loaded.

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

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 high schema coverage, the description is fully complete. It identifies the action, usage, and required parameter without needing to explain return values.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter has its own description. The description's general statement adds no extra meaning beyond what the schema provides.

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

Purpose5/5

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

The description clearly states 'Update an existing lead' with the verb and resource, and specifies the partial update behavior ('Only provided fields are updated'). It distinguishes from siblings like leads.create and leads.list.

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

Usage Guidelines4/5

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

The description tells when to use ('Pass the lead ID and any fields to change') and implies context (updating leads). No explicit when-not or alternatives, but the sibling list makes it clear.

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

lifecycle.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, and the description adds valuable behavioral context: it returns current stage, signals, transition triggers, recommendations, and blockers. No contradictions, and it enriches the agent's understanding of the tool's output.

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

Conciseness5/5

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

Two sentences, no redundancy. The first sentence states the core action and stages, the second lists the return content. Efficiently front-loads critical information.

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

Completeness5/5

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

Given the complexity (13 parameters, output schema present), the description covers the tool's purpose and outputs thoroughly. It mentions all key return fields and the stage progression, leaving no major gaps.

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

Parameters3/5

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

Schema coverage is 100% with all 13 parameters described. The description adds minimal extra meaning beyond the schema, only hinting that inputs are used to assess stages. Baseline 3 is appropriate as schema carries the load.

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

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 business lifecycle stage and returning readiness score, current stage, signals, triggers, recommendations, and blockers. It lists the specific stages (formation to scaling), making it highly specific and distinguishable from generic assessment tools.

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

Usage Guidelines3/5

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

The description implies use for overall lifecycle assessment but lacks explicit guidance on when to use this tool versus siblings like 'scaling.readiness_score' or 'formation.checklist'. No when-not or alternative recommendations are provided.

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

marketing.generate_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
Behavior3/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that it generates content and includes A/B test variations, which are consistent. No contradictions, but the description provides little additional behavioral context beyond what annotations already convey.

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

Conciseness5/5

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

The description is four sentences, each adding necessary information: purpose, supported channels, output components, and a requirement. No redundant or unnecessary words, well-structured.

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

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 (context: output schema true), the description does not need to explain return values. It covers purpose, channels, outputs, and a requirement. It could mention if the content is AI-generated or uses templates, but it is sufficient for an agent to use the tool correctly.

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

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 all parameters with descriptions. The description adds no new parameter-specific semantics beyond listing supported channels and output components, which are already implied by the schema.

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

Purpose5/5

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

The description states it generates marketing content for specific channels, lists supported channels (Google Ads, Facebook, etc.), and mentions output components (headline, body, CTA, SMS version). This clearly defines the tool's function and distinguishes it from siblings like marketing.strategy.

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

Usage Guidelines4/5

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

The description clearly states the prerequisite 'Requires Pro plan', implying when it is available. It does not explicitly state when to use vs alternatives, but the sibling list shows marketing.strategy as the only other marketing tool, which likely has different purpose. Context is clear enough.

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

marketing.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 read-only and non-destructive behavior. Description adds value by specifying output includes costs, ROI, content ideas, and the Pro plan requirement, enhancing transparency.

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

Conciseness5/5

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

Two concise sentences front-load the core purpose and add key features and requirements without waste.

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

Completeness4/5

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

Given 5 optional parameters and an output schema, the description adequately explains the tool's capabilities and what it produces, though it could briefly mention output format.

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

Parameters3/5

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

Input schema has 100% description coverage, so the schema already documents parameters. Description does not add per-parameter details but gives overall context that maps to trade and region.

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

Purpose5/5

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

Description clearly states it is an 'AI-powered lead generation strategy engine' that analyzes data to recommend marketing channels with costs and ROI, distinguishing it from sibling tools like marketing.generate_content.

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

Usage Guidelines4/5

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

Description mentions it requires a Pro plan and analyzes specific data (trade, region, demand), providing usage context but no explicit when-not-to-use or alternatives.

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

operator.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, so the safety profile is clear. The description adds that it returns specific metrics but does not disclose caching, rate limits, or other behavioral traits. This provides some additional context beyond the annotations.

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

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 key purpose ('Get unified dashboard metrics') and efficiently lists the metrics included. No redundant words.

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

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 explains what the tool returns. It covers the scope (all operator companies) and specific metrics, making it complete for this simple read-only tool.

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

Parameters4/5

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

The tool has zero parameters, so schema coverage is 100% by default. The description does not add parameter details, but baseline for 0 parameters is 4. It meets the requirement without needing further elaboration.

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

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 unified dashboard metrics across all operator companies, listing specific metrics like YTD/MTD revenue, profit, win rates, pipeline, and revenue waterfall. This distinguishes it from sibling tools such as analytics.dashboard (likely more general) and operator.get_portfolio (portfolio-specific).

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

Usage Guidelines3/5

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

The description implies it is the top-level overview for operator metrics but does not explicitly state when to use this versus alternatives like analytics.financials or operator.get_shared_suppliers. No exclusions or when-not guidance are provided.

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

operator.get_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

Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description correctly implies a read operation without contradiction. It adds context about the returned metrics (lead/quote/job counts) but does not elaborate on ordering, pagination, or potential limits. This is adequate for such a simple tool.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that effectively communicates the purpose without unnecessary words. Every part earns its place.

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

Completeness4/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, an output schema (which likely explains the return structure), and annotations indicating it's a read-only operation, the description is largely complete. It could mention whether the list is paginated, but that may be inferred from the output schema.

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

Parameters4/5

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

The tool has no parameters, and schema coverage is trivially 100%. The description adds value by specifying what the output contains (companies with lead/quote/job counts), which is beyond what the empty schema provides.

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

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 companies in the operator's portfolio with specific basic metrics (lead/quote/job counts). The verb 'List' and resource 'companies in the portfolio' are precise, distinguishing it from sibling tools like operator.dashboard which likely provide broader analytics.

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

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 a curated list of portfolio companies with metrics, but it does not explicitly state when to use it versus alternatives like analytics.dashboard or operator.dashboard. No exclusions or alternative tool names are provided.

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

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

Behavior4/5

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

Annotations declare readOnlyHint=true, so the tool is safe. The description adds value by specifying what the output includes (discounts and linked companies). No additional behavioral details needed.

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, zero waste, fully conveys purpose. Front-loaded with key action and scope.

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

Completeness5/5

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

For a zero-parameter, read-only list tool with an output schema, the description is complete. It explains what is listed and includes all necessary context.

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 exist, and schema coverage is 100%. The description adds no parameter info, which is acceptable. Baseline score of 4 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 the tool lists all shared supplier discounts for the operator and includes linked companies. It differentiates from siblings like 'operator.get_portfolio' by focusing on discounts.

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 when needing shared supplier discounts, but provides no explicit guidance on when not to use or alternative tools. Given the large sibling set, some exclusion would help.

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?

The description adds context beyond annotations by stating that the change persists for subsequent tool calls. Annotations already indicate idempotency and non-destructiveness, and the description complements them without contradiction.

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

Conciseness5/5

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

Two sentences, each with clear purpose. No extraneous information. Front-loaded with the primary action.

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

Completeness5/5

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

For a simple state-changing tool with one parameter and an output schema, the description is complete. It covers purpose, effect, and parameter constraint without gaps.

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

Parameters3/5

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

Schema coverage is 100%, and the description repeats the schema's constraint (company must be in portfolio). No additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('switch the active company context') and the resource ('for this operator'). It distinguishes from sibling tools like operator.dashboard and operator.get_portfolio by focusing on context mutation rather than reading.

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

Usage Guidelines4/5

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

The description explains the effect (subsequent calls use new context), implying this tool is used before operations that depend on the current company. However, it doesn't explicitly mention when not to use it or provide alternatives.

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

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 already indicate mutation (readOnlyHint=false). The description adds that it creates items and applies default markup, but does not disclose potential destructive actions or error handling beyond what annotations imply.

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

Conciseness5/5

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

Three sentences with no redundancy. Front-loaded with the primary action, followed by clarifying details. Efficient and easy to parse.

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

Completeness4/5

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

Given the simplicity of the tool (3 params, output schema present), the description covers the core behavior. However, it omits details about idempotency or what happens if items already exist, which would improve completeness.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions. The description ties 'default markup' to markupPct but adds little extra meaning beyond the schema. It provides context for supplierId and itemIds by mentioning what is created.

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

Purpose5/5

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

The description clearly states the action (import), the source (global supplier catalog), and destination (company price book). It also mentions creating company-level supplier and service catalog items, which differentiates it from siblings like pricebook.search.

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

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 (importing from global catalog), but lacks explicit guidance on when not to use, prerequisites, or behavior on duplicates. No alternatives mentioned.

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

pricebook.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 set readOnlyHint=true, so description adds context: returns RRP and typical trade cost, covers 930+ products from 24+ wholesalers. No contradictions. The description enriches behavioral understanding beyond annotations.

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

Conciseness5/5

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

Two concise sentences with front-loaded purpose. Every word adds value. Efficient structure with clear scope and capabilities.

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

Completeness5/5

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

Given 5 parameters, output schema exists, and no required params, the description covers scope, filters, and return values (RRP, trade cost). No gaps. Complex tool well described.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters have descriptive names and descriptions. The tool description reiterates filtering but adds no new semantic detail beyond what schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states 'Search the Australian supplier catalog' with specific resources (930+ products, 24+ wholesalers) and distinguishes from sibling pricebook.import. The verb 'search' is precise and matches the tool name.

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

Usage Guidelines4/5

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

Description mentions filtering options (trade, subcategory, free-text) which implicitly guide when to use. No explicit when-not-to or alternatives, but siblings are different tools (pricebook.import), so usage context is clear.

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

quotes.ai_price_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 indicate read-only and non-destructive. Description adds that it is ACCC-compliant and requires a Growth+ plan, providing useful behavioral context beyond the annotations.

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

Conciseness5/5

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

Concise, four sentences covering purpose, functionality, compliance, and access. No redundant information.

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

Completeness4/5

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

Provides sufficient context for the tool's role, outputs, and constraints. Output schema exists so return values are covered. Could mention integration with quotes.create but not required.

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

Parameters3/5

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

Schema covers all parameters fully (100% coverage). Description does not add meaning beyond what the schema provides, so baseline of 3 is appropriate.

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

Purpose5/5

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

Clearly states it is an AI-powered pricing suggestion tool that analyzes catalogs and historical data. Distinguishes from sibling tools like quotes.create by focusing on suggestion rather than creation.

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

Usage Guidelines3/5

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

Implied usage for obtaining pricing suggestions before creating a quote, but no explicit comparison to alternatives like quotes.create or when not to use it.

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

quotes.createAInspect

Create a quote for a lead. Provide line items with description, quantity, unitPrice, and total. Created in Draft status. Requires: lead_id from leads.list or leads.create. Next step: quotes.send to deliver to client.

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?

Annotations already indicate readOnlyHint=false and destructiveHint=false, but description adds that quotes are created in 'Draft status' and requires a lead from specific sources. This goes beyond minimal annotation disclosure.

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

Conciseness5/5

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

Three sentences, no redundancy. First sentence captures purpose, second summarizes parameters, third gives workflow context. Very efficient.

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

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 required parameters and an output schema, the description covers all essential aspects: purpose, required inputs, workflow integration. No gaps.

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

Parameters3/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. Description reiterates that line items need description, quantity, unitPrice, and total, which is already in the schema. No additional meaning beyond schema.

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

Purpose5/5

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

Description clearly states 'Create a quote for a lead' with specific verb and resource. It distinguishes from siblings like quotes.update or quotes.send by mentioning creation for a lead and draft status.

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

Usage Guidelines4/5

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

Provides explicit guidance on prerequisite (lead_id from leads.list or leads.create) and next step (quotes.send). Tells agent when to use this tool but does not explicitly mention when not to use it; however, context from siblings and the workflow steps is clear.

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

quotes.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
Behavior4/5

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

Annotations already declare readOnlyHint=true, and description confirms read-only listing. Adds return field details and pagination behavior beyond annotations.

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

Conciseness5/5

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

Two sentences, no filler. Each sentence provides useful information: purpose and a workflow tip. Efficient and front-loaded.

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

Completeness5/5

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

Given output schema exists, description adequately covers return fields. For a list tool with rich annotations and schema, this is complete.

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

Parameters4/5

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

Schema covers all 3 parameters with full descriptions (100% coverage). Description adds value by noting pagination type and not repeating schema. Baseline 3 is elevated due to concise additional context.

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

Purpose5/5

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

Clearly states 'List quotes' with specific fields (line items, totals, status, linked lead info) and filtering/pagination. Distinguishes from sibling tools like quotes.create, quotes.update, etc.

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

Usage Guidelines4/5

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

Explicitly mentions filtering by status and cursor-based pagination. The tip referencing quotes.create and leads provides context on workflow, but doesn't exclude use cases.

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

quotes.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?

Describes key effects: marks quote as Sent, consumes SMS/email credits, and returns a public URL. Annotations provide idempotentHint=true and destructiveHint=false, which are consistent. Adds value beyond annotations by detailing credit consumption.

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

Conciseness5/5

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

Three sentences, front-loaded with main action, no unnecessary words. Every sentence adds value.

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

Completeness5/5

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

With full schema coverage, output schema, and good annotations, the description is complete. It covers purpose, behavior, and return value without gaps.

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

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 extra parameter details beyond what schema already provides, which is sufficient.

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

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 shareable link for a quote, optionally sends via SMS/email, marks as Sent, and returns the public URL. It distinguishes from siblings like quotes.create or comms.send_email by combining these specific actions.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance. Usage context is implied but alternatives like comms.send_email or workflows.follow_up_quote are not mentioned, leaving the agent to infer.

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

quotes.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 readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the description's statement 'Update' is consistent but adds little. It provides business context ('progress quotes through the pipeline') but no additional behavioral traits like side effects or authorization needs. With annotations present, this is adequate but not above average.

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

Conciseness4/5

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

The description is a single short sentence that communicates both the action and the context efficiently. It is front-loaded and free of unnecessary words, earning a high score for conciseness, though it could be slightly more structured.

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

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, the description is fairly complete. It mentions the key updateable fields and the pipeline context. However, it omits details like the required 'id' parameter and the overwriting behavior of lineItems, which are covered in the schema but not reiterated.

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

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 merely lists the parameter types (status, line items, total) already described in the schema, adding no additional meaning or constraints. It does not compensate for any missing schema details.

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

Purpose5/5

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

The description clearly states the verb 'Update' and the resource 'a quote', and specifies the updatable fields (status, line items, total). It also provides business context ('progress quotes through the pipeline'). This distinguishes it from siblings like quotes.create, quotes.list, and quotes.send.

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

Usage Guidelines4/5

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

The description indicates when to use the tool ('to progress quotes through the pipeline'), giving clear context. However, it does not explicitly state when not to use it or mention alternative tools (e.g., workflows.follow_up_quote), which would improve guidance.

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

reminders.createAInspect

Schedule a follow-up reminder. Can be linked to a lead or job. Reminders appear in the dashboard and can trigger notifications.

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?

Description adds value beyond annotations by noting that reminders appear in the dashboard and can trigger notifications. Annotations already indicate it is a write operation (readOnlyHint=false) and not destructive (destructiveHint=false), so the description complements well without contradiction.

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

Conciseness5/5

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

The description is two short sentences, front-loading the core purpose without unnecessary detail. Every sentence earns its place.

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

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 (unknown but present) and annotations, the description sufficiently covers the tool's purpose and behavior. It explains scheduling, linking, and user-facing effects (dashboard, notifications). Minor gap: no mention of error conditions or permissions, but not critical for this tool.

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

Parameters3/5

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

Schema descriptions cover all parameters (100% coverage), so the description does not add new semantics. The description mentions linking to lead or job, which aligns with schema's 'leadId' and 'jobId' fields, but no further detail is provided. Baseline score of 3 is appropriate.

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

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: 'Schedule a follow-up reminder' with a specific verb and resource. It also mentions linking to lead or job, and distinguishes from sibling tools like reminders.list.

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

Usage Guidelines4/5

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

The description tells when to use the tool (to schedule a follow-up reminder) and what it can link to (lead or job). However, it does not explicitly state when not to use it or provide alternatives, though the context implies alternatives like reminders.list for listing.

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

reminders.listA
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
Behavior4/5

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

The description adds useful behavioral context beyond annotations: sorting by date and inclusion of linked lead/job info. The readOnly hint is already declared, and description is consistent with it.

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

Conciseness5/5

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

Two concise, front-loaded sentences with no wasted words. The description efficiently conveys the core purpose and additional context.

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

Completeness4/5

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

The description is nearly complete given the tool's simplicity, output schema existence, and annotation coverage. It could mention the status filter explicitly, but the default 'pending' aligns with 'upcoming'.

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

Parameters3/5

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

Schema coverage is 100% with both parameters described. The description does not add extra meaning to the parameters beyond what the schema already provides, so baseline 3 is appropriate.

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

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 'upcoming scheduled reminders', with sorting by date and included context. It distinguishes well from the sibling tool 'reminders.create' which focuses on creation.

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

Usage Guidelines3/5

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

The description implies usage for viewing upcoming reminders but does not provide explicit guidance on when to use this tool versus alternatives, such as comparing with other list tools or specifying exclusions.

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

reviews.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 declare readOnlyHint=true, so the description's claim of listing platforms without side effects is consistent. The description adds transparency about the output (platform URLs) and configuration aspect.

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

Conciseness5/5

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

The description is two brief sentences, each adding value: the first states the action and examples, the second states the utility. No wasted words.

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

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 output schema present, the description provides complete context. It explains what the tool returns and why it's useful, covering all necessary information for an agent.

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

Parameters4/5

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

There are no parameters, so the description has no burden to explain them. The rubric sets a baseline of 4 for zero parameters. The description adds no unnecessary detail.

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

Purpose5/5

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

The description clearly states the purpose: to list configured review platforms with their URLs, giving concrete examples (Google, Hipages, Facebook). This distinguishes it from sibling tools like reviews.request, which is for requesting reviews.

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

Usage Guidelines4/5

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

The description indicates when to use it ('useful for knowing where to direct review requests'), which implicitly guides usage. It doesn't explicitly state when not to use it, but the context of sibling tools provides clear alternatives.

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

reviews.requestAInspect

Send a review request to a client after a completed job. Sends via email and optionally SMS with links to configured review platforms (Google, Hipages, etc). Requires: job_id from a completed job. Tip: reviews.platforms lists configured review URLs.

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?

Annotations indicate non-read-only and non-destructive. Description adds that it sends email and optionally SMS, which is beyond annotations. Could mention idempotency or that multiple sends possible, but not critical.

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

Conciseness5/5

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

Three sentences with no wasted words. Front-loaded with the main purpose, then method, requirement, and tip. Every sentence earns its place.

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

Completeness4/5

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

Given moderate complexity, the description covers purpose, prerequisites, and a useful tip. It does not detail error states or what happens if platforms are not configured, but output schema exists to handle return values.

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

Parameters4/5

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

Schema already describes both parameters with 100% coverage. The description adds the operational tip about reviews.platforms, linking to another tool, which enhances understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the tool sends a review request after a completed job, specifying the verb and resource. It distinguishes from sibling tools like comms.send_email and reviews.platforms by focusing on the review request workflow.

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

Usage Guidelines4/5

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

The description provides clear context: use after a completed job, requires job_id, and references reviews.platforms for review URLs. It lacks explicit when-not-to-use, but the context is sufficient for an agent to decide.

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

scaling.readiness_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

Behavior4/5

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

Annotations declare readOnlyHint=true; description adds context about evaluation scope and dimensions, no contradictions.

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

Conciseness5/5

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

Three focused sentences with no redundancy; front-loaded with purpose.

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

Completeness4/5

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

Output schema exists, so return value documentation is handled; description gives sufficient high-level context for the 8 parameters, though score range or output format not mentioned.

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

Parameters3/5

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

Schema coverage is 100% with adequate parameter descriptions; description provides high-level grouping but does not add significant detail beyond schema.

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

Purpose5/5

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

Description clearly states the tool assesses readiness to scale from solo/small to multi-crew operator, specifying evaluation dimensions (financial, systems, team, market). Name and description distinguish it from sibling tools like hiring.readiness_score.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidelines; context implies use for scaling readiness assessment, but alternatives or prerequisites are not mentioned.

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

services.createAInspect

Add a new service to the company catalog. Include name, description, price range, and category.

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

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

Annotations already declare readOnlyHint=false and destructiveHint=false, indicating a non-destructive write. The description adds minimal behavioral context beyond what annotations provide.

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

Conciseness5/5

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

Single sentence, 13 words, no waste. Effectively communicates the core purpose.

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

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, the description need not explain return values. It covers the primary action and key fields. Could mention potential prerequisites or idempotency, but generally sufficient.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions. The description reiterates some parameters but does not add additional meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Add a new service') and the resource ('company catalog'), and lists the key fields. It distinguishes from sibling tools like services.list and services.update.

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

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 like services.update. It implies use for new services but lacks when-not or alternative recommendations.

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

services.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. The description adds no extra behavioral traits (e.g., pagination, rate limits), just restates the listing behavior. This is adequate given the annotation coverage.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action ('List all services'), no redundancy, and earned its place.

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

Completeness5/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 fully covers the tool's purpose and usage context.

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

Parameters4/5

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

There are no parameters, so the description cannot add meaning beyond an empty schema. The baseline for 0 parameters is 4, and the description successfully explains what is returned.

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

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 all services in the company catalog, specifying included fields (prices, descriptions, categories). It distinguishes from sibling tools like services.create and services.update by focusing on reading rather than writing.

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

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 ('useful for accurate quoting and understanding what the business offers') but does not explicitly mention when not to use or alternatives.

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

services.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 (idempotentHint=true, destructiveHint=false) are present. The description adds context about the soft-delete behavior when setting active=false, which goes beyond the schema. However, it does not disclose permissions or side effects.

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

Conciseness5/5

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

Two sentences, front-loaded with action, no unnecessary words. Efficient and to the point.

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

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 (update with one required param) and the presence of an output schema, the description covers key aspects: field updates and soft-delete. Could mention return value or error handling but not necessary.

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

Parameters3/5

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

Schema coverage is 100%. The description briefly mentions changing price, description, or status but does not add meaning beyond the schema's field descriptions. It groups fields but lacks nuance.

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

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 'existing service in the catalog'. It lists specific fields that can be changed (price, description, active status), distinguishing it from siblings like services.create and services.list.

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

Usage Guidelines3/5

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

The description implies usage for modifying existing services but does not explicitly contrast with services.create or provide when-not-to-use guidance. No alternatives are mentioned.

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

subcontractors.dispatchAInspect

Dispatch a job to a subcontractor. Sends SMS notification and creates a dispatch record for tracking. Subcontractor must be in "active" or "verified" status. Returns dispatch details.

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?

The description reveals side effects ('Sends SMS notification', 'creates a dispatch record') and a prerequisite (subcontractor status) beyond what annotations provide. Annotations indicate write (readOnlyHint=false) and non-destructive (destructiveHint=false), which aligns with the description. No contradiction.

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

Conciseness5/5

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

The description is three sentences, each serving a distinct purpose: stating the main action, detailing actions and conditions, and stating the return value. It is front-loaded with the verb and resource. No redundant information.

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

Completeness4/5

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

Given the tool has 7 parameters (2 required), an output schema, and no nested objects, the description covers the core purpose, actions, prerequisite, and return value. It does not mention job status updates or handling of jobId, but the schema addresses that. The description is sufficiently complete for an agent to understand and invoke the tool correctly.

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

Parameters3/5

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

Schema coverage is 100%, so the input schema already describes each parameter. The description adds marginal value by mentioning 'SMS notification' (relating to sendSms) and 'Subcontractor must be active/verified' (relating to subcontractorId). However, it does not elaborate on other parameters beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Dispatch' and the resource 'job to a subcontractor', distinguishing it from sibling tools like subcontractors.list (which lists subcontractors) and jobs.create (which creates a job without dispatching). The actions 'Sends SMS notification and creates a dispatch record' further specify the tool's purpose.

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

Usage Guidelines4/5

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

The description provides a clear prerequisite: 'Subcontractor must be in "active" or "verified" status.' This tells the agent when the tool can be used. It does not explicitly list alternatives, but the sibling set makes the use case obvious. A slight improvement would be to state when not to use it, but the current guidance is sufficient.

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

subcontractors.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 already indicate readOnlyHint=true. Description adds value by specifying exact return fields (license, insurance, service areas, ratings, job history) and confirming it is a read-only list operation. No contradictions.

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

Conciseness5/5

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

Two sentences, front-loaded with action and purpose. Every sentence is informative with no wasted words.

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

Completeness5/5

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

All parameters are optional and described fully in schema. Description mentions return fields. Output schema exists (per context signals), but description still provides enough context for a listing tool.

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

Parameters3/5

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

Schema coverage is 100% with each parameter already described. Description repeats 'Filter by trade, status, or availability' but does not add meaning beyond schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

Description clearly states 'List registered subcontractors in the vetted network', specifying verb, resource, and scope. It lists filtering options and return fields, distinguishing it from sibling tools like subcontractors.register, .verify, and .dispatch.

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

Usage Guidelines4/5

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

Description implies usage for querying subcontractors and lists filters, but does not explicitly state when to use vs. alternatives or provide exclusions. However, context from sibling names clarifies differentiation.

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

subcontractors.registerAInspect

Register a new subcontractor in the vetted network. Captures business details, trade license, insurance, service areas, and rates. Starts in "pending" status until verified. Requires Growth+ plan.

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?

Adds behavioral details beyond annotations: 'Starts in pending status until verified' and plan requirement. No contradictions with annotations (readOnlyHint=false, etc.).

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

Conciseness5/5

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

Three concise, front-loaded sentences covering purpose, content, and status/requirements with no unnecessary words.

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

Completeness4/5

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

Covers essential aspects for a creation tool: what is captured, initial status, plan requirement. Output schema likely handles return values, so no major gaps.

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

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 already described. The description summarizes categories but does not add new meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the action 'Register a new subcontractor' and distinguishes from sibling tools like subcontractors.list and subcontractors.verify by mentioning 'pending status' and 'vetted network', making it unambiguous.

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

Usage Guidelines4/5

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

Provides important context like 'Requires Growth+ plan' and implies usage for onboarding new subcontractors, but does not explicitly state when not to use it or name alternatives.

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

subcontractors.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?

The description adds behavioral context beyond annotations: it records a verification timestamp and lists specific status transitions. Annotations already indicate idempotentHint=true and destructiveHint=false, which align with the description. No contradictions.

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

Conciseness5/5

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

The description is two sentences with no wasted words. It front-loads the core action 'Update a subcontractor's verification status' and efficiently lists use cases.

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

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 but indicated), the description is adequate. It covers the tool's purpose and behavior, though it could mention what the tool returns on success or failure. Still, it is complete enough for an agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what is already in the schema for each parameter (id, notes, status). It mentions the status values but does not elaborate on notes or id constraints.

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

Purpose5/5

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

The description clearly states the tool updates a subcontractor's verification status and lists specific actions (verify, activate, suspend, deactivate). It distinguishes from sibling tools like subcontractors.list and subcontractors.register by focusing on status changes.

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

Usage Guidelines4/5

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

The description provides use cases such as checking license/insurance, activating, suspending, or deactivating. However, it does not explicitly state when NOT to use this tool or mention alternatives among siblings, though the context makes it clear.

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

wallet.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
Behavior3/5

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

Annotations declare readOnlyHint: true and description says 'Get', consistent. Description adds that the tool returns lifetime stats and recent transactions, which is beyond annotations. No contradictions.

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

Conciseness5/5

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

Two sentences: first states purpose, second provides cost context. Front-loaded, no wasted words.

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

Completeness4/5

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

Given output schema exists, the description adequately covers what the tool does. It mentions balance, stats, transactions. Could be improved by noting pagination via cursor, but that's in schema.

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

Parameters3/5

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

Schema coverage is 100% with limit and cursor described. Description mentions 'recent transactions' which maps to limit, but adds no new semantic meaning beyond the schema.

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

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 wallet balance, lifetime stats, and recent transactions. Verb 'Get' and resource are specific. Distinguishes from sibling wallet tools like wallet.history by including balance and stats.

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

Usage Guidelines3/5

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

The description provides cost context (reads $0.01, writes $0.05) and notes that wallet operations are free, which is helpful. However, it does not explicitly state when to use this tool versus alternatives like wallet.history.

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

wallet.crypto_depositBInspect

Create a cryptocurrency payment to top up your wallet. Accepts USDC and USDT stablecoins. Returns a payment address and amount. Wallet is credited on blockchain confirmation via webhook.

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

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

The description adds value by explaining that wallet credit occurs after blockchain confirmation via webhook, indicating asynchronous behavior. However, it implies only stablecoins are accepted, while the schema includes BTC and ETH, creating a contradiction that may mislead an agent.

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

Conciseness5/5

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

The description is concise with three sentences, front-loaded with the primary purpose, and no extraneous information. Every sentence adds essential context.

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

Completeness3/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, the description covers key aspects: creation, accepted coins, returned data, and credit timing. However, the coin discrepancy reduces completeness, and authentication or fee details are omitted.

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

Parameters3/5

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

Schema coverage is 100%, with adequate descriptions for both parameters. The description does not enhance parameter semantics beyond the schema; it merely mentions returns (address and amount), which are output-related.

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

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, specifying stablecoins USDC and USDT. However, it does not explicitly differentiate from sibling wallet.deposit, and the mention of only stablecoins contradicts the schema's coin enum which includes BTC and ETH.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like wallet.deposit or wallet.transfer is provided. Prerequisites, exclusions, or context for using crypto deposit are absent.

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

wallet.depositAInspect

Create a Stripe PaymentIntent to top up your wallet with credits. Returns a client_secret for completing payment via Stripe SDK. Min $5, max $10,000. Wallet is credited automatically on successful payment.

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?

Annotations already indicate mutation (readOnlyHint false) and side effects (openWorldHint true). Description adds: returns client_secret for Stripe SDK, wallet credited automatically on success, and amount limits.

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

Conciseness5/5

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

Three concise sentences, front-loaded with main action, no filler. Every sentence adds value.

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

Completeness4/5

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

Given output schema exists and sibling tools, description covers purpose, return value, constraints, and post-payment behavior. Could mention prerequisites or error handling but overall complete.

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

Parameters3/5

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

Schema coverage is 100% (descriptions for both parameters). Description adds dollar range (min $5, max $10,000) but otherwise doesn't add meaning beyond schema.

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

Purpose5/5

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

The description clearly states it creates a Stripe PaymentIntent to top up wallet credits, distinguishing it from sibling tools like wallet.balance (read) and wallet.crypto_deposit (crypto).

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

Usage Guidelines4/5

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

Provides clear constraints (min $5, max $10,000) and outcome (auto-credit on success), but does not explicitly compare to alternatives like wallet.crypto_deposit for crypto deposits.

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

wallet.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
Behavior3/5

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

Annotations already set readOnlyHint=true and destructiveHint=false, so the read-only nature is clear. Description adds no further behavioral details (e.g., pagination behavior, ordering, rate limits).

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

Conciseness5/5

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

Two sentences, front-loaded with purpose and usage hint. No fluff, every word earns its place.

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

Completeness4/5

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

Given presence of output schema and 100% parameter coverage, description covers core purpose and usage. However, it omits 'crypto_deposit' from the listed types, a minor gap.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all 3 parameters. Description merely echoes transaction type examples already in the enum, adding no new semantic value beyond the schema.

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

Purpose5/5

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

Clearly states the verb 'Get' and resource 'detailed transaction history', listing specific transaction types. Distinguishes from sibling tools like wallet.balance (balance check) and wallet.deposit (deposit action).

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

Usage Guidelines3/5

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

States 'Useful for cost analysis and budgeting' implying usage context, but does not explicitly define when to use vs. alternatives like wallet.balance for snapshot or wallet.transfer for specific operations.

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

wallet.transferAInspect

Transfer credits from your wallet to another company. Used for agent-to-agent settlement — e.g., paying a subcontractor agent for completed work. Max $5,000 per transfer.

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?

Annotations already indicate a write operation (readOnlyHint=false). The description adds value by disclosing a maximum per transfer ($5,000) and the target (another company), which are not in annotations. It does not contradict annotations.

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

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no fluff, front-loaded with the core action and followed by use case and limit. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, use case, and a key constraint. It does not mention prerequisites like sufficient balance, but the output schema likely handles return values, making it fairly complete for a low-complexity tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

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 beyond the schema by explaining the business context (agent-to-agent settlement) and constraining amount_cents with a max limit, enhancing parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

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,' providing a specific verb and resource. It distinguishes from sibling wallet tools like balance, history, and deposit by focusing on inter-company transfers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies the tool is 'Used for agent-to-agent settlement — e.g., paying a subcontractor agent for completed work,' giving clear context. However, it does not explicitly state when not to use it or name alternatives, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webhooks.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; description adds no further behavioral context (e.g., pagination, response details). With annotations covering safety, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with all necessary information, no redundancy or extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, existing output schema, and annotations, the description fully covers the tool's purpose and scope ('for this company') without missing essential information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema coverage is 100% vacuously; description does not need to add parameter info. Baseline for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

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 the verb (list) and resource (webhook subscriptions), distinguishing it from siblings like webhooks.subscribe and webhooks.unsubscribe.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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, but the purpose is clear enough that it is implied for viewing existing subscriptions; lacks explicit when-not-to-use or alternative tool mentions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webhooks.subscribeAInspect

Register a webhook URL to receive real-time event notifications. Events are POST-ed as JSON with HMAC-SHA256 signature in X-Webhook-Signature header. Available events: lead_created, lead_updated, quote_created, quote_accepted, job_created, job_completed, invoice_sent, payment_received.

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?

The description adds behavioral details beyond annotations: it explains that events are POST-ed as JSON with an HMAC-SHA256 signature in the header. This provides security context that annotations (readOnlyHint=false, openWorldHint=true) do not cover. It does not mention potential side effects like rate limits or retries, but the information is solid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the purpose, and includes a list of events. It is concise and efficient, though it could be slightly more structured by separating the event list into a bulleted format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

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 aspects: registration action, event delivery mechanism, and available events. With full schema coverage and an output schema present, it is fairly complete. It could mention that custom headers are supported and how to verify signatures, but overall it provides a solid understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with all four parameters described in the schema. The description adds value by summarizing the event types and the security mechanism, but it does not significantly enhance parameter-level understanding beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

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 'webhook URL', with the purpose of receiving real-time event notifications. It distinguishes itself from sibling tools like webhooks.list and webhooks.unsubscribe by specifying the action of subscribing to events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use this tool (to register a webhook for notifications) and implicitly separates from siblings, but does not explicitly list when not to use it or provide alternatives. Overall, the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

webhooks.unsubscribeAInspect

Remove a webhook subscription by ID. Stops all future event deliveries to that URL.

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?

Annotations indicate this is not read-only, and the description adds that it stops all future event deliveries, providing useful behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that are direct and contain no superfluous information. The action and consequence are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter destructive tool, the description covers the basic behavior and effect. It does not mention error handling or ID format, but is adequate given the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter is well-documented. The description reinforces the role of the ID but adds no new semantic meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (remove) and the resource (webhook subscription), and distinguishes it from the sibling tools webhooks.subscribe and webhooks.list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the need for a subscription ID (likely from webhooks.list), but does not explicitly state when to use it over alternatives or provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.approve_actionAInspect

Approve a pending draft action (quote, invoice, review request, SMS). The action will be executed immediately after approval.

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 that approval leads to immediate execution, which is key behavioral transparency. Annotations provide basic safety info, and the description adds execution timing. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, each providing necessary information: what it does and the immediate consequence. No superfluous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

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 functionality and outcome. With an output schema assumed, the description is sufficiently complete for a simple action. However, it could optionally mention prerequisites or error conditions, but not necessary for basic use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the parameter fully with a description. The tool description does not add extra semantics about the parameter beyond what is in the schema, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action (approve), the resource (pending draft action), and provides examples (quote, invoice, etc.), making it clear and distinct from sibling tools like workflows.reject_action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates usage for approving pending actions but does not mention when not to use or suggest alternatives like workflows.reject_action for rejecting. More guidance on selection criteria would improve clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.chase_paymentAInspect

Auto-chase overdue invoices with escalating SMS + email reminders (friendly → firm → final). Includes Stripe payment links. Pass jobId to chase specific invoice, or omit to scan all overdue. Requires Growth+ plan.

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
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: escalating tone pattern, inclusion of Stripe payment links, and auto-detection behavior for forceTone. Annotations indicate non-readOnly and non-destructive, which aligns. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct: two sentences that front-load the core functionality and then cover usage variants and requirements. Every sentence provides essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

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 and only two optional parameters, the description covers all essential aspects: purpose, usage modes, tone control, and plan requirement. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description enhances parameter understanding: for jobId, it clarifies 'Pass jobId to chase specific invoice, or omit to scan all overdue.' For forceTone, it notes 'Override tone: friendly, firm, or final. Auto-detected based on days overdue if omitted.' Schema coverage is 100%, so baseline is 3; the added nuance justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

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 specifies the resource (overdue invoices) and action (chase with reminders), distinguishing it from sibling workflows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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 (for overdue invoices) and how to invoke it (with optional jobId for specific invoice or omit to scan all overdue). It also mentions the requirement 'Requires Growth+ plan.' While it does not explicitly mention alternatives among siblings, the guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.daily_summaryAInspect

Generate an AI-powered end-of-day business summary with today's leads, quotes, jobs, revenue, and tomorrow's schedule. Sends via SMS + team channels. Requires Starter+ plan.

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 (SMS and team channels) and requires a Starter+ plan. Annotations confirm it is not read-only (readOnlyHint=false), non-destructive, and open-world. No contradictions exist. The description adds context about plan requirement and delivery methods beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, extremely concise, and front-loaded with the main purpose. Every word adds value, with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

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 (though not shown), the description sufficiently explains what the tool produces and delivers. It covers key aspects: content, delivery channels, and plan requirement. However, it omits details about error handling or delivery failures, but that is not critical for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with three optional parameters already described in the input schema. The description does not add details about parameter semantics (e.g., default values or constraints) beyond what the schema provides, so it meets the baseline but does not enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

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 AI-powered end-of-day business summary with specific content (leads, quotes, jobs, revenue, schedule) and delivery methods (SMS, team channels). It also mentions the Starter+ plan requirement, which distinguishes it from sibling analytics tools that provide on-demand reports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by indicating it is an automated daily summary sent via SMS and team channels. However, it does not explicitly state when to prefer this tool over siblings like analytics.dashboard or workflows.list, nor does it provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.follow_up_quoteAInspect

Follow up on unsigned/pending quotes with escalating nudge messages (up to 3 follow-ups). Pass quoteId for specific quote, or omit to scan all pending quotes past follow-up threshold. Requires Growth+ plan.

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?

Annotations indicate a write operation (readOnlyHint=false). The description adds behavioral details: escalating nudge messages up to 3 times, and scanning past a threshold. This goes beyond annotations, though it omits potential side effects like email sending logs or failure handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences efficiently convey purpose, behavior, parameter usage, and plan requirement with no redundancy. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one optional parameter, annotations, and likely an output schema, the description covers the core behavior, usage, and constraints. It lacks mention of return values or error states, but the output schema may compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single optional parameter quoteId has 100% schema description coverage. The tool description reinforces the usage pattern and introduces the concept of a 'follow-up threshold', adding meaningful context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'follow up' and the resource 'unsigned/pending quotes', specifying the escalating nudge behavior up to 3 follow-ups. It distinguishes between targeting a specific quote via quoteId and auto-scanning all pending quotes, effectively differentiating from sibling tools like workflows.chase_payment or workflows.quote_to_invoice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to pass a specific quoteId versus omitting it to scan all pending quotes past a threshold, and mentions the Growth+ plan requirement. However, it does not explicitly state when not to use this tool or compare it to alternatives like sending an invoice or manual follow-up via comms.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.google_ads_pipelineAInspect

Process a Google Ads lead through the full zero-touch pipeline: AI summary → auto-quote → auto-schedule → SMS → team notify. Tags lead as High priority with ad campaign attribution.

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 indicate it's not read-only (false) and not idempotent (false), aligning with the description's list of write operations (e.g., auto-quote, auto-schedule, SMS). The description adds value by detailing the exact pipeline steps, which is beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the purpose, pipeline steps, and output tags. It is well front-loaded with the main verb and resource, and every element serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the pipeline stages and tagging behavior. An output schema exists, so return values are not needed. It does not mention prerequisites (e.g., lead must exist) but these are implied by the tool name and parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

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. The tool description adds minimal extra meaning beyond listing the pipeline steps, and does not expand on parameter usage or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool processes a Google Ads lead through a specific pipeline, listing the steps (AI summary, auto-quote, etc.) and the outcome (tag as High priority with ad campaign attribution). This differentiates it from sibling tools like workflows.process_lead by specifying the source (Google Ads) and the full zero-touch pipeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for Google Ads leads needing automated processing, but does not explicitly state when to use this tool over alternatives like workflows.process_lead or workflows.instant_response. However, the specificity of the name and steps provides clear contextual guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.instant_responseAInspect

Send an instant SMS + optional WhatsApp follow-up to a new lead within 30 seconds. Fires branded SMS templates for Growth+ plans.

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?

The description discloses timing (within 30 seconds) and plan restrictions (Growth+ plans), adding value beyond annotations which only indicate readOnlyHint=false and destructiveHint=false. However, it does not mention potential costs, rate limits, or prerequisites like lead existence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the key action and includes essential details (timing, plan). Every part earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

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 100% schema coverage, the description is fairly complete. It covers the core functionality but could be enhanced by mentioning prerequisites (e.g., Growth+ plan required) or downstream effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

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 well. The description adds little beyond the schema, only hinting at 'optional WhatsApp follow-up' matching includeWhatsApp. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

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: sending an instant SMS and optional WhatsApp follow-up to a new lead within 30 seconds. It specifies the target (new lead) and timing, and mentions branded SMS templates for Growth+ plans, which distinguishes it from other communication tools like comms.send_sms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for quick responses to new leads within 30 seconds, but does not explicitly state when not to use it or provide alternatives. Sibling tools like comms.send_sms and comms.send_email exist but no guidance is given for choosing between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.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
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint and idempotentHint, so the description does not need to restate safety. It adds context about what fields are returned, which is useful beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

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 is concise 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 simple nature of the tool (one optional parameter, output schema exists), the description provides sufficient context for an agent to understand what the tool does and when to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description does not provide additional meaning beyond what the schema already says about the 'enabled' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists all workflow templates and specifies the returned fields (trigger events, action types, enabled status). It uses a specific verb and resource, distinguishing it from other workflow action tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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 (to list all templates) but does not explicitly exclude cases or mention alternatives. With many sibling workflow tools, explicit guidance would help but is not entirely missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.pending_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 and idempotentHint. Description adds context that actions are auto-generated by the workflow engine and need manual review, enhancing transparency without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff, front-loaded with key purpose and examples. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

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, presence of output schema, and thorough annotations, the description covers purpose, source, and scope completely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema already describes both parameters with 100% coverage. Description does not add significant meaning beyond 'status' filter and 'limit' defaults, meeting baseline but not exceeding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'list pending workflow actions awaiting approval' and provides specific examples (draft quotes, invoices, review requests, SMS), distinguishing it from sibling tools like approve_action and reject_action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage for viewing actions needing manual review, but does not explicitly state when not to use or list alternatives. Context from sibling names provides some differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.process_leadAInspect

Full pipeline processing for a new lead: AI analysis → auto-quote from service catalog → job creation → Google Calendar sync → customer SMS → team Slack/Discord notification. The 'one-tap' lead processing pipeline.

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?

Annotations already indicate mutability (readOnlyHint: false) and non-destructiveness. The description adds behavioral context by enumerating the pipeline steps (AI analysis, auto-quote, job creation, etc.), which informs the agent about the tool's side effects beyond what annotations provide. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler: the first lists the pipeline steps efficiently, and the second summarizes it as a 'one-tap' pipeline. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the end-to-end process and acknowledges the existence of an output schema (not shown but context confirms it exists). It lacks prerequisites (e.g., valid leadId) but is otherwise complete for a pipeline tool with well-documented parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is documented. The description further enhances meaning by mapping the parameters (autoQuote, notifyTeam, autoSchedule, notifyCustomer) to specific steps in the pipeline, reinforcing their purpose in the overall process.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Full pipeline processing for a new lead' and lists a sequence of specific actions (AI analysis, auto-quote, job creation, calendar sync, SMS, notifications), making it highly distinguishable from sibling tools that are narrower in scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates this is a 'one-tap' pipeline for new leads, implying it should be used for initial lead processing. While it doesn't explicitly list when not to use it, the context of siblings (e.g., workflows.chase_payment) provides natural differentiation, so the guidance is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.quote_to_invoiceAInspect

Convert an accepted quote into a full invoice pipeline: create/update job → sync invoice to accounting (Xero/QB/MYOB) → generate Stripe payment link → notify customer → alert team. Handles the entire quote-accepted → paid lifecycle.

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
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses the multi-step pipeline, including side effects like creating/updating jobs, syncing to accounting systems, generating payment links, and sending notifications. This adds value beyond the annotations (readOnlyHint=false, destructiveHint=false) by detailing the specific actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and each sentence adds meaningful detail without redundancy. It is efficiently structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/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 workflow and the existence of an output schema, the description covers the entire lifecycle from quote acceptance to invoice payment. No additional context is needed for an agent to understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all three parameters with descriptions (100% coverage). The description does not add significant new semantics beyond what the schema already provides, such as default due date behavior. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

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 lists specific steps (create/update job, sync to accounting, generate payment link, notify, alert), distinguishing it from other workflow tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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 (when a quote is accepted) but does not explicitly state when not to use or mention alternative tools like workflows.trigger_invoice. However, the context is clear enough for an agent to infer appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.referral_programBInspect

Manage referral program: generate referral codes for customers, send referral invites via SMS, track referral usage, and check rewards/stats. Requires Growth+ plan.

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
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate non-read-only and non-destructive behavior. The description adds context about supported actions and the plan requirement, but does not detail side effects like SMS sending or code generation limits. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the main purpose and lists actions efficiently. It is concise without waste, though a structured format might improve readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/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, the description does not need to explain return values. It covers the overall purpose and plan requirement but does not explicitly link actions to their required parameters, which is partially handled by the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptive parameter descriptions. The description groups actions but does not add additional semantics beyond what the schema already provides, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages a referral program with specific actions (generate codes, send invites, track usage, check rewards), providing a specific verb and resource. However, it does not differentiate from the sibling tool 'ecosystem.referral_link', which may have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by listing actions and mentions a plan requirement ('Requires Growth+ plan'), but it does not explicitly state when to use this tool versus alternatives, nor does it provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.reject_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?

Annotations indicate write operation, idempotent, and non-destructive. Description adds that the action will not be executed, which is consistent. However, no additional behavioral details such as side effects or state changes beyond the basic operation are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences succinctly convey the action and result with no unnecessary words. Information is front-loaded and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple rejection tool, the description covers the essential purpose and outcome. With an output schema present, no need to detail return values. Context is complete given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions of 'actionId' and 'reason'. The description does not add any additional meaning beyond what the schema already provides, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'reject/ignore' and the resource 'pending draft action'. It implicitly distinguishes from the sibling 'workflows.approve_action' by stating the action will not be executed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the outcome (action not executed) but does not explicitly state when to use this tool over alternatives like 'workflows.approve_action'. No exclusion criteria or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.review_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
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotentHint=true and destructiveHint=false. The description adds that it sends an SMS with specific content, but does not disclose potential costs, failure handling, or whether the SMS is always sent. This provides some additional context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no fluff. The first sentence states the action and content, the second adds a requirement. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

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, full param coverage, and existence of an output schema, the description is largely complete. It covers purpose, trigger, content, and plan requirement. Missing details like handling of failures or retries, but these are not critical for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 (jobId required, delayMinutes with default). The description reinforces the meaning by stating the default is typically 2 hours, adding value over the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends an automated review request SMS after job completion, including a Google Review link and AI-suggested text. This distinguishes it from siblings like 'reviews.request', which may involve manual or different triggers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies that the tool requires a Growth+ plan with SMS automations and implies usage after job completion. However, it does not explicitly mention when not to use it or alternatives like 'reviews.request' for manual requests.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.schedule_jobAInspect

Smart-schedule a job for a lead — auto-picks next business day, syncs to Google Calendar, generates a Calendly booking link, and sends SMS confirmation.

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
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds significant behavioral context beyond annotations: mentions external integrations (Google Calendar, Calendly, SMS) and temporal logic (auto-picks next business day). Annotations already indicate write and open-world, so description enriches transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single dense sentence front-loads the core purpose with a dash-separated list of features. No unnecessary words; efficient and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main behavior and side effects, but could mention prerequisites like requiring active Google Calendar/Calendly integrations. Output schema exists so return values are handled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 5 parameters have detailed descriptions in the schema, so the description provides no additional parameter-level value. Baseline 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool 'Smart-schedule a job for a lead' and lists specific actions: auto-picks next business day, syncs to Google Calendar, generates Calendly link, sends SMS. This distinguishes it from siblings like jobs.create and other workflow tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the description (scheduling a job with automated features), but no explicit guidance on when to use or not use it, nor comparisons to alternatives like jobs.create for simple creation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.sync_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
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false (write), destructiveHint=false, and idempotentHint=true. The description adds that it's a 'force-sync' for retries, but does not elaborate further on side effects or permissions. Adequate given annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first defines the action and scope, the second gives use cases. No unnecessary words, highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

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 purpose and typical use cases. It could mention that it syncs to all connected integrations (which it does), but this is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully describes the single required parameter 'leadId' with a clear description. The description does not add additional meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool force-syncs a lead/contact to all connected integrations, specifying verb (sync) and resource (lead/contact). It distinguishes from siblings like workflows.process_lead by focusing on syncing across integrations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says it's useful for retrying failed syncs or manually triggering sync for existing leads, providing clear context. It does not mention when not to use or alternatives, but the purpose is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.team_notifyAInspect

Send a rich, contextual notification to all connected team channels (Slack/Discord/Teams). Auto-enriches with AI summaries and action links based on event type.

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 indicate readOnlyHint=false and destructiveHint=false. The description adds that notifications are 'rich' and 'contextual' with AI enrichment, but does not detail behavioral aspects like required permissions, idempotency, or limits. With annotations present, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences that front-load the purpose. No redundant information is included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions supported channels (Slack/Discord/Teams) and AI enrichment. An output schema exists to document return values. Additional context about error handling or rate limits would improve completeness, but the current level is adequate for a notification tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 4 parameters. The description mentions AI enrichment and contextual notifications, which aligns with the enrichWithAI parameter, but does not add substantial semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends a notification to team channels (Slack/Discord/Teams) and mentions auto-enrichment with AI summaries and action links. It distinguishes from sibling communication tools like comms.send_email and comms.send_sms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/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 vs alternatives. There is no mention of prerequisites, exclusions, or specific scenarios, despite many sibling tools in the workflows namespace.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.toggleA
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
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotent and non-destructive behavior; the description confirms the toggle action but adds no further behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of seven words, front-loaded with the core action, no superfluous content. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple toggle tool with output schema present, the description is mostly adequate. It could mention effects on ongoing workflows but is sufficient for basic use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

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 does not add meaning beyond the schema, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (enable or disable) and the resource (workflow template), distinguishing it from sibling tools like workflows.approve_action or workflows.reject_action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like workflows.approve_action or workflows.chase_payment. The description lacks context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.trigger_invoiceAInspect

Generate and send an invoice for a completed job. Auto-pushes to connected accounting software (Xero/QuickBooks/MYOB/FreshBooks), generates Stripe payment link, and notifies the customer via SMS. Full pipeline: invoice → accounting sync → payment link → customer notification → team alert.

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?

The description details the full pipeline beyond annotations: auto-push to accounting, Stripe payment link generation, SMS notification, and team alert. Annotations confirm it is not read-only, not idempotent, and not destructive, and the description adds rich behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first provides the core action and summary, second enumerates the pipeline stages concisely. No extraneous words, and front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (multiple integrations, notifications) and presence of an output schema, the description covers the pipeline adequately. It could optionally mention prerequisites like accounting connection setup, but overall sufficient for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

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 tool description does not add new parameter-specific meaning beyond repeating 'jobId required, dueInDays default, includePaymentLink default'. The schema already captures parameter details well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

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 and sends an invoice for a completed job, with a detailed pipeline including accounting sync, Stripe payment link, SMS notification, and team alert. It distinguishes from siblings like 'invoicing.generate' by emphasizing the automated end-to-end workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for completed jobs requiring invoicing, but does not explicitly exclude alternatives like 'invoicing.generate' or 'billing.create_checkout'. No when-not or guidance on when to prefer this tool over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows.upsell_suggestAInspect

AI-powered upsell/cross-sell engine. Analyzes customer job history against service catalog to suggest additional services. Can auto-generate draft quotes. Requires Pro plan.

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
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations set readOnlyHint=false, which aligns with the description stating it can auto-generate draft quotes (a mutation). The description adds transparency by noting the Pro plan requirement and the ability to create quotes. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with four short sentences. It is front-loaded with the core purpose ('AI-powered upsell/cross-sell engine'), each sentence adds distinct information, and there is no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only 3 optional parameters and an output schema (not shown), the description adequately covers key aspects: purpose, parameter use cases, auto-quote capability, and plan requirement. It could be more complete by mentioning potential alternatives or limitations, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions. The description largely echoes the schema for each parameter (e.g., 'Analyze specific completed job' for jobId) but adds marginal context like 'More comprehensive' for leadId and the ability to auto-generate quotes. The baseline is 3 due to full schema coverage, and the description provides only slight additional value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title 'Upsell Engine' and description clearly state it's an AI-powered upsell/cross-sell engine that analyzes customer job history against the service catalog to suggest additional services. It distinguishes itself from sibling tools like 'quotes.ai_price_suggestion' by focusing on job history analysis and auto-quote generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance on when to use jobId vs leadId ('Analyze specific completed job' vs 'More comprehensive for all jobs'), and mentions that autoQuote can auto-generate draft quotes. It also notes a prerequisite ('Requires Pro plan'), but does not explicitly state when not to use or mention alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources