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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. Description adds no additional behavioral insights beyond 'summary'. Minimal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with key information. 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?
Covers tool's purpose and output adequately for a simple read-only tool. No output schema, but description explains what is returned (per vendor, total, deadline). Could mention return format for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter 'year' is fully documented in schema. Description reiterates 'for a tax year' but adds no semantic detail beyond what schema provides. Baseline 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?
Description clearly states it provides a summary of 1099-NEC amounts owed to contractors per vendor and total, with filing deadline. Answers a specific question, distinguishing it from other summary tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly suggests use for tax year contractor 1099 needs, but does not explicitly state when to use or alternatives. Lacks explicit exclusions or comparison to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so description does not need to reiterate safety. It adds value by listing returned fields, but does not disclose any additional behavioral traits beyond the schema and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key fields, and answers a specific question. No unnecessary words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description fully conveys what the tool returns. It lists all relevant fields and addresses a common use case, making it self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (schema coverage 100%), so baseline is 4. Description adds meaning by enumerating the fields returned, which is helpful for understanding the output without an output 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 retrieves the business's own profile, listing specific fields (legal name, entity type, tax return, accounting method, fiscal year, industry, address). It distinguishes from sibling tools like get_client_summary or get_business_snapshot by specifying 'own profile'.
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 answers a specific question about tax form and fiscal year, implying usage when you need business identity info. However, it does not explicitly state when to use this tool versus alternatives like get_business_snapshot or list_clients, nor does it provide exclusions.
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 | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds context on the kind of data returned but does not detail response format or additional behavioral traits. Adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and scope. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lists key data fields (money in/out, net, invoices, bills, tax), which is fairly complete for a snapshot. Lacks details on response structure but is sufficient for an agent to understand output nature.
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, and schema coverage is 100%. The description adds no parameter info because none needed. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it's a one-look snapshot of the business, listing specific financial components (money in/out, net, invoices, bills, tax). It distinguishes from sibling tools by being the high-level overview, while siblings focus on 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 answers the question 'how is my business doing this year?', implying when to use it for a high-level health check. It does not explicitly mention alternatives or when not to use, but the context of 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 | |||
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 beyond this by specifying the exact data returned (money in, out, net, pending transactions). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key purpose, no redundant information. Every word serves a 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 and no output schema, the description adequately covers purpose and return data. However, it lacks details like default time period or account scope, which would improve completeness for a 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?
Tool has zero parameters and 100% schema coverage. Description adds meaning by explaining what the tool returns, though no parameter details are needed. Baseline score of 4 for no-param tool with clear return 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 specifies 'cash position from bank activity' including money in, out, net, and pending review transactions. It directly answers the question 'how much cash has moved through my accounts?'. This clearly distinguishes it from sibling tools like get_revenue_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 usage for cash flow overview but does not explicitly state when to use it versus alternatives like get_revenue_summary or get_expense_summary. No 'when not to use' or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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. |
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 the specific data fields returned but does not disclose any additional behavioral traits or constraints beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first front-loads the purpose and data fields, the second gives an example question. No redundant information; 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 simplicity (single parameter, no output schema), the description fully covers the return fields and purpose. The agent has sufficient information to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'name' already described in the schema. The description does not add further meaning beyond the schema, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides a single client's summary including specific financial fields and an example question, distinguishing it from sibling tools like get_contact_summary or 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 includes an example question that implies usage context (client financial inquiry). While it doesn't explicitly exclude alternatives, the sibling list provides context, and the purpose is clear enough for proper selection.
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. |
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 a 'doNotShare' flag and lists returned fields, but does not detail behavior for empty results or pagination. This additional context is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively short (four sentences) and front-loaded with the main purpose. It includes examples that aid understanding without excessive length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter, no output schema, and no nested objects, the description sufficiently explains inputs, outputs (fields), and special behavior (doNotShare flag). Examples cover typical queries.
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 defines 'query' with description 'Name or company to search for.' The tool description expands this to include 'industry or profession,' adding value beyond the schema. Schema coverage is 100%, so a baseline of 3 applies, but the extra detail raises 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 tool searches the subscriber's own contacts by name, company, industry, or profession, and lists the returned fields. The examples further clarify intent. It is distinct from sibling tools which focus on financial or business data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes example questions that indicate use cases (e.g., retrieving history before a call, listing contacts by industry). It does not explicitly state when not to use it, but the sibling list helps differentiate.
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 | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true and destructiveHint=false. The description adds context about the type of data returned (counts, top industries/tags), but does not mention authentication or rate limits; however, given the simplicity and read-only nature, it is sufficient.
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 covers what the tool provides, second gives example questions and alternative tool. No wasted words, and the structure is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and low complexity, the description fully explains what it returns and how to interpret it, with an explicit alternative for specific lookups.
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, and schema coverage is 100% (empty). The description does not need to add param info, but it implicitly clarifies that no input is required.
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 Rolodex overview with counts of contacts, phone/email ownership, top industries and tags. It answers specific questions ('how many contacts?', 'what industries?'), and distinguishes from sibling tool get_contact_history for specific people.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it (to answer aggregate contact questions) and directs to get_contact_history for looking up specific people, providing clear guidance.
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. |
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 value by explaining the breakdown structure (by-category, by-month) and confirming it covers multiple cost types, 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?
The description is two sentences, front-loaded with the core purpose, no redundancy. Every sentence adds value: first states what it includes and breakdowns, second gives an example query.
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 one optional parameter and no output schema, the description fully explains the scope (all costs, breakdowns). Annotations cover safety, so no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single period parameter. The description adds meaning by linking the period to 'all business costs' and providing an example ('last quarter'), aiding understanding beyond the schema's generic 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 uses specific verbs and resources: 'All business costs' with categories (expenses, mileage, contractor bills) and breakdowns. It distinguishes itself from siblings like get_expense_summary or get_mileage_summary by covering all cost types combined.
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 listing the cost components and example query ('what were my total costs last quarter?'), but does not explicitly state when to use this tool over siblings like get_expense_summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_expense_summaryExpense summaryARead-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"). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's addition of breakdown types (category, month) is useful but not essential. No other behavioral traits (e.g., aggregation details, data freshness) are disclosed 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 with no fluff. Key information (yearly totals, breakdowns) is front-loaded. Every word contributes to understanding the tool's output.
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 simple parameters and no output schema, the description adequately covers what the tool returns (total expenses with breakdowns). Could mention default year behavior, but schema already covers that. Overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to add parameter meaning. However, the example question hints at the 'category' parameter usage, which adds marginal context. No additional syntax or constraints are explained beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides total expenses for a year with by-category and by-month breakdowns. Example questions ('what did I spend on software this year?') further clarify use cases, distinguishing it from sibling tools like get_cost_summary or list_recent_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 when to use (yearly expense summaries with breakdowns) but does not explicitly state when not to use or provide alternatives. Sibling tools like list_recent_expenses could be mentioned for granular queries, but no such guidance is given.
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 | |||
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 useful behavioral context by specifying the data included: outcomes, success signals, current vs. target, and percent complete. It provides transparency beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose ('Progress toward the subscriber’s business goals'), and uses a direct question to illustrate use case. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description provides a solid overview of the returned data structure. However, it doesn't specify formatting details (e.g., whether it's a list or single object), but for a simple progress report, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (schema coverage 100%), so the description bears full responsibility for explaining semantics. It clearly describes what the tool returns, including the granularity of each outcome and its associated metrics, which is sufficient for an agent to understand the tool's output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool provides progress toward business goals, detailing the structure (outcomes, success signals, current vs. target, percent complete) and the question it answers. This clearly differentiates it from sibling tools that focus on financials, contacts, or projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes the question 'how am I tracking against my goals this year?' which implies annual performance review context. While it doesn't explicitly state when not to use or list alternatives, the sibling tools are distinct enough that no further guidance is needed.
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. |
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 read-only. The description adds value by specifying the returned fields (status, amounts, line items, etc.), providing behavioral context beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core purpose and examples. Every word adds value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description sufficiently covers what the tool returns and how to use it. It is complete given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the single parameter 'number_or_client' with a clear description. The description reiterates this but does not add new semantic details such as format examples or constraints, so it meets the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns full invoice details including status, amounts, line items, payments, and balance due, using invoice number or client name. It distinguishes from sibling summary tools by focusing on a single invoice's detailed breakdown.
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 example queries like 'what is on invoice 1042?' and 'what does the Acme invoice still owe?', indicating when to use this tool. However, it does not explicitly state when not to use it or mention alternative tools for comparison.
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. |
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 operation. The description adds value by specifying the output includes business miles, deduction, and per-type breakdown, and the time scope is a calendar year. However, it does not disclose any additional behavioral traits like data freshness or aggregation logic.
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 at two sentences. It first states the output and then provides a relevant question the tool answers. Every sentence adds value with 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?
Despite having no output schema and low complexity, the description adequately explains the return values (business miles, IRS deduction, per-type breakdown) and the temporal scope (calendar year). This is sufficient for an agent to understand the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'year' with a description that is already clear ('Calendar year, e.g. 2026. Defaults to the current year.'). Schema coverage is 100%, so the description adds no additional meaning beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides total business miles and IRS mileage deduction for a calendar year with a per-type breakdown, and it answers a specific question about mileage deduction. This makes the purpose very clear and distinguishes it from sibling tools like get_expense_summary or get_tax_deductions.
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 mileage deduction queries by answering 'what is my mileage deduction so far this year?'. It provides clear context but does not explicitly exclude alternatives or state when not to use it. Given the sibling tools, the usage context is clear but lacks explicit when-not guidance.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and destructiveHint. The description adds behavioral context: the tool returns revenue vs. costs, net profit, margin, and optional per-client breakdown. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Key information is front-loaded: what the tool provides (revenue vs. costs, net profit, margin) and optional breakdown. Then example questions.
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 two optional parameters, no output schema needed, the description sufficiently explains what the tool returns and how it can be customized. It addresses the core use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with descriptions for both parameters. The description adds some context (example values for period, explanation of byClient) but does not substantially enhance 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 'Revenue vs. costs, net profit, and margin over a period, optionally broken down by client.' It provides specific examples of questions it answers ('am I profitable this year?'), distinguishing it from sibling 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 context for when to use the tool (profitability queries) and provides example questions. It does not explicitly exclude scenarios or name alternatives, but the context is clear given the sibling tool names.
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. |
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 that it provides specific metrics but does not disclose additional behavioral traits such as permissions or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with no wasted words; purpose is front-loaded and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool, the description explains what the summary includes and provides an example. However, it does not describe the return format or structure, which would be helpful.
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'. The description does not add meaning beyond the schema's description, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides a single project's summary with specific metrics (hours vs budget, billable, expenses, mileage) and gives an example question, distinguishing it from sibling summary tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for project-level summaries but does not explicitly state when to use or when to avoid it compared to sibling tools like get_client_summary.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds valuable behavioral context: it provides breakdowns (month-by-month, by-client, direct deposit income) and answers specific revenue-related questions. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence defines the functionality, and the second provides a concrete example question, making it efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 optional parameter, no output schema, clear annotations), the description is largely complete. It explains what the tool returns and the kind of questions it answers. However, it could slightly improve by explicitly mentioning that the output is a summary or a report, but this is minor.
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 1 parameter (year) with 100% coverage, including a description. The tool description does not add any additional meaning or usage hints for this parameter, so it relies entirely on the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides total revenue with month-by-month and by-client breakdowns, and directly answers the questions 'how much have I made this year and who are my top clients?'. It distinguishes itself from sibling tools like get_cash_summary or get_client_summary by specifying revenue focus and breakdowns.
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 stating the questions it answers, giving clear context for when an agent should invoke it. However, it does not explicitly mention when not to use it or name alternative tools, leaving some ambiguity.
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. |
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 safety is clear. Description adds value by detailing entity-aware treatment (e.g., meals at 50%) and mapping to specific tax forms.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both informative and front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single optional parameter, no output schema, and thorough annotations, the description provides enough context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear parameter description for 'year'. The description does not add additional parameter semantics beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it maps deductible costs to tax return lines for specific business entity types, answering a precise question. This differentiates it from sibling tools like 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 it is used for tax deduction mapping with entity-aware treatment, but does not explicitly state when not to use it or mention alternatives. However, the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 | |||
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 tool is clearly non-destructive. Description adds that it returns estimates and safe-harbor minimum, but does not disclose additional behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences concisely convey the tool's purpose and value. Front-loaded with key information, 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 no output schema, the description adequately explains the return values (annual/quarterly estimates, safe-harbor minimum, next due date). For a zero-parameter tool, this is sufficient for an agent to understand output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, and the description provides meaningful information about the return values (annual, quarterly, safe-harbor, next due date), adding value beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool provides estimated annual and quarterly tax to set aside, IRS safe-harbor minimum, and next payment due date. It answers a specific question, distinguishing it from sibling tools like get_tax_deductions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explicitly frames the tool as answering 'how much should I be setting aside for taxes and when is the next payment due?', giving clear usage context. It does not explicitly list when not to use or provide alternatives, but the purpose is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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. |
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 the data breakdown (billable/non-billable, project), which goes beyond annotations but does not disclose other behavioral traits like data freshness, pagination, or access requirements. It adds moderate value given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core functionality and a concrete example. Every word earns its place; there is no fluff 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?
The description covers the main functionality (hours logged, breakdowns) and use case, but lacks any mention of output format or structure. Given no output schema, a brief note on what the response contains (e.g., totals per project) would improve completeness. However, it is mostly sufficient for a 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%, with each parameter (period, project) fully described in the schema. The description adds no additional parameter information beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns hours logged over a period, split into billable vs. non-billable and broken down by project. It provides a concrete example question, 'how many hours did I bill last month?', which makes the purpose highly specific and distinguishes it 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 implies usage via a natural language question but does not explicitly state when to use this tool vs. alternatives. No exclusions or alternative recommendations are given. The context of siblings suggests it is the only time-focused summary tool, reducing ambiguity, but explicit guidance is missing.
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 | |||
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 behavioral details: the tool returns balance due and overdue information. It does not mention any pagination or limits, but for a simple list with no parameters, this is sufficient. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence plus a clarifying question. Every word adds value, with no redundancies. It is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains what the tool returns ('balance due' and 'how overdue'). This is adequate for a simple list tool. It could be more explicit about fields like vendor name or due date, but it still provides sufficient context for the agent to understand the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100% by default. Per the guidelines, 0 parameters earns a baseline of 4. The description adds no parameter info, which is acceptable since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'bills owed', and specifies the scope (bills still owed with balance and overdue info). It also provides a natural language query ('what bills do I still need to pay?'), making the purpose unmistakable. This distinguishes it from sibling tools like list_clients or 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 gives a clear usage context via the quoted question, indicating when to use this tool (to find unpaid bills). However, it does not explicitly state alternatives or when not to use it. Given zero parameters, the guidance is still effective but lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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. |
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 the tool returns billing profiles and supports optional search, but does not disclose additional behaviors like pagination, limits, or performance characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that front-load the main purpose and optional filter. No wasted words; every part 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 simplicity (one optional parameter, no output schema), the description covers the essential functionality. However, it could be more complete by mentioning what fields constitute the billing profile, but that is a minor gap.
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 (query) described as 'Optional name or notes search.' The description reiterates this exactly, adding no new semantic detail 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 action (List), the resource (subscriber’s clients), and includes the billing profile context. It also answers the implied question 'who are my clients?', distinguishing it from sibling tools that summarize specific aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context ('Answers who are my clients?') and mentions optional filtering. However, it does not explicitly state when not to use this tool or point to alternatives among the many sibling tools.
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 | |||
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 behavioral details beyond annotations, such as returning aging buckets and the oldest invoice, providing additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded with the action and then the question it answers. Very concise with no fluff, each sentence serves a 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?
For a simple list tool with no parameters and no output schema, the description adequately explains what it returns. It could mention pagination or totals, but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to explain them. The baseline is 4 for zero parameters, and the description adds no param info, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists outstanding invoices (sent, viewed, overdue) and provides aging buckets and the oldest invoice. It explicitly answers the user's question 'who still owes me money, and how old is the oldest invoice?', distinguishing it from siblings like 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 clearly indicates when to use this tool: to find out who owes money and invoice age. It does not explicitly state when not to use it or compare with alternatives, but the purpose is clear and context is provided.
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. |
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 agent knows it's safe. Description adds that it answers 'what projects am I working on?' implying user-scoping, but lacks details like pagination or sorting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences with front-loaded verb and resource. No wasted words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately covers purpose, filtering, and what fields are returned. Lacks mention of return format (array of objects) but that is typical. Simple tool, no output schema needed.
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?
Only one parameter 'active' with full schema description (100% coverage). Description mentions 'filtered to active-only' but does not add meaning beyond the schema's own 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?
Description clearly states verb 'List', resource 'projects', and includes fields (client, type, budget, dates). It also distinguishes by answering a specific question and providing optional filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states optional filtering for active projects and answers a common question. However, among 24 sibling tools (e.g., get_project_summary), no guidance on when not to use this tool or alternatives.
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. |
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 safety profile is clear. Description adds ordering and optional filtering behavior beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with key action. 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?
No output schema, but for a simple list tool, the description is adequate. It covers purpose, ordering, and filtering. Could mention that it returns recent expenses but not necessary given simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. Description adds no new meaning beyond 'optionally filtered by category' which is already in the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (list), resource (recent expenses), ordering (newest first), and optional filter by category. It also provides a typical user question, distinguishing it from siblings like 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?
No explicit guidance on when to use vs alternatives. The description implies usage through the example question but lacks when-not-to or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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. |
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 description needn't repeat safety. Description adds ordering ('newest first') and optional filtering, which adds value beyond annotations but is not extensive.
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 action and purpose, immediately followed by exemplar queries. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with 2 optional params and no output schema, description covers purpose, ordering, and filter. It could mention the return format (e.g., list of invoice objects), but is largely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with clear descriptions. Description only repeats 'optionally filtered by status', adding no new meaning beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists recent invoices sorted newest first with optional status filter, and provides example queries. This distinguishes it from siblings like list_outstanding_invoices which focus on unpaid ones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description gives concrete example questions ('show me my latest invoices', 'which invoices are overdue?') indicating when to use. However, it does not explicitly exclude alternatives or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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). |
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 limited new behavioral context. It mentions returning 'count and total', which is useful but not extensive. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action and resource, and no extraneous information. Every phrase 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 one optional parameter and no output schema, the description covers the key aspects: purpose, result (count and total), and a usage question. Could mention pagination or default limit, but the schema covers the limit. Satisfactory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'limit' parameter, which provides adequate meaning. The description does not add further parameter details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists bank transactions waiting to be categorized, with count and total. It answers a specific question, distinguishing it from sibling tools that focus on summaries or other lists.
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 specifying the purpose (waiting to be categorized/reviewed) and the question it answers. However, it does not explicitly state when not to use it or mention alternative tools.
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!