Skip to main content
Glama

Server Details

Ask your AI assistant about your Savi Tools business: invoices, expenses, mileage, and more.

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.2/5 across 25 of 25 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a specific financial, client, project, or tax aspect with clear, distinct descriptions. Overlaps like get_cost_summary vs get_expense_summary are resolved by explicit scope differences (costs include mileage and bills; expenses are line-item). No two tools serve the same purpose.

Naming Consistency5/5

All 25 tools follow a strict `verb_noun` pattern: `get_` for detailed summaries and `list_` for enumerations. No mixed conventions (camelCase, abbreviations) are present, making the pattern predictable for an agent.

Tool Count4/5

At 25 tools, the set is on the larger side but fully justified by the breadth of the domain (financial summaries, clients, projects, taxes, contacts, time, mileage). Each tool covers a distinct slice; minor redundancies (e.g., cost vs expense summary) are acceptable due to nuanced differences.

Completeness4/5

The surface covers essential business operations: revenue, costs, expenses, cash, invoices, bills, projects, clients, contacts, taxes, time, mileage, and goals. Notably missing are any mutation tools (create/update), but the server appears intentionally read-only (analytics/reporting). For that purpose, the coverage is strong.

Available Tools

25 tools
get_1099_summary1099 summaryA
Read-only
Inspect

Summary of the 1099-NEC amounts owed to contractors for a tax year, per vendor and in total, with the filing deadline. Answers "which contractors need a 1099 this year?"

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoTax year. Defaults to the current year.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
totalYes
taxYearYes
vendorsYes
filingDeadlineYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it provides amounts owed per vendor and total, plus the filing deadline, which gives context beyond the annotations. However, it does not disclose behaviors like rate limits or authentication needs, but these are less critical for a read-only summary.

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

Conciseness5/5

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

Two sentences that front-load the purpose and include a specific question answer. Every sentence adds value 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?

For a read-only summary tool with an output schema and a single optional parameter, the description is complete. It explains what the summary contains (per vendor, total, filing deadline) and the type of question it answers.

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 'year', which already describes its purpose and default. The description adds no additional parameter semantics 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 states it provides a summary of 1099-NEC amounts owed to contractors by tax year, per vendor and total, with filing deadline, and answers a specific question: 'which contractors need a 1099 this year?' This is specific and distinguishes it from sibling summary tools like get_cash_summary or get_expense_summary.

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 it ('which contractors need a 1099 this year?'), but it does not explicitly state when not to use it or compare to alternatives. The use case 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.

get_business_profileBusiness profileA
Read-only
Inspect

The business’s own profile: legal name, entity type, the tax return it files, accounting method, fiscal year, industry, and address. Answers "what tax form does my business file and what is my fiscal year?"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
einYes
addressYes
orgModeYes
industryYes
ownerNameYes
entityTypeYes
taxElectionYes
businessNameYes
fiscalYearEndYes
taxReturnFormYes
accountingMethodYes
taxReturnFormLabelYes
expenseBillingPolicyYes
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false. The description adds value by listing specific fields and the question answered, 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 filler, front-loaded with key purpose and field list. Extremely 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 output schema exists, the description covers all needed context: what data is returned and why it's used. Perfect for a 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?

No parameters exist, so description doesn't need to add param info. Baseline 4 for zero-parameter tools 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 the business's own profile with specific fields like legal name, entity type, tax return, etc. It answers a concrete question, distinguishing it from sibling tools like get_client_summary.

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

Usage Guidelines4/5

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

The description implicitly conveys usage context by specifying it's the business's own profile, and no alternative for this purpose exists among siblings. However, it lacks explicit when-not or alternative guidance.

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

get_business_snapshotBusiness snapshotA
Read-only
Inspect

One-look snapshot of the business right now: money in, money out, net, outstanding invoices, bills owed, and how much tax to set aside. Answers "how is my business doing this year?"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
netYes
periodYes
moneyInYes
moneyOutYes
billsOwedYes
outstandingYes
taxSetAsideYes
accountingMethodYes
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating safe reading. The description adds detail on what data is returned (money in/out, net, etc.), which is useful context, but does not disclose any additional behavioral traits 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?

The description is a single, well-structured sentence followed by a clarifying question-answer. Every phrase adds value, and it is front-loaded with 'One-look snapshot' to immediately convey the 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 no parameters, good annotations, and the existence of an output schema, the description adequately explains what the tool returns. It covers all major financial categories mentioned. Could be slightly more explicit about tax set-aside meaning, but overall complete for a zero-param 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?

There are no parameters, and schema description coverage is 100%. The description does not need to add param info; it effectively explains the single output the tool provides. Score 4 is baseline for no parameters.

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

Purpose5/5

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

The description clearly states it provides a 'one-look snapshot' covering key financial metrics (money in/out, net, invoices, bills, tax set-aside). It answers the high-level question 'how is my business doing this year?' which distinguishes it from sibling tools like get_revenue_summary or get_expense_summary that drill into specific areas.

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

Usage Guidelines4/5

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

The description implicitly suggests using this tool for a broad overview when asking 'how is my business doing this year?' It does not explicitly list when NOT to use it or name alternatives for granular details, but the context of many sibling tools makes the use case clear.

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

get_cash_summaryCash summaryA
Read-only
Inspect

Cash position from bank activity: money in, money out, net, and how many transactions still need review. Answers "how much cash has moved through my accounts?"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
netYes
moneyInYes
moneyOutYes
committedCountYes
pendingReviewCountYes
uncategorizedCountYes
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context about using bank activity and including review counts, but does not address auth needs, rate limits, or behavior with no data. It is adequate but not rich 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 no wasted words. Front-loaded with the core purpose ('Cash position from bank activity'). Every sentence contributes meaningful 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?

For a tool with no input parameters and an output schema (presumably documented separately), the description covers the key outputs and purpose. It is fully sufficient for an agent to understand what to expect.

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

Parameters4/5

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

There are zero parameters, and schema coverage is 100%. The description adds value by clarifying what the returned summary includes (money in/out, net, review count), which is useful context even though no parameter details are needed.

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 cash position from bank activity, listing specific outputs (money in, out, net, review count). It answers a clear question. However, it does not explicitly differentiate from sibling summary tools like get_expense_summary or get_revenue_summary, so it loses a point for lack of differentiation.

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

Usage Guidelines2/5

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

The description explains what the tool does but provides no guidance on when to use it versus alternatives. No exclusions or context are given, leaving the agent to infer usage from the tool name alone.

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

get_client_summaryClient summaryA
Read-only
Inspect

A single client’s summary: total invoiced, paid, outstanding, expenses, active projects, and last invoice date. Answers "how much has Acme paid me and what do they still owe?"

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesClient name to look up.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cityYes
nameYes
paidYes
notesYes
stateYes
expensesYes
invoicedYes
outstandingYes
billingEmailYes
activeProjectsYes
lastInvoiceDateYes
billingFrequencyYes
billingTermsDaysYes
Behavior3/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, so the description does not need to restate those. The description adds details about the returned fields (invoiced, paid, etc.) but does not disclose any additional behavioral traits such as data freshness, permissions, or latency. With annotations covering the safety profile, 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?

Two highly efficient sentences: the first enumerates the summary contents, the second provides a concrete example question. No unnecessary words, and the key 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?

For a simple read-only lookup tool with one parameter and an available output schema, the description sufficiently covers the return fields and use case. It tells the agent exactly what data to expect and when to invoke.

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 'name', and the description in the schema already says 'Client name to look up.' The description does not add any extra meaning beyond that. Baseline 3 is correct.

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 returns a single client's summary with specific fields (total invoiced, paid, outstanding, etc.) and provides an example question ('how much has Acme paid me...'), making the purpose unmistakable. It distinguishes from siblings like get_contact_summary or get_invoice_details by focusing on client-level financial overview.

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 client financial overview but does not explicitly state when to use this tool versus alternatives like get_contact_summary or get_invoice_details. No when-not guidance or alternative tool names are provided, though the example question gives some context.

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

get_contact_historyContact historyA
Read-only
Inspect

Search the subscriber’s own contacts by name, company, industry, or profession. Returns each match with phone/mobile/email, title, company, industry, tags, and relationship history. Answers "I am about to call the Chens, what is our history?" and "list my real-estate contacts with their phone numbers." Contacts flagged doNotShare asked not to be passed along.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesName or company to search for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
Behavior4/5

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

Annotations already mark the tool as read-only and non-destructive. The description adds behavioral context: it returns specific fields (phone, email, etc.) and notes that flagged contacts are not passed along. This provides useful behavioral 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?

The description is two sentences with an example, no wasted words, and front-loads the action and key searchable fields. 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 is a simple read-only search with one parameter and an output schema exists, the description covers all necessary context: what to search, what is returned, and a behavioral note about sharing. Adequate for an agent to use correctly.

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

Parameters4/5

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

With 100% schema description coverage, the schema already documents the 'query' parameter. The description adds meaning by listing the types of searches (name, company, industry, profession) and the returned fields, enriching the parameter's semantics.

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

Purpose5/5

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

The description clearly states the tool searches the subscriber's own contacts by multiple criteria (name, company, industry, profession) and lists returned fields. The sibling tools are all financial summaries, making this contact search distinct. Examples of questions it answers further clarify 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 explicit search criteria and return fields, with examples. It also mentions a behavioral condition about contacts flagged 'doNotShare'. While it doesn't state when not to use or name alternatives, the context from siblings is sufficient.

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

get_contact_summaryContact summaryA
Read-only
Inspect

Rolodex overview: how many contacts the subscriber has, how many have a phone or email, and the top industries and tags. Answers "how many contacts do I have?" and "what industries are my contacts in?" Use get_contact_history to look up specific people.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
byTagYes
withEmailYes
byIndustryYes
totalContactsYes
markedDoNotShareYes
withPhoneOrMobileYes
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, so safety is clear. Description adds specific behavioral context: returns summary statistics (counts, top industries/tags), not raw data. No contradictions.

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

Conciseness5/5

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

Two sentences, no wasted words. First sentence defines output, second gives example questions and redirects to sibling. Front-loaded and efficient.

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

Completeness5/5

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

Given 0 parameters, complete annotations (readOnly, not destructive), and presence of output schema, the description fully informs an agent about what the tool does, what it returns, and how it differs from alternatives.

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?

Tool has no parameters, so schema coverage is 100% by default. Description does not need to explain parameters but adds meaning by stating what the summary includes, which is helpful.

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

Purpose5/5

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

Description uses specific verbs ('get', 'overview') and resource ('contact summary'). Defines exact output: counts of contacts, those with phone/email, top industries and tags. Answers concrete questions. Distinguishes from sibling get_contact_history, which focuses on individual lookups.

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 tells when to use: for aggregate overview and specific questions. Directs to get_contact_history for looking up specific people, providing clear alternative.

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

get_cost_summaryCost summaryA
Read-only
Inspect

All business costs for a period — expenses, mileage, and contractor bills — with by-category and by-month breakdowns. Answers "what were my total costs last quarter?"

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoA 4-digit year, or this_year / last_year / this_quarter / last_quarter. Omit for the current fiscal year.

Output Schema

ParametersJSON Schema
NameRequiredDescription
periodYes
byMonthYes
byCategoryYes
grandTotalYes
accountingMethodYes
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 specifying the types of costs included and the breakdowns, which go 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 concise with two sentences, front-loading the purpose and an example query. 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 input schema, output schema presence, and annotations, the description covers all necessary context for a filtered-summary tool.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'period'. The description does not add meaningful extra detail beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves all business costs (expenses, mileage, contractor bills) for a period with breakdowns. It answers a specific query and is distinct from siblings like get_expense_summary or get_mileage_summary.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (e.g., 'what were my total costs last quarter?'). It does not explicitly exclude alternatives, but the scope is well-defined.

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

get_expense_summaryExpense summaryB
Read-only
Inspect

Total expenses for a year with by-category and by-month breakdowns. Answers "what did I spend on software this year?" or "where is my money going?"

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoCalendar year. Defaults to the current year.
categoryNoOptional category name to filter to (e.g. "Software & Subscriptions").

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
totalYes
periodYes
byMonthYes
byCategoryYes
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's behavior is consistent. It adds context about output structure (by-month breakdowns) but doesn't disclose other traits like pagination or data recency. With strong annotations, a 3 is appropriate.

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

Conciseness5/5

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

Two concise sentences. Front-loaded with the core purpose, followed by illustrative examples. No unnecessary words.

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

Completeness4/5

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

Given the presence of an output schema (not shown but signaled), high schema coverage, and annotations, the description is nearly complete. It covers purpose, breakdown structure, and example queries, but could benefit from mentioning that results default to the current year if no year is specified.

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 params have descriptions). The description adds minimal meaning beyond the schema, only implying that the 'category' param filters the breakdown. Baseline 3 is correct.

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 'Total expenses for a year with by-category and by-month breakdowns' and provides concrete example questions (e.g., 'what did I spend on software this year?'), making the purpose obvious. While it implicitly distinguishes from siblings by focusing on expenses, it does not explicitly differentiate from similar tools like get_cost_summary or get_cash_summary.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The examples hint at use cases ('where is my money going?'), but there is no mention of when not to use it or comparison with sibling tools like get_cash_summary or get_revenue_summary.

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

get_goals_progressGoals progressA
Read-only
Inspect

Progress toward the subscriber’s business goals: each outcome, its success signals, current vs. target, and percent complete. Answers "how am I tracking against my goals this year?"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
outcomesYes
signalCountYes
outcomeCountYes
overallProgressPercentYes
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds value by detailing the returned data (outcomes, success signals, targets, percentage complete), which is beyond what annotations provide.

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

Conciseness5/5

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

Two sentences, no filler, and the purpose is front-loaded. Every word 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 zero-parameter, read-only tool with an output schema, the description fully covers 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.

Parameters4/5

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

The tool has zero parameters and schema coverage is 100%. The description does not need to add parameter details, so baseline 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?

The description clearly states the tool retrieves progress toward business goals, including outcomes, success signals, current vs. target, and percent complete. It answers a specific user question and is distinct from sibling tools like get_business_snapshot.

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 directly states the use case: answering 'how am I tracking against my goals this year?' This provides clear context but does not explicitly exclude other scenarios or mention alternatives.

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

get_invoice_detailsInvoice detailsA
Read-only
Inspect

Full detail for one invoice — status, amounts, line items, payments, and balance due — found by invoice number or client name. Answers "what is on invoice 1042?" or "what does the Acme invoice still owe?"

ParametersJSON Schema
NameRequiredDescriptionDefault
number_or_clientYesInvoice number or client name to look up.

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesYes
totalYes
paidAtYes
statusYes
dueDateYes
currencyYes
paymentsYes
subtotalYes
issueDateYes
lineItemsYes
taxAmountYes
amountPaidYes
balanceDueYes
clientNameYes
invoiceNumberYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is clearly safe and read-only. The description adds behavioral context by specifying lookup methods (by invoice number or client name) and return contents.

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, with the first sentence stating the core purpose and the second providing concrete examples. 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 parameter and existence of an output schema, the description adequately covers what the tool does, how to use it, and what it returns. It includes high-level return fields and lookup options.

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

Parameters4/5

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

The schema already describes the parameter, but the description adds value by clarifying that either invoice number or client name is accepted and by providing example queries. This goes beyond the schema's description.

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

Purpose5/5

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

The description clearly states 'Full detail for one invoice' and lists specific components (status, amounts, line items, payments, balance due). It distinguishes from sibling summary tools like get_cash_summary and list_outstanding_invoices.

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

Usage Guidelines4/5

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

The description provides example queries ('what is on invoice 1042?', 'what does the Acme invoice still owe?') that illustrate when to use the tool. It does not explicitly mention alternatives or when not to use, but the context of siblings makes it clear.

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

get_mileage_summaryMileage summaryA
Read-only
Inspect

Total business miles and IRS mileage deduction for a calendar year, with a per-type breakdown. Answers "what is my mileage deduction so far this year?"

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoCalendar year, e.g. 2026. Defaults to the current year.

Output Schema

ParametersJSON Schema
NameRequiredDescription
yearYes
byTypeYes
tripCountYes
totalMilesYes
totalDeductionValueYes
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds only the context of per-type breakdown and answering a specific question. No additional behavioral traits (e.g., rate limits, data freshness) are disclosed, making this adequate but not outstanding.

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 key information, and contains no unnecessary words. Every sentence adds value: first states what it does, second provides a concrete query it answers.

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

Completeness5/5

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

Given that an output schema exists (so return values are documented), the description sufficiently covers the tool's purpose and scope. It mentions calendar-year scope and per-type breakdown, which are key contextual details for a simple read-only tool.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'year', and the description adds no extra semantics beyond what the schema provides ('Calendar year, e.g. 2026. Defaults to the current year.'). The 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 returns total business miles and IRS mileage deduction for a calendar year with a per-type breakdown. It explicitly answers the intended question, and the resource (mileage summary) is distinct from sibling tools like get_cash_summary or get_expense_summary.

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

Usage Guidelines4/5

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

The description implicitly tells when to use (for mileage deduction queries in a calendar year), but does not explicitly contrast with alternatives or provide exclusions. Given the tool's specialized nature, the usage context is clear enough for an AI agent.

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

get_profitabilityProfitabilityA
Read-only
Inspect

Revenue vs. costs, net profit, and margin over a period, optionally broken down by client. Answers "am I profitable this year?" or "which client is most profitable?"

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoA 4-digit year, or this_year / last_year / this_quarter / last_quarter. Omit for the current fiscal year.
byClientNoInclude a per-client profitability breakdown.

Output Schema

ParametersJSON Schema
NameRequiredDescription
periodYes
byMonthYes
summaryYes
byClientNo
accountingMethodYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it returns profitability metrics but no further behavioral details needed. 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, zero wasted words. Front-loaded with the key metrics and ends with example questions. Highly efficient.

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

Completeness5/5

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

For a tool with 2 optional params, no nested objects, and an output schema (implied), the description sufficiently explains what it returns and when to use it. No gaps.

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

Parameters4/5

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

Schema covers both parameters fully, but description adds context ('over a period', 'broken down by client') and provides example values for period, adding 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 it computes 'Revenue vs. costs, net profit, and margin' and provides example queries like 'am I profitable this year?' which distinguishes it from sibling summary tools like get_revenue_summary or get_cost_summary.

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

Usage Guidelines4/5

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

The description gives explicit example use cases ('am I profitable this year?', 'which client is most profitable?') indicating when to use it. It does not explicitly list alternatives, but the context of sibling tools makes it clear.

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

get_project_summaryProject summaryA
Read-only
Inspect

A single project’s summary: hours logged vs. budget, billable hours, expenses, and mileage. Answers "how many hours are left in the Acme redesign budget?"

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name to look up.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
expensesYes
isActiveYes
clientNameYes
budgetHoursYes
hoursLoggedYes
projectTypeYes
billableHoursYes
fixedFeeAmountYes
hoursRemainingYes
mileageDeductionYes
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the agent knows it's safe. The description adds useful behavioral context about what the summary contains (hours, budget, expenses, mileage) beyond the annotations, though it could mention that no data is modified.

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 immediately states the function and provides a concrete example, making it easy to parse.

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, the description does not need to explain return values. It covers the essential scope of the tool (single project summary with key metrics) and is complete for a read-only lookup 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% and the parameter 'name' is well-described as 'Project name to look up.' The description does not add additional semantics beyond identifying the parameter's role within the tool's purpose, which is adequate but not exceptional.

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

Purpose5/5

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

The description clearly states the tool provides a summary of a single project's hours logged vs. budget, billable hours, expenses, and mileage. It gives a concrete example question that demonstrates its specific purpose, distinguishing it from sibling tools that focus on individual metrics like time or expenses.

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 obtaining a holistic overview of a single project, but does not explicitly state when to use this tool over alternative summary tools like get_time_summary or get_expense_summary. The sibling list is provided, but guidance on when-not-to-use is absent.

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

get_revenue_summaryRevenue summaryA
Read-only
Inspect

Total revenue with month-by-month and by-client breakdowns and any direct deposit income. Answers "how much have I made this year and who are my top clients?"

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoCalendar year. Omit to use the current fiscal year.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
periodYes
byMonthYes
byClientYes
invoiceCountYes
depositRevenueYes
accountingMethodYes
Behavior4/5

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

Annotations already mark it as read-only and non-destructive. The description adds transparency by detailing the breakdown dimensions (monthly, by client, direct deposit income) beyond what annotations cover. It does not mention any limitations or permissions, but the overall safety profile is clear.

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

Conciseness5/5

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

The description is extremely concise with two sentences that front-load the main purpose and key breakdowns. Every word adds value, with 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 presence of an output schema, the description does not need to explain return values. It covers the essential behavioral context (breakdowns, direct deposit) and answers common user intents. It could be slightly more detailed about the structure of breakdowns, but overall it is complete enough for a tool with one 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?

The input schema has 100% coverage with a well-described 'year' parameter. The description does not add any new information about the parameter, but the baseline score is 3 due to full schema coverage. No contradiction or additional context needed.

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

Purpose5/5

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

The description clearly states it provides total revenue with month-by-month and by-client breakdowns, and directly answers specific business questions. It is much more specific than just 'revenue summary', distinguishing it from sibling tools like get_cash_summary or get_cost_summary.

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

Usage Guidelines4/5

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

The description implicitly guides usage by stating the exact questions it answers ('how much have I made this year and who are my top clients?'), which helps select the tool for revenue analysis. However, it does not explicitly contrast with siblings or state 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.

get_tax_deductionsTax deductionsA
Read-only
Inspect

Deductible costs mapped onto the lines of the tax return the business actually files (Schedule C, 1120, 1120-S, 1065, or 990), with entity-aware treatment (meals at 50%, etc.). Answers "what are my deductions this year and where do they land on my return?"

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoCalendar year. Omit to use the current fiscal year.

Output Schema

ParametersJSON Schema
NameRequiredDescription
formYes
linesYes
methodYes
formLabelYes
periodEndYes
periodStartYes
totalDeductionsYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context: entity-aware treatment (e.g., meals at 50%) and mapping to return lines. No contradictions, and the extra info aids agent 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.

Conciseness4/5

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

Description is a single sentence that packs core information efficiently, though slightly lengthy. It is front-loaded with the primary action and key differentiators. No unnecessary words, but could be broken into two sentences for readability.

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

Completeness4/5

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

Given the tool's complexity (multiple return types, entity-aware treatment) and the presence of an output schema, the description adequately covers what the tool returns and its functionality. It does not mention edge cases or prerequisites, but the core behavior is 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% for the only parameter ('year' with explanation). The description adds no additional parameter semantics beyond what the schema provides. Baseline of 3 is appropriate as the schema does the heavy lifting.

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

Purpose5/5

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

Description uses specific verb 'get' with clear resource 'tax deductions' and explains mapping to tax return lines with entity-aware treatment. It directly answers the user's question about deductions per year and their placement on the return. This distinctively sets it apart from sibling tools like get_expense_summary or get_revenue_summary.

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 when the user needs deductions mapped to specific tax return lines and entity-aware calculations, but does not explicitly state when not to use it or compare with alternatives. Sibling tools are numerous but contextually distinct, so the implied guidance is adequate.

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

get_tax_setasideTax setasideA
Read-only
Inspect

Estimated annual and quarterly tax to set aside, the IRS safe-harbor minimum, and the next payment due date. Answers "how much should I be setting aside for taxes and when is the next payment due?"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
yearYes
quartersYes
breakdownYes
filingStatusYes
effectiveRateYes
nextPaymentDueYes
accountingMethodYes
quarterlyPaymentYes
safeHarborAnnualYes
estimatedAnnualTaxYes
safeHarborQuarterlyYes
shouldHaveSavedByNowYes
Behavior4/5

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

Annotations already indicate read-only and non-destructive nature. The description adds valuable context on the output content (estimates, safe-harbor, due date) 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?

Two sentences, front-loaded with core outputs, ends with user-facing question. 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, provided annotations, and existing output schema, the description fully explains what the tool returns and when to use it. No gaps.

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

Parameters4/5

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

No parameters, so no need for param info. Baseline is 4; description doesn't need to add parameter semantics.

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

Purpose5/5

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

Clearly states it provides estimated annual/quarterly tax setaside, safe-harbor minimum, and next due date, answering a specific user question. Distinguishes from sibling tools like get_tax_deductions by focusing on setaside and payment timing.

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

Usage Guidelines3/5

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

Implied usage via the question it answers, but no explicit guidance on when not to use or which sibling alternatives exist. Could be improved with direct comparison or exclusion criteria.

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

get_time_summaryTime summaryA
Read-only
Inspect

Hours logged over a period, split billable vs. non-billable and broken down by project. Answers "how many hours did I bill last month?"

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoA 4-digit year, or this_year / last_year / this_quarter / last_quarter. Omit for the current fiscal year.
projectNoOptional project name to filter to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
periodYes
byProjectYes
entryCountYes
totalHoursYes
billableHoursYes
nonBillableHoursYes
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to repeat safety. It adds the behavioral detail of splitting billable vs non-billable and breaking down by project, but nothing 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 wasted words, 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?

With output schema present, description is complete enough. It explains the tool's capability and provides an example, which is sufficient for a simple query tool with optional filters.

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 does not add meaning beyond the schema (e.g., period and project are mentioned but not elaborated).

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 hours logged over a period, split by billable vs non-billable and by project, which is a specific verb+resource. It distinguishes from sibling tools like get_cash_summary or get_mileage_summary.

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 example 'how many hours did I bill last month?' provides clear context for when to use the tool. However, it does not explicitly mention when not to use it or name alternative tools.

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

list_bills_owedBills owedA
Read-only
Inspect

List the contractor/vendor bills the business still owes, with balance due and how overdue each is. Answers "what bills do I still need to pay?"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
billsYes
countYes
totalYes
Behavior3/5

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

Annotations already declare readOnlyHint true and destructiveHint false, so the agent knows it is a safe read. The description adds detail about the returned fields (balance due, overdue status), but does not disclose pagination or limits. With good annotations, this is adequate.

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

Conciseness5/5

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

Two succinct sentences deliver the purpose and a usage example. No filler or redundancy.

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

Completeness5/5

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

With no parameters and a likely informative output schema, the description fully covers the tool's purpose and result. It answers a common user question.

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 100%, so the description does not need to add parameter info. Per guidelines, 0 parameters gives a baseline of 4.

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

Purpose5/5

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

The description clearly states the tool lists contractor/vendor bills still owed, including balance due and overdue status, answering a specific question. It is distinct from sibling tools like list_outstanding_invoices which deal with invoices sent to clients.

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 unpaid bills but does not explicitly state when to use this tool versus alternatives like list_outstanding_invoices. No exclusions or context are provided.

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

list_clientsClientsA
Read-only
Inspect

List the subscriber’s clients with their billing profile, optionally filtered by a name/notes search. Answers "who are my clients?"

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional name or notes search.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating safe read behavior. The description adds context about including billing profiles and optional filtering, which is useful but does not disclose other behavioral traits like response format or pagination. With annotations present, the description adds moderate 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 concise, consisting of two sentences with no extraneous information. The key action is front-loaded, and the purpose is immediately clear. 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 low complexity (single optional parameter, read-only nature, output schema available), the description provides all necessary context. It explains what the tool returns (clients with billing profiles) and when to use it, without needing to detail output since an output schema exists.

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 100% coverage with a single 'query' parameter described as 'Optional name or notes search.' The description adds meaning by clarifying that the search applies to both name and notes, going beyond the schema description. This provides helpful context for using the optional filter.

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 function with a specific verb ('List') and resource ('subscriber’s clients with their billing profile'). It distinguishes itself from siblings like 'get_client_summary' by implying a list operation. The added question 'Answers who are my clients?' reinforces the 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 clear context by answering a specific user query ('who are my clients?'). However, it does not explicitly state when to avoid using this tool or compare it to alternatives, such as 'get_client_summary' for a single client. The guidance 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.

list_outstanding_invoicesOutstanding invoicesA
Read-only
Inspect

List the outstanding (sent, viewed, or overdue) invoices with aging buckets and the oldest one. Answers "who still owes me money, and how old is the oldest invoice?"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYes
invoicesYes
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint false. The description adds behavioral details: it includes aging buckets and identifies the oldest invoice, which goes beyond the 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 the action and scope, second answers the implied user need. No fluff, front-loaded with the verb.

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

Completeness5/5

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

The tool has no parameters and a known output schema. The description fully covers what the tool does, including filtering and output aggregation, making it self-contained for agent selection.

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 carries no burden for parameter semantics. The baseline for 0 parameters is 4, and the description does not need to add anything.

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

Purpose5/5

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

The description uses a specific verb ('List') and resource ('outstanding invoices') and explicitly lists the statuses included (sent, viewed, overdue). It also describes output features (aging buckets, oldest invoice) and answers a clear question, distinguishing it from sibling tools like get_invoice_details or list_recent_invoices.

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

Usage Guidelines4/5

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

The description implies when to use via the question 'who still owes me money', but does not explicitly state when not to use it or mention alternatives. However, the sibling context and clarity of purpose provide adequate guidance.

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

list_projectsProjectsA
Read-only
Inspect

List projects with their client, type, budget, and dates, optionally filtered to active-only. Answers "what projects am I working on?"

ParametersJSON Schema
NameRequiredDescriptionDefault
activeNoFilter to active (true) or paused (false) projects. Omit for all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds no extra behavioral context (e.g., pagination, rate limits, data freshness) 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: first states function and output fields, second gives a use case. No fluff, front-loaded, 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?

Description covers key fields and filter. Has output schema to define return structure. Minor gap: no mention of sorting or pagination, but for a simple list tool, it is largely complete.

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

Parameters3/5

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

Schema coverage is 100% with one parameter described. The description mirrors the schema by mentioning the active filter. It adds no additional meaning or usage details 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 'list', the resource 'projects', and specifies the data included (client, type, budget, dates). It also distinguishes itself from sibling tools by offering an optional active filter and addressing a specific user question.

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 project overviews, but it does not explicitly state when to use this tool versus alternatives like get_project_summary or list_clients. No when-not guidance is given.

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

list_recent_expensesRecent expensesA
Read-only
Inspect

List the most recent expenses, newest first, optionally filtered by category. Answers "what are my latest expenses?"

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many to return (default 10, max 50).
categoryNoOptional category name to filter to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's addition of ordering and filtering behavior adds moderate value. No other behavioral traits (like pagination limits beyond max) 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, front-loaded with the main action, no fluff. Every word earns its place.

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

Completeness4/5

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

For a simple list tool with 2 optional params, output schema exists, and annotations cover safety, the description is sufficient to understand purpose and basic usage. Could mention that it's read-only, but annotations already do that.

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

Parameters3/5

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

Schema description coverage is 100%, so the description adds no new parameter information beyond what the schema already provides. It merely restates the optional category filter.

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 specific verb 'list' and resource 'recent expenses' with ordering 'newest first' and optional filtering. It clearly distinguishes from siblings like list_recent_invoices by naming the resource and explicitly answers the user's question.

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 use for retrieving latest expenses with optional category filter and mentions the question it answers. It does not explicitly state when not to use or suggest alternatives, but the context is clear given sibling tools.

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

list_recent_invoicesRecent invoicesA
Read-only
Inspect

List the most recent invoices, newest first, optionally filtered by status. Answers "show me my latest invoices" or "which invoices are overdue?"

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many to return (default 10, max 50).
statusNoOptional status filter: draft, sent, viewed, overdue, paid, or void.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description carries less burden. The description adds that results are 'newest first' and that filtering is optional, which are useful behavioral traits beyond the annotations. No contradictions.

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

Conciseness5/5

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

Two concise sentences with no wasted words. The action is front-loaded: 'List the most recent invoices...' followed by constraints and examples. Every sentence adds value.

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

Completeness4/5

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

Given the output schema exists (not shown but indicated), the description need not explain return values. It covers the tool's purpose, ordering, and filter options. Could mention pagination but not necessary for a list with a limit parameter. Adequate for the 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 description coverage is 100%, so the schema already documents both parameters fully. The description adds meaningful context: 'newest first' for ordering and 'optionally filtered by status' with example statuses, enhancing the agent's 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?

Clearly states 'list the most recent invoices, newest first, optionally filtered by status.' The verb 'list' and resource 'invoices' are explicit, and the ordering and filtering distinction is made. Differentiates from sibling tools like 'list_outstanding_invoices' and 'get_invoice_details' by specifying 'recent' and 'newest first'.

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 example use cases: 'answers "show me my latest invoices" or "which invoices are overdue?"' This gives clear context for when to use the tool. However, it does not explicitly state when not to use it or name alternatives, though siblings like 'list_outstanding_invoices' exist.

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

list_uncategorized_transactionsUncategorized transactionsA
Read-only
Inspect

List bank transactions still waiting to be categorized/reviewed, with a count and total. Answers "what bank transactions still need categorizing?"

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many to return (default 10, max 50).

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
totalYes
transactionsYes
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, conveying a safe read operation. The description adds value by specifying that the tool returns a count and total, which provides some behavioral context. However, no additional disclosures about side effects, auth requirements, or response behavior are made. The description 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?

The description is two concise sentences, front-loaded with the core purpose. Every word earns its place—no redundancy or filler. Ideal structure for quick parsing by an AI agent.

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 (1 optional parameter, no nested objects, output schema present), the description covers the key aspect: it lists uncategorized transactions with count and total. It does not mention sorting or filtering beyond limit, but for a straightforward list tool, this is sufficient. The output schema likely documents return values, so the description need not elaborate further.

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 single parameter 'limit' fully described in the schema (default 10, max 50). The description adds no further parameter details. According to guidelines, with high coverage (>=80%), baseline is 3, and no extra information is provided to elevate the score.

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

Purpose5/5

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

The description clearly states the verb 'list', the resource 'bank transactions still waiting to be categorized/reviewed', and specifies output includes a count and total. It directly answers a natural language question, distinguishing it from sibling list tools that target different entities (e.g., list_bills_owed, list_clients).

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 answering a specific question ('what bank transactions still need categorizing?'), but it does not explicitly state when to use this tool versus alternatives like list_recent_expenses or list_outstanding_invoices. No exclusions or prerequisites are provided, leaving the agent to infer context from sibling names.

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

Discussions

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

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    Provides structured, read-mostly access to small-business back-office data including customers, invoices, and account notes, allowing Claude to query overdue invoices, revenue summaries, and more.
    Last updated
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources