Skip to main content
Glama

Server Quality Checklist

50%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.4.0

  • Disambiguation2/5

    Many tools are explicitly marked as failing, but they coexist with working counterparts (e.g., create_invoice vs generate_invoice, list_billable_items vs create_invoice). This creates confusion, as an agent cannot easily distinguish functional from non-functional tools without inspecting descriptions. Additionally, several lookups (e.g., get_time_entry_lookups) overlap with get_time_entry.

    Naming Consistency4/5

    The naming follows a consistent verb_noun pattern (snake_case) for most tools, such as create_client, list_clients, delete_client. There are minor deviations like get_document_download_url and get_client_suggestions, but the overall pattern is predictable.

    Tool Count1/5

    With 86 tools, the server is severely bloated. Many are non-functional placeholders (marked '[Not in LCS /v1]'), and the working set is around 30-40 tools, which is still high. The number overwhelms the agent and degrades usability.

    Completeness2/5

    The working tools cover basic CRUD for clients, matters, contacts, time entries, expenses, invoices, payments, and transactions. However, critical operations like document upload/download, AP management, financial summaries, and many lookups are either missing or fail. The surface has significant gaps for a legal practice management domain.

  • Average 3/5 across 86 of 86 tools scored. Lowest: 1.3/5.

    See the Tool Scores section below for per-tool breakdowns.

    • 1 of 2 community issues answered or closed in the last 6 months
    • 47 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    The description says 'Fails loudly', which discloses that the tool will error, but it does not explain why it exists or what the error looks like. Without annotations, more detail is needed.

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

    Conciseness2/5

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

    The description is very short but ineffective. It prioritizes brevity over clarity, omitting essential context and failing to serve its purpose.

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

    Completeness1/5

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

    Given no annotations and a non-functional tool, the description should at least explain why the tool exists or direct the user to an alternative. It is completely inadequate.

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

    Parameters1/5

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

    Schema description coverage is 0%. The description provides no information about the two required parameters (path and doc_id), leaving their meaning entirely to the schema's titles.

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

    Purpose1/5

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

    The description states that delete is not exposed and the documents endpoint is read-only, contradicting the tool name 'delete_document'. The purpose is misleading; the tool does not perform deletion.

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

    Usage Guidelines1/5

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

    No guidance on when to use the tool. The description implies it should not be used at all, but the tool exists in the list without any condition or alternative.

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

  • Behavior2/5

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

    The description discloses that the tool fails loudly, but does not explain why (e.g., API restrictions, missing permissions) or what 'fails loudly' entails (error message, exception). Without annotations, this is minimal transparency.

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

    Conciseness2/5

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

    The description is very short (one sentence) but lacks essential information, making it under-specified rather than concise. It fails to earn its place by not providing useful guidance.

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

    Completeness1/5

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

    Given the low complexity (1 parameter) and presence of output schema, the description should still explain the tool's actual behavior, current limitations, and expected output. Instead, it only states failure, leaving the agent without complete information.

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

    Parameters1/5

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

    The only parameter 'fields_json' is completely undocumented in the description (schema coverage 0%). The description adds no meaning about what fields_json should contain or how it relates to the upload URL.

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

    Purpose1/5

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

    The description states the tool is '[Not in LCS /v1]' and 'fails loudly', indicating it does not actually provide an upload URL. This misleads the agent about the tool's functional purpose, which contradicts typical expectations of a 'get' tool.

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

    Usage Guidelines1/5

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

    No guidance on when to use the tool; it only says it fails loudly, implying it should not be used. No alternatives or context provided despite the existence of sibling tools like 'get_document_download_url'.

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

  • Behavior2/5

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

    Without annotations, the description carries full burden. It mentions 'Fails loudly', which indicates an error behavior, but does not explain what failure entails (e.g., error code, side effects). The statement about not being in v1 adds context but lacks clarity on behavior.

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

    Conciseness2/5

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

    The description is very short but packed with ambiguous statements ('Not in LCS /v1', 'Fails loudly'). It fails to be concise in conveying useful information, as every sentence adds confusion rather than clarity.

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

    Completeness2/5

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

    Given the tool has one parameter and an output schema, the description should clearly state its function and when to use it. Instead, it leaves the agent guessing about the tool's validity and purpose, making it incomplete for reliable selection.

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

    Parameters1/5

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

    The schema has 0% description coverage, and the description adds no meaning to the parameter 'matter_id'. It only echoes the parameter name from get_codes without specifying format, constraints, or purpose.

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

    Purpose1/5

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

    The description does not state what the tool does. Instead, it says 'Not in LCS /v1' and mentions that v1 has 'get_codes'. This is confusing and fails to clarify the tool's purpose; it appears to suggest the tool may be non-functional or deprecated.

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

    Usage Guidelines2/5

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

    The description indirectly suggests using get_codes as an alternative by noting '/v1 has only the combined get_codes(matter_id)', but it does not explicitly state when to use this tool vs. alternatives. The phrase 'Fails loudly' implies the tool should not be used, but that is not a clear guideline.

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

  • Behavior2/5

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

    No annotations provided; the description only says 'Fails loudly', which hints at error behavior but does not disclose read/write nature, side effects, or other behavioral traits.

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

    Conciseness2/5

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

    Extremely short, but the content is not informative. The phrase 'Fails loudly' is vague and does not earn its place.

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

    Completeness1/5

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

    Given the presence of an output schema, the description need not detail return values, but it is still grossly incomplete: it does not explain what a 'time grid' is, how it relates to siblings, or any essential context.

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

    Parameters2/5

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

    Input schema has 0 parameters (100% coverage by default). Baseline would be 4, but the description adds no meaningful interpretation of the tool's purpose or parameters, so it fails to add value.

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

    Purpose2/5

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

    The description says 'Time-grid lookups' which is vague and does not specify what data is returned or what operation is performed. It does not distinguish from siblings like 'get_time_entry_lookups'.

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

    Usage Guidelines1/5

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

    No guidance on when to use this tool versus alternatives. The description is completely silent on context or prerequisites.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden. It discloses that the tool 'fails loudly', which is a behavioral trait, but lacks detail on failure conditions, return values, or side effects.

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

    Conciseness2/5

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

    The description is concise but not informative. The single sentence fails to convey the tool's purpose or utility, and the critical information that it fails is not placed prominently.

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

    Completeness1/5

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

    Given the presence of an output schema and lack of annotations, the description should explain what the tool returns or is expected to do. It does not, leaving the agent with no useful context.

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

    Parameters4/5

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

    There are zero parameters and schema coverage is 100% (trivially). The baseline for 0 parameters is 4, and the description adds nothing beyond that.

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

    Purpose1/5

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

    The description does not state what the tool does; it only notes that the endpoint is not in LCS/v1 and that document actions are not exposed, leaving the agent confused about the tool's intended function.

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

    Usage Guidelines1/5

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

    No guidance on when to use the tool. The description implies it should not be used because it fails loudly, but no alternatives 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.

  • Behavior2/5

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

    No annotations provided. Description only mentions 'Fails loudly' for error behavior, but does not disclose read-only nature, permissions, or side effects. Inadequate for a lookup tool.

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

    Conciseness2/5

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

    Extremely short but lacks necessary information. The brevity does not serve the agent; it omits critical context.

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

    Completeness1/5

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

    Despite having an output schema (not shown), the description fails to provide any context about return values or behavior. Tool is complex due to many sibling lookups, yet description is minimal.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not explain the 'matter_id' parameter's role or impact. No additional meaning beyond the schema.

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

    Purpose2/5

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

    Description 'New-invoice lookups' is vague; does not specify what kind of lookups or how it differs from sibling 'get_invoice_lookups'. The '[Not in LCS /v1]' tag is unclear.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool vs alternatives like get_invoice_lookups or get_invoice_payment_lookups. Missing context for appropriate invocation.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden but only says 'Fails loudly,' which is ambiguous. No disclosure of side effects, permissions, or return behavior.

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

    Conciseness3/5

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

    The description is short but cryptic and not front-loaded with clear purpose. It could be concise and clear, but it isn't.

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

    Completeness2/5

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

    Given the tool's name and output schema existence, the description fails to inform the agent about task codes, versioning, or failure modes. Incomplete for effective use.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description adds no meaning to the matter_id parameter beyond mentioning it in code form. No explanation of what task codes are or how matter_id is used.

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

    Purpose2/5

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

    The description is vague and confusing, mentioning version differences and 'fails loudly' without clearly stating that this tool retrieves task codes. It does not distinguish from siblings like get_codes or get_activity_codes.

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

    Usage Guidelines1/5

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

    No guidance on when to use this tool versus alternatives. The mention of '/v1' is cryptic and doesn't provide actionable usage context.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavior. It only says 'Fails loudly,' which hints at error behavior but does not explain why, when, or how it fails. No information about read/write nature, permissions, or side effects is given.

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

    Conciseness2/5

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

    The description is extremely short, but it sacrifices clarity for brevity. It lacks essential information and is not 'front-loaded' with useful cues. Every sentence should add value; here, one sentence is vague and the other ('Fails loudly') is cryptic.

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

    Completeness1/5

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

    Given the complexity of sibling tools and the existence of an output schema (not shown), the description is severely incomplete. It does not explain what 'lookups' means, what the output contains, or how the parameter affects results. The tool appears to be a lookup for new expenses, but critical context is missing.

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

    Parameters1/5

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

    The input schema has one parameter ('matter_id') with 0% coverage (no description in the schema). The tool description does not explain the purpose or effect of this parameter, leaving the agent without guidance on how to use it.

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

    Purpose3/5

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

    The description states 'New-expense lookups,' which vaguely suggests it provides lookup data for creating a new expense, but it is not specific about what kind of lookups (e.g., expense types, categories). The phrase 'Fails loudly' adds ambiguity. Compared to siblings like 'get_expense_lookups' and 'get_hard_cost_expense_lookups,' the distinction is unclear.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus siblings. No conditions, prerequisites, or exclusions are mentioned. The description leaves the agent to infer usage from the name alone.

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

  • Behavior2/5

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

    The description mentions 'Fails loudly' which hints at error behavior, but no annotations exist. It does not disclose read-only nature, side effects, or other behavioral traits beyond the cryptic failure note.

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

    Conciseness3/5

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

    The description is very short, which could be concise, but it front-loads a cryptic platform note '[Not in LCS /v1]' that adds confusion rather than clarity. The message is fragmented.

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

    Completeness2/5

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

    With an output schema present, the description need not detail return values, but it fails to specify the scope of the lookups. Among many sibling lookup tools, the lack of specificity leaves agents unsure when to call this one.

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

    Parameters3/5

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

    There are no parameters, so schema coverage is 100%. The description adds no parameter info because none exist, but it could have clarified what the lookup results contain. Given zero params, it meets minimum baseline.

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

    Purpose2/5

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

    The description states 'Expense lookups' which identifies the resource but is vague. It does not differentiate from sibling tools like get_new_expense_lookups or get_hard_cost_expense_lookups, and fails to specify what kind of lookups are returned.

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

    Usage Guidelines1/5

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

    No guidance is provided on when to use this tool versus related tools. There is no mention of preconditions, alternatives, or scenarios where it should be preferred.

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

  • Behavior2/5

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

    With no annotations, the description bears full responsibility for behavioral disclosure. It states 'Fails loudly,' implying errors are conspicuous, but does not describe success behavior, return format, or side effects. This is insufficient for a tool with no other behavioral hints.

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

    Conciseness2/5

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

    The description is extremely short (two fragments), which sacrifices informativeness for brevity. While concise, it omits essential details, making it under-specified rather than efficiently compact.

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

    Completeness2/5

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

    Despite having an output schema and one optional parameter, the description fails to provide sufficient context. It does not specify what lookups are returned, how they differ from other get_*_lookups tools, or how 'fails loudly' affects usage. The tool requires more context to be complete.

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

    Parameters1/5

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

    The schema description coverage is 0%, and the description adds no meaning to the sole parameter 'matter_id.' The description does not explain its purpose, format, or effect, leaving the agent without context beyond the schema's type and optionality.

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

    Purpose3/5

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

    The description specifies 'Hard-cost-expense lookups' indicating a specific resource for hard-cost expenses, distinguishing it from other expense lookups like get_expense_lookups. However, it lacks a clear verb (e.g., retrieve, list) and the phrase '[Not in LCS /v1]' is unclear, making the purpose somewhat vague.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. The description mentions 'Fails loudly' but does not indicate typical use cases, prerequisites, or when not to use it.

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

  • Behavior3/5

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

    The phrase 'Fails loudly' indicates that the tool will throw explicit errors on failure, which is a behavioral trait. However, no other behavioral aspects are disclosed (e.g., side effects, auth requirements, rate limits). Without annotations, the description provides minimal but not comprehensive transparency.

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

    Conciseness3/5

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

    The description is extremely short (one line), which is concise but at the expense of informativeness. It is not well-structured to convey key information first; it starts with a parenthetical version note rather than the core purpose.

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

    Completeness2/5

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

    Given the tool has one optional parameter, an output schema exists, and there are many sibling lookup tools, the description is incomplete. It does not explain what the output contains, how matter_id filters results, or what 'lookups' entails. The agent lacks sufficient context to use it correctly.

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

    Parameters2/5

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

    The schema has 0% description coverage for the parameter 'matter_id', and the description does not mention this parameter at all. It adds no meaning beyond what is in the schema (name, type, nullable, default). The agent gets no guidance on how matter_id affects the lookup.

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

    Purpose2/5

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

    The description 'Time-entry lookups' is vague. It does not specify what kind of lookups (e.g., list, search, validate) or what resource is being looked up. The prefix '[Not in LCS /v1]' is an API version note, not a purpose clarification. Among many sibling get_*_lookups tools, this description does not help distinguish it.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like get_expense_lookups or get_invoice_lookups. The description lacks any context about typical use cases, prerequisites, or situations where this tool is preferable.

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

  • Behavior2/5

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

    The description says 'Fails loudly' implying explicit error handling, but there are no annotations to fall back on. No mention of side effects, idempotency, permissions, or what happens on success. The behavioral profile is thin.

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

    Conciseness3/5

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

    Two sentences, but the first is a version note ('[Not in LCS /v1]') that may be irrelevant. The description is brief but could be restructured to front-load the core action and add essential details without increasing length.

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

    Completeness2/5

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

    For a tool with 1 parameter (poorly explained) and no annotations, the description is insufficient. It does not cover input requirements, return behavior (output schema exists but not described), or error scenarios beyond 'fails loudly'.

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

    Parameters1/5

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

    The only parameter 'fields_json' is a string with no documented format, structure, or example. With 0% schema description coverage, the description should compensate but fails to explain what the JSON should contain (e.g., required fields, nested objects).

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

    Purpose4/5

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

    The description clearly states 'Trigger an AP payment', which is a specific verb+resource. It distinguishes from 'create_payment' (likely client payments) and 'list_ap_payments'. However, it could be more precise about the context (e.g., 'Create a new accounts payable payment').

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus siblings like 'create_payment' or 'list_ap_payments'. The agent receives no context about prerequisites, when NOT to use it, or alternatives.

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

  • Behavior2/5

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

    The only behavioral disclosure is 'Fails loudly', which indicates error behavior but lacks details like read-only intent, authorization requirements, or what happens on missing data. With no annotations, the agent is left to infer most behavioral traits.

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

    Conciseness2/5

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

    The description is extremely brief but at the cost of missing essential information. It includes an arguably irrelevant version note and a behavioral hint, but fails to explain the parameter or usage. It is under-specified rather than efficiently concise.

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

    Completeness2/5

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

    Given the tool has a single parameter with no schema documentation and no annotations, the description should provide more context. It lacks details on how to invoke the tool, what context is needed, and how it differs from sibling tools. The presence of an output schema does not compensate for missing input semantics.

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

    Parameters1/5

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

    Schema description coverage is 0%, yet the description provides no explanation for the sole parameter 'fields_json'. Its purpose (whether to specify the payment ID or select fields) is entirely unclear, forcing the agent to guess. This is a critical gap.

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

    Purpose4/5

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

    The description states 'AP payment status', clearly indicating the tool retrieves the status of an accounts payable payment. The name itself is descriptive, and it is distinguishable from siblings like get_ap_bill and get_ap_vendor. However, it lacks detail on how the tool identifies which payment, relying on the vague 'fields_json' parameter.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. The note '[Not in LCS /v1]' hints at scalability or deprecation but does not offer explicit usage context or prerequisites. The agent receives no help in deciding if this tool is appropriate.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden. It states 'Fails loudly,' indicating error behavior, but lacks information on permissions, side effects, 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.

    Conciseness3/5

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

    The description is extremely concise, but the brevity sacrifices critical information. It is efficient but under-informative for an agent to correctly invoke the tool.

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

    Completeness2/5

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

    Despite low complexity (one required param, output schema exists), the description lacks usage guidelines and parameter semantics, making it incomplete for effective tool selection.

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

    Parameters1/5

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

    Schema coverage is 0%, meaning the description adds no meaning beyond the parameter name 'matter_type_id' and its type. The description does not explain what the parameter represents or its format.

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

    Purpose4/5

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

    The description clearly states 'Matter-type workflow lookup,' which specifies the action (lookup) and resource (matter-type workflow). It is specific and distinguishes from sibling tools focusing on other entities.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. The sibling tools include many lookup functions, but the description lacks context about when 'get_matter_type_workflow' is appropriate.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden for behavioral disclosure. The only behavioral hint is 'Fails loudly', which implies error handling but does not state whether the tool is read-only, requires authentication, or has any side effects. This is insufficient for safe invocation.

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

    Conciseness2/5

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

    The description is extremely concise (9 words) but lacks structure. It includes an out-of-context note '[Not in LCS /v1]' that is not integrated. The brevity comes at the cost of missing essential information about parameters and usage.

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

    Completeness2/5

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

    Although an output schema exists, the description does not explain what the 'definition' contains, making it incomplete for a lookup tool. Combined with no annotations and minimal behavioral info, the agent lacks sufficient context to decide when and how to use this tool.

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

    Parameters1/5

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

    The schema has one parameter 'matter_id' with no description and 0% coverage. The description does not mention this parameter at all, providing no additional meaning or usage guidance beyond the schema definition.

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

    Purpose4/5

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

    The description clearly states 'New-matter definition lookup', specifying the verb (lookup) and resource (new-matter definition). It distinguishes somewhat from siblings like 'get_matter' and 'get_new_matter_defaults', though not explicitly. The '[Not in LCS /v1]' indicates it's a legacy or alternative version.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives such as 'get_matter' or 'get_new_matter_defaults'. The description lacks any context about prerequisites, appropriate scenarios, or exclusions.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full responsibility for behavioral disclosure. The phrase 'Fails loudly' hints at error behavior but is vague and does not specify read-only nature, authentication requirements, or potential side effects. The description is insufficient for understanding tool behavior.

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

    Conciseness3/5

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

    The description is very short, but the inclusion of '[Not in LCS /v1]' is unnecessary for an AI agent and may be misleading. 'Fails loudly' is esoteric. Overall, it is terse but not effectively concise, as it sacrifices clarity for brevity.

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

    Completeness2/5

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

    Despite having an output schema (not shown), the description does not mention pagination behavior or the meaning of the parameters. The tool lists AP bills but provides no context about sorting, filtering, or the scope of results. The phrase 'Fails loudly' adds only confusion. Given the simplicity of a list tool, additional context is expected.

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

    Parameters1/5

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

    The input schema has 2 parameters (page, page_size) with 0% descriptor coverage, meaning the schema provides no descriptions. The tool description does not mention or explain any parameters, so it adds no semantic value beyond the parameter names themselves.

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

    Purpose4/5

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

    The description states 'List AP bills' which clearly identifies the verb and resource. However, the prefix '[Not in LCS /v1]' introduces confusion and 'Fails loudly' is ambiguous but does not obscure the core purpose. It differentiates from siblings like get_ap_bill and list_ap_payments.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives (e.g., list_invoices, list_expenses). There is no mention of prerequisites, context, or scenarios where this tool should be avoided. The description offers no usage context.

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

  • Behavior2/5

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

    With no annotations, the description must disclose behavioral traits. The only clue is 'Fails loudly', suggesting error messages are clear, but it omits details like pagination behavior, data freshness, or any side effects. This is insufficient for an agent.

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

    Conciseness3/5

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

    The description is very short (two phrases), which is concise, but it lacks important information. The '[Not in LCS /v1]' note adds clutter without aiding invocation. The structure is minimal but not effective for a guidance tool.

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

    Completeness2/5

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

    Given no parameter descriptions, no annotations, and only an existing output schema (unseen), the description is highly incomplete. It does not define 'AP payments', explain the 'fails loudly' behavior, or provide usage examples, making it insufficient for confident agent use.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not mention or explain the two parameters (page, page_size). The agent receives no help understanding defaults, constraints, or valid values, failing to compensate for the missing schema descriptions.

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

    Purpose4/5

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

    The description clearly states 'List AP payments', specifying the verb and resource. The name distinguishes it from sibling tools like 'list_payments' and 'get_ap_payment_status', but no explicit differentiation is provided in the description.

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

    Usage Guidelines2/5

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

    No guidance is given on when to use this tool versus alternatives. The description does not mention any context, prerequisites, or exclusions, which is a significant gap given the many sibling list tools.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of disclosing behavioral traits. It only states 'Fails loudly', indicating error handling behavior, but omits other important traits such as whether the operation is read-only, authentication requirements, rate limits, or pagination behavior (e.g., how page_size affects results).

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

    Conciseness3/5

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

    The description is very concise, consisting of two short phrases. While brevity is beneficial, it sacrifices essential information. The structure is straightforward but could be expanded with a sentence on parameters and typical use without becoming overly verbose.

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

    Completeness2/5

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

    Given that the tool has an output schema (unknown content), no annotations, and sibling tools exist, the description is insufficient for confident use. It lacks details on return values, filtering capabilities, or prerequisites. The 'Not in LCS /v1' note adds minimal context. A more complete description would cover what data is returned and any limitations.

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

    Parameters1/5

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

    Schema description coverage is 0%, so the description must compensate by explaining parameters. However, it does not mention page or page_size at all. The agent cannot infer their semantics (e.g., page starts at 1, page_size controls number of results) from the description alone.

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

    Purpose4/5

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

    The description states 'List AP vendors', which clearly identifies the action and resource. The name itself distinguishes from sibling list tools (e.g., list_ap_bills, list_clients). However, it could be more specific about what AP vendors are (e.g., accounts payable vendor records) and the scope of the listing.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or scenarios where list_ap_vendors should be preferred over other list tools like list_ap_bills or list_clients. The '[Not in LCS /v1]' note is a version caveat, not usage guidance.

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

  • Behavior2/5

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

    With no annotations, the description should disclose behavioral traits beyond the schema. It only says 'with pagination' which is already implied by the page and page_size parameters. No mention of ordering, filtering, rate limits, or other constraints.

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

    Conciseness2/5

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

    Extremely short (3 words), but at the cost of missing critical information. It is under-specified, not truly concise. Could be more informative without verbosity.

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

    Completeness2/5

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

    Given the presence of an output schema and sibling tools, the description is too minimal. It lacks details about output format, scope of invoices listed, and any special behaviors. Incomplete for a tool with 2 parameters and many siblings.

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

    Parameters1/5

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

    Schema coverage is 0%, and the description does not explain what page and page_size mean or their default behavior. The only clue is 'with pagination', but that is insufficient to fill the gap.

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

    Purpose4/5

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

    The description clearly states the action (list) and resource (invoices), and mentions pagination. However, it could be more specific to distinguish from other list tools, such as listing all invoices vs. filtered ones.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like get_invoice or other list tools. The description does not provide context for selection.

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

  • Behavior2/5

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

    Without annotations, the description bears full burden. It only says 'update' but does not disclose whether the operation is destructive, reversible, or requires permissions. No behavioral traits beyond the basic action.

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

    Conciseness3/5

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

    The description is a single short sentence, which is concise but too minimal. It could include additional context without sacrificing brevity.

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

    Completeness2/5

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

    Given two required parameters, no annotations, and an output schema, the description is insufficient. It does not explain the format of 'fields_json', updateable fields, or constraints, leaving the agent with an incomplete understanding.

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

    Parameters1/5

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

    The input schema has 0% description coverage, and the tool description does not explain the parameters 'expense_id' and 'fields_json'. The agent receives no guidance on how to format or use 'fields_json', which is critical for an update tool.

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

    Purpose4/5

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

    The description clearly states 'Update an expense card by ID (GUID)', specifying the verb 'update' and the resource 'expense card'. It distinguishes from sibling tools like create_expense and delete_expense.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. Lacks context about prerequisites, use cases, or when not to use it.

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

  • Behavior2/5

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

    The description only says 'Fails loudly', which indicates error behavior but lacks details on side effects, permissions, rate limits, or return values. With no annotations, the description carries full burden and is insufficient.

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

    Conciseness3/5

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

    The description is very short (14 words) and front-loaded with the version note. While concise, it omits critical information, making it insufficient for effective use.

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

    Completeness1/5

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

    Despite having only one parameter and an output schema, the description provides almost no context. No information about input format, output, or behavioral specifics. Completely inadequate for a create tool.

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

    Parameters1/5

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

    The single parameter 'fields_json' (type string) has no description in the schema or the tool description. Schema coverage is 0%, so the agent gets no guidance on what JSON structure to provide.

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

    Purpose5/5

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

    The description clearly states 'Create an AP vendor', which is a specific verb+resource. It also includes a version note '[Not in LCS /v1]' to clarify scope, and the name distinguishes it from sibling tools like create_ap_bill and create_ap_payment.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool vs alternatives. There is no mention of prerequisites, when not to use it, or comparisons to sibling tools like update_ap_vendor or list_ap_vendors.

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

  • Behavior1/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. 'Fails loudly' implies error behavior but does not explain what the tool does (e.g., reads data, requires auth, etc.). The description is almost entirely uninformative about behavior.

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

    Conciseness3/5

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

    The description is very short but includes unnecessary brackets '[Not in LCS /v1]' and the ambiguous 'Fails loudly.' It could be more structured and relevant. While concise, it sacrifices clarity.

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

    Completeness3/5

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

    Given no parameters and an output schema, the description could be minimal but still fails to convey the purpose fully. 'Invoice-payment lookups' is vague; the tool likely returns lookup data for invoice payments, but this is not confirmed. It is adequate but lacks depth.

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

    Parameters4/5

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

    There are no parameters, so the input schema is trivially covered. The description adds no parameter-level meaning, but 0-parameter tools need minimal description. Baseline for 0 params is 4, and the description does not detract from that.

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

    Purpose3/5

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

    The description states 'Invoice-payment lookups,' which indicates it is for looking up invoice payment data. However, it does not differentiate from sibling tools like get_invoice_lookups or specify what exactly is returned. The phrase 'Fails loudly' is irrelevant to purpose.

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

    Usage Guidelines2/5

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

    No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like get_invoice_lookups or other lookup tools. The agent receives no context on when this is the appropriate choice.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions 'Fails loudly,' which indicates it will throw errors clearly, but does not disclose whether it is a read-only operation, any side effects, or what success looks like. More behavioral detail is needed for a safe agent invocation.

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

    Conciseness3/5

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

    The description is extremely short (one sentence), but the inclusion of '[Not in LCS /v1]' is unnecessary for an agent and wastes space. It is front-loaded with the purpose, but the overall terseness borders on under-specification. Every word should earn its place, and this one does not.

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

    Completeness3/5

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

    Given the tool has no parameters and an output schema exists, the description is minimally complete. However, it does not clarify what 'defaults' refers to or how the output is structured. The 'Fails loudly' note adds a hint, but the overall context is sparse for a lookup tool that might be used in decision-making.

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

    Parameters3/5

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

    The input schema has zero parameters, so schema description coverage is effectively 100%. The description adds no parameter information, which is acceptable since there are none. Baseline score of 3 applies as the schema does not require additional explanation.

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

    Purpose3/5

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

    The description states 'New-matter defaults lookup' which clearly identifies the resource and operation. However, the prefix '[Not in LCS /v1]' is confusing and may mislead the agent about its availability. No explicit verb like 'get' is used, but 'lookup' implies reading. It distinguishes from siblings like 'get_new_matter_definition' but not explicitly.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use, or related tools. The description simply states the purpose without any usage context.

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

  • Behavior2/5

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

    With no annotations, the description carries full responsibility for behavioral disclosure. It fails to mention ordering, filtering, default behavior, or any constraints, leaving significant gaps about how the tool operates.

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

    Conciseness3/5

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

    The description is very concise (one sentence) but lacks needed details. It is not overly verbose, but under-specification reduces its effectiveness.

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

    Completeness2/5

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

    Given the existence of an output schema, return values are covered, but the description still fails to include important context like sorting, filtering, or differentiation from sibling list tools. The description feels incomplete for a proper list operation.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description only mentions 'pagination' without explaining the page and page_size parameters. The description adds minimal value beyond the schema defaults.

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

    Purpose4/5

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

    The description clearly states 'List contacts' with a specific verb and resource, and mentions pagination. While it doesn't differentiate from other list tools like list_clients, the resource 'contacts' is distinct enough.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives like get_contact or other list tools. The description only indicates pagination, which is a feature rather than usage context.

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

  • Behavior2/5

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

    With no annotations, the description must disclose behavioral traits. It only states the basic action, omitting side effects, permissions, idempotency, or what the API returns. This is insufficient for an agent to understand the tool's full behavior.

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

    Conciseness3/5

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

    The description is concise (one sentence) but lacks essential details. Conciseness is compromised when it fails to provide necessary information for parameter usage.

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

    Completeness2/5

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

    Given the presence of an output schema (not shown), the description should at least hint at return values. It fails to explain the fields_json parameter thoroughly, making the tool definition incomplete for correct invocation.

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

    Parameters2/5

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

    Schema coverage is 0%, so the description should explain both parameters. It partially describes contact_id as a GUID but does not clarify fields_json, its format, allowed keys, or how to structure the JSON string. This leaves a critical gap.

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

    Purpose4/5

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

    The description clearly states 'Update a contact by ID (GUID),' specifying the action and key parameter. It distinguishes from sibling tools which update other entities (e.g., update_client, update_invoice). However, it does not elaborate on the update payload or what fields can be modified.

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

    Usage Guidelines2/5

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

    No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives (e.g., create_contact for new contacts, update_client for client-specific updates), nor does it mention prerequisites or context.

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

  • Behavior2/5

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

    No annotations are provided, and the description does not disclose behavioral traits such as authorization needs, side effects (e.g., payment allocation impact), idempotency, or rate limits. The description solely states the action without transparency.

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

    Conciseness3/5

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

    The description is very concise (one sentence) but under-specified. Conciseness is positive, but the lack of essential detail makes it insufficient.

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

    Completeness2/5

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

    Given the complexity of payment creation and allocation, the description is too minimal. While an output schema exists (not shown), the input parameter is opaque, and no context about allocation behavior is provided.

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

    Parameters1/5

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

    The only parameter, fields_json, is a string with 0% schema description coverage. The description does not clarify what fields are expected within the JSON, leaving the agent entirely in the dark. This is a critical gap.

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

    Purpose5/5

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

    The description clearly states the tool creates an invoice payment and allocates it to invoices/trust. It uses a specific verb-resource combination and implicitly distinguishes from siblings like create_invoice (creates invoice) and create_ap_payment (AP payment).

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives (e.g., create_ap_payment for AP payments). No context on prerequisites or exclusions.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden. It notes a failure case but does not state that it is read-only, any required permissions, or other behavioral traits beyond the /v1 restriction.

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

    Conciseness5/5

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

    The description is extremely concise with two sentences, no redundancy, and front-loads the purpose.

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

    Completeness2/5

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

    Given the presence of an output schema, the description omits return value details, parameter usage, and context for using allocation suggestions, making it incomplete for effective tool invocation.

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

    Parameters1/5

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

    The schema has one parameter (fields_json) with 0% description coverage, and the tool description does not explain its meaning or format, leaving the agent without guidance.

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

    Purpose4/5

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

    The description clearly states the tool gets 'invoice allocation suggestions for a payment', which is a specific verb and resource. However, it does not differentiate from other invoice-related sibling tools like get_invoice_payment_lookups, leaving some ambiguity.

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

    Usage Guidelines2/5

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

    The description mentions it is not exposed by /v1 and fails loudly, providing a constraint, but it offers no guidance on when to use this tool versus alternatives or any prerequisites.

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

  • Behavior2/5

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

    Annotations are absent. Description only notes 'Fails loudly,' hinting at error behavior but not explaining permissions, safety, or side effects. Minimal behavioral disclosure.

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

    Conciseness3/5

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

    Extremely short (two phrases), but the brevity omits important context. Some sentences could be added to improve guidance; current conciseness is not optimally helpful.

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

    Completeness2/5

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

    With many sibling lookup tools and presence of an output schema, the description should explain what 'invoice lookups' returns or how it differs. Currently incomplete for effective use.

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

    Parameters4/5

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

    No parameters in schema, so description does not need to add param meaning. Baseline of 4 is appropriate as there is nothing to clarify.

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

    Purpose3/5

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

    Description states 'Invoice lookups' which identifies the resource and action, but does not differentiate from many sibling lookup tools (e.g., get_expense_lookups, get_new_invoice_lookups). The verb is implied by the tool name.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like get_invoice_allocations or get_new_invoice_lookups. The description lacks context for selecting this tool.

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

  • Behavior3/5

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

    Notes 'Fails loudly,' which indicates error behavior. However, with no annotations, description should cover safety profile (e.g., idempotency, permissions) which it does not. Partial credit for disclosing a behavioral trait.

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

    Conciseness3/5

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

    Very short two-sentence structure is concise but omits critical information. Could be expanded with parameter guidance while maintaining brevity.

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

    Completeness2/5

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

    Despite having an output schema (not shown), description lacks details on input format, return value, and any constraints. A mutation tool with two parameters and no annotations needs more context.

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

    Parameters1/5

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

    Schema coverage is 0% and description provides no parameter details. 'fields_json' is ambiguous and could be misinterpreted without explanation of expected format or allowed fields.

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

    Purpose4/5

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

    Description clearly states 'Update an AP bill' with a specific verb and resource. The prefix '[Not in LCS /v1]' slightly detracts but doesn't obscure purpose. Distinguishes from create/delete/get siblings.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like update_invoice or update_transaction. No prerequisites or exclusions mentioned.

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

  • Behavior2/5

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

    With no annotations, the description must disclose behavior. It only mentions 'Fails loudly' but does not explain idempotency, permissions, or side effects. The minimal text provides little transparency.

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

    Conciseness3/5

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

    The description is very short and front-loaded, but it sacrifices essential information. While concise, it is under-specified and does not earn its place with meaningful detail.

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

    Completeness2/5

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

    Given the tool's complexity (two required parameters, no parameter docs, no output schema shown), the description is insufficient. It does not cover how to use fields_json or what the response contains.

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

    Parameters1/5

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

    Schema description coverage is 0% and the description does not explain the parameters beyond their names. 'vendor_id' and 'fields_json' lack format or semantics, so the description adds no value to the schema.

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

    Purpose5/5

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

    The description clearly states 'Update an AP vendor,' which is a specific verb+resource. It distinguishes from sibling tools like create_ap_vendor and list_ap_vendors by indicating an update operation.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool vs alternatives such as create_ap_vendor or get_ap_vendor. There are no prerequisites or context for usage.

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

  • Behavior2/5

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

    With no annotations provided, the description must fully communicate behavioral traits. It only states 'Update an invoice by ID (GUID),' omitting critical details like idempotency, permission requirements, error handling (e.g., if invoice not found), side effects, or whether it returns the updated object. The presence of an output schema is not mentioned.

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

    Conciseness4/5

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

    The description is a single sentence of six words, highly concise with no wasted text. It front-loads the essential verb and object. However, the brevity may sacrifice necessary detail, but for a simple operation it is appropriately sized.

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

    Completeness2/5

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

    Despite simplicity (2 required params, output schema exists), the description is too minimal. It does not explain the role of fields_json, the expected output, or how it relates to sibling invoice tools. The sibling list suggests many invoice operations, but the description fails to anchor the tool's specific function within that ecosystem.

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

    Parameters2/5

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

    The input schema has 0% description coverage, so the description must add meaning. It clarifies that invoice_id is a GUID, which adds minimal value. However, it provides no explanation for fields_json, leaving its format and allowed values completely unspecified. Given the low coverage, the description should do more to explain both parameters.

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

    Purpose4/5

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

    The description clearly states the action (Update), the resource (invoice), and the identifier (by ID, GUID). It distinguishes from sibling tools like approve_invoice or generate_invoice by specifying the update operation. However, it does not elaborate on what parts of the invoice can be updated, which could be clearer.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives such as approve_invoice, generate_invoice, or other update tools in the sibling list. It lacks explicit context about when to choose update_invoice over creating or deleting an invoice.

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

  • Behavior2/5

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

    No annotations are provided. The description only says 'Update', implying mutation, but does not disclose behavioral traits such as permissions, reversibility, or effects on other records. The burden is entirely on the description, which fails to add context.

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

    Conciseness4/5

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

    A single sentence that is concise and front-loaded with purpose. However, it could include more useful information without becoming verbose.

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

    Completeness2/5

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

    Given the tool is an update operation with two parameters and an output schema, the description lacks essential context: how to construct 'fields_json', what the response looks like, and any side effects. It is too minimal to be fully useful.

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

    Parameters2/5

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

    Schema description coverage is 0%. The description adds nothing about the 'fields_json' parameter beyond its name; it does not explain its format or content requirements. The mention of 'ID (GUID)' provides some meaning for 'time_entry_id' but not enough.

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

    Purpose4/5

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

    The description clearly states the action ('Update') and the resource ('a time entry') with identifier type ('by ID (GUID)'). It distinguishes from sibling tools like create_time_entry and delete_time_entry, but lacks detail on what fields can be updated.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives (e.g., create_time_entry or update_expense). No context on prerequisites or limitations.

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

  • Behavior2/5

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

    The description adds 'Fails loudly', indicating that errors will be obvious, but no other behavioral traits are disclosed (e.g., permissions, idempotency, side effects). No annotations are present to compensate.

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

    Conciseness4/5

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

    The description is very short (two sentences) with no wasted words. It is front-loaded with purpose, but the version note '[Not in LCS /v1]' adds context. Could be more structured but is appropriately sized.

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

    Completeness2/5

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

    Given the tool has one parameter, no annotations, and an output schema, the description should explain the parameter and expected usage. It does not, leaving the AI agent without sufficient context to use the tool correctly.

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

    Parameters1/5

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

    The input schema has one required parameter (fields_json) with 0% schema description coverage, but the description does not explain what this parameter should contain or how to format it. It adds no value beyond the schema.

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

    Purpose5/5

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

    The description clearly states 'Create an AP bill', which is a specific verb+resource. It distinguishes from siblings like update_ap_bill, delete_ap_bill, and other create tools (e.g., create_invoice) by the resource name.

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

    Usage Guidelines2/5

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

    No usage guidelines are provided. There is no indication of when to use this tool versus alternatives like update_ap_bill or create_invoice.

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

  • Behavior2/5

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

    No annotations are provided, so the description must fully convey behavior. It states 'Fails loudly,' hinting at error handling but does not describe success behavior, return format, side effects, or idempotency. This leaves significant gaps for an agent.

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

    Conciseness4/5

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

    The description is extremely concise with two short sentences. It avoids unnecessary words and gets to the point. However, the note about '[Not in LCS /v1]' could be integrated more elegantly, but overall it is well-structured for brevity.

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

    Completeness2/5

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

    For a simple get tool with one required parameter, the description is minimally adequate. However, with no parameter documentation, no behavior details beyond failure, and no explanation of the output, it falls short of providing complete contextual information. The presence of an output schema is not leveraged.

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

    Parameters1/5

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

    The input schema has one required parameter, vendor_id, with 0% schema description coverage. The tool description does not explain vendor_id at all, providing no additional meaning beyond the raw schema. An agent cannot infer the format, purpose, or constraints of this parameter.

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

    Purpose5/5

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

    The description explicitly states 'Get an AP vendor,' which is a specific verb and resource. Among siblings like create_ap_vendor, update_ap_vendor, and list_ap_vendors, the verb 'Get' clearly distinguishes this as a retrieval tool. The notation '[Not in LCS /v1]' is a version note but does not hinder purpose clarity.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or situations where other tools like list_ap_vendors might be more appropriate. The description lacks any usage direction.

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

  • Behavior2/5

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

    No annotations are provided, so the description must cover behavioral traits. It does not disclose authentication requirements, side effects, or what happens if required fields are missing. The description implies creation but lacks depth.

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

    Conciseness3/5

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

    The description is relatively short but poorly structured; it reads like a bullet list without formatting. Every sentence has some value, but the presentation could be cleaner. It is not verbose, but not optimally concise.

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

    Completeness2/5

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

    Given the tool's simplicity (1 parameter), the description should clearly explain the expected input and output. There is no mention of the return value despite the presence of an output schema. The description is insufficient for an agent to confidently invoke the tool.

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

    Parameters2/5

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

    Schema description coverage is 0%. The description lists fields to include in fields_json but does not explain the expected format, whether it must be a JSON string, or how to structure the JSON. This leaves the agent with incomplete guidance.

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

    Purpose5/5

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

    The description clearly states 'Create a client.' and lists the fields, leaving no ambiguity about what the tool does. It is distinct from sibling tools like update_client or delete_client.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus other create_* tools (e.g., create_contact, create_matter). No preconditions or exclusions are mentioned, leaving the agent without context for appropriate use.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden but only states creation without disclosing side effects, authorization needs, or error behavior. Minimal transparency.

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

    Conciseness4/5

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

    Very concise with no wasted words. However, extreme brevity sacrifices useful behavioral and usage context, making it slightly too minimal.

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

    Completeness2/5

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

    Despite having only one parameter and an output schema, the description fails to explain what fields are expected, return value significance, or any side effects. Incomplete for effective use.

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

    Parameters3/5

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

    The description 'fields_json: JSON object with contact fields' adds meaning beyond the schema by indicating the expected format. However, it does not specify required fields or constraints, leaving gaps.

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

    Purpose4/5

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

    Clearly states 'Create a contact' indicating the action and resource. However, it does not differentiate from sibling tools like create_client or create_ap_vendor, which could cause confusion.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. The description lacks prerequisites, exclusions, or hints about appropriate use cases.

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

  • Behavior2/5

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

    With no annotations provided, the description must disclose behavioral traits. It states 'Create an expense card' (mutation) but does not mention side effects, permissions, reversibility, or what the output schema contains. The existence of an output schema is known but not described, leaving uncertainty about the return value.

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

    Conciseness4/5

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

    The description is very short: two sentences. The first sentence states the purpose, the second explains the only parameter. No fluff or redundancy. It could benefit from a structured format, but it is concise and front-loaded.

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

    Completeness2/5

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

    Given the tool's complexity (single parameter, output schema exists), the description is incomplete. It lacks details about what fields can be included in fields_json beyond matterId, whether any lookups are needed, or how the output schema relates. The presence of sibling tools like get_expense_lookups suggests more context is needed for effective use.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description must compensate. It adds meaning by stating that fields_json is a JSON object and that matterId is required. However, it does not specify other possible fields or the exact JSON structure, leaving room for ambiguity.

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

    Purpose4/5

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

    The description clearly states 'Create an expense card,' which conveys the action and resource. It also specifies that fields_json is a JSON object with a required matterId, adding specificity. However, it does not explicitly differentiate from sibling tools like create_ap_bill or create_invoice, but the resource name 'expense' is distinct enough.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives like create_ap_bill or update_expense. There is no mention of prerequisites, context, or when not to use it. The only hint is the required matterId, implying it's for a matter, but no further context.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It discloses that the tool creates an invoice (a mutation), but does not mention any side effects, authorization needs, rate limits, or success/failure response details. The description is minimal and does not add much beyond the basic action.

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

    Conciseness4/5

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

    The description is concise with three sentences that cover purpose, parameter type, and error handling. It is front-loaded with the HTTP method and endpoint. No redundant information, though it could be slightly more structured with a clear parameter format description.

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

    Completeness2/5

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

    Given the tool has one parameter (fields_json) that should contain the invoice body, the description lacks critical details about the expected JSON structure. The presence of many sibling tools and an output schema (not shown) suggests more context is needed. Relying on API validation errors is insufficient for correct tool invocation.

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

    Parameters3/5

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

    The schema has 0% description coverage for the single parameter (fields_json). The description adds value by stating it is a JSON object for the invoice body, which is not present in the schema. However, it does not specify the expected structure or required fields within the JSON, leaving the agent to rely on trial and error via API validation errors.

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

    Purpose4/5

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

    The description clearly states the tool creates an invoice via a specific HTTP endpoint (POST /v1/invoices). The verb 'Create' and resource 'invoice' are unambiguous. However, it does not explicitly differentiate from sibling tools like 'generate_invoice', which may have a similar purpose.

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

    Usage Guidelines2/5

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

    The description lacks guidance on when to use this tool versus alternatives (e.g., generate_invoice). It does not mention prerequisites, required permissions, or context for use. The only indirect usage hint is that API validation errors will name missing fields, which is more about error handling than usage context.

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

  • Behavior2/5

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

    No annotations are provided, and the description only mentions 'fails loudly' for errors. It does not disclose whether deletion is irreversible, cascading effects, or permissions required. For a destructive operation, more transparency is needed.

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

    Conciseness4/5

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

    The description is extremely concise (one short sentence) with no fluff. However, it could include more details without becoming verbose, such as required permissions or return value.

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

    Completeness2/5

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

    Given the tool has an output schema (not shown), the description lacks completeness about what happens on success (e.g., returns deleted bill or void). No context about authorization or side effects, making it insufficient for confident agent invocation.

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

    Parameters2/5

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

    With 0% schema description coverage and only one parameter (bill_id), the description adds no meaning beyond the schema. No format, examples, or constraints are given, leaving the agent to guess the input format.

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

    Purpose5/5

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

    The name 'delete_ap_bill' combined with the description 'Delete an AP bill. Fails loudly.' clearly states the verb (delete) and resource (AP bill), distinguishing it from sibling tools like delete_invoice or delete_client.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives (e.g., delete_invoice). Missing prerequisites like bill existence or status requirements. The phrase 'fails loudly' hints at error behavior but does not help an agent decide context.

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

  • Behavior2/5

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

    With no annotations, the description must disclose behavioral traits. It states 'Delete' but omits details such as whether the deletion is permanent or soft, side effects on related data, error handling, or required authentication scope. The description fails to provide sufficient transparency for a mutation operation.

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

    Conciseness4/5

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

    The description is extremely concise (one sentence, seven words) and front-loaded with the key action and target. However, it sacrifices important behavioral and contextual details, making it slightly too brief for comprehensive understanding.

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

    Completeness3/5

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

    Given the tool's simplicity (single parameter, no nested objects) and the presence of an output schema (not shown), the description might be minimally adequate for a basic CRUD delete. However, it lacks essential context about typical usage flows, error cases, and the nature of the deletion. More detail would improve completeness.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description must compensate. It adds that matter_id is a 'GUID', which clarifies the expected format beyond the schema's plain string type. However, it does not explain how to obtain the GUID, acceptable value ranges, or uniqueness constraints. The addition is helpful but minimal.

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

    Purpose4/5

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

    The description clearly states the action (delete) and the target resource (matter) with the required identifier (ID, GUID). It distinguishes well from sibling tools like create_matter, update_matter, get_matter, and list_matters by specifying the delete operation.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives, prerequisites (e.g., existence of matter, permissions), or when deletion is inappropriate (e.g., if the matter has associated records). This leaves the agent without context for correct tool selection.

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

  • Behavior3/5

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

    Without annotations, the description carries the burden of behavioral disclosure. It states 'fails loudly,' which hints at error handling but offers no specifics about read-only nature, permissions, or side effects. The output schema is present, so return format is covered, but other behavioral aspects are lacking.

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

    Conciseness4/5

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

    The description is very short with one sentence, but it includes the extraneous prefix '[Not in LCS /v1]' that may confuse or mislead. For a simple tool, minimal text is acceptable, but this could be cleaner.

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

    Completeness2/5

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

    Given the tool's simplicity (one required parameter, output schema present), the description leaves gaps. It fails to explain when to use this vs. 'list_ap_bills,' does not document the parameter, and provides minimal behavioral context. The output schema covers return values, but overall completeness is poor.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate for the missing parameter documentation. However, the description does not mention the required 'bill_id' parameter or explain its format or constraints. The parameter name is self-explanatory, but no additional value is added.

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

    Purpose4/5

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

    The description clearly states 'Get an AP bill,' which accurately defines the verb and resource. The name 'get_ap_bill' matches this purpose, distinguishing it from the sibling 'list_ap_bills' that returns multiple bills. However, the prefix '[Not in LCS /v1]' adds unnecessary ambiguity.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus the sibling 'list_ap_bills' or other related tools. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage solely from the name.

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

  • Behavior2/5

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

    The description adds 'Fails loudly' but does not disclose whether the tool is read-only, destructive, or requires authentication. With no annotations, the description carries full burden and fails to provide adequate behavioral context beyond a failure mode.

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

    Conciseness5/5

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

    The description is extremely concise with only two sentences. Every sentence provides value: the first identifies the tool's purpose, the second notes a behavioral trait. No wasted words.

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

    Completeness2/5

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

    Despite having an output schema, the description lacks completeness. It does not explain what 'matter labels' are, provide usage context, or indicate prerequisites. The tool is simple, but the description could still add value with a brief elaboration.

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

    Parameters4/5

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

    There are no parameters, so the description need not add meaning beyond the schema. The description identifies the resource, which is sufficient. Baseline for 0 parameters is 4.

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

    Purpose3/5

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

    The description states 'Matter labels lookup' which identifies the resource and action, but lacks specificity on what the tool returns or how it differs from siblings like get_client_labels. The '[Not in LCS /v1]' adds context but not clarity.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool vs alternatives such as get_client_labels or list_matters. The description does not mention prerequisites, context, or exclusions.

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

  • Behavior2/5

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

    No annotations provided, so the description must carry the full burden. It adds 'Fails loudly', which hints at error behavior but is vague. It does not disclose whether the lookup is cached, requires authentication, or what 'loudly' means (e.g., exception, log).

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

    Conciseness3/5

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

    The description is short and front-loaded with purpose, but the '[Not in LCS /v1]' prefix is an unnecessary technical detail for the average agent. The sentence is concise but lacks structure (e.g., no separate usage or behavior sentences).

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

    Completeness2/5

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

    Given that there is an output schema, the description does not need to detail return values. However, it is too minimal: it does not explain what 'defaults' means, whether they are configurable, or any prerequisites. The 'Fails loudly' note is incomplete.

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

    Parameters4/5

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

    No parameters exist in the schema, so baseline is 4. The description does not add parameter info, but with zero parameters this is acceptable.

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

    Purpose4/5

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

    The description clearly states it is a 'New-contact defaults lookup', which indicates a retrieve operation for default values when creating a new contact. This distinguishes it from sibling tools like 'get_contact' (retrieve existing) or 'create_contact' (create). However, the '[Not in LCS /v1]' prefix is cryptic and may confuse.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. It implies usage when setting up a new contact, but does not mention when not to use it or compare with similar tools like 'get_contact' or 'get_new_matter_defaults'.

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

  • Behavior2/5

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

    No annotations are provided, so the description must fully disclose behavioral traits. It mentions pagination but does not address read-only nature, authentication requirements, rate limits, or whether it returns all payments or only invoice-related ones. This leaves significant ambiguity for the agent.

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

    Conciseness5/5

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

    The description is a single sentence with no wasted words. It is front-loaded and concise, achieving its purpose efficiently.

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

    Completeness3/5

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

    Given the presence of an output schema (not shown), the description does not need to detail return values. However, for a listing tool with pagination and siblings like list_ap_payments, more context (e.g., scope of payments, sorting, read-only indication) would improve completeness. It is minimally adequate.

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

    Parameters2/5

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

    With 0% schema description coverage, the description should compensate by explaining parameters. It only mentions 'pagination' without referencing 'page' or 'page_size', adding no meaning beyond the schema's defaults and titles. The schema itself provides some hints (e.g., defaults), but the description falls short.

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

    Purpose4/5

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

    The description uses a specific verb 'List' and resource 'invoice payments' with a qualifier 'with pagination'. It clearly states what the tool does, but does not explicitly differentiate from the sibling tool 'list_ap_payments', which may have overlapping scope.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives (e.g., list_ap_payments). The description lacks any context about prerequisites, default behavior, or exclusions.

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

  • Behavior2/5

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

    No annotations; description does not disclose side effects, permissions, or error handling. Minimal beyond the action itself.

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

    Conciseness4/5

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

    Single sentence with essential information, no wasted words. Could be slightly improved but front-loaded purpose.

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

    Completeness2/5

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

    Output schema exists, reducing need for return value explanation, but mutation lacks usage context, error behavior, and param guidance.

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

    Parameters2/5

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

    Schema coverage is 0%. Description only adds 'JSON object with fields to update' without specifying allowed fields, format, or examples.

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

    Purpose5/5

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

    Clearly states 'Update a matter by ID (GUID)' with verb and resource, distinguishing it from sibling tools like get_matter or delete_matter.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool vs alternatives, no prerequisites or constraints mentioned.

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

  • Behavior2/5

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

    With no annotations, the description carries full responsibility for behavioral disclosure. It only states 'Fails loudly,' hinting at error conditions, but does not describe whether the tool is read-only, what it returns on success, or any side effects. Critical behavioral traits like data format or authorization needs are omitted.

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

    Conciseness4/5

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

    The description is extremely concise at two short sentences, with no redundant information. It is front-loaded with the core purpose. However, it could be considered too terse, missing context that could be added without breaking conciseness.

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

    Completeness2/5

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

    The description lacks sufficient context for an agent to understand what 'client labels' are or how they differ from other label/code lookups. While an output schema exists, the description doesn't hint at its structure. The version note is helpful but incomplete for tool selection among siblings.

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

    Parameters4/5

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

    The input schema has zero parameters with 100% coverage, so the description need not add parameter details. 'Client labels lookup' effectively conveys no inputs are required, which is consistent and sufficient.

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

    Purpose4/5

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

    The description 'Client labels lookup' clearly identifies the tool's purpose as retrieving client labels. However, it does not differentiate this tool from sibling tools like get_matter_labels or get_activity_codes, which may have similar lookup semantics.

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

    Usage Guidelines2/5

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

    No usage guidelines are provided. The description does not indicate when to use this tool over alternatives, nor does it mention prerequisites or context. The only hint is 'Fails loudly,' which warns about error behavior but not about appropriate usage.

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

  • Behavior3/5

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

    The description discloses that the tool fails loudly and that documents are read-only, which is important behavioral context. However, without annotations, it fails to provide details on how the failure occurs (e.g., error type) or any side effects.

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

    Conciseness4/5

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

    The description is a single sentence, front-loading the key message that the tool fails. It is efficient but somewhat cryptic with the '[Not in LCS /v1]' prefix.

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

    Completeness3/5

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

    For a tool designed to fail, the description conveys the essential information. However, it lacks explanation of the parameter, the output schema, or potential error details, leaving gaps for complete understanding.

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

    Parameters2/5

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

    The single parameter 'fields_json' has no description in the schema, and the tool description does not explain its purpose or format. The agent is left guessing, with 0% schema coverage and no compensatory explanation.

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

    Purpose4/5

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

    The description clearly states that the tool fails because signed download URLs are not exposed in this API version. It explicitly says 'Fails loudly,' indicating the tool's primary action is to fail when called.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool or alternatives. The description only notes that it fails, but does not suggest other tools like get_document_upload_url or indicate that get_document_download_url should be avoided.

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

  • Behavior3/5

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

    The description notes 'Fails loudly,' which informs the agent of the failure behavior. However, with no annotations provided, the description carries the full burden and lacks details on success conditions, output nature, or what triggers failure.

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

    Conciseness3/5

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

    The description is very short but includes a version notation '[Not in LCS /v1]' that may be irrelevant for an AI agent. While concise, it could be more informative without adding length.

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

    Completeness3/5

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

    Given 0 parameters and an existing output schema, the description is minimal but adequate for a simple lookup tool. However, the lack of clarity on what is looked up and the presence of many similar siblings reduces completeness.

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

    Parameters4/5

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

    There are no parameters, so the baseline is 4. The description adds no parameter information, but none is needed.

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

    Purpose3/5

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

    The description states 'Transaction lookups' which indicates the tool retrieves lookup data for transactions, but is vague and does not specify what kind of lookups or distinguish it from siblings like get_expense_lookups or get_invoice_lookups.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus other lookup tools (e.g., get_expense_lookups, get_invoice_lookups). The description does not mention context or alternatives.

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

  • Behavior3/5

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

    With no annotations, the description must disclose behavioral traits. It mentions the /v1 endpoint may require OAuth scope and can return 403, which is useful. However, it omits other behaviors like pagination defaults 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.

    Conciseness4/5

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

    Two efficient sentences: first sentence states the purpose, second adds a critical authorization note. No redundancy, but lacks structural elements like a clear 'When to use' section.

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

    Completeness2/5

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

    Despite having an output schema (relieving return value explanation), the description fails to mention pagination behavior, sorting, or differentiation from the get_text_shortcut tool. This is insufficient for a list operation.

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

    Parameters1/5

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

    Schema description coverage is 0% for the two parameters (page, page_size), and the description adds no meaning about their use, format, or effect.

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

    Purpose5/5

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

    The description starts with 'List text shortcuts/shorthands', a clear verb+resource combination. The tool name 'list_text_shortcuts' aligns well with sibling 'get_text_shortcut' and other list tools, distinguishing it as a collection listing operation.

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

    Usage Guidelines2/5

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

    No explicit instructions on when to use this tool versus alternatives like 'get_text_shortcut' or other list tools. The only context is a caveat about potential 403 errors, which is more about authorization than usage guidance.

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

  • Behavior5/5

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

    The description openly states that the tool 'fails loudly,' indicating that invoking it will result in an error. With no annotations, this disclosure is complete and transparent about the tool's dysfunctional behavior.

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

    Conciseness3/5

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

    The description is brief (two sentences) but starts with a bracketed version note and followed by a negative statement, making it slightly confusing. It could be clearer in structure.

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

    Completeness2/5

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

    Even though an output schema exists, the description indicates the tool fails, suggesting no useful output. It lacks information about the tool's intended functionality or return values, leaving the agent with incomplete context.

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

    Parameters1/5

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

    The description provides no information about the three parameters (page, page_size, active_only). Given 0% schema description coverage, the description adds no value for parameter semantics.

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

    Purpose2/5

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

    The description states the tool provides a 'per-timekeeper billable/non-billable time summary' but immediately contradicts by saying it is not in /v1 and fails loudly. This makes the actual purpose unclear and potentially misleading.

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

    Usage Guidelines4/5

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

    The description explicitly advises to 'Use list_users for the firm's people list,' providing a clear alternative and implying when not to use this tool. This is strong guidance despite the negative framing.

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

  • Behavior2/5

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

    No annotations provided, so description carries full burden. Only states deletion by ID; does not disclose side effects, reversibility, permissions, or error behavior for a destructive operation.

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

    Conciseness4/5

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

    Extremely concise (6 words) and front-loaded. Each word is meaningful, but omits important behavioral context that could be included without much length.

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

    Completeness2/5

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

    Given the simplicity of the tool (one parameter, no nested objects) and presence of output schema, the description is incomplete. Missing behavioral traits, error handling, and usage guidance relative to many sibling tools.

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

    Parameters3/5

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

    With 0% schema description coverage, the description adds minimal value by stating contact_id is a GUID. Lacks details on format, source, or constraints.

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

    Purpose5/5

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

    Description clearly states 'Delete a contact by ID (GUID)', specifying verb, resource, and identifier format. Distinguishes from sibling delete tools for other resources.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like update_contact or create_contact. Fails to specify conditions or exclusions.

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

  • Behavior2/5

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

    No annotations are provided, and the description only mentions the HTTP method and endpoint, not explicitly stating it's read-only or any other behavioral traits.

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

    Conciseness4/5

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

    The description is a single concise sentence with no fluff, though it could include more details without becoming verbose.

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

    Completeness3/5

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

    Given a single parameter and available output schema, the description is mostly adequate but lacks usage guidance and transparency, leaving some gaps.

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

    Parameters2/5

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

    With 0% schema coverage, the description only says matter_id is required and is a GUID, but doesn't add format, source, or examples beyond the schema.

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

    Purpose5/5

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

    The description clearly states it gets UTBMS codes for a matter via a specific endpoint, distinguishing it from siblings like get_activity_codes or get_task_codes.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like get_activity_codes or get_task_codes, nor exclusions for specific scenarios.

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

  • Behavior2/5

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

    No annotations exist, so the description carries full burden. It only says 'Fails loudly', which hints at failure modes but lacks specifics on conditions or behavior beyond that.

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

    Conciseness5/5

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

    Two sentences, no wasted words. Front-loaded with purpose, followed by a behavioral note.

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

    Completeness2/5

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

    Despite having no parameters and an output schema, the description lacks context about what eBilling defaults are and why one would use this tool. The 'fails loudly' note is ambiguous.

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

    Parameters4/5

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

    No parameters exist, so the description does not need to add parameter details. The baseline for 0 parameters is 4.

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

    Purpose4/5

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

    The description states 'eBilling defaults lookup', which is a specific verb-resource pair. While it distinguishes from siblings by being unique, no explicit differentiation is provided.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. No context, prerequisites, or exclusions are given.

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

  • Behavior2/5

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

    No annotations are provided, and the description only states 'Create a time entry,' which implies a write operation. It does not disclose any behavioral traits such as idempotency, side effects, permissions, or error handling.

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

    Conciseness4/5

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

    The description is extremely concise with one sentence and a fragment, front-loading the key action. While efficient, it is too sparse for full understanding.

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

    Completeness3/5

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

    Given the complexity of the fields_json parameter and the existence of an output schema, the description is incomplete. It fails to explain valid keys or data types, though it covers the required matterId.

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

    Parameters3/5

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

    The schema has 0% description coverage, and the description adds minimal value by stating that fields_json is a JSON object and that matterId is required. However, it does not explain the full structure of the JSON, leaving significant ambiguity.

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

    Purpose5/5

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

    The description clearly states 'Create a time entry,' which is a specific verb-resource pair. It distinguishes from sibling tools like get_time_entry and update_time_entry by specifying the creation action.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool vs alternatives like create_expense or create_invoice. The description does not mention conditions for use, exclusions, or when not to use.

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

  • Behavior2/5

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

    With no annotations, the description must fully disclose behavior. It only states 'Delete', implying mutation, but omits consequences: irreversibility, permissions required, or cascading effects. Critical context is missing.

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

    Conciseness5/5

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

    The description is extremely concise: 5 words, no filler, and front-loads the action and resource. Every word earns its place.

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

    Completeness2/5

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

    Given the simplicity (one parameter, output schema present), the description could still provide more context: return value, side effects, or permissions. Fails to add value beyond the bare minimum.

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

    Parameters3/5

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

    The description adds the semantic detail that the ID is a GUID, which is not present in the schema (just 'string'). With 0% schema description coverage, this clarification is valuable but still minimal.

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

    Purpose5/5

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

    The description clearly states the action ('Delete'), the resource ('a transaction'), and the identifier method ('by ID (GUID)'). It distinguishes itself from siblings such as delete_ap_bill or delete_invoice.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives (e.g., when to delete a transaction vs. deleting an AP bill). No prerequisites or exclusion criteria are mentioned.

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

  • Behavior2/5

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

    The description only mentions 'Fails loudly' as a behavioral trait, but lacks details on success behavior, error conditions, or any side effects. With no annotations, this is insufficient for full transparency.

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

    Conciseness4/5

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

    The description is extremely short (one sentence) and front-loads the deprecation notice. It wastes no words, though it could be more informative without losing conciseness.

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

    Completeness2/5

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

    Given the presence of an output schema, the description does not need to explain return values. However, it fails to explain the search parameter or how the tool behaves when it succeeds, leaving the context incomplete for effective use.

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

    Parameters1/5

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

    The input schema has one parameter 'search' with no description, and schema description coverage is 0%. The description does not mention or explain the parameter, leaving its meaning entirely opaque.

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

    Purpose4/5

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

    The description states 'Client suggestions lookup' which clearly identifies the tool's purpose. It also distinguishes from siblings by explicitly recommending 'Use list_clients', indicating this tool is deprecated.

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

    Usage Guidelines5/5

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

    The description provides explicit guidance by stating 'Use list_clients', directly telling the agent to prefer an alternative. This clearly indicates when not to use the tool and which tool to use instead.

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

  • Behavior2/5

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

    With no annotations provided, the description must fully disclose behavioral traits. It only states the basic read operation, but omits important details such as authentication requirements, error handling (e.g., missing user), rate limits, or any side effects.

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

    Conciseness5/5

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

    The description is a single sentence of 8 words, conveying essential information with no redundancy. Every word serves a purpose.

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

    Completeness2/5

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

    Given a simple tool with one parameter and no annotations, the description fails to cover important operational context such as error responses, permissions, or relationship to sibling tools. An output schema exists but does not excuse the lack of behavioral completeness.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description must compensate. It adds the context that the user_id is 'numeric' and used for lookup, but does not elaborate on valid ranges, required scope, or data source. This provides marginal value over the schema alone.

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

    Purpose5/5

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

    The description clearly specifies the action ('get'), the resource ('firm user'), and the lookup criterion ('by numeric ID'). This effectively distinguishes it from list_users and other get_* sibling tools, making the purpose unambiguous.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives (e.g., get_client, get_contact for different entity types). There is no mention of exclusions or scenarios where other tools would be more appropriate.

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

  • Behavior2/5

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

    No annotations provided. Description only says 'update', but does not disclose side effects, idempotency, required permissions, or other behavioral details. Does not contradict any annotations since none exist.

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

    Conciseness5/5

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

    Single sentence, front-loaded, efficient. Every word contributes meaning.

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

    Completeness3/5

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

    Tool is simple with 2 parameters and an output schema exists, so return values are covered. However, lack of parameter explanations and usage guidance makes it somewhat incomplete 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.

    Parameters2/5

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

    Schema coverage is 0%. Description does not explain the meaning or format of fields_json or transaction_id beyond their names. Agent may not know how to construct fields_json.

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

    Purpose5/5

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

    Clearly states action (update) and resource (transaction), specifies using GUID. Distinguishes from sibling tools like create_transaction and delete_transaction.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool vs. alternatives like update_invoice or when not to use it. Lacks context for appropriate usage.

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

  • Behavior2/5

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

    No annotations exist, so the description must fully disclose behavioral traits. It only mentions the API's 400 validation for missing fields, but omits details on permissions, idempotency, side effects, or success/error responses.

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

    Conciseness5/5

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

    The description is very concise, with two sentences that front-load the core purpose and provide essential parameter guidance without extraneous text.

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

    Completeness3/5

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

    Given the tool simplicity (one parameter, no annotations, output schema exists), the description covers the basics but lacks behavioral context and return value information, leaving gaps for an agent to fully understand the tool's behavior.

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

    Parameters3/5

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

    The description adds value beyond the empty schema description by stating that fields_json is a JSON object and that it requires a bankId (with a reference to list_transactions). However, it does not enumerate other required or optional fields.

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

    Purpose4/5

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

    The description clearly states it creates a bank transaction (deposit/withdrawal) via POST /v1/transactions, which distinguishes it from sibling create tools like create_invoice or create_matter. However, it could be more explicit about the specific operation type.

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

    Usage Guidelines3/5

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

    The description provides implicit guidance by mentioning the need for a bankId and referencing list_transactions for enumeration, but lacks explicit when-to-use or when-not-to-use instructions compared to alternatives.

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

  • Behavior2/5

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

    With no annotations, the description must disclose behavioral traits. It only states 'Delete', implying destruction, but fails to mention irreversibility, required permissions, side effects, or any constraints.

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

    Conciseness5/5

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

    The description is a single sentence with no unnecessary words. It front-loads the action and object, making it efficient and easy to parse.

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

    Completeness3/5

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

    For a simple delete tool with one parameter and an output schema (not shown), the description is minimal but adequate. It could be more complete by mentioning the irreversible nature or return value, but the core purpose is clear.

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

    Parameters3/5

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

    The description adds some meaning by specifying 'ID (GUID)' for the expense_id parameter, which is not described in the schema. However, it does not explain format, source, or validation rules. Schema description coverage is 0%, so the description partially compensates.

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

    Purpose5/5

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

    The description clearly states the verb 'Delete' and the resource 'expense card' with the identifier 'ID (GUID)'. It distinguishes the tool from sibling delete tools by specifying the resource type.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives (e.g., other delete tools or actions). There is no discussion of prerequisites, conditions, or when not to use it.

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

  • Behavior2/5

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

    No annotations exist, so the description carries full burden. It discloses a read operation ('Get') but lacks details on authorization needs, side effects, or behavioral traits beyond the basic action.

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

    Conciseness4/5

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

    The description is a single concise sentence with no superfluous text, but it could slightly expand on parameter expectations without sacrificing brevity.

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

    Completeness3/5

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

    Given the output schema exists, return values are covered. However, the description lacks parameter semantics and usage context, making it minimally adequate for a simple get-by-ID operation but incomplete for an agent needing detailed guidance.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the tool description only mentions 'by ID (GUID)' without explaining the format or constraints of the expense_id parameter, failing to compensate for the missing schema details.

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

    Purpose5/5

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

    The description clearly states 'Get an expense card by ID (GUID)', specifying the resource, action, and identifier format, which distinguishes it from sibling tools like 'list_expenses' and 'get_expense_lookups'.

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

    Usage Guidelines3/5

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

    The description implies usage for retrieving a single expense by ID, but provides no explicit guidance on when to use versus alternatives like 'list_expenses' or 'get_expense_lookups', nor any prerequisites or exclusions.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden. It only notes 'Fails loudly' without specifying conditions or disclosing whether the operation is read-only, what auth is needed, or the nature of 'challenge tokens'.

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

    Conciseness4/5

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

    The description is very concise with two sentences and no fluff, though the version note could be moved to reduce front-loading of non-essential info.

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

    Completeness3/5

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

    Given the tool has an output schema, return values are covered. However, the description leaves significant gaps around failure conditions, challenge tokens, and how to handle the 'fails loudly' behavior, making it barely adequate for an agent.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description does not add meaning beyond the schema's property names. 'to_date' is unexplained, and 'matter_id' is only indirectly mentioned.

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

    Purpose5/5

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

    The description clearly states the action ('Preview'), resource ('unbilled billable items'), and scope ('for a matter'), distinguishing it from sibling tools like list_invoices or list_expenses.

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

    Usage Guidelines3/5

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

    Usage context is implied for previewing unbilled items, but no explicit when-to-use or when-not-to-use guidance is given, nor are alternatives mentioned.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions 'fails loudly' for version mismatches, but does not disclose other important behaviors such as whether the operation is irreversible, permission requirements, or side effects on the invoice state. The description is insufficient for a state-changing action.

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

    Conciseness4/5

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

    The description is very short and front-loaded, conveying the essential purpose and a key usage warning in just two sentences. However, it may be too terse given the lack of behavioral and parameter details, but it earns its place without redundancy.

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

    Completeness2/5

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

    Given the presence of an output schema, return values need not be explained, but the description lacks context about the approval workflow, prerequisites (e.g., invoice must be a draft), and effects (e.g., subsequent posting). Among many invoice-related sibling tools, it does not sufficiently differentiate when to use 'approve_invoice' versus 'update_invoice' or 'generate_invoice'. The description is incomplete for a decision-making agent.

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

    Parameters2/5

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

    The input schema has two required parameters ('invoice_id', 'invoice_number') with no descriptions, and schema description coverage is 0%. The tool description does not provide any additional meaning, format, or context for these parameters, relying solely on their names which may be insufficient for correct usage.

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

    Purpose5/5

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

    The description explicitly states the action ('Approve a draft invoice for posting'), clearly identifying the verb and resource. It also distinguishes itself from sibling tools like 'create_invoice' or 'update_invoice' by specifying the approval workflow. The additional note about not being in /v1 provides further clarity.

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

    Usage Guidelines4/5

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

    The description warns that the tool is not exposed in /v1 and will fail loudly, providing a clear context for when not to use it. However, it does not explicitly state when to use this tool over alternatives like 'generate_invoice' or 'update_invoice', leaving room for ambiguity about the approval workflow.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavioral traits. It only states the action without mentioning consequences like soft deletion, cascading effects, or authorization requirements.

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

    Conciseness5/5

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

    The description is a single sentence with no redundant information. It is concise and front-loaded with the essential action and target.

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

    Completeness3/5

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

    The description covers the basic action, but given the presence of an output schema and the simplicity of the tool, additional context about side effects or prerequisites would improve completeness.

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

    Parameters2/5

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

    The sole parameter 'invoice_id' is described only by its name and type in the schema. The description adds no additional information about format, valid values, or constraints, and schema coverage is 0%.

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

    Purpose5/5

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

    The description clearly states the action ('Delete') and the resource ('an invoice by ID (GUID)'), which is specific and distinguishes it from sibling delete tools for other entities like 'delete_ap_bill' or 'delete_client'.

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

    Usage Guidelines3/5

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

    The description does not explicitly state when to use this tool versus alternatives, but the name and context imply it is for deleting invoices. No guidance on when not to use it is provided.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but only notes authorization. No disclosure of side effects, rate limits, or other behavioral traits beyond the basic retrieval operation.

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

    Conciseness5/5

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

    Single sentence that front-loads the purpose with no extraneous words. Maximally concise.

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

    Completeness3/5

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

    Given the simple retrieval task and existence of output schema, the description is functional but minimal. It lacks explanation of what a text shortcut is or what the response contains.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the tool description does not add any meaning beyond the parameter name and type. The parameter is self-explanatory but the description fails to compensate for the lack of schema documentation.

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

    Purpose5/5

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

    The description clearly states 'Get a text shortcut by ID', which is specific and distinguishes from the sibling tool 'list_text_shortcuts'.

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

    Usage Guidelines3/5

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

    The description mentions authorization in relation to list_text_shortcuts but does not provide explicit guidance on when to use this tool versus alternatives or when not to use it.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden for behavioral disclosure, but it only states the basic function. It does not mention that this is a read-only operation, how errors are handled (e.g., invalid ID), or any authentication/permission requirements.

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

    Conciseness5/5

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

    The description is a single concise sentence with no extraneous content. It is front-loaded with the core purpose and is highly efficient.

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

    Completeness4/5

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

    Given the tool's simplicity (single required parameter, output schema available), the description is largely sufficient. It could be slightly improved by noting that the response contains the full time entry object, but the output schema covers that. The description adequately covers the essential need.

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

    Parameters3/5

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

    The schema provides no description for the parameter (0% coverage). The description adds the detail that the ID is a GUID, which clarifies the expected format beyond the schema's type string. However, it does not explain the origin or validation of the ID.

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

    Purpose5/5

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

    The description 'Get a time entry by ID (GUID)' clearly states the action (Get), the resource (time entry), and the identifier method (GUID). It distinguishes this from sibling tools like list_time_entries (which returns multiple) and get_time_entry_lookups (which return reference data).

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives such as list_time_entries or get_time_entry_lookups. There is no mention of prerequisites (e.g., needing a valid GUID) or situations where this tool is preferred.

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

  • Behavior2/5

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

    No annotations provided, so description carries full burden. It indicates mutation but does not disclose side effects, idempotency, or error conditions. Basic transparency only.

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

    Conciseness4/5

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

    Very concise, two separate pieces of information. Could be slightly more structured but is efficient for a simple tool.

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

    Completeness3/5

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

    Given existence of output schema and no annotations, description is minimal. It omits return values, prerequisites, and error handling, which is acceptable for a straightforward update but leaves gaps.

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

    Parameters3/5

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

    With 0% schema coverage, description partially compensates by stating 'fields_json: JSON object with fields to update' and 'Client Id (GUID)'. However, it does not detail allowed fields or format.

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

    Purpose5/5

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

    Description clearly states 'Update a client by ID (GUID)', which uses a specific verb and resource. Distinguishes from sibling tools like create_client or delete_client.

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

    Usage Guidelines3/5

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

    No guidance on when to use this tool versus alternatives. The description is functional but lacks context for choosing among many sibling tools.

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

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden. It only says 'Delete', implying a destructive action, but does not disclose side effects, permanence, or required permissions. The agent has minimal information about the tool's behavior beyond the name.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence with no redundancy. It is front-loaded with the action and resource, and every word earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's simplicity (one parameter, output schema exists) and the absence of annotations, the description is minimally adequate. It covers the basic purpose but lacks details on behavioral traits like irreversibility, which could be important for a delete operation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema has 0% description coverage, but the description adds the key semantic detail that the ID is a GUID, which is not in the schema. This provides meaningful guidance on the parameter format.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'Delete' and the resource 'time entry', and specifies the method 'by ID (GUID)', which distinguishes it from siblings like create_time_entry, update_time_entry, and get_time_entry.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance is provided on when to use this tool versus alternatives, prerequisites, or whether the deletion is irreversible. The description only states what the tool does, not when it should be used.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must disclose behavior. It only indicates a read operation, but lacks details on error handling (e.g., contact not found), permissions, or idempotency. Basic but insufficient for full transparency.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence, front-loaded with the key action, and contains no extraneous words. It is optimally concise for the simplicity of the tool.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple retrieval tool with one required parameter and an output schema (implied), the description is mostly complete. However, it could mention that it returns the full contact object or describe behavior for missing IDs. Minor gap.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema has 0% description coverage, so the description must compensate. It adds that the ID is a GUID, providing format context beyond the schema. However, it does not explain what the ID represents or constraints, though the parameter name is clear. Adds some value.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Get'), the resource ('contact'), and the identifier ('by ID (GUID)'). It distinguishes itself from sibling tools like list_contacts by specifying a single contact retrieval.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies when to use (when you have a specific contact ID) but does not explicitly state when not to use or provide alternatives like list_contacts. Given many sibling tools, more guidance would improve clarity.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so description carries burden. It discloses that only name and display_name filters are honored, which is a useful constraint. However, it does not mention authentication requirements, rate limits, or pagination behavior beyond being paginated.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences with no waste. Main purpose and key detail about filters are front-loaded. Every sentence earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool is a simple list with pagination and filters, and an output schema exists, the description covers the core functionality. Missing details like ordering or total count but acceptable for this complexity.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, but description explains two of four parameters (name, display_name) as server-side filters. The pagination parameters (page, page_size) are not described but their meaning is inferred from names. The clarification about filter limitations adds value.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Description clearly states verb 'list' and resource 'clients', includes detail about pagination and specific filters. Effectively distinguishes from other list tools by entity name.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No explicit guidance on when to use this tool versus alternatives like 'get_client' for single client retrieval. Usage is implied but not contrasted.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description bears full burden. It mentions pagination and returned fields but lacks details on authentication, rate limits, or edge cases. The read-only nature is evident, but behavioral traits beyond basic listing are not disclosed.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely concise (two sentences) and front-loads the action and alternative name. Every word adds value, with no superfluous content.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    While an output schema exists, the description mentions only a subset of fields. It does not specify the result structure (e.g., array of users with total count). For a simple list tool, this is adequate but leaves gaps.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, yet the description adds no meaning to the parameters 'page' and 'page_size' beyond their names and default values. It only hints at pagination without explaining how these parameters function.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('List'), the resource ('firm users' with synonym 'timekeepers'), and specifies pagination and the fields included (email, roles, default rate, status). This makes the tool's purpose distinct from sibling tools which list other entities like clients or matters.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No explicit guidance is provided on when to use this tool versus alternatives (e.g., list_timekeepers appears as a sibling). The tool's purpose is implicit, but clear usage conditions or exclusions are absent.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided; description only states a read operation. Lacks disclosure of error handling, authentication needs, or behavior on missing ID.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Single sentence, no extraneous words. Efficiently conveys purpose and parameter hint.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Adequate for a simple retrieval tool. Output schema exists to document return values. Could mention behavior on not found, but not critical.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With 0% schema description coverage, the description adds critical meaning: clarifies invoice_id is a GUID. However, no further details on format or source.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Clear verb+resource: 'Get an invoice by ID (GUID)'. Specifies the unique identifier format, distinguishing it from list_invoices and other get_ tools.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Implies use when you have an invoice ID, but no explicit guidance on when to use alternatives (e.g., list_invoices) or when not to use this tool.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description must cover behavioral aspects. It discloses that no server-side filtering is available and pagination is supported. However, it does not explain ordering, rate limits, or any side effects. The output schema exists but the description could add context about what fields are returned.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is two sentences, front-loaded with the core action and key constraint. Every word is necessary, and it is easy to scan.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple list tool with only two parameters and an output schema, the description covers pagination and the lack of filtering. It is adequate but could mention the output format or ordering for completeness.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description should explain parameters. It only mentions pagination, but does not describe 'page' and 'page_size' explicitly or clarify defaults/limits. The schema provides titles and defaults, so the description adds minimal value beyond that.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states it lists expense cards with pagination and firm-wide scope. It distinguishes itself from sibling list tools by specifying the resource (expenses) and highlighting that no server-side filters are offered, which is unique among list tools.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies when to use: when a paginated list of all expense cards is needed. It does not explicitly state when not to use or provide alternatives, but the mention of 'no filter' conveys that for filtered queries, other tools (like get_expense) would be needed.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden. It describes the tool as creating, implying mutation, but does not disclose side effects, required permissions, rate limits, or success/failure behavior. The description focuses only on input fields, leaving the agent uninformed about the operation's impact or return value.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is two sentences and directly states the action and field requirements. It is concise and front-loaded, though a more structured format (e.g., listing fields separately) could improve readability. No unnecessary text.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the single parameter with no schema descriptions, the description provides the most critical information: required and optional fields. It does not mention output format (though an output schema exists) or error handling. Considering the complexity and sibling consistency, it is largely complete, but missing guidance on JSON structure or validation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema has only one parameter 'fields_json' with 0% description coverage. The description adds significant meaning by explaining it is a JSON object and listing the required ('clientId') and optional fields. This compensates entirely for the schema's lack of descriptions and provides essential context for constructing the parameter.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Create a matter,' using a specific verb and resource. It distinguishes from sibling tools like 'update_matter' and 'delete_matter,' and from other create tools such as 'create_client' or 'create_invoice.' The purpose is unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description lists the required field 'clientId' and several optional fields, providing practical guidance on what to include. However, it does not explicitly state when to use this tool versus alternatives (e.g., 'update_matter') or mention any prerequisites or exclusions. The guidance is good but not exhaustive.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries full burden. It only states the action (delete) without disclosing behavioral traits like cascading effects, required permissions, idempotency, or confirmation steps.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single succinct sentence with no unnecessary words or redundant information, effectively front-loading the core purpose.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple delete operation with one parameter, the description is mostly adequate. However, it lacks mention of return values or side effects, which could be inferred from the output schema, but the output schema is not visible here.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The description adds the format 'GUID' to the parameter, which is not present in the schema. With 0% schema description coverage, this addition provides meaningful context beyond the schema's basic type and title.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'delete' and resource 'client', and specifies the parameter 'ID (GUID)', making it distinct from sibling tools that delete other entities.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description indicates that deletion is performed by client ID in GUID format, but does not provide explicit guidance on when to use this tool versus alternatives or any prerequisites.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations exist; description only mentions 'get', implying read-only but fails to disclose any behavioral traits like authentication, rate limits, or effects.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Single sentence with no wasted words; essential information is front-loaded and concise.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Adequate for a simple get-by-ID tool with output schema; lacks mention of return value shape or error conditions, but not necessary given low complexity.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Clarifies that matter_id is a GUID, adding significant meaning beyond the schema's property title 'Matter Id' (schema coverage 0% means description must compensate).

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Description clearly states the verb 'Get', resource 'matter', and scope 'by ID (GUID)', distinguishing it from sibling tools like list_matters, create_matter, and other get_* tools.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Implicitly indicates use for fetching a single matter by unique identifier, but lacks explicit when-not or alternative tool guidance.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description bears the full burden. It indicates a read operation by 'Get' but lacks details on error handling, prerequisites, or return behavior. However, for a simple getter, this is adequate.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence with no wasted words. It is optimally concise.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the single parameter and presence of an output schema, the description sufficiently explains the tool's core purpose. It could optionally mention the return format, but the output schema likely covers that.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema has one parameter with no description (0% coverage). The tool description adds 'by ID (GUID)', clarifying that the transaction_id is a GUID, which provides meaning beyond the property name.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action (Get), the resource (transaction), and the scope (by ID (GUID)). It is specific and distinguishes from siblings like list_transactions.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implicitly suggests use when a specific transaction ID is known, but does not explicitly state when to use or avoid this tool, nor mention alternatives such as list_transactions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden. It discloses read-only and paginated behavior, but does not detail other traits like authentication, rate limits, or error handling. The behavioral transparency is adequate but not rich.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is two sentences, very concise, and directly states core functionality. No unnecessary information, and it front-loads key details (list, paginated, firm-wide, read-only).

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the simplicity of the tool (two optional params, output schema exists), the description covers the essential aspects: it lists all documents firm-wide with pagination and no filtering. It is sufficiently complete for a basic read-only list tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, and the description does not explicitly explain the 'page' and 'page_size' parameters. However, it mentions 'paginated', which hints at their usage. The parameter names and defaults provide some guidance, but the description adds minimal semantic value beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'List documents, paginated (firm-wide, read-only)', specifying the verb, resource, and scope. It distinguishes from sibling tools like get_document and delete_document by emphasizing it is a read-only list operation.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description tells when to use this tool (to list all documents firm-wide with pagination) and notes the lack of server-side filter, implying that it is not for filtered queries. It does not explicitly mention alternatives, but the context of sibling tools provides sufficient differentiation.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden. It discloses the requirement to use one of the two IDs and the lack of firm-wide listing. It does not mention pagination behavior or read-only nature, but the output schema likely fills gaps.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise with two main sentences plus a clarifying note. It front-loads the primary action. Minor verbosity in the note about API endpoints could be trimmed, but overall efficient.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The description explains the core logic but omits the mutual exclusivity of matter_id and bank_id and what happens if both or neither are provided. Given the output schema exists, it is moderately complete but leaves some ambiguity.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description must compensate. It explains the two key parameters (matter_id and bank_id) and their purpose, but does not detail page and page_size beyond their existence. This is acceptable but not complete.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool lists bank transactions for a matter or bank, explaining the API constraint of no firm-wide listing. This distinguishes it from other list tools and gives a specific verb+resource.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explicitly says to pass either a matter_id or bank_id and notes that bank_id must come from the Rocket Matter UI. It implies that a firm-wide listing is not possible, but does not explicitly mention alternative tools for other scenarios.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the burden. It correctly indicates a read operation, but does not disclose error handling (e.g., behavior for missing ID), permissions, or side effects. For a simple get, this is adequate but minimal.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence with no wasted words. It is front-loaded and direct, meeting the conciseness standard.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the presence of an output schema and the tool's simple nature (single parameter, idempotent read), the description is sufficiently complete. It does not need to explain return values.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With 0% schema description coverage, the description compensates by clarifying that client_id is a GUID, adding context beyond the schema's label 'Client Id'. However, could specify expected format (e.g., UUID length).

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly specifies the verb 'Get', the resource 'client', and the identifier 'ID (GUID)'. It uniquely identifies the tool's function among siblings like list_clients and other get_* tools.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage when a client ID is known, but does not explicitly state when to use this tool versus alternatives like get_client_labels or get_client_suggestions. No exclusions or prerequisites are mentioned.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Discloses that the tool is legacy, two-step, and fails loudly. This is transparent about its deprecated and non-functional state. However, it does not specify the exact nature of the failure (e.g., error message).

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Three sentences, no wasted words. Front-loaded with the deprecation warning and alternative, making it efficient for agent decision-making.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool is deprecated and non-functional, the description is complete: it warns against use and provides the correct alternative. The output schema exists but is irrelevant since the tool fails.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has 4 parameters with 0% description coverage in the schema, and the description adds no information about parameters. The agent gets no guidance on how or why to use parameters.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description explicitly states that the tool generates an invoice via a legacy two-step flow, which is /api/v2-only and fails loudly. It distinguishes itself from siblings by advising to use create_invoice instead.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Directly instructs the agent to use create_invoice with the /v1 invoice body instead, providing clear when-not-to-use guidance. It also notes that the legacy flow fails loudly, reinforcing the recommendation.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so description carries full burden. It discloses read-only behavior ('list'), pagination, and filter constraints. Could be enhanced by noting reliance on current user/firm context or rate limits, but sufficient for a listing tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences, no fluff. Front-loaded with main action ('List time entries, paginated') followed by key detail. Every word earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given an output schema (exists but not shown), description adequately covers purpose and main parameter nuance. Lacks explanation of pagination mechanics, but sufficient for a simple read tool among many CRUD siblings.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 0%, so description must add meaning. It explains 'matter_id' as a GUID filter, adding value. However, 'page' and 'page_size' are not elaborated beyond self-explanatory names and defaults, leaving some gaps.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Description clearly states verb ('List') and resource ('time entries'), and specifies key features: pagination and optional matter_id filter. It distinguishes itself from siblings like 'get_time_entry' and 'create_time_entry'.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides clear context: use when listing time entries with optional filter. Mentions the only server-side filter, offering guidance on limitations. Implicitly excludes single-entry retrieval (use 'get_time_entry') but lacks explicit 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.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Discloses that the tool 'fails loudly,' indicating it will throw an error, and notes it is not exposed in the /v1 API. No annotations are provided, so the description carries the full burden.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Extremely concise: a single sentence that conveys purpose and a critical behavioral warning. No wasted words.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given no annotations and an output schema, the description adequately states purpose and failure behavior. Could be improved by suggesting an alternative tool, but none exists in sibling list.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    No parameters exist, so schema coverage is 100%. The description adds no parameter detail, but baseline for 0 params is 4.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Explicitly states it lists the chart of accounts, with a clear verb and resource. No sibling tool has the same resource, so it is distinct.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Clearly states the tool is not in LCS /v1 and fails loudly, advising against use. However, no alternative tool is suggested.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries full burden. It honestly discloses that only certain filters work server-side, which is a critical behavioral detail. However, it omits whether the operation is read-only or any rate limits.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is two sentences with no fluff. The first sentence states the core action, the second adds essential filter constraints. Every word earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the existence of an output schema, the description does not need to explain return values. It adequately covers pagination and filter limitations, though it could mention ordering or search behavior. Still complete enough for a list tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, but the description adds meaning by explaining which parameters are filters (client_id, matter_name) versus pagination (page, page_size). It also clarifies the client_id is a GUID, though not explicit about format.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'List' and resource 'matters', mentions pagination, and specifies the only two supported server-side filters. This distinguishes it from sibling tools like list_clients or list_invoices.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It explicitly states that client_id and matter_name are the only filters the API honors, guiding the agent on valid parameters. It does not provide when-not-to-use, but the context of sibling tools makes the usage clear.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Without any annotations, the description fully discloses the behavioral trait: calling this tool results in a failure. This is completely transparent.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely concise (one sentence) with the most critical information (non-availability and failure) placed at the front.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given that there is an output schema (presumably documenting the intended structure) and no parameters, the description effectively communicates the tool's unavailability and the reason, which is sufficient for this stub function.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    There are no parameters, so the baseline is 4. The description adds no parameter info, but none is needed.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the intended purpose (firm financial summary with balances, overdue, retainers) and explicitly notes that it is not available in the current version, making its role as a non-functional stub unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explicitly states that the tool 'fails loudly' and is '[Not in LCS /v1]', effectively instructing the agent not to use it because it will not succeed.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    The description discloses that the tool fails loudly and is not part of the /v1 Integration API, giving clear behavioral context despite no annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is three concise sentences with the key limitation front-loaded, containing no superfluous text.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The description fully explains the tool's non-functional state and provides a clear alternative, making it complete for agent decision-making.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With zero parameters and 100% schema coverage, the description adds no parameter detail, but baseline is 4 for 0-param tools.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool lists bank accounts and explicitly notes it is not in LCS /v1 and fails loudly, distinguishing it from functional list tools.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description advises the agent to get a bankId from the Rocket Matter UI for create_transaction/list_transactions instead, providing explicit guidance against using this tool.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

rocketmatter-mcp MCP server

Copy to your README.md:

Score Badge

rocketmatter-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/RosenAdvertising/rocketmatter-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server