savi-tools
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.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.2/5 across 25 of 25 tools scored.
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.
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.
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.
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 toolsget_1099_summary1099 summaryARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Tax year. Defaults to the current year. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| total | Yes | |
| taxYear | Yes | |
| vendors | Yes | |
| filingDeadline | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 profileARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ein | Yes | |
| address | Yes | |
| orgMode | Yes | |
| industry | Yes | |
| ownerName | Yes | |
| entityType | Yes | |
| taxElection | Yes | |
| businessName | Yes | |
| fiscalYearEnd | Yes | |
| taxReturnForm | Yes | |
| accountingMethod | Yes | |
| taxReturnFormLabel | Yes | |
| expenseBillingPolicy | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 snapshotARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| net | Yes | |
| period | Yes | |
| moneyIn | Yes | |
| moneyOut | Yes | |
| billsOwed | Yes | |
| outstanding | Yes | |
| taxSetAside | Yes | |
| accountingMethod | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 summaryARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| net | Yes | |
| moneyIn | Yes | |
| moneyOut | Yes | |
| committedCount | Yes | |
| pendingReviewCount | Yes | |
| uncategorizedCount | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 summaryARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Client name to look up. |
Output Schema
| Name | Required | Description |
|---|---|---|
| city | Yes | |
| name | Yes | |
| paid | Yes | |
| notes | Yes | |
| state | Yes | |
| expenses | Yes | |
| invoiced | Yes | |
| outstanding | Yes | |
| billingEmail | Yes | |
| activeProjects | Yes | |
| lastInvoiceDate | Yes | |
| billingFrequency | Yes | |
| billingTermsDays | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 historyARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Name or company to search for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and 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.
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.
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.
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.
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.
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 summaryARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| byTag | Yes | |
| withEmail | Yes | |
| byIndustry | Yes | |
| totalContacts | Yes | |
| markedDoNotShare | Yes | |
| withPhoneOrMobile | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 summaryARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | A 4-digit year, or this_year / last_year / this_quarter / last_quarter. Omit for the current fiscal year. |
Output Schema
| Name | Required | Description |
|---|---|---|
| period | Yes | |
| byMonth | Yes | |
| byCategory | Yes | |
| grandTotal | Yes | |
| accountingMethod | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds value by 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.
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.
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.
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.
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.
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 summaryBRead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Calendar year. Defaults to the current year. | |
| category | No | Optional category name to filter to (e.g. "Software & Subscriptions"). |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| total | Yes | |
| period | Yes | |
| byMonth | Yes | |
| byCategory | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 progressARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| outcomes | Yes | |
| signalCount | Yes | |
| outcomeCount | Yes | |
| overallProgressPercent | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 detailsARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| number_or_client | Yes | Invoice number or client name to look up. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | Yes | |
| total | Yes | |
| paidAt | Yes | |
| status | Yes | |
| dueDate | Yes | |
| currency | Yes | |
| payments | Yes | |
| subtotal | Yes | |
| issueDate | Yes | |
| lineItems | Yes | |
| taxAmount | Yes | |
| amountPaid | Yes | |
| balanceDue | Yes | |
| clientName | Yes | |
| invoiceNumber | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 summaryARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Calendar year, e.g. 2026. Defaults to the current year. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | Yes | |
| byType | Yes | |
| tripCount | Yes | |
| totalMiles | Yes | |
| totalDeductionValue | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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_profitabilityProfitabilityARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | A 4-digit year, or this_year / last_year / this_quarter / last_quarter. Omit for the current fiscal year. | |
| byClient | No | Include a per-client profitability breakdown. |
Output Schema
| Name | Required | Description |
|---|---|---|
| period | Yes | |
| byMonth | Yes | |
| summary | Yes | |
| byClient | No | |
| accountingMethod | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 summaryARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Project name to look up. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| expenses | Yes | |
| isActive | Yes | |
| clientName | Yes | |
| budgetHours | Yes | |
| hoursLogged | Yes | |
| projectType | Yes | |
| billableHours | Yes | |
| fixedFeeAmount | Yes | |
| hoursRemaining | Yes | |
| mileageDeduction | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 summaryARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Calendar year. Omit to use the current fiscal year. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| period | Yes | |
| byMonth | Yes | |
| byClient | Yes | |
| invoiceCount | Yes | |
| depositRevenue | Yes | |
| accountingMethod | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 deductionsARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Calendar year. Omit to use the current fiscal year. |
Output Schema
| Name | Required | Description |
|---|---|---|
| form | Yes | |
| lines | Yes | |
| method | Yes | |
| formLabel | Yes | |
| periodEnd | Yes | |
| periodStart | Yes | |
| totalDeductions | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 setasideARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| year | Yes | |
| quarters | Yes | |
| breakdown | Yes | |
| filingStatus | Yes | |
| effectiveRate | Yes | |
| nextPaymentDue | Yes | |
| accountingMethod | Yes | |
| quarterlyPayment | Yes | |
| safeHarborAnnual | Yes | |
| estimatedAnnualTax | Yes | |
| safeHarborQuarterly | Yes | |
| shouldHaveSavedByNow | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 summaryARead-onlyInspect
Hours logged over a period, split billable vs. non-billable and broken down by project. Answers "how many hours did I bill last month?"
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | A 4-digit year, or this_year / last_year / this_quarter / last_quarter. Omit for the current fiscal year. | |
| project | No | Optional project name to filter to. |
Output Schema
| Name | Required | Description |
|---|---|---|
| period | Yes | |
| byProject | Yes | |
| entryCount | Yes | |
| totalHours | Yes | |
| billableHours | Yes | |
| nonBillableHours | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 owedARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| bills | Yes | |
| count | Yes | |
| total | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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_clientsClientsARead-onlyInspect
List the subscriber’s clients with their billing profile, optionally filtered by a name/notes search. Answers "who are my clients?"
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional name or notes search. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 invoicesARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | Yes | |
| invoices | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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_projectsProjectsARead-onlyInspect
List projects with their client, type, budget, and dates, optionally filtered to active-only. Answers "what projects am I working on?"
| Name | Required | Description | Default |
|---|---|---|---|
| active | No | Filter to active (true) or paused (false) projects. Omit for all. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 expensesARead-onlyInspect
List the most recent expenses, newest first, optionally filtered by category. Answers "what are my latest expenses?"
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return (default 10, max 50). | |
| category | No | Optional category name to filter to. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 invoicesARead-onlyInspect
List the most recent invoices, newest first, optionally filtered by status. Answers "show me my latest invoices" or "which invoices are overdue?"
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return (default 10, max 50). | |
| status | No | Optional status filter: draft, sent, viewed, overdue, paid, or void. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 transactionsARead-onlyInspect
List bank transactions still waiting to be categorized/reviewed, with a count and total. Answers "what bank transactions still need categorizing?"
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return (default 10, max 50). |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| total | Yes | |
| transactions | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityCmaintenanceProvides 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 updatedMIT
- AlicenseAqualityDmaintenanceEnables AI assistants to query and manage QuickBooks Online data through natural language, including customers, invoices, bills, vendors, accounts, and financial reports.Last updated7MIT
- AlicenseBqualityAmaintenanceAI-native business management — invoices, expenses, clients, products, quotes, and webhooks. 31 tools for Claude, Cursor, Windsurf, and Cline.Last updated1001,3529MIT
- Alicense-qualityDmaintenanceConnects AI assistants to QuickBooks Online, enabling management of invoices, customers, expenses, and reports through natural language.Last updatedMIT