Skip to main content
Glama
gronnmann

fiken-mcp

by gronnmann

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.1.0

  • Disambiguation5/5

    Each tool targets a specific entity and action, with clear naming like fiken_list_invoices and fiken_create_invoice. Draft and finalized versions are distinct, and all tools are easily distinguishable.

    Naming Consistency5/5

    All tool names follow the consistent pattern 'fiken_verb_noun' using snake_case, e.g., fiken_get_purchase, fiken_create_sale_draft. No mixing of conventions.

    Tool Count2/5

    With 106 tools, the server is extremely large. While it covers many accounting operations, this volume can overwhelm agents and exceed typical well-scoped servers (3-15 tools).

    Completeness3/5

    The server covers most CRUD operations for core entities but has notable gaps: no update for finalized purchases or sales, and no delete for finalized invoices. This creates dead ends in workflows.

  • Average 3/5 across 92 of 106 tools scored. Lowest: 1.8/5.

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

    • No community issues in the last 6 months
    • 7 commits in the last 12 weeks
    • Last stable release on
    • 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 annotation readOnlyHint: false already indicates a write operation, and the description confirms it creates/adds. However, no additional behavioral context is provided (e.g., side effects, required permissions, or whether it replaces existing attachments).

    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 sentence with no fluff, but it is under-specified. It sacrifices clarity for brevity, making it minimally acceptable in terms of conciseness.

    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 lack of parameters, no output schema, and no explanation of how to provide the attachment data, the description is severely incomplete. An agent would be unable to use this tool correctly based solely on this definition.

    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 zero parameters in the schema, the description should clarify how the purchase identifier and file content are communicated (e.g., via URL path or request body). It fails to do so, leaving the agent without essential information.

    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 'Creates and adds a new attachment to a purchase' states the action but omits critical details such as how to identify the purchase or provide the attachment content. With no parameters in the schema, the agent cannot determine how to invoke the tool correctly.

    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 alternatives like fiken_get_purchase_attachments or fiken_create_purchase. There is no mention of prerequisites (e.g., requiring an existing purchase ID) 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?

    Annotations indicate readOnlyHint=false, consistent with 'Updates'. However, the description does not disclose any behavioral traits beyond the basic action, such as whether it replaces or merges fields, required permissions, or side effects.

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

    Conciseness2/5

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

    The description is minimal (one sentence), but it is too short to convey necessary information. It does not earn its place as it fails to add value beyond the name.

    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 (13 parameters, nested objects, no output schema), the description is completely inadequate. It does not describe return values, required fields, or any operational details.

    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 provides no explanation of the 13 parameters, including the nested address object. The agent receives no guidance on parameter meaning or usage.

    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 'Updates an existing contact' states the verb and resource, but it is generic and does not differentiate from sibling update tools like fiken_update_invoice or fiken_update_contact_person. It is clear but lacks specifics.

    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 fiken_create_contact or fiken_get_contact. No prerequisites or context 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?

    The description only states 'Updates a purchase draft' without disclosing behavioral traits like side effects, required permissions, or error states. Annotations indicate readOnlyHint=false, consistent with a mutation, but no additional context 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 a single sentence, which is concise but under-specified for a tool with 12 parameters. It does not earn its place by providing necessary guidance, resulting in insufficient information density.

    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 tool's complexity (12 parameters, 4 required, no output schema), the description is severely incomplete. It fails to explain return values, parameter relationships, or typical usage, leaving agents with minimal actionable insight.

    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?

    With 42% schema coverage, the description does not explain any parameters beyond the schema definitions. It adds no meaning or context for fields like 'kid', 'lines', or 'payments', leaving agents to rely solely on the input schema.

    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 'Updates a purchase draft' clearly states the action and resource, but it lacks specificity regarding what aspects can be updated. It does not differentiate this tool from sibling tools like fiken_update_invoice_draft or fiken_update_credit_note_draft, as all share a similar pattern.

    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 fiken_create_purchase_draft for new drafts or fiken_delete_purchase_draft for removal. There are no prerequisites or usage scenarios 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?

    Annotations only indicate a write operation (readOnlyHint=false). The description adds no behavioral details such as whether the counter can be overwritten, if it auto-increments, or any side effects. 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 extremely short but under-specified, lacking essential details. It is not concise in a helpful way; it omits critical information.

    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 output schema and a write operation with siblings, the description should explain the counter's role and usage. It fails to provide complete context for an agent to use it correctly.

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

    Parameters3/5

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

    Schema coverage is 100%, with the parameter described as 'Starting invoice number'. The description does not add further meaning beyond the schema, meeting the baseline for high coverage.

    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 the tool creates the first invoice number counter, which is a specific resource. However, it does not differentiate from sibling tools like create_credit_note_counter or create_offer_counter, making it vague in context.

    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 alternatives, nor any prerequisites or context for creating the counter. The description is entirely silent on usage conditions.

    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 states it creates, consistent with annotations (readOnlyHint false), but provides no additional behavioral context such as side effects, permissions, or what happens to existing data.

    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 a single sentence with 5 words, which is too terse; it lacks any structure beyond the minimal statement and does not earn its place by providing unique value.

    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 tool's complexity (18 parameters, 3 required) and no output schema, the description is extremely incomplete; it does not explain what a credit note draft is, how it relates to invoices, or any usage 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?

    With only 11% schema description coverage, the description does not explain any of the 18 parameters; it merely restates the tool purpose, failing to compensate for the lack of 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 'Creates a new credit note draft' clearly states the action and resource, but does not distinguish from sibling draft creation tools like 'fiken_create_invoice_draft' or 'fiken_create_offer_draft'.

    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 does not mention any prerequisites or exclusions despite many related 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?

    Beyond the readOnlyHint=false annotation indicating mutation, the description adds no behavioral details: no prerequisite, idempotency, or side effects. It merely reaffirms the mutation without elaboration.

    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 a single sentence, but it omits essential details. Brevity here sacrifices utility; it lacks structure (e.g., no parameter overview or usage example).

    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 11 optional parameters and no output schema, the description is critically inadequate. The agent cannot determine required fields, typical usage patterns, or relationships with the many sibling tools (e.g., offer drafts, invoices).

    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?

    With only 9% schema description coverage (only issueDate has a format hint), the description provides no information about any of the 11 parameters (e.g., lines, currency, contactId). The agent receives no guidance on parameter semantics.

    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 the verb 'Creates' and resource 'new offer draft', clearly identifying the action and object. It is distinguishable from sibling tools like 'fiken_list_offer_drafts' or 'fiken_get_offer_draft'.

    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 such as 'fiken_create_offer_from_draft', 'fiken_update_offer_draft', or direct offer creation. The description provides no 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?

    Annotations declare readOnlyHint=false, and the description confirms a write operation ('Creates'). However, no additional behavioral details are given, such as whether the counter is idempotent, what happens if it already exists, or any side effects. Beyond the annotation, the description adds no value.

    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 a single sentence, which is slightly concise but critically under-specified. While brevity is valued, it omits essential information about parameters and usage, making it insufficient for an agent to use effectively.

    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 tool's complexity (1 parameter, no output schema, siblings with related counters), the description is severely incomplete. It fails to explain the 'counter' concept, parameter semantics, or when to invoke this tool vs. just retrieving the counter. The agent lacks the context needed for correct 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 integer parameter 'value' with zero description coverage (0%). The tool description fails to explain the parameter's meaning or purpose, such as whether it sets the initial counter value. This leaves the agent guessing about the parameter's role.

    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 specifies the verb 'creates' and the resource 'order confirmation number counter', clearly identifying the tool's function. It distinguishes from siblings like 'get_order_confirmation_counter' by indicating creation, but lacks clarity on what a 'counter' represents or why 'first' is significant.

    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., creating a counter vs. using an existing one). It does not mention prerequisites, such as the need for a company context, or that it should be called before creating order confirmations. The description lacks usage context entirely.

    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 aligns with annotations (readOnlyHint), but adds no extra behavior clues. It does not mention pagination, filtering, or ordering, which are common in list endpoints.

    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 minimal (1 sentence) but lacks structure and fails to provide essential context like pagination details. It sacrifices completeness for brevity.

    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 4 parameters, no output schema, and no schema descriptions, the description is severely incomplete. It does not convey pagination, filtering, 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 has 4 params with 0% description coverage. The description does not explain any parameter purpose (page, pageSize, uuid, orderReference), leaving the agent in the dark.

    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 returns invoice drafts, distinguishing it from tools that return regular invoices or manage drafts. However, it lacks scope details like company or pagination.

    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 list drafts versus get a specific draft or create one. Siblings like fiken_get_invoice_draft exist but are not 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?

    Annotations already declare readOnlyHint=true, so the description adds no extra behavioral traits. It does not mention pagination, filtering limits, or other side effects beyond what the schema implies.

    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?

    A single sentence is concise but too brief, omitting essential details like pagination and filtering. It does not earn its place by providing value beyond the name.

    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?

    With 16 parameters, no output schema, and minimal description, the tool definition is severely incomplete. Lacks info on pagination, filtering, return structure, or usage constraints.

    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 only 6% (only issueDate has format info). The description adds no parameter meaning, failing to compensate for the low coverage. Most parameters remain undocumented.

    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 'Returns all invoices for the company' clearly states the verb and resource, but does not differentiate from sibling tools like fiken_get_invoice or fiken_list_invoice_drafts. The purpose is clear but not unique.

    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., get_invoice for single, list_invoice_drafts for drafts). Missing context for optimal 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?

    The description indicates a mutation (sending) which aligns with readOnlyHint=false. However, it omits important behavioral details: whether the invoice status changes, if attachments are included automatically, what happens on failure, or if multiple methods are attempted in sequence. The description adds minimal value beyond the annotation.

    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 a single sentence, which is concise but under-specified. It sacrifices content for brevity. For a tool with 10 parameters, this is insufficient. It is front-loaded with the verb, but the lack of detail makes it less useful.

    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 tool complexity (10 parameters, 3 required), no output schema, and no annotation beyond readOnlyHint, the description is grossly incomplete. It should explain sending behavior, required setup, and what the tool produces or modifies. Currently, it fails to provide adequate context for correct 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?

    With schema description coverage at only 10% (only 'method' has a brief description), the description should compensate by explaining parameter meanings. It does not mention any parameter details, leaving the agent to guess the purpose of fields like message, mobileNumber, recipientName, etc.

    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 the verb 'sends' and the resource 'invoice' with specific methods 'email and/or EHF'. This clearly indicates the tool's primary action, distinguishing it from tools that retrieve, create, or update invoices. However, it could be more precise by noting that it sends an existing invoice to a customer.

    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 like fiken_send_credit_note or fiken_send_offer. It does not mention prerequisites (e.g., invoice must be finalized) or exclusions. No contextual hints 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?

    Annotations indicate readOnlyHint=false, consistent with sending (a write operation). The description adds no extra behavioral details (e.g., permissions, side effects, or what happens upon error).

    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 (6 words) but lacks critical information. It is under-specified rather than concise.

    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?

    With no output schema, no parameter details, and only a vague purpose, the description is insufficient for an AI agent to correctly invoke this tool. A more complete description is needed for its 5 parameters.

    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 does not mention any of the five parameters (method, message, offerId, recipientName, recipientEmail) or their meaning. The method parameter has an enum but is not described.

    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 'Sends an offer via email' with a specific verb and resource. However, it does not differentiate from sibling tools like fiken_send_invoice or fiken_send_credit_note, which have similar purposes.

    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., fiken_send_invoice). No prerequisites or context 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?

    The annotations already indicate readOnlyHint=false, confirming a write operation. The description adds no further behavioral traits, such as side effects, required permissions, rate limits, or what happens to existing data (e.g., whether partial updates are allowed). It merely restates the tool's purpose.

    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?

    While the description is short (one sentence), it is under-specified to the point of being unhelpful. Conciseness should not sacrifice essential information. The tool has 12 parameters and is a mutating operation; the description should at a minimum list the main updatable fields.

    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 tool's complexity (12 parameters, no output schema, write operation), the description is severely lacking. It does not explain the update semantics (partial vs full replacement), return value (if any), or how to specify which draft to update. An agent would be ill-equipped to use this 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?

    With schema description coverage at only 42%, the description should compensate by explaining key parameters or the structure of update requests. Instead, it offers no parameter information at all. An agent cannot determine which fields are updatable, required, or how they relate without inspecting the schema.

    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 ('updates') and the resource ('a sale draft'), which matches the tool name. However, it does not differentiate this update tool from similar update tools for other draft types (e.g., invoice draft, credit note draft), leaving the agent to infer the specific resource from the tool name alone.

    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 create or delete sale draft, or when to use other update draft tools. The agent receives no context about prerequisites, typical use cases, or when 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?

    Annotations indicate readOnlyHint=false, and the description aligns with a write operation. However, beyond that, no behavioral traits are disclosed (e.g., idempotency, error behavior, auth requirements). The description adds minimal transparency beyond annotations.

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

    Conciseness3/5

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

    The description is very short (one sentence), which is concise but at the expense of necessary detail. It lacks front-loaded parameter information, making it insufficient for tool invocation.

    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 (5 parameters, nested object, no output schema) and low schema coverage, the description is completely inadequate. It fails to provide essential context for a create operation, such as required fields or response format.

    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% (only country has a description). The description does not explain any parameters, leaving the agent without guidance on how to use the 5 parameters, especially the nested address object.

    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 'Adds a contact person to a contact' clearly states the action (adds) and the resource (contact person). It distinguishes from sibling tools like list, get, update, delete contact persons. However, it could be more explicit that this creates a new contact person under an existing contact.

    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 provided. The description does not specify when to use this tool versus alternatives (e.g., update or list), nor does it mention prerequisites like having an existing contactId.

    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 indicate readOnlyHint false, confirming a write operation. The description adds no behavioral details beyond this, such as the fate of the draft after finalization, permission requirements, 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.

    Conciseness3/5

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

    The description is a single sentence, which is concise but at the expense of omitting crucial details about parameters and usage context. It could be expanded while remaining efficient.

    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 no output schema and a single parameter, the description is too sparse. It does not mention prerequisites, return values, or error cases, which are necessary for correct 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 0% description coverage, and the description does not mention the 'draftId' parameter. Since the parameter name is generic, the description should explain its role (e.g., the ID of the draft to finalize).

    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 finalizes a draft into a credit note, specifying the verb 'creates' and the resource 'credit note' with the source 'from a draft'. This distinguishes it from direct credit note creation tools like fiken_create_full_credit_note, but lacks additional context about what a draft is.

    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. Given siblings like fiken_create_full_credit_note and fiken_create_partial_credit_note, the description should indicate that this tool is only for finalizing existing drafts, not for creating credit notes from scratch.

    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 and annotations (readOnlyHint: false) indicate it is a write operation. However, it does not disclose consequences like error handling for duplicate counters, default behavior for the 'value' parameter, or any side effects. With minimal annotations, more behavioral context 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.

    Conciseness3/5

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

    The description is a single short sentence with no fluff. However, it is arguably too concise, sacrificing clarity for brevity. The structure is clean but underinformative.

    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 optional parameter, no output schema), the description should provide enough context for an agent to use it correctly. It fails to explain when to call it or what the parameter does. Sibling tools for counters are similar, yet no distinctions are made.

    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 integer parameter 'value' has no description (0% schema coverage). The tool description does not explain its meaning (e.g., starting number, increment step). This leaves the agent to infer, risking incorrect usage.

    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 a verb ('creates') and resource ('offer number counter'), but 'first' is ambiguous and does not distinguish from other counter creation tools like fiken_create_invoice_counter. The purpose is clear enough for a basic understanding but lacks specificity.

    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., fiken_get_offer_counter, other create_counter tools). Conditions such as whether the counter must be initialized before use or what happens if it already exists 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?

    Annotations already indicate readOnlyHint=false, so the tool is mutating. The description does not add any behavioral details such as side effects, authentication needs, or what the draft is used for.

    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 short sentence), but lacks detail. It is not wasteful, but it is too minimal to be helpful.

    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?

    With 11 parameters (3 required) and no output schema, the description is severely incomplete. It does not explain the concept of a purchase draft, when to create one, 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 low (45%), and the tool description does not explain any parameters. The description adds no value beyond what the schema already provides for the covered 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 'Creates a new purchase draft' clearly states the action (create) and resource (purchase draft). It is distinct from siblings like 'fiken_list_purchase_drafts' or 'fiken_create_purchase', but the description does not explicitly differentiate.

    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 (e.g., when to use draft vs. full purchase). 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?

    Annotations already declare readOnlyHint=true, which aligns with 'returns'. However, the description adds no extra behavioral details such as pagination (page, pageSize), filtering semantics (e.g., settled, issueDate ranges), or that results are a list without full content detail. The schema hints at filtering but the description stays silent.

    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 (7 words), which is positive for brevity, but it lacks essential structure. It does not hint at filtering or pagination, which are critical for a list endpoint. The conciseness comes at the cost of completeness.

    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 (11 parameters, no output schema, 0% parameter documentation), the description is far from complete. An agent cannot determine how to effectively filter or paginate results without additional 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?

    With 0% schema description coverage and no parameter explanations in the description (11 parameters unexplained), the tool provides zero semantic guidance for parameters like page, settled, customerId, or date filters. This forces the agent to guess or rely on external knowledge.

    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 'Returns all credit notes for the company' clearly states the verb (returns) and resource (credit notes), but does not differentiate it from sibling tools like fiken_get_credit_note or fiken_list_credit_note_drafts. The phrase 'all credit notes' is misleading given the extensive filtering parameters available.

    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 fiken_get_credit_note (single note) or fiken_list_credit_note_drafts (drafts). There is no mention of prerequisites, typical 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 aligns with readOnlyHint (safe read) but adds little beyond the annotation. It states 'all' groups but doesn't clarify pagination behavior despite page and pageSize parameters, leaving ambiguity.

    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 sentence, which is concise, but it lacks important details about parameters and output. It is not overly verbose but misses opportunities to inform.

    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?

    Without output schema or param descriptions, the description is incomplete. It doesn't describe the return structure or pagination, which is essential for a list tool with two optional parameters.

    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 page or pageSize parameters. No explanation of their meaning or usage, so the schema carries the full burden without help.

    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 specific verb 'Returns' and resource 'customer groups', clearly indicating the tool's purpose. It distinguishes itself from sibling list tools by focusing on customer groups, though it could be more explicit about the company context.

    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 doesn't explain what customer groups are or why one might list them, leaving 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 annotation readOnlyHint indicates safety, but the description does not disclose pagination behavior despite the presence of page and pageSize parameters. It also omits details about filtering 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.

    Conciseness3/5

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

    The description is a single sentence, which is concise, but it lacks necessary detail for a tool with 9 optional parameters. It trades conciseness for completeness.

    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 9 parameters and no output schema, the description is insufficient. It does not mention filtering capabilities, pagination, or what fields are returned.

    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?

    Only the 'date' parameter has a brief description in the schema. The tool description adds no meaning to parameters, failing to compensate for low schema coverage (11%). No explanation of date filters like dateGe, dateGt, etc.

    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 returns general journal entries. It uses a specific verb 'Returns' and resource 'general journal entries', but does not distinguish from sibling tools like fiken_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 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 fiken_list_transactions or fiken_get_journal_entry. The description lacks 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?

    The readOnlyHint annotation already indicates a read operation, so the description adds no value. It fails to disclose that results may be paginated (page, pageSize parameters) or provide any additional behavioral context beyond the annotation.

    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 brief sentence, which is concise but lacks crucial details. It is appropriately sized for minimal information but 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.

    Completeness1/5

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

    Given no output schema, 0% param coverage, and a simple listing operation, the description is highly incomplete. It omits pagination details, return format, and any distinction from sibling list tools.

    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?

    With 0% schema description coverage, the description carries the full burden for parameter meaning. It does not explain the 'page' and 'pageSize' parameters at all, leaving the agent without necessary usage information.

    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 'Returns all offer drafts for the company', clearly indicating the verb 'Returns' and the resource 'offer drafts'. It distinguishes from siblings like fiken_get_offer_draft (single) and fiken_list_offers (finalized offers), but does not specify pagination or filtering 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 such as fiken_list_offers or fiken_get_offer_draft. The description does not mention context, exclusions, 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?

    The description adds little beyond the readOnlyHint annotation; it does not explain pagination behavior, ordering, or return format. The phrase 'all offers' is misleading given the pagination parameters.

    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 sentence and front-loaded, but it omits important details like pagination and the specific resource type. It is concise but incomplete.

    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 list tool with optional pagination and no output schema, the description lacks information about return format, default pagination, and how it relates to offer drafts. It is insufficient 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.

    Parameters1/5

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

    The input schema has two parameters (page, pageSize) with no descriptions, and the description does not explain their purpose or effect. The phrase 'all offers' contradicts the pagination parameters, causing confusion.

    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 returns all offers for the company, but it does not differentiate from sibling tools like fiken_list_offer_drafts or mention pagination, which is implied by the parameters.

    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 such as fiken_get_offer or fiken_list_offer_drafts, no prerequisites or context 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?

    The annotation readOnlyHint=false already indicates mutation. The description merely repeats 'Updates' without disclosing side effects, authorization needs, or draft state dependencies (e.g., cannot update a processed draft).

    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?

    While very short, the description sacrifices necessary detail. It is under-specified, making it unhelpful for an AI agent to understand the tool's behavior or parameters.

    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 19 parameters and no output schema, the description is severely incomplete. It lacks context about draft lifecycle, differences from other draft types, and any return value or confirmation.

    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 only 11% schema description coverage, the description adds no additional meaning to the 19 parameters. Required fields like type with an enum are not explained in context (e.g., why 'cash_invoice' is listed for a credit note draft).

    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 'Updates a credit note draft' clearly specifies the verb (updates) and the resource (credit note draft). It is distinct from siblings due to the 'credit_note' in the name, but it does not explicitly differentiate from other update draft tools.

    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 creating a new draft or updating other draft types. It lacks prerequisite information (e.g., draft must exist) and contextual conditions.

    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 indicate readOnlyHint=false, so it is a write operation. Description adds no behavioral context beyond stating 'updates', such as required permissions, side effects, or consequences.

    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 sentence, but it is too minimal. While concise, it sacrifices valuable detail for brevity.

    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?

    With 12 parameters, no output schema, and minimal description, the tool is incomplete. The description provides no context about return values, error conditions, or how to use the parameters effectively.

    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 only 8% (only issueDate has a format description). The description adds no parameter-level information, failing to compensate for the low coverage.

    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 'Updates an offer draft', clearly specifying the verb and resource. It distinguishes from siblings like create, get, delete, etc., but does not elaborate on scope or fields.

    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 fiken_create_offer_draft or fiken_get_offer_draft. 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?

    The annotations indicate readOnlyHint=false, confirming a write operation. The description aligns by stating 'creates', but adds no additional behavioral context (e.g., idempotency, side effects, or required permissions).

    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 (one short sentence), but it omits essential structure such as parameter guidance or usage notes. The brevity undermines clarity for a complex tool.

    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 tool's complexity (18 parameters, no output schema, many sibling draft tools), the description is severely incomplete. It does not explain the concept of a draft, how it relates to finalizing invoices, 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?

    With 18 parameters and only 22% schema description coverage, the description adds no parameter-level detail. It fails to explain key fields like 'type' (enum of five values), 'lines' structure, or 'daysUntilDueDate' meaning, leaving the agent underinformed.

    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 'Creates a new invoice draft' clearly identifies the action (create) and the resource (invoice draft), distinguishing it from sibling tools like fiken_create_invoice (final invoice) and fiken_create_credit_note_draft (credit note draft).

    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 context is provided; the description does not specify when to use this tool versus alternatives, such as fiken_create_invoice for immediate invoicing or fiken_create_offer_draft for offers. No prerequisites or conditions 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?

    Annotations indicate readOnlyHint=false, confirming mutation, but the description adds no further behavioral traits. It does not disclose what happens after creation, editability, or persistence details. No contradiction with annotations.

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

    Conciseness2/5

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

    Extremely short but under-specified. A single sentence with no structure wastes the opportunity to provide critical information. Every sentence should earn its place, and this one does not provide enough 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 11 parameters, 3 required, no output schema, and no behavioral notes, the description is incomplete. It fails to explain what a sale draft is, its lifecycle, or expected return value.

    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 45%, leaving many parameters with minimal or no description. The description does not add any parameter context or clarify relationships between fields like cash, paid, and lines.

    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 the verb 'creates' and resource 'sale draft'. However, it does not differentiate from sibling tools like fiken_create_invoice_draft or fiken_create_purchase_draft. The name provides some context, but a brief note on the nature of a sale draft would improve 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 on when to use this tool versus alternatives like fiken_create_sale or fiken_create_invoice_draft. The description does not mention that sale drafts are preliminary records that can be finalized later.

    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 readOnlyHint=true already provided in annotations, the description adds no additional behavioral context such as pagination, sorting, or the effect of parameters like completed. It merely restates the read-only nature implicitly.

    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 a single sentence, which is concise, but it sacrifices necessary information for brevity. It omits critical details about parameters and usage, making it under-specified rather than efficiently informative.

    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 tool has 3 parameters, no output schema, and many sibling tools, the description is severely incomplete. It fails to explain pagination, filtering by completed status, or the structure of the returned data.

    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 3 parameters (page, pageSize, completed) with 0% description coverage in the schema, and the description does not explain any of them. The agent receives no information about their meaning or 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 clearly states the tool 'Returns all projects for the company', providing a specific verb and resource that distinguishes it from sibling tools like fiken_list_companies or fiken_list_accounts.

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

    Usage Guidelines2/5

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

    The description lacks any guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or context for usage. It simply states what it does without addressing selection criteria.

    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 already indicate write operation (readOnlyHint=false). Description adds 'creates' but fails to disclose idempotency, duplicate behavior, or other important traits.

    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?

    Single sentence, efficient but underspecified. Could be improved with brief parameter highlights 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 13 parameters, nested objects, and no output schema, the description is too sparse. Agent needs more context to correctly invoke this 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 coverage is low (46%), yet description adds no parameter information. It does not explain the role of customer/supplier booleans or the required name field.

    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 (creates) and the resource (contact), and specifies the dual role as customer/supplier. This distinguishes it from list/get/update/delete 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 vs alternatives like update_contact. No mention of prerequisites, duplication handling, or when to not 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?

    Annotations already declare readOnlyHint=true, so the description adds no additional behavioral context. It does not disclose response format, error cases, or any side effects. With annotations present, the description should provide extra context but fails to do so.

    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 with no wasted words. It is front-loaded with the intent. However, the brevity sacrifices important details, making it too minimal for the parameter context.

    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 completeness given the tool's simplicity. It does not specify how to identify the draft (draftId), nor does it address potential error states or success indicators. In the context of multiple sibling tools, the description is insufficient for effective 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 description does not explain the only parameter, draftId. Schema description coverage is 0%, so the description must compensate, but it adds nothing about how to obtain or use draftId. The agent is left to infer its meaning from the parameter name 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 'Returns a specific credit note draft' clearly identifies the action (get) and resource (credit note draft). While it does not explicitly differentiate from sibling tools like fiken_get_invoice_draft, the resource type is uniquely specified. The description is not a tautology but adds minimal value beyond the 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 is provided on when to use this tool versus alternatives (e.g., fiken_list_credit_note_drafts, fiken_create_credit_note_draft). There is no mention of prerequisites, context, or when not to use it. The agent must 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 readOnlyHint annotation declares it safe, but the description adds no behavioral details beyond stating it returns drafts. It does not mention pagination behavior (page/pageSize parameters), ordering, or whether results are limited to a subset. The word 'all' is misleading given pagination.

    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?

    While the single sentence is short, it is under-specified rather than concise. It lacks essential parameter and behavioral information that could be added without significant verbosity. The structure does not earn its place given the gaps.

    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?

    No output schema is provided, so the agent does not know the return format (e.g., array of draft objects, fields). The description does not cross-reference sibling tools or explain how this fits into the credit note workflow, leaving the tool's role incomplete.

    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?

    Parameter schema coverage is 0%, and the description does not mention either parameter (page, pageSize). The tool has two optional parameters with no meaning provided, leaving the agent unaware of how to control pagination or result size.

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

    Purpose5/5

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

    The description uses a specific verb 'Returns' and resource 'all credit note drafts', clearly distinguishing from sibling tools like fiken_list_credit_notes (issued credit notes) and fiken_get_credit_note_draft (single draft). The purpose is immediately clear.

    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 fiken_list_credit_notes or fiken_get_credit_note_draft. Missing context such as prerequisite steps (e.g., creating drafts first) or when pagination is 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?

    While the annotation readOnlyHint: true indicates a safe read operation, the description adds no additional behavioral context such as pagination behavior, data volume, or any implications of fetching inbox documents. The description does not contradict the annotations.

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

    Conciseness4/5

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

    The description is a single concise sentence with no redundancy. It is appropriately sized for what it conveys, though it could be expanded slightly to include parameter context.

    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 6 parameters, no output schema, and low schema coverage, the description is incomplete. It does not explain the response format, pagination, or how parameters affect results, leaving significant gaps for correct 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 input schema includes 6 parameters with only 33% coverage (sortBy and status have descriptions). The description mentions none of the parameters, failing to compensate for the low schema coverage. Parameters like name, page, pageSize, and description remain unexplained.

    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 returns incoming documents in the company inbox, specifying the verb and resource. It effectively distinguishes from sibling tools that list other entities (e.g., invoices, purchases). However, it could be more precise about what 'incoming documents' includes.

    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 listing invoices or purchases. There is no mention of prerequisites, filtering, 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?

    Annotations indicate readOnlyHint=false, which is consistent with the description. However, the description adds no additional behavioral context beyond the annotation, such as permissions, side effects, or reversibility.

    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 with no unnecessary words. It is concise, though very brief.

    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 (7 parameters, no output schema, low schema coverage), the description is severely incomplete. It does not explain return values, required fields beyond name, or behavior for different field combinations.

    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 43%, with 4 out of 7 parameters lacking descriptions in the schema (bic, iban, type, inactive). The tool description does not provide any parameter explanations, leaving these meanings unclear.

    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 'Creates a new bank account for the company', specifying the verb (creates) and resource (bank account). It is distinct from sibling tools, which include list, get, update, delete operations, and other entity types.

    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 other create tools (e.g., fiken_create_contact) or 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.

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, so the tool is clearly a read operation. The description adds 'Supports many filters' but does not disclose behavioral aspects like pagination, sorting, or that unfiltered calls return all contacts.

    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 (two sentences) but at the cost of completeness. It is front-loaded but lacks needed details.

    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?

    With no output schema, 23 parameters, and no details on pagination, defaults, or what constitutes a 'contact', the description is far from complete for an AI agent to use effectively.

    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 only 13%, yet the description only generically says 'Supports many filters' without explaining individual parameters or their relationships. For such a large parameter set (23 params), this is insufficient.

    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 ('Retrieves all contacts') and resource ('for the company'). It identifies the tool as a list operation, but does not differentiate from sibling tools like fiken_get_contact which retrieves a single contact.

    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., fiken_get_contact for a specific contact). It also does not mention pagination, potential large result sets, or default behavior when no filters are applied.

    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?

    Annotations declare readOnlyHint=true, confirming safe read operation. Description adds no further behavioral details beyond the basic purpose, but does not contradict annotations.

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

    Conciseness3/5

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

    Extremely concise (one sentence), but at the expense of valuable context. Not as informative as it could be while remaining brief.

    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 16 parameters and no output schema, the description is too sparse. Lacks context about pagination, sorting, filtering, or response structure, leaving agents underinformed.

    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 only 13%; description does not add any parameter meanings. With 16 parameters, most lack any description in both schema and tool description, leaving agents uninformed about parameter semantics.

    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 it returns all sales for the company, distinguishing it from single sale retrieval or draft listing by implication. However, it does not explicitly differentiate from siblings like fiken_get_sale or fiken_list_sale_drafts.

    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 mention of pagination, filtering, or appropriate contexts despite having many optional parameters.

    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 readOnlyHint annotation already indicates safe read behavior. The description adds minimal context beyond that, with no mention of pagination or result limits. No contradiction with annotations.

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

    Conciseness3/5

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

    The description is brief (one sentence) but under-specified. It essentially restates the tool name without adding helpful details. Conciseness without substance is not efficient.

    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?

    With 7 optional parameters used for filtering and pagination, the description provides no guidance on how to use them. No output schema, so the agent has no idea what fields are returned. The tool requires much richer context to be usable.

    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 only 29% (startDate and endDate have formats). The description adds no meaning to the parameters, so it does not compensate for the low coverage. Agents must infer parameter purpose from names 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 clearly states it returns time entries, using a specific verb and resource. However, it does not distinguish from sibling list tools like fiken_list_invoices or fiken_list_projects, which also return lists.

    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 mention of filtering, pagination, or prerequisites such as requiring a company context. The description is too vague to inform 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?

    Annotations already declare readOnlyHint=true, so safety is known. The description adds nothing about pagination, filtering, or return behavior, which is essential given the 9 optional parameters.

    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 with no unnecessary words, achieving high conciseness. However, it omits important context, slightly reducing 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 tool has 9 parameters, no output schema, and siblings that offer more specialized listings, the description lacks crucial details about filtering, pagination, and scope, making it incomplete.

    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 only 11% (only 'createdDate' has a format description). The description provides no additional meaning for any of the 9 parameters, failing to compensate for the low schema coverage.

    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 verb 'Returns' and the resource 'transactions' for the company. However, it does not distinguish from sibling 'fiken_get_transaction' which retrieves a single transaction, but the purpose is still clear.

    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 'fiken_get_transaction' or other list tools. No mention of required 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?

    Annotations already indicate this is not read-only (readOnlyHint=false). The description adds no behavioral context beyond 'sends', such as side effects (e.g., marking as sent), idempotency, error cases, or required permissions. Minimal added value.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no extraneous words. It is perfectly concise for the information it conveys.

    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 tool's complexity (10 parameters, no output schema, no annotations beyond readOnlyHint), the description is severely incomplete. It fails to explain how to use the parameters, what the response is, or any preconditions. The agent is left with many unanswered questions.

    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, but it provides no parameter explanations. The agent must rely on parameter names and enums, which may not be sufficient for fields like 'includeDocumentAttachments' or 'mergeInvoiceAndAttachments'. Very little added meaning.

    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 (sends), the resource (credit note), and the medium (email and/or EHF). While it doesn't explicitly distinguish from sibling tools like fiken_send_invoice, the name itself provides the differentiation, so purpose is clear.

    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 (e.g., fiken_send_invoice, fiken_send_offer). No mention of prerequisites or context for use. The agent receives no help in selecting this tool over others.

    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 indicate readOnlyHint false, description confirms mutation but adds no further behavioral context like side effects on the draft, return values, or required permissions.

    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, no waste, but could be more structured with additional details.

    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 tool with one parameter and no output schema, the description is minimally adequate but fails to clarify what a finalized offer is or what the operation returns.

    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 draftId has no description in schema or tool description, leaving its purpose and expected format entirely unspecified.

    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 (creates) and the resource (finalized offer from a draft), distinguishing it from sibling tools that create from drafts for invoices, credit notes, etc.

    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 prerequisites or conditions 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?

    Annotations already indicate destructive behavior (destructiveHint: true). The description adds no additional behavioral context beyond what annotations provide, such as reversibility, prerequisites, 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.

    Conciseness4/5

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

    Single sentence with no waste. However, the description could be slightly expanded to include parameter context 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 tool's destructive nature and lack of output schema, more context is needed (e.g., what constitutes a credit note draft, how to retrieve draftId). The current description is too 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% for the sole parameter 'draftId'. The description does not clarify what 'draftId' refers to, its format, or how to obtain it, leaving the agent without essential 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?

    Description clearly states 'Deletes a credit note draft' with a specific verb and resource, distinguishing it from sibling tools that perform other operations on credit note drafts.

    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. Sibling tools include create, update, get, and list operations, but the description offers no context for 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?

    Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds no additional behavioral context (e.g., irreversibility, permission requirements). With annotations present, the description's lack of extra detail results in a neutral score.

    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 (3 words), which is efficient for a simple delete operation. However, it lacks any structured information about parameters, outcomes, or usage context, making it barely adequate.

    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, no output schema), the description fails to provide expected context such as return values, success/failure behavior, or side effects. More information (e.g., 'This action cannot be undone') 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 'saleId' has no description in the schema (0% coverage), and the tool description does not explain its meaning or format. While its purpose might be inferred from context, the description adds no value beyond the schema structure.

    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 'Deletes a sale' clearly identifies the action and resource. While brief, it effectively communicates the core function. It distinguishes from similar tools like 'fiken_delete_sale_draft' by specifying 'sale' rather than 'sale draft'.

    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?

    There is no guidance on when to use this tool versus alternatives such as 'fiken_delete_sale_draft' or 'fiken_get_sale'. No prerequisites or exclusion criteria 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?

    Annotations already indicate destructiveHint=true, so the description adds no new behavioral context. It does not mention that deletion is permanent or any side effects, which would be valuable.

    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 and front-loaded, consisting of a single clear sentence. However, it is too minimal and lacks necessary details, making it less effective.

    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 simple nature (one parameter, no output schema) and presence of destructive annotation, the description is incomplete because it omits parameter explanation and usage context. It barely meets minimum requirements.

    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?

    With 0% schema description coverage, the description adds no meaning to the 'draftId' parameter. It does not explain what the parameter represents or how to obtain it.

    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 (deletes) and the resource (a sale draft). It is specific and distinguishes from sibling tools like fiken_create_sale_draft or fiken_get_sale_draft.

    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. No context about prerequisites, consequences, or scenarios where deletion 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?

    Annotations already mark readOnlyHint=true; description adds no additional behavioral context beyond stating 'Returns'. No mention of permissions, draft state, or side effects.

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

    Conciseness5/5

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

    Extremely concise: one sentence with no unnecessary words. Front-loaded and efficient.

    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?

    Tool is simple but lacks description of return value. No output schema, so description should indicate what a purchase draft contains, but it does not.

    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?

    Description does not explain the required 'draftId' parameter beyond what is in the schema. Schema description coverage is 0%, so description should compensate but fails to do so.

    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 'Returns a specific purchase draft', specifying verb and resource. However, it does not differentiate from other get-draft siblings like fiken_get_sale_draft.

    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 fiken_list_purchase_drafts or fiken_get_purchase_draft_attachments.

    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 minimal value beyond the annotation (readOnlyHint: false), only confirming that the tool mutates state. It discloses no behavioral traits such as idempotency, required permissions, or effects of partial updates. The schema's many optional fields are not addressed.

    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 direct and efficiently communicates the core function.

    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 19-parameter schema, lack of output schema, and minimal annotations, the one-sentence description severely under-communicates. It does not explain return values, side effects, or how to structure update requests, leaving the agent with insufficient context to use the tool effectively.

    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?

    With only 21% schema description coverage, the description should compensate but does not. It offers no parameter descriptions, default values, or usage context. The required parameters (draftId, type, daysUntilDueDate, customerId) are not even mentioned, leaving the agent without critical 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 'Updates an existing invoice draft' clearly specifies the action (update) and the resource (existing invoice draft). Among sibling tools like fiken_create_invoice_draft, fiken_get_invoice_draft, and fiken_delete_invoice_draft, it is unambiguous and well-differentiated.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives (e.g., when to update vs create or delete). It lacks prerequisites, such as the draft being in a viable state, and does not mention any exclusion criteria.

    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 indicate it is a write operation (readOnlyHint=false), which the description echoes. However, it does not disclose what happens if a counter already exists, any side effects, or required permissions.

    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, clear sentence with no extraneous information, but it could be slightly improved by front-loading the primary action.

    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 tool with one parameter and no output schema, the description is insufficient. It omits details about the effect on numbering sequences, error states, and related retrieval tools.

    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 lone parameter 'value' is not explained: its purpose (starting number, increment, etc.) and optionality are ambiguous. With 0% schema coverage, the description should compensate but does not.

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

    Purpose5/5

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

    The description clearly states it creates the first credit note number counter, distinguishing it from sibling tools like fiken_create_invoice_counter and fiken_create_offer_counter.

    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 versus alternatives such as fiken_get_credit_note_counter, nor any prerequisites or conditions (e.g., whether a counter can be re-created).

    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 states 'Creates', which aligns with readOnlyHint=false. However, it fails to disclose behavioral traits such as whether the order confirmation is marked as invoiced, required permissions, or side effects. With minimal annotations, more context 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.

    Conciseness3/5

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

    The description is a single sentence, which is concise. However, it is too short and lacks detail, bordering on under-specification. It earns a 3 for being neither verbose nor efficient.

    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 many sibling tools (e.g., fiken_create_invoice_draft, fiken_create_invoice) and the lack of output schema or annotations, the description is incomplete. It does not explain the relationship between order confirmation and invoice draft or what to expect after 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?

    The single parameter 'confirmationId' is not explained. Schema coverage is 0%. The description does not clarify that this is the ID of an order confirmation, leaving ambiguity. The tool name implies it, but explicit documentation would help.

    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 'Creates an invoice draft from an order confirmation' uses a specific verb and resource, clearly distinguishing it from sibling tools like fiken_create_invoice_draft which creates a blank draft. 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 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. It does not mention prerequisites (e.g., order confirmation must exist) or workflow context. Sibling tools exist for creating invoice drafts from scratch, but no comparison is 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?

    The annotations indicate readOnlyHint=false, already signaling this is a write operation. The description reiterates that it 'Creates' something, but adds no further behavioral context such as required permissions, side effects (e.g., draft deletion), or irreversibility. It adds minimal value beyond the annotation.

    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 with no unnecessary words. It is front-loaded and easy to parse. However, it omits useful details that could be added without much bloat, so it cannot be a perfect 5.

    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 one parameter and no output schema, the description should clarify what happens after creation (e.g., whether the draft is consumed or remains), any prerequisites (existing draft), and the return value (e.g., the new invoice's ID). None of this is provided, leaving the agent underinformed.

    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 'draftId' is an integer with no description in either the schema (0% coverage) or the tool description. The name suggests it is the ID of the draft to finalize, but the description does not confirm this, explain where to obtain the ID, or clarify any constraints (e.g., must be for an invoice draft, not a credit note draft).

    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 'Creates a finalized invoice from a draft' uses a specific verb ('Creates') and specifies the resource ('finalized invoice') and source ('from a draft'), clearly distinguishing it from related tools like fiken_create_invoice (creates directly) and fiken_create_invoice_draft (creates a draft).

    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. For example, it does not explain that the user should first create a draft using fiken_create_invoice_draft before calling this tool, nor does it mention the state of the draft after conversion (e.g., whether it is automatically deleted).

    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 does not disclose behavioral traits beyond what the annotations provide. Annotations indicate readOnlyHint=false, implying mutation, and the description says 'Creates', which is consistent. However, it lacks details about what happens when the report is created (e.g., is it saved? returned? what format?). No contradiction with annotations.

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

    Conciseness5/5

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

    The description is a single concise sentence that is front-loaded with the core action. No unnecessary words or repetition.

    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 is too brief for a report creation tool. It does not mention required parameters, output behavior, or what the report contains. Given the 4 parameters and no output schema, more context is needed for an AI agent to understand the tool's full purpose and 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 input schema covers 75% of parameters with descriptions (to, from, includeZeroValues). The description adds no additional meaning beyond the schema, and the missing projectId parameter is left undescribed. With high schema coverage, the description meets the baseline but does not compensate for 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?

    The description states the verb 'Creates' and resource 'product sales report' with a scope 'for a date range', which is clear. However, it does not differentiate from sibling tools like fiken_create_sale or reporting tools, as there are no other report creation tools listed among 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 is provided on when to use this tool versus alternatives. The description only mentions 'for a date range' but does not specify scenarios, prerequisites, or exclude cases. Sibling tools include many sales-related operations, but no explicit when-to-use or when-not-to-use advice.

    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's 'creates' aligns with the readOnlyHint=false annotation, confirming a write operation. No additional behavioral traits (e.g., irreversibility, required permissions) are disclosed, but the annotation already covers the key safety implication.

    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. It is front-loaded and free of superfluous text, though it could be slightly more informative 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 no output schema and a single parameter, the description lacks details on the outcome (e.g., what the finalized sale object looks like), error conditions, or return value. This leaves the agent underinformed for proper 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?

    The only parameter, draftId, has no description in the schema (0% coverage) and is not mentioned in the tool description. The description adds no meaning beyond the schema's type 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 the action (creates) and resource (finalized sale from a draft), distinguishing it from related tools like fiken_list_sales or fiken_create_sale. However, it does not clarify what 'finalized' entails or the prerequisite of having a draft.

    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 fiken_create_sale or fiken_create_invoice_from_draft. There is no mention of prerequisites like the need for an existing draft.

    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?

    Annotations already provide destructiveHint: true, and description is consistent. But description adds no extra behavioral context (e.g., permanence, cascading effects). With annotations covering core safety, score is adequate but not enhanced.

    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, direct, no fluff. Front-loaded action and resource. Efficient but could benefit from slightly more detail 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?

    No output schema, no mention of consequences or error conditions. For a delete operation, fails to state it is irreversible or that the contact person must exist. Sibling tools provide some context but description itself is incomplete.

    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% and description offers no explanations for 'contactId' or 'contactPersonId'. Agent must infer their meaning from context. Description fails to compensate for lack of 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?

    Description clearly states the action (delete) and resource (contact person). It distinguishes from sibling fiken_delete_contact (which deletes a contact, not contact person). However, it does not elaborate on scope or nuances.

    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 fiken_update_contact_person or fiken_list_contact_persons. No prerequisites or conditions specified.

    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 annotation 'readOnlyHint: true' already indicates this is a read operation. The description adds no further behavioral context (e.g., error handling, response structure). It does not contradict the annotation, but provides minimal extra value.

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

    Conciseness5/5

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

    The description is a single sentence with no unnecessary words, efficiently conveying the core functionality. For a simple retrieval tool, this is appropriately 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 low complexity (one parameter, no output schema, no nested objects), the description is minimally sufficient. However, it could mention the return format or that the draft must exist, which would improve completeness.

    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 does not explain the 'draftId' parameter. Schema coverage is 0%, yet the description provides no additional meaning, leaving the agent unsure about what value to provide.

    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 verb 'Returns' and the resource 'specific invoice draft', making the purpose understandable. However, it lacks explicit differentiation from sibling tools like 'fiken_list_invoice_drafts', though the word 'specific' implies it returns a single draft by ID.

    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 such as 'fiken_list_invoice_drafts' or 'fiken_create_invoice_draft'. The description does not mention 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.

  • Behavior3/5

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

    Annotations indicate readOnlyHint=true, so agent knows it's safe. Description adds that it returns 'all attachments', but no info on response structure, pagination, or 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?

    One sentence, no unnecessary words. Front-loaded with action and resource.

    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 no output schema, the description should at least hint at what an attachment object looks like (e.g., file name, URL). It simply says 'all attachments' without further structure.

    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%; description adds no meaning to the lone draftId parameter. The word 'draft' is in the description but doesn't clarify the parameter's purpose or 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?

    Description clearly states it returns attachments for a sale draft (verb+resource). The name distinguishes it from siblings like fiken_get_invoice_draft_attachments, but no explicit differentiation from fiken_get_sale_attachments.

    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 vs. other attachment retrieval tools or what a draftId is. Does not mention prerequisites or alternatives.

    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?

    Annotations already declare readOnlyHint=true, so the bar is low. The description adds that it returns 'all' activity types, implying a full list with no filtering. No contradictions found.

    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, well front-loaded. However, for a tool with parameters, it is too brief and does not cover necessary details.

    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 two parameters and no output schema, the description is incomplete. It fails to explain pagination parameters, the structure of the returned data, or any constraints. More detail is needed for effective use.

    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 explain parameters. It does not mention page or pageSize at all, nor their purpose or how to use them for pagination. The description only says 'all', which suggests no filtering but omits pagination details.

    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 returns activity types for a company, using a specific verb and resource, which is sufficient for basic understanding. However, it does not distinguish from siblings, which are numerous but many differ in purpose.

    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?

    There is no guidance on when to use this tool versus alternatives like fiken_list_accounts or others. The description lacks any usage context, exclusions, or prerequisites, leaving the agent to infer 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.

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds no further behavioral traits (e.g., pagination behavior, rate limits). It neither contradicts annotations nor provides additional transparency beyond them.

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

    Conciseness4/5

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

    Single sentence is concise and front-loaded with the core purpose. However, it omits important details about pagination and parameters, making it less helpful. The sentence earns its place but could be more informative 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 no output schema and zero param descriptions, the description is incomplete. It does not explain pagination, return format, or how this tool fits among many sibling tools (e.g., invoices, offers). Significant gaps remain for an agent 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?

    Schema has 0% description coverage for the two integer parameters (page, pageSize). The description does not explain their meaning or usage, leaving the agent to infer from names alone. The description should compensate but fails to do so.

    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 'Returns all order confirmations for the company,' specifying a verb and resource. It distinguishes from the sibling 'get_order_confirmation' (single) and other list tools. However, the word 'all' may be misleading since it supports pagination via page/pageSize, but the description does not clarify this.

    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 'fiken_get_order_confirmation' or other list tools. The description fails to mention that this is for listing multiple confirmations or any context about pagination.

    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 annotation 'readOnlyHint: true' already conveys that the tool is safe for reads. The description adds that it returns 'all' users, but omits details like pagination (page, pageSize) or whether the result is limited. Since the annotation covers the core behavioral trait, the description adds marginal 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 concise at 6 words, which is efficient. However, it is too short to cover necessary details like pagination; a slightly longer description would be more valuable without sacrificing 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 tool's simplicity (2 optional parameters, no output schema), the description is insufficient. It does not explain what a 'time-tracking user' is, how pagination works, or what the response contains. The annotation provides safety but not 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?

    With 0% schema parameter description coverage, the description completely neglects to explain the 'page' and 'pageSize' parameters. While these are common pagination parameters, the description should clarify their roles to help the agent invoke the tool correctly.

    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 verb 'Returns' and the resource 'all time-tracking users', making the purpose straightforward. However, it does not distinguish this from sibling tools like 'fiken_list_time_entries' or 'fiken_list_activities', which could cause confusion for an AI agent.

    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., 'fiken_list_time_entries'). There is no mention of prerequisites, context, or scenarios where 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?

    The description only echoes the write nature implied by the tool name and annotation (readOnlyHint: false), adding no details about side effects, permission requirements, or idempotency. This is minimal behavioral disclosure beyond annotations.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no unnecessary words. It efficiently communicates the core action 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 tool's complexity (6 parameters, nested object, no output schema) and a large set of sibling tools, the description is too sparse. It fails to explain what 'updating' entails, which fields are modifiable, or how to properly construct the request.

    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?

    With schema description coverage at 0%, the description adds no meaning to the six parameters, leaving the agent to infer from parameter names alone. No examples, constraints, or optionality hints are provided, severely limiting correct parameter 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 clearly states the action ('Updates') and the resource ('a contact person'), directly distinguishing it from sibling tools like 'create_contact_person', 'delete_contact_person', and 'get_contact_person'.

    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., update_contact for a company contact), nor does it mention prerequisites or exclusions. The agent is left without 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.

  • Behavior3/5

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

    The description mentions amounts are in NOK øre, which adds useful behavioral context beyond the annotation (readOnlyHint=false). However, it does not disclose other traits like required permissions, side effects on accounting, or whether the sale is finalized immediately.

    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, front-loading the purpose immediately. Every word is useful, with no unnecessary elaboration.

    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 (15 parameters, 5 required, no output schema), the description is insufficient. It does not explain required parameters, the structure of lines, or what constitutes a successful creation (no return value hinted).

    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 schema description coverage at only 40%, the description fails to compensate. It does not explain key parameters like kind, lines, or customerId beyond what is in the schema. The brief mention of 'Amounts in NOK øre' only marginally helps for currency-related 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 the tool creates a new sale and mentions amounts in NOK øre, distinguishing it from related tools like fiken_create_sale_draft and fiken_create_invoice. However, it does not elaborate on the different kinds of sales (cash_sale, invoice, external_invoice) which are required parameters.

    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 fiken_create_invoice or fiken_create_sale_draft. The description lacks any context about prerequisites or exclusions.

    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?

    Annotations already indicate destructiveHint: true, so the agent knows this is a destructive action. The description repeats that it deletes, which is consistent but adds no additional behavioral context (e.g., irreversibility, cascading 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 extremely concise (five words) and to the point. However, it is so minimal that it sacrifices important information, making it borderline under-specified.

    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 delete tool with one parameter and no output schema, the description is incomplete. It does not explain what happens after deletion, whether the operation is reversible, or any constraints on the draft's state (e.g., cannot be deleted if used in an invoice).

    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 the 'draftId' parameter or its purpose. The agent receives no additional meaning beyond the schema's type and required flag.

    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 ('Deletes') and the resource ('an invoice draft'). It distinguishes from sibling tools that are for other operations (create, get, update, list) and other types of drafts (credit note, offer, purchase, sale).

    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 deleting other draft types. There is no mention 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?

    Annotations already indicate destructiveHint: true. The description adds no extra context about what happens upon deletion (e.g., irreversibility, related records affected). For a destructive action, more disclosure is warranted.

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

    Conciseness5/5

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

    The description is a single, concise sentence that states the action directly. No unnecessary words or details.

    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, no output schema, clear annotations), the description is minimally adequate. However, it lacks context about when deletion is allowed (e.g., draft state) and error scenarios.

    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 'draftId' lacks any description in the schema or the tool description. With 0% schema description coverage, the description should explain that draftId is the numeric identifier of the offer draft to delete, but it does not.

    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 'Deletes an offer draft' uses a specific verb ('deletes') and resource ('offer draft'), clearly distinguishing it from sibling tools like fiken_list_offer_drafts, fiken_get_offer_draft, etc. The action 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 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., fiken_delete_invoice_draft, fiken_delete_sale_draft) or when not to use it. There is no mention of prerequisites or constraints like draft existence.

    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?

    Annotations already indicate destructiveHint=true, so the description's 'Deletes' matches. However, no additional behavioral context (e.g., irreversibility, permissions) is provided beyond annotations.

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

    Conciseness4/5

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

    The description is a single, concise sentence with no extraneous words. However, it sacrifices completeness 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 destructive action with one undocumented parameter and no output schema, the description leaves critical gaps. It fails to provide sufficient context for safe 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 sole parameter (draftId) is completely undocumented in both the input schema and description. The agent has no guidance on what value 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 it deletes a purchase draft, using a specific verb and resource. It distinguishes from sibling tools that delete other draft types (e.g., sale, 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 on when to use this tool versus alternatives or prerequisites. The description only states the action, not the context.

    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?

    Annotations provide readOnlyHint=true, which is consistent with 'Returns'. The description adds no further behavioral context, such as response format or side effects, but does not contradict annotations.

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

    Conciseness4/5

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

    Single sentence with no redundancy. Efficient but could benefit from additional context without sacrificing conciseness.

    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 retrieval tool with no output schema, the description is minimally adequate. It does not explain return format or relationship to other offer draft tools, but annotations fill part of the gap.

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

    Parameters2/5

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

    The single parameter draftId is described in the schema name only, with no description in schema (0% coverage). The tool description does not explain what draftId represents, leaving interpretation to the agent.

    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 'Returns a specific offer draft', specifying the verb and resource. However, it does not differentiate from siblings like fiken_list_offer_drafts or fiken_get_offer, which operate on similar 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 on when to use this tool versus alternatives (e.g., listing drafts or retrieving offers). No mention of prerequisites or context.

    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 matches the readOnlyHint annotation, but adds no additional behavioral context beyond what the annotation already provides (e.g., no mention of authentication, rate limits, or what 'attachments' entail).

    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 wasted words. However, it is too brief given the missing parameter guidance.

    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 details about the return format, handling of missing drafts, or any usage constraints. For a simple list tool, it is moderately incomplete.

    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?

    With 0% schema coverage, the description should explain the 'draftId' parameter, but it does not. The parameter's meaning is only implied by the tool 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 verb 'Returns' and the resource 'attachments for an offer draft', distinguishing it from siblings like fiken_get_offer_draft (returns the draft itself) and other attachment retrieval tools.

    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 (e.g., other attachment retrieval tools like fiken_get_invoice_attachments). The description only states the action without context.

    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 annotation 'readOnlyHint: true' already indicates a safe read operation. The description confirms it returns data but adds no additional behavioral context (e.g., pagination, filtering limits). It does not contradict annotations.

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

    Conciseness4/5

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

    The description is a single, clear sentence with no wasted words. It is front-loaded and concise, though it could incorporate more value 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 the tool's complexity (14 parameters, no output schema) and the large set of sibling tools, the description is insufficient. It omits crucial details like response format, pagination behavior, and filtering capabilities.

    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?

    With schema description coverage at only 14%, the description fails to explain any of the 14 parameters. It provides no guidance on filtering, pagination, or date range usage, leaving the agent to interpret 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 'Returns all purchases for the company' uses a specific verb ('returns') and resource ('purchases') with a clear scope, effectively distinguishing it from sibling tools like 'fiken_get_purchase' (single purchase) and 'fiken_list_purchase_drafts' (drafts).

    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 'fiken_get_purchase' or 'fiken_list_purchase_drafts'. The description lacks context for selection among sibling listing tools.

    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?

    Annotations indicate readOnlyHint=false, so tool is write-oriented. Description adds the useful detail that amounts are in NOK øre (cents), but does not disclose side effects, authentication needs, or response behavior beyond the schema.

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

    Conciseness4/5

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

    Description is extremely concise with one sentence, front-loading the purpose. Could add more details without harming conciseness, but it is efficient.

    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?

    No output schema exists, so description should explain return value. With 16 parameters and 6 required, the description only provides the cents note, leaving out important context like default values or expected outcomes.

    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 50%, so the description's note about cents adds value for parameters like net, vat, gross, unitPrice. However, no additional semantics are provided for the other half of 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?

    Description clearly states it creates a new invoice and mentions the subunit (cents). However, it does not differentiate from sibling tools like creating an invoice draft or counter.

    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 creating an invoice draft first or using other invoice-related operations. No prerequisites or context for use.

    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?

    Annotations indicate readOnlyHint=false, which is consistent with 'creates'. The description adds that amounts are in NOK øre, providing useful unit context. However, it does not disclose other behaviors (e.g., whether a purchase or draft is created, required permissions, 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?

    Two concise sentences, front-loaded with the action. No extraneous words, but could be slightly 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?

    This is a complex mutation tool with 13 parameters, 5 required, and no output schema. The description provides minimal context: only purpose and unit. Missing details about return value, necessary prerequisites (e.g., company ID), and side effects.

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

    Parameters3/5

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

    Schema description coverage is 54%, so the schema already describes many parameters. The description adds 'Amounts in NOK øre' which applies to all amount fields, supplementing the schema. It does not explain specific parameters further, but the coverage is moderate.

    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 new purchase, which is a specific verb and resource. It minimally distinguishes from siblings like fiken_create_purchase_draft or fiken_list_purchases, but the name itself provides 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 given on when to use this tool versus alternatives (e.g., fiken_create_purchase_draft for drafts, or typical use cases for cash vs supplier). The description lacks context on prerequisites or 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?

    Annotations already indicate readOnlyHint=true, so the read-only nature is clear. The description adds no further behavioral context (e.g., pagination, file format).

    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, efficiently conveying 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 no output schema and one required parameter, the description lacks details about return format, endpoint, or permissions, leaving significant gaps for an agent.

    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% coverage for parameter descriptions, and the description does not explain the meaning of draftId. The parameter is left undocumented.

    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 'Returns' and the resource 'all attachments for a credit note draft', distinguishing it from other attachment retrieval tools like fiken_get_invoice_draft_attachments.

    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, prerequisites (e.g., the draft must exist), or when to use 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?

    Annotations already indicate readOnlyHint=true, so the description's 'Returns' aligns without contradiction. However, it does not explain response format, pagination, or limits, leaving open questions 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.

    Conciseness5/5

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

    The description is a single concise sentence that immediately conveys the tool's purpose without any extraneous information.

    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?

    While the tool is simple with one parameter and no output schema, the description fails to explain what an attachment is, the nature of the returned data, or how to use the result effectively.

    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 required parameter 'invoiceId' is not described at all; the schema has 0% description coverage and the description does not compensate by explaining what invoiceId is or how to obtain it.

    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 ('Returns') and the resource ('attachments for an invoice'), making it easy to distinguish from sibling tools like fiken_get_invoice_draft_attachments.

    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., fiken_get_invoice which may also return attachment info), nor any prerequisites or context for use.

    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?

    Annotations already declare readOnlyHint=true, so the tool is known to be a safe read operation. The description adds minimal behavioral context beyond what the annotations provide, e.g., no mention of error handling or return format.

    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, efficient sentence that conveys the core functionality with no waste. It is appropriately sized for a simple getter.

    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 retrieval tool, the description is adequate but lacks details on the return value structure since no output schema is provided. It could mention what fields the journal entry 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?

    With 0% schema description coverage, the description does not compensate by explaining the parameter. The parameter name 'journalEntryId' and type integer are self-explanatory given the tool name, but the description adds no additional meaning.

    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 returns a specific journal entry by ID, which is a specific verb and resource. It implicitly distinguishes from sibling tools like fiken_list_journal_entries (list all) and fiken_create_journal_entry (create), but lacks explicit differentiation.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or conditions 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?

    The description does not add any behavioral context beyond what annotations already declare (readOnlyHint=true). It omits details like error handling, authentication needs, or whether the purchase ID is scoped to a company, which are important 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.

    Conciseness5/5

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

    The description is a single, efficient sentence (6 words) that conveys the core action without any fluff, earning 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 tool has one parameter and no output schema, the description is too sparse; it does not specify the return value shape, prerequisites (e.g., company context), or behavior on missing ID, 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.

    Parameters2/5

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

    With 0% schema description coverage, the description only says 'by ID', which adds minimal value since the parameter name 'purchaseId' is self-explanatory. It does not specify format, constraints, or how the ID relates to the purchase resource.

    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 'Returns' and the resource 'a specific purchase', with the identifier 'by ID', making the purpose precise and distinguishing it from sibling tools like fiken_list_purchases (list) and fiken_get_purchase_draft (related but different entity).

    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; for example, it does not explain when to use this over fiken_list_purchases or fiken_get_purchase_draft, leaving the agent to infer from names alone.

    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 confirms the read-only nature (consistent with readOnlyHint annotation) but adds no additional behavioral details, such as whether attachments are returned as URLs or binary content. Since annotations already cover the safety profile, this is adequate but not enriched.

    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 fluff. It is front-loaded and directly states the tool's purpose. 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?

    The description is minimal. Given the lack of output schema, it does not explain what 'attachments' means (e.g., file list, URLs, metadata). For a simple retrieval tool, it is barely adequate but could be more informative.

    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 one required parameter (purchaseId) with 0% description coverage. The tool description does not mention or explain the parameter, leaving the agent to infer its meaning from the name alone. The description adds no value beyond the schema.

    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 returns all attachments for a purchase. It uses a specific verb and resource, making the purpose unambiguous. However, it does not differentiate from sibling tools like fiken_get_invoice_attachments, which follow the same pattern.

    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 simply states what it does without any context or exclusions. Sibling tools have similar names, and the agent has no explicit direction.

    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 'Retrieves' aligns with the readOnlyHint annotation, so no contradiction. However, it adds minimal behavioral context beyond what annotations provide. It does not disclose pagination behavior, authentication needs, or the fact that it returns a list—though some of these may be inferred from the input schema.

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

    Conciseness5/5

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

    The description is a single, concise sentence that contains no unnecessary words. It is front-loaded with the primary action and resource.

    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 output schema and a simple tool, the description is adequate but incomplete. It does not describe the return format (e.g., a list of balances with account details) or the effect of pagination parameters. It meets the minimum viable threshold for a read-only 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 coverage is only 33% (only 'date' has a description in the schema). The tool description does not explain the 'page' or 'pageSize' parameters, leaving them undocumented. Since coverage is low, the description should compensate but fails to do so.

    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 retrieves bank balances for a company at a given date. It uses a specific verb ('Retrieves') and resource ('bank balances'), but does not differentiate from sibling tools like fiken_get_account_balance or fiken_list_bank_accounts, which could be confused.

    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, when not to use it, or what other tools (e.g., fiken_list_account_balances) might be more appropriate for similar tasks.

    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 is consistent with the readOnlyHint annotation, providing no additional behavioral context. It does not contradict, but also does not elaborate on potential side effects or constraints beyond what the annotation implicitly covers.

    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, efficient sentence of 6 words with no unnecessary text. It is front-loaded and earns its place by conveying the essential purpose 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 no output schema, no parameter details, and minimal description, the tool definition lacks completeness. Important details like pagination behavior, response structure, and company context are omitted, making it insufficient for correct invocation without external knowledge.

    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, pageSize) with 0% description coverage, and the description does not explain their semantics or usage. The agent receives no help in understanding how to paginate or interpret these fields.

    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 'Returns' and the resource 'all purchase drafts for the company', making it distinct from sibling tools like fiken_get_purchase_draft or fiken_create_purchase_draft.

    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 instead of alternatives (e.g., get vs list, or pagination). It only states what it does, leaving the agent without 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?

    Annotations indicate this is a write operation (readOnlyHint=false), and the description confirms creation. However, it does not disclose behavioral traits like data immutability, rollback policies, or access requirements. The only added behavioral detail is the unit of amounts, which is minor.

    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 short sentences with no superfluous words. It front-loads the primary action and adds a critical numerical detail. Every sentence 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?

    The tool has a complex nested input (array of journal entries with lines), no output schema, and no error handling or return value description. The description does not explain the required structure, relationships between debit/credit accounts, or behavior like balancing. Given the complexity, this is insufficient.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents all parameters. The description repeats the unit 'NOK øre' already present in the schema, adding no new semantic information. Baseline 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states 'Creates a new general journal entry', which is a specific verb and resource. It distinguishes from siblings like fiken_get_journal_entry (retrieval) and fiken_list_journal_entries (listing). The additional note about currency unit aids 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?

    The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It does not explain the context for creating journal entries, such as required accounting structure or relationship to other 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?

    Annotations already indicate a write operation (readOnlyHint=false). The description adds no extra behavioral details such as whether the draft is deleted after finalization, prerequisites like the draft existing, or side effects. It only restates the obvious write nature.

    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 (5 words) and front-loaded, but it could benefit from a bit more detail without being verbose. Still, it avoids unnecessary fluff.

    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 essential context: no mention of return value (the tool has no output schema), no prerequisites (draft must exist), and no behavior after creation (e.g., draft status). For a simple tool, this is incomplete.

    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 but does not. The only parameter 'draftId' is implicitly referenced by 'from a draft', but no meaning is added beyond the schema's type and requirement.

    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 'Creates a finalized purchase from a draft' has a specific verb and resource, clearly distinguishing it from siblings like fiken_create_purchase (creates from scratch) and fiken_create_purchase_draft (creates a draft).

    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 using this tool when a purchase draft exists, but it lacks explicit guidance on when not to use it (e.g., if the draft is already finalized) or mentions alternatives like fiken_create_purchase.

    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 simply restates the destructiveHint annotation without adding details like permanence, cascading effects, or permissions required.

    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, no wasted words, but could benefit from slightly more detail 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?

    For a simple delete tool with annotations, the description is marginally complete but fails to explain the required 'description' parameter or confirm that the operation is irreversible.

    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 50%, so baseline is 3. The description adds no parameter information beyond what the schema provides.

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

    Purpose5/5

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

    Description clearly states the verb 'Deletes' and resource 'purchase', distinguishing it from related tools like fiken_get_purchase and fiken_create_purchase.

    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 or not use this tool, no prerequisites, and no alternatives mentioned despite many sibling tools for similar operations.

    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?

    Annotations already indicate destructiveHint=true. Description adds the behavioral detail that a reversing transaction is created, providing useful context beyond annotations. However, it does not clarify the final state or reversibility.

    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 redundancy, front-loaded with key action. Efficient and clear.

    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 destructive tool, the description is minimal. It lacks warnings, prerequisites, or clarification of the impact on related records. No differentiation from sibling delete tools.

    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 only 50% (description parameter has a description, transactionId does not). The tool description does not add extra meaning to the parameters, leaving transactionId ambiguous.

    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 it marks a transaction as deleted and creates a reversing transaction. However, it does not differentiate from sibling delete tools like fiken_delete_purchase or fiken_delete_sale, which might 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 such as delete_purchase or delete_sale. The description lacks context about appropriate 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?

    Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds 'retrieves', which is consistent but adds no additional behavioral context like pagination or rate limits.

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

    Conciseness4/5

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

    The description is a single concise sentence. It could be improved by adding parameter guidance, but it is not wasteful.

    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 read-only tool with 3 optional parameters and no output schema, the description is too minimal. It lacks parameter details and usage 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?

    Schema description coverage is only 33% (only 'inactive' has a description). The tool description does not mention parameters or their semantics, failing to compensate for low schema coverage.

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

    Purpose5/5

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

    The description clearly states the verb 'retrieves' and resource 'all bank accounts for the company', distinguishing it from siblings like fiken_list_bank_balances (balances) and fiken_list_accounts (general accounts).

    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 exclusions or context provided.

    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?

    Annotations already set readOnlyHint=true, so the description's 'Returns' aligns. No additional behavioral details (e.g., authorization, rate limits) are provided, but the annotation covers the key trait.

    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?

    A single sentence with no wasted words. It is front-loaded with the core action and resource.

    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 read tool with no output schema, the description should at least hint at the return value. It does not mention the content or structure of the returned credit note.

    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 only parameter, creditNoteId (integer), is not explained in the description (0% schema description coverage). While the name is suggestive, the description adds no semantics 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?

    Description clearly states the verb 'Returns', the resource 'credit note', and the identifier 'by ID'. This distinguishes it from sibling tools like fiken_list_credit_notes (which lists) and fiken_create_credit_note (which creates).

    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 such as list, create, or send credit notes. The description is purely functional without context.

    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 annotation readOnlyHint: true already indicates a safe read operation. The description's 'Returns' aligns with this but adds no further behavioral details (e.g., no info on authorization, rate limits, or what happens if draftId is invalid).

    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 is front-loaded and efficiently conveys the core functionality.

    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 parameter and a readOnlyHint, the description is mostly adequate. However, lacking an output schema, a brief note on the return format (e.g., list of attachment objects) would improve completeness without adding much length.

    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 draftId parameter, which is the only required field. Given the low coverage, the description should compensate by clarifying the parameter's purpose, but it does not.

    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 'Returns all attachments for an invoice draft' uses a specific verb and resource, clearly distinguishing it from sibling tools like fiken_get_invoice_attachments (for invoices) and fiken_get_invoice_draft (for the draft itself).

    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 fiken_get_invoice_attachments or other attachment retrieval tools. The description does not provide any context, prerequisites, or exclusions.

    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?

    Annotations declare readOnlyHint=true, and the description aligns with a read operation. The description adds 'for the current year' as a scoping detail, but does not disclose pagination or filtering behavior, which are important 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?

    Single sentence of 8 words. Front-loaded with verb and resource. No unnecessary text.

    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 4 parameters, no output schema, and low schema coverage, the description is insufficient. It omits pagination, filtering, and return format. Among account-related siblings, no distinction is provided.

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

    Parameters2/5

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

    The description adds no meaning about parameters. Schema coverage is 50% (only two parameters have descriptions), so the description should compensate but does not mention page, pageSize, toAccount, or fromAccount.

    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 ('Retrieves') and resource ('bookkeeping accounts') with a specific scope ('for the current year'). This distinguishes it from sibling tools like fiken_get_account (single account) and fiken_list_account_balances.

    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 (e.g., fiken_get_account for a specific account, fiken_list_account_balances for balances). No mention of prerequisites or common use cases.

    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?

    Annotations already declare readOnlyHint=true, so the description adds no behavioral disclosure beyond that. It does not mention pagination, ordering, or response format, but without contradicting annotations, a baseline of 3 is appropriate.

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

    Conciseness5/5

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

    The description is a single, short sentence with no extraneous information. It is efficiently front-loaded and achieves its purpose without waste.

    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 list tool has pagination parameters and no output schema, the description is incomplete. It fails to explain how pagination works, what the response looks like, or any filtering capabilities, leaving the agent with significant 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 coverage is 0% (no parameter descriptions). The description does not add any meaning to the 'page' and 'pageSize' parameters, leaving the agent without clarity on their usage or defaults.

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

    Purpose5/5

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

    The description states 'Returns all sale drafts for the company', clearly specifying the verb (returns), resource (sale drafts), and scope. It distinguishes from siblings like fiken_get_sale_draft (single) and fiken_list_sales (sales, not drafts).

    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. Siblings include many listing endpoints, but no exclusions, prerequisites, 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?

    The description only states the basic update action, adding no behavioral context beyond what the annotations (readOnlyHint: false) already imply. It does not disclose side effects, required permissions, reversibility, or any other traits that would help the agent anticipate the tool's behavior.

    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 9 words, conveying the essential information without any filler. It is front-loaded and 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?

    For a simple update tool with only two optional fields and no output schema, the description covers the core purpose adequately. However, it lacks details on required authentication, idempotency, or potential error conditions, which would be helpful for a complete understanding.

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

    Parameters3/5

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

    The description adds context by naming the updatable fields (due date and manual send status), which maps to the two optional parameters. However, it does not clarify the meaning of invoiceId beyond the schema. With 67% schema coverage, the description partially compensates but could be more explicit.

    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 and description clearly state the verb 'Updates' and the resource 'invoice', specifying the exact fields that can be updated (due date and/or manual send status). This effectively distinguishes it from sibling tools like fiken_create_invoice, fiken_get_invoice, and fiken_send_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?

    The description fails to provide any guidance on when to use this tool versus alternatives, such as fiken_update_invoice_draft for drafts, or prerequisites like the invoice being in a certain state. No when-not-to-use or exclusion criteria are given.

    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 annotation readOnlyHint=true already indicates this is a safe read operation. The description's 'Retrieves' is consistent, but adds no further behavioral context such as error handling or return format.

    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, which is concise. However, it is under-informative; additional brief context would improve it without sacrificing 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 this is a simple get operation with two parameters and no output schema, the description lacks completeness. It does not mention what the response contains or how the parameters relate to the resource.

    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, and the description does not explain the meaning of contactId or contactPersonId. The agent must infer from parameter names, which may be ambiguous.

    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 'Retrieves a specific contact person', which is a specific verb-resource combination. It distinguishes from sibling tools like fiken_list_contact_persons (list all) and CRUD operations.

    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 provide explicit when-to-use or when-not-to-use guidance. It is implied that the tool is for fetching one contact person by ID, but no alternatives or exclusions are mentioned.

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

  • Behavior3/5

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

    Annotations already indicate readOnlyHint=true, so the tool's non-destructive nature is clear. The description adds no further behavioral context (e.g., error handling, return format), but does not contradict annotations.

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

    Conciseness5/5

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

    A single, front-loaded sentence that efficiently conveys the core function with no redundant words.

    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 retrieval tool with one parameter and no output schema, the description is adequate but could be improved by mentioning return value structure or error cases.

    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 'confirmationId' is not described in the schema or description. The description implies it is the identifier but omits details like its role, format, or constraints, which is insufficient given 0% schema coverage.

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

    Purpose5/5

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

    The description clearly states the action ('Returns') and the resource ('a specific order confirmation by ID'), which matches the tool's name and distinguishes it from siblings like 'fiken_list_order_confirmations'.

    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., fiken_list_order_confirmations for listing all confirmations), nor any prerequisites or context.

    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?

    Annotations already provide readOnlyHint=true. The description adds that it returns 'all attachments' but lacks details on the output format (e.g., URLs, binary), which is needed given no output schema.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no unnecessary words, earning 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?

    For a simple retrieval tool with one parameter and readOnly annotations, the description is minimal but covers the essential purpose. However, lack of output details reduces 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?

    With 0% schema description coverage, the description should add meaning for the sole parameter saleId. It only says 'for a sale', lacking explanation of the parameter's type, format, or role.

    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 'Returns all attachments for a sale' clearly states the verb and resource, and distinguishes from sibling tools like fiken_get_invoice_attachments by specifying 'sale'.

    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 other attachment retrieval tools or when the sale ID is invalid.

    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 indicate readOnlyHint=false, confirming write behavior, but the description adds no further behavioral context such as side effects (e.g., whether the invoice is marked as credited) or any irreversible actions.

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

    Conciseness5/5

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

    The description is a single sentence that is clear and direct, with no unnecessary words. It perfectly front-loads the core action.

    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 with 3 parameters and no output schema, the description covers the basic purpose but lacks details on post-creation behavior (e.g., response format, whether the credit note is finalized) and prerequisites (e.g., invoice existence).

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

    Parameters3/5

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

    The input schema already describes 2 out of 3 parameters (invoiceId and issueDate), providing meaningful definitions. The tool description does not add extra context beyond what is in the schema, meeting the baseline.

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

    Purpose5/5

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

    The description clearly states the verb 'creates', the resource 'credit note', and the scope 'covering the full amount of an invoice'. This effectively distinguishes it from siblings like 'fiken_create_partial_credit_note'.

    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 full credit notes, but does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it (e.g., if a partial credit note is needed).

    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 is consistent with the readOnlyHint annotation, confirming the tool is safe. However, it does not disclose any additional behavioral traits such as the format of the returned counter or whether it increments automatically. Since annotations cover safety, a score of 3 is appropriate.

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

    Conciseness5/5

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

    The description is a single, concise sentence that immediately states the action. It contains no superfluous words and efficiently conveys the tool's 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 tool with no parameters and no output schema, the description adequately explains what it does. However, it does not specify the output format (e.g., integer), which could aid the agent in understanding return value usage. Given the tool's simplicity, this is a minor gap.

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

    Parameters4/5

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

    The tool has zero parameters, so the input schema fully covers parameter definition. The description adds no additional meaning, but with 100% schema coverage, the baseline of 4 is justified.

    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 retrieves the current invoice number counter, which is a specific verb+resource combination. However, it does not differentiate this counter from similar sibling tools like fiken_get_credit_note_counter or fiken_get_offer_counter, which have identical descriptions.

    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, nor does it mention any prerequisites or context for using the invoice counter.

    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?

    Annotations already declare readOnlyHint=true, so the description adds little behavioral context beyond the basic function. It does not disclose error behavior (e.g., what happens if the transaction ID does not exist) or any other 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 concise sentence that is front-loaded with the main action. It does not waste words, though it could be slightly expanded 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 the tool's simplicity (one required parameter, no output schema), the description is minimally adequate but lacks details about the return format or error conditions. It could be improved by mentioning the full transaction object is returned.

    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 compensate, but it only mentions 'by ID' without explaining what a transaction is or where to obtain the ID. The parameter transactionId is not described beyond the 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 ('Returns'), the resource ('a specific transaction'), and the scope ('by ID'). It distinguishes from siblings like fiken_list_transactions (list all) and fiken_delete_transaction (delete).

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

    Usage Guidelines3/5

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

    The description implies use when you have a specific transaction ID but does not explicitly state when to use this tool versus alternatives like fiken_list_transactions. No when-not-to-use or alternative guidance is provided.

    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 annotation readOnlyHint:true already signals a safe read operation. The description adds that it retrieves accounts and closing balances, which is consistent. However, it does not disclose any behavioral details such as whether the results are paginated or the order of accounts. The description 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 a single sentence that is concise and front-loaded with the action. Every word is necessary and there is no superfluous text.

    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 5 parameters, no output schema, and sibling tools, the description is too minimal. It does not explain that the result is a list, that filtering by account ranges is possible, or the nature of closing balances. Agents would benefit from more details about the return structure and filtering capabilities.

    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 only 20% (only the 'date' parameter is described). The description mentions 'for a given date' but does not explain the other parameters (page, pageSize, fromAccount, toAccount). With low coverage, the description should have compensated by describing these parameters, but it did not.

    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 'retrieves', resource 'accounts and closing balances', and condition 'for a given date'. It distinguishes from similar siblings like fiken_get_account_balance (which retrieves a single account's balance) and fiken_list_accounts (which lists accounts without balances).

    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 that the tool is used to get closing balances for all accounts on a specific date, but it does not explicitly state when to use it versus alternatives like fiken_get_account_balance or fiken_list_accounts. No exclusion criteria or prerequisites are mentioned.

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

  • Behavior2/5

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

    Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds no extra behavioral context (e.g., authentication needs, rate limits, or what happens if the account code is invalid).

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

    Conciseness5/5

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

    Single sentence, front-loaded with the action, no redundant words. Every word earns its place.

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

    Completeness4/5

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

    For a simple retrieval tool with good annotations and schema, the description is adequate. However, since there is no output schema, a brief note on what is returned would improve completeness.

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

    Parameters3/5

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

    Schema coverage is 100% and includes an example for accountCode. The description only repeats 'by account code', adding no additional semantic meaning beyond the schema.

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

    Purpose5/5

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

    Description clearly states the verb 'Retrieves' and the resource 'bookkeeping account' with the key identifier 'by account code'. This distinguishes it from siblings like fiken_list_accounts and fiken_get_account_balance.

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

    Usage Guidelines3/5

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

    No explicit guidance on when to use this tool versus alternatives such as fiken_list_accounts or fiken_get_account_balance. The description only implies the need for a specific account code.

    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 'Retrieves' aligns with the readOnlyHint annotation, but no additional behavioral details (e.g., error handling, what happens if ID not found) are provided.

    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, clear sentence that efficiently conveys the purpose without waste. Could be slightly more informative but is appropriately brief.

    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 retrieval tool with one parameter and no output schema, the description is adequate but lacks details about what the response contains, which would help the agent understand the return value.

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

    Parameters3/5

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

    Schema coverage is 100%, and the description of the parameter in the schema ('Bank account ID') matches the description; no new semantic information is added.

    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 'Retrieves a specific bank account by ID,' specifying the verb (retrieves), resource (bank account), and distinguishing it from list tools by emphasizing 'specific' and 'by ID.'

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

    Usage Guidelines3/5

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

    No explicit guidance on when to use vs. alternatives like fiken_list_bank_accounts. Usage is implied by the description but not stated.

    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 adds minimal behavioral context beyond the readOnlyHint annotation. It mentions the configuration via FIKEN_COMPANY_SLUG, which is useful, but does not discuss prerequisites, error states, or performance implications.

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

    Conciseness5/5

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

    The description is a single, focused sentence that front-loads the purpose. There is no extraneous information, earning its place efficiently.

    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 get operation with no parameters and a read annotation, the description adequately conveys the core purpose. However, lacking an output schema, it could briefly note the return value (e.g., 'returns company details object').

    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 is empty with 100% schema description coverage, so the baseline is 3. The description does not add any parameter semantics since there are no parameters.

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

    Purpose5/5

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

    The description clearly states the tool returns details of the company configured via FIKEN_COMPANY_SLUG. It uses a specific verb (returns) and resource (company), distinguishing it from siblings like fiken_list_companies.

    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. For example, it does not mention that to get specific company details use this, while to list all companies use fiken_list_companies.

    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 confirms read-only behavior consistent with the readOnlyHint annotation but adds no further behavioral context (e.g., authentication requirements, rate limits, or response structure).

    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?

    A single, clear sentence front-loads the essential information with no extraneous words.

    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 retrieval tool with one parameter and a readOnly annotation, the description is minimally adequate but omits typical return value details (e.g., invoice fields, pagination) which are not covered by an output schema.

    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?

    Despite 0% schema description coverage, the description only mentions 'by ID' without explaining the invoiceId parameter's format or purpose, leaving the agent to infer from the name 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 'Returns a specific invoice by ID' clearly identifies the action (returns), resource (invoice), and identifier (ID), distinguishing it from sibling tools like fiken_list_invoices or fiken_create_invoice.

    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 invoice but provides no explicit guidance on when to use this tool versus alternatives (e.g., when to use fiken_get_invoice vs fiken_list_invoices).

    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 already declare readOnlyHint: true. The description adds no additional behavioral context beyond the verb 'retrieves', such as the format of the returned counter, potential errors, or permission requirements. With annotations covering the read-only trait, the description contributes minimal extra value.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys the tool's 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?

    With no output schema, the description fails to specify the return type or format (e.g., integer, object, string). An agent cannot know what data structure to expect when invoking this tool, making it incomplete for a tool with zero output schema coverage.

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

    Parameters4/5

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

    There are no parameters, so schema coverage is trivially 100%. The description appropriately does not need to discuss parameters. A baseline of 4 is warranted per the rules.

    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 'Retrieves' and the resource 'current offer number counter', distinguishing it from sibling counter tools like get_invoice_counter or get_credit_note_counter. The purpose is immediately understood.

    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 no explicit guidance on when to use this tool versus alternatives (e.g., create_offer_counter). The agent must infer the read-only nature and context from the name and sibling tools, which is adequate but not explicit.

    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?

    Annotations already provide 'readOnlyHint: true'. The description does not add further behavioral details (e.g., error handling, empty results, or performance). It is adequate but minimal for a read-only 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?

    The description is one concise sentence with no superfluous words. It is front-loaded and 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?

    Given the single parameter, read-only nature, and no output schema, the description is functional but lacks information about the return format, error conditions, or any prerequisites. It is minimally complete for a straightforward retrieval but could benefit from more 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?

    The input schema has 0% description coverage, and the description does not elaborate on the 'draftId' parameter beyond the name. While 'draftId' is self-explanatory, the absence of type or format details means the description adds little value over the schema.

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

    Purpose5/5

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

    The description clearly states the action ('Returns all attachments') and the resource ('for a purchase draft'). It is specific and distinguishes from sibling tools like 'fiken_get_sale_draft_attachments' or 'fiken_get_invoice_draft_attachments'.

    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 this tool (when needing attachments for a purchase draft) but offers no explicit guidance on when not to use it or alternatives. No exclusions or prerequisites are mentioned, leaving the agent to infer usage context from the tool name.

    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?

    Annotations already declare readOnlyHint=true, so no contradiction. The description adds no extra behavioral context beyond what annotations provide, only stating the basic retrieval function.

    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, clear sentence with no extraneous information. Perfectly 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?

    For a simple get-by-ID tool with no output schema, the description is adequate but could be improved by specifying what a sale object contains or any prerequisites.

    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. It only mentions 'by ID' without explicitly naming or describing the saleId parameter or its format, providing minimal added meaning.

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

    Purpose5/5

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

    The description explicitly states the verb 'Returns' and the resource 'specific sale by ID', clearly distinguishing it from sibling tools like fiken_list_sales (list all) and fiken_create_sale (create).

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

    Usage Guidelines3/5

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

    Usage is implied: use when you have a sale ID. However, no explicit guidance on when not to use or alternatives (e.g., fiken_list_sales for searching).

    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 aligns with the readOnlyHint annotation but adds no additional behavioral context beyond what the annotation already provides.

    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, focused sentence with no extraneous information.

    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 read tool with one parameter and no output schema, the description is minimally adequate but lacks details about return value structure or field semantics.

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

    Parameters2/5

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

    The description does not elaborate on the required draftId parameter beyond implying it identifies the draft; with 0% schema description coverage, more detail is needed to clarify its meaning.

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

    Purpose5/5

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

    The description clearly states the action (returns) and the resource (a specific sale draft), distinguishing it from siblings like fiken_list_sale_drafts (list) and fiken_create_sale_draft (create).

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

    Usage Guidelines3/5

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

    No explicit guidance on when to use this tool versus alternatives; the context is implied by the verb 'returns a specific sale draft,' but no when-not or alternative mentions.

    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 does not add behavioral details beyond the annotation (readOnlyHint=false). It discloses the constraint on lines but omits other traits like impact on original invoice, required permissions, or irreversibility. Given annotations already indicate a write operation, the description provides marginal additional transparency.

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

    Conciseness5/5

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

    The description is extremely concise at two sentences, with the key action and constraint front-loaded. Every sentence adds value without unnecessary 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?

    For a tool with 12 parameters and no output schema, the description is too sparse. It lacks guidance on required vs optional parameters, how to construct the lines array, or what the response will contain. The context of credit note creation in Fiken likely expects more detail about linked invoice and total constraints.

    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 only 25% (3 of 12 parameters have schema descriptions). The description adds only one constraint ('Lines must total less than the original invoice') which is important for the lines array but does not explain other parameters like project, contactId, or roundingType. With low schema coverage, the description fails to compensate adequately.

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

    Purpose5/5

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

    The description clearly states it creates a credit note for a partial amount of an invoice, distinguishing it from the sibling fiken_create_full_credit_note. The verb 'creates' and resource 'credit note' are specific, and the partial nature is explicit.

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

    Usage Guidelines4/5

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

    The description provides a critical constraint ('Lines must total less than the original invoice') and implies partial vs full credit note usage. However, it does not explicitly state when to use this tool over the full credit note sibling, but the context is clear.

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

  • Behavior4/5

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

    Annotations already declare destructiveHint=true. The description adds valuable context: the conditional behavior of marking inactive instead of deleting when there are associated records. This is beyond the annotation, though it could mention permissions or reversibility.

    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 unnecessary words. It efficiently conveys the core action and condition.

    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 1-param tool with no output schema, the description covers the essential action and condition. Minor gaps: no mention of return value or whether the contact can be reactivated, but overall adequate.

    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?

    With 0% schema description coverage, the description must explain the 'contactId' parameter, but it does not. The param meaning is left entirely to the agent to infer from the tool name and schema.

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

    Purpose5/5

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

    The description clearly states the tool deletes a contact or marks it inactive if it has associated records. This is a specific verb-resource combination and distinguishes it from sibling tools like fiken_update_contact or fiken_list_contacts.

    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 deleting or inactivating contacts but does not explicitly state when to use this tool over alternatives (e.g., updating the contact's status via fiken_update_contact). No when-not or alternatives are mentioned.

    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?

    Annotations already declare readOnlyHint=true, so the safety profile is clear. The description adds that it retrieves an account and balance for a date, but beyond that, no behavioral details (e.g., error handling, response structure) are provided. With annotations covering the key behavior, this 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 a single, front-loaded sentence of 12 words with no redundant information. Every part is essential.

    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 output schema, the description does not specify the return format or what exactly is included in the response (e.g., just balance or full account details). For a simple read tool, this may be sufficient but leaves 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 coverage is 100% with both parameters described in the schema. The description adds 'given date' but does not improve on the schema's descriptions. Baseline score of 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states the tool retrieves a specific account and its balance for a given date, using a specific verb and identifying the resource scope. It distinguishes from siblings like fiken_list_account_balances and fiken_get_account by specifying it's a single account with balance at a date.

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

    Usage Guidelines3/5

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

    No explicit guidance on when to use vs alternatives, but the description implicitly indicates it's for a single account balance at a specific date. For a simple retrieval tool, this is minimally viable, but lacks explicit when-not or alternative references.

    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?

    Annotations already indicate readOnlyHint=true, and the description is consistent with 'retrieves'. However, it adds no additional behavioral context, such as what happens if the ID is invalid or what the response contains.

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

    Conciseness5/5

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

    The description is a single, well-structured sentence with no wasted words. It is front-loaded and easy to parse.

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

    Completeness4/5

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

    Given the tool's simplicity (1 param, no output schema, read-only), the description is mostly complete. It could mention the response format, but it's not critical for basic usage.

    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 says 'by ID' without explaining what contactId represents or how to obtain it. For a single required parameter, it should provide more context.

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

    Purpose5/5

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

    The description clearly states 'Retrieves a specific contact by ID', which specifies the verb (retrieves), resource (contact), and method (by ID). It distinguishes from sibling tools like fiken_list_contacts and fiken_create_contact.

    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 using this tool when you have a contactId, but does not explicitly state when to use it vs alternatives like fiken_list_contacts. It lacks guidance on 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?

    Annotations declare readOnlyHint=true, and the description ('Returns') is consistent. No additional behavioral details (e.g., required permissions, response size) are disclosed beyond what annotations provide.

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

    Conciseness5/5

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

    A single, clear sentence with no unnecessary words. Perfectly concise for a simple retrieval 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 the tool's simplicity (one parameter, no output schema, read-only), the description is functional but could improve by mentioning the return structure (e.g., full offer object). Still adequate.

    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?

    Only one parameter (offerId) with no schema description coverage. The parameter name is self-explanatory, but the description could explicitly state it is the unique identifier of the offer. However, the simplicity of the parameter 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 action ('Returns') and the resource ('a specific offer by ID'), distinguishing it from list tools like fiken_list_offers.

    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 fiken_get_offer_draft or fiken_send_offer, nor any prerequisites.

    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?

    Annotations already declare readOnlyHint=true, so the description's addition of 'current' adds slight context. No further behavioral details (e.g., if counter resets) but no contradictions.

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

    Conciseness5/5

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

    Single, front-loaded sentence with no extraneous words. Efficiently conveys the tool's 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 parameterless tool retrieving a simple counter, the description is sufficient. It could explain the counter's role in the system, but the current minimalism is acceptable given the tool's simplicity.

    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; baseline is 4. 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 verb 'retrieves' and the specific resource 'current credit note number counter'. It distinguishes from sibling tools like fiken_get_invoice_counter or fiken_get_offer_counter by specifying 'credit note'.

    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 (e.g., other counter tools). No explicit when-to-use or when-not-to-use information.

    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?

    Annotations already mark readOnlyHint=true. Description adds no additional behavioral details beyond stating the action, but does not contradict annotations.

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

    Conciseness5/5

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

    Single sentence, front-loaded verb and object, no extraneous 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?

    For a simple read tool with one parameter and readOnlyHint, description is adequate. However, lack of output schema and description of response format leaves minor gap.

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

    Parameters3/5

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

    Schema coverage is 0%; the description minimally implies journalEntryId is the identifier of the journal entry, but provides no further detail on format or constraints. Does not fully compensate for low coverage.

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

    Purpose5/5

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

    Description clearly states action ('Returns') and resource ('all attachments for a journal entry'), with specific scope that distinguishes it from sibling attachment tools for invoices, purchases, etc.

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

    Usage Guidelines3/5

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

    No explicit guidance on when to use this tool versus alternatives. The purpose is implied by the tool name and description, but no conditions or exclusions are stated.

    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 annotation readOnlyHint:true already indicates no side effects. The description adds no further behavioral details beyond what the annotation provides. It does not clarify authentication requirements or response characteristics, so it adds minimal value beyond the annotation.

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

    Conciseness5/5

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

    The description is a single, clear sentence that communicates the core purpose without any unnecessary words. It is front-loaded and efficient, earning every word present.

    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 read-only tool with no parameters and no output schema, the description is sufficient. However, it could be improved by hinting at the structure of the returned user information (e.g., 'including name, email, and company details') to aid understanding, especially since no output schema exists.

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

    Parameters4/5

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

    There are no parameters, and schema coverage is 100% (trivially). The description does not need to add parameter semantics, and it does not mislead. A score of 4 is appropriate as it avoids any issues but does not actively enhance parameter understanding.

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

    Purpose5/5

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

    The description clearly states the tool returns information about the authenticated Fiken user, using a specific verb ('Returns') and resource ('authenticated Fiken user'), which distinguishes it from sibling tools that focus on other entities like bank accounts, invoices, or projects.

    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 or provide exclusion criteria. Usage is implied by the function (getting user info), but no guidance is given for scenarios like user retrieval vs. other resource queries.

    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 annotation readOnlyHint: true already declares it as read-only. The description adds no further behavioral details (e.g., pagination, sorting behavior). It is consistent but does not enhance beyond annotations.

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

    Conciseness5/5

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

    Single sentence, zero wasted words. Perfectly concise and front-loaded.

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

    Completeness4/5

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

    No output schema, but the simple nature of the tool (list of companies) means the description is nearly complete. Could mention pagination behavior, but schema covers parameters. Adequate.

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

    Parameters3/5

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

    Schema coverage is 100%, so all three parameters are described in the input schema. The description adds no additional meaning; baseline 3 is appropriate.

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

    Purpose5/5

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

    Description clearly states the verb 'returns', the resource 'companies', and the scope 'the authenticated user has access to'. This distinguishes it from sibling tools like fiken_get_company and other listing 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 usage when a list of accessible companies is needed. It is clear but lacks explicit when-not-to-use or alternative guidance, though for a simple list tool this is acceptable.

    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?

    Annotations already declare readOnlyHint=true, and the description adds that it retrieves 'all contact persons for a contact', clarifying the scope per contact. No mention of pagination but acceptable for a simple list.

    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?

    One short sentence with no filler, information is front-loaded and efficient.

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

    Completeness4/5

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

    For a simple tool with one parameter and no output schema, the description covers purpose and parameter semantics adequately, though it omits return format details.

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

    Parameters4/5

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

    Schema description coverage is 0%, but the description adds meaning by explaining that contactId identifies the contact for which to list persons, effectively compensating for the lack of param descriptions.

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

    Purpose5/5

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

    The description clearly states the verb 'Retrieves' and the resource 'all contact persons for a contact', which distinguishes it from siblings like fiken_get_contact_person (single) or fiken_create_contact_person.

    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 to list contact persons for a specific contact, but provides no explicit when-to-use, when-not-to-use, or alternative tools.

    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?

    Annotations already declare readOnlyHint=true, and the description's 'Retrieves' aligns with that. No extra behavioral details are provided, but there is no contradiction. The description adds nothing beyond the annotation, but the transparency 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, focused sentence with no unnecessary words. It efficiently communicates the tool's function.

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

    Completeness5/5

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

    Given no parameters, no output schema, and annotations indicating read-only behavior, the description is fully sufficient. There is no missing information for an agent to use this tool correctly.

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

    Parameters4/5

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

    There are zero parameters, and the input schema is empty. The baseline score for 0 parameters is 4. The description adds no parameter information because 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 action 'Retrieves' and the specific resource 'order confirmation number counter'. It is distinct from sibling tools like fiken_create_order_confirmation_counter (create) and fiken_get_order_confirmation (get specific confirmation), so 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 Guidelines3/5

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

    The description does not explicitly mention when to use this tool versus alternatives, but the usage is implied by its name and simple retrieval function. There is no guidance on when not to use it or context about prerequisites.

    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

fiken-mcp MCP server

Copy to your README.md:

Score Badge

fiken-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/gronnmann/fiken-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server