Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools have distinct purposes, but some overlap exists, such as multiple accounting health tools (accounting_health_across_instances, accounting_health_summary, receivable_payable_aging) and several search tools (search_records, search_employee, search_holidays, search_knowledge). However, detailed descriptions help differentiate them.

    Naming Consistency4/5

    Tool names use snake_case consistently and follow a verb_noun or noun_verb pattern. Most start with verbs like 'search_', 'get_', 'list_', but some start with nouns like 'accounting_health_summary' or 'data_quality_report'. Despite minor deviations, the naming is fairly predictable.

    Tool Count3/5

    With 41 tools, the set is large but arguably justified for a complex ERP system like Odoo, covering CRUD, accounting, async tasks, knowledge indexing, and more. However, the count is above the typical well-scoped range (3-15) and may feel heavy for agents.

    Completeness4/5

    The tool surface covers a broad range of Odoo operations including reading, writing (with preview), searching, accounting, employee, holidays, knowledge management, and upgrade analysis. Minor gaps exist, such as no direct 'update_record' tool (writing is through preview_write and execute_approved_write), but overall it is comprehensive.

  • Average 3.3/5 across 41 of 41 tools scored. Lowest: 2.2/5.

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

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

  • This repository includes a README.md file.

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

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

  • This repository includes a glama.json configuration file.

  • 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

  • Behavior3/5

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

    Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the tool is safe. The description adds 'sweep' which could imply a process, but no additional behavioral context (e.g., permissions, side effects) 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.

    Conciseness2/5

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

    The description is a single sentence but lacks structure. It is under-specified, not concise. Every sentence should add value, but this one leaves critical gaps, making it poor 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?

    Given the presence of 4 parameters with no schema descriptions and a vague description, the tool definition is incomplete. An output schema exists but is not referenced. The description fails to provide adequate context for an agent to use the tool correctly.

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

    Parameters1/5

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

    Schema description coverage is 0%, but the description does not explain any of the 4 parameters ('as_of', 'direction', 'instances', 'top_partners'). The description must compensate for the missing schema descriptions but fails entirely.

    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 'AR/AP aging fanned out across instances — the partner-network sweep' indicates the resource (AR/AP aging across instances) but lacks a specific verb. The title is null, and the sibling tool 'receivable_payable_aging' likely covers similar single-instance functionality, but no differentiation is provided.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like 'receivable_payable_aging' or other aggregation tools. The phrase 'the partner-network sweep' is vague and does not clarify 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 destructiveHint=true and idempotentHint=false, so the description's statement 'execute a custom method' implies arbitrary behavior but adds no new context about side effects, authentication needs, or safety precautions. It merely restates the obvious given the annotation flags.

    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 lacks structured details. It is appropriately short but does not provide substantial guidance. Every word earns its place, but the sentence is too brief to be highly 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's complexity (openWorldHint, 5 parameters, many sibling tools) and the rich output schema, the description is severely incomplete. It fails to clarify usage context, parameter roles, or how this tool relates to siblings. The output schema exists but no cross-reference is made.

    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% – no parameter descriptions exist in the schema. The description 'Execute a custom method on an Odoo model' does not explain any of the five parameters (model, method, args, kwargs, instance). Parameter names are somewhat self-explanatory, but the tool would benefit from explaining how to use args/kwargs, especially given the open-world nature.

    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 'Execute a custom method on an Odoo model' clearly states the action (execute) and resource (custom method on Odoo model). However, it does not differentiate from sibling tools like 'execute_approved_write' or 'preview_write', which are more specific. The word 'custom' hints at flexibility but could be more explicit.

    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 'execute_approved_write' or 'search_records'. It lacks explicit 'when to use' or 'when not to use' information, leaving the agent to infer from the tool name alone.

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

  • Behavior1/5

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

    The description claims a write action (cancel), but the annotation readOnlyHint: true contradicts this. This is a serious inconsistency. No disclosure of side effects or state changes.

    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?

    Very concise but fails to earn its place due to contradiction and lack of useful information. Under-specification is not 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?

    With 1 param, annotation contradiction, and no output description (schema exists but not used), the description is incomplete for effective use.

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

    Parameters1/5

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

    The description adds no meaning to the 'task_id' parameter. Schema coverage is 0%, so 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 the verb 'cancel' and the resource 'pending or running background task'. It distinguishes from siblings like submit_async_task and list_async_tasks.

    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 when-not or alternative guidance. The description implies usage for cancellation but fails to specify when not to use (e.g., already completed tasks) or alternatives like get_async_task for status.

    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 read-only, idempotent, and non-destructive behavior. The description adds no additional behavioral context (e.g., pagination, filtering behavior, 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.

    Conciseness3/5

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

    The description is a single sentence, which is concise but lacks necessary detail. It is appropriately front-loaded 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 five parameters and no schema descriptions, the description is incomplete. It fails to explain parameters, output schema, or usage nuances, leaving agents without essential context.

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

    Parameters1/5

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

    Schema description coverage is 0%. The description does not explain any of the five parameters (model, instance, relevance, max_fields, field_names), providing no added meaning beyond the schema's field names.

    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 ('Get') and resource ('field metadata for a specific Odoo model'), clearly distinguishing it from sibling tools like list_models or search_records.

    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 inspect_model_relationships or schema_catalog. No context about prerequisites or when not to use it.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint, idempotentHint, etc. Description adds 'bounded' indicating limited scope but no further 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.

    Conciseness3/5

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

    Single sentence is concise but lacks structure; could be improved by front-loading key behavioral info.

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

    Completeness3/5

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

    For a read-only tool with strong annotations and an output schema, the description is minimally adequate but 'bounded' is vague, reducing completeness.

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

    Parameters2/5

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

    Schema description coverage is 0%, but description does not explain any parameters. Instances, module_limit, and include_modules remain unexplained, though defaults reduce need slightly.

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

    Purpose3/5

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

    Description states 'Read a bounded profile' which specifies a verb and resource, but 'bounded profile' is vague and does not distinguish from sibling tools like 'health_check' or 'aggregate_across_instances'.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool vs alternatives. No mention of 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 already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the agent knows it's a safe, read-only operation. The description adds no additional behavioral context; it is consistent but not informative 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 of 6 words. It is efficient and front-loaded, but may be overly brief given the complexity of the tool and the lack of parameter documentation.

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

    Completeness2/5

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

    Despite having an output schema and annotations, the description fails to explain the nature of the risks, how parameters influence the report, or what output format to expect. For a tool with 8 parameters and a potentially complex report, this is insufficient.

    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 any parameters. With 8 parameters including arrays and optional fields, the agent has no semantic understanding of what each parameter controls, which is a critical deficiency.

    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 reports Odoo upgrade and JSON-2 migration risks. It uses a specific verb and resource, and given sibling tools like analyze_upgrade_log and generate_json2_payload, it appears distinct. However, it could be more specific about what constitutes 'risks' or the report format.

    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 analyze_upgrade_log or fit_gap_report. The description simply states what it does without any usage context or 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 already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds no disclosure about side effects, authentication needs, rate limits, or other behavioral traits. It simply restates the purpose, not adding value 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, front-loaded sentence of 10 words. It is concise and directly states the tool's purpose without unnecessary words. While it could benefit from more structure, it earns its place by being clear and 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?

    Despite having an output schema and rich annotations, the description is too sparse for a tool with 9 parameters and many sibling tools. It doesn't explain the diagnostic context, any prerequisites, or how parameters interact. The description is not complete enough for an agent to reliably invoke the tool.

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

    Parameters1/5

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

    Schema coverage is 0%, but the description offers no explanation for any of the 9 parameters. For example, it doesn't describe what 'instance', 'operation', or 'include_rules' mean. The description fails to compensate for the lack of parameter documentation, making it very difficult for an agent to use the tool correctly.

    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 'Diagnose' and a clear resource 'ACL and record-rule visibility for an Odoo model', which distinguishes it from sibling tools like 'diagnose_odoo_call' or 'health_check'. The purpose is immediately clear and 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?

    The description provides no when-to-use or when-not-to-use guidance. It does not mention alternatives or exclusions. Given the large number of sibling tools, this omission makes it hard for an agent to choose correctly.

    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, openWorldHint, idempotentHint, so the description adds only that it is an aged report bucketed by days overdue. This is adequate but does not disclose additional behaviors like potential size limits 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.

    Conciseness3/5

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

    The description is a single sentence, concise but under-informative. It front-loads the purpose but fails to elaborate on usage or parameters, so it does not earn its place beyond stating the obvious.

    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 5 parameters and an output schema, the description lacks detail about how parameters affect output or what the report contains. It does not explain return structure or usage context, leaving the agent inadequately informed.

    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 any of the 5 parameters (as_of, limit, instance, direction, top_partners). The agent must infer meaning from parameter names alone, which is insufficient.

    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 generates an aged report for receivables/payables bucketed by days overdue, which is specific and distinct from sibling tools like accounting_health_summary or data_quality_report.

    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 accounting_health_summary or search_records. The description does not mention prerequisites, direction selection, or context for choosing receivables vs payables.

    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 and destructiveHint=false, so the description's 'validate' is consistent. It adds minimal behavioral context 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.

    Conciseness3/5

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

    The description is a single concise sentence, but it is overly minimal given the tool's complexity and number of parameters. It could be better structured with more detail.

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

    Completeness2/5

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

    For a tool with 9 parameters and 0% schema coverage, the description is insufficient. Annotations help but do not provide enough context for correct invocation.

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

    Parameters2/5

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

    With 0% schema description coverage and 9 parameters, the description fails to add meaning to any parameter. It does not 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 states the tool validates a standard write payload against optional metadata, which is clear and specific. However, it does not differentiate from siblings like execute_approved_write or preview_write.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives. The description implies validation use but lacks context or exclusion criteria.

    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, destructiveHint=false, and idempotentHint=true, indicating a safe read operation. The description adds that it returns counts and backlog, but does not describe any additional behaviors like rate limits or authorization needs.

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

    Conciseness5/5

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

    The description is a single sentence of 8 words, efficiently conveying the core output without unnecessary 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?

    The tool is simple with one optional parameter and an output schema exists. The description covers the returned data but lacks parameter clarification, which is needed given the low schema coverage.

    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 'instance' parameter (optional, type string or null). The parameter's role is left ambiguous, providing no added meaning 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 specifies what the tool retrieves (receivable/payable item counts and draft invoice backlog), making the purpose clear. It distinguishes from siblings like 'receivable_payable_aging' which focuses on aging, not counts.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or provide 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 declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows it's a safe, non-mutating operation. The description adds no further behavioral context, but with the annotations present, the baseline is acceptable. No contradiction observed.

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

    Conciseness5/5

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

    The description is a single sentence with no redundancy. Every word contributes to the purpose. It is efficiently front-loaded and concise.

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

    Completeness2/5

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

    Despite having an output schema (not shown), the description fails to provide essential context about input format (e.g., what should 'requirements' look like), optional parameters' effect, or expected behavior when optional params are omitted. For a tool with 6 parameters and a specific analysis purpose, this is 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?

    Schema description coverage is 0%, meaning no parameter descriptions in the schema. The description does not elaborate on any parameter, including the required 'requirements'. Parameters like 'available_fields', 'available_models', and others have names that hint at meaning, but the agent gets no format, constraints, or examples. This is a critical gap.

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

    Purpose4/5

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

    The description clearly states the tool's action ('classify') and resource ('Odoo requirements'). It specifies the output as 'fit/gap implementation buckets', which is specific. However, it does not differentiate from siblings like 'data_quality_report' or 'upgrade_risk_report', which could also analyze requirements in different ways.

    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. It does not mention prerequisites, context, or typical scenarios. The single-sentence description lacks any usage recommendations.

    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, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety and behavior. The description adds no additional context beyond 'search', such as what types of holidays are included or whether results are cached. Given annotations, the description contributes minimal extra insight.

    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 short sentence with no waste. It is front-loaded with the key verb and resource. However, it could be slightly more informative without losing conciseness, e.g., specifying optional filters.

    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 4 parameters (2 optional) and rich annotations, the description only covers the basic date range constraint. It does not explain how optional filters (instance, employee_id) affect results, nor clarify the source or scope of 'holidays'. The presence of an output schema partially mitigates, but the description is still incomplete 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 should compensate. It only hints at 'date range', corresponding to start_date and end_date, but provides no details on format or semantics. The optional parameters instance and employee_id are completely unaddressed. The description adds little 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 the verb 'search' and the resource 'holidays', with a date range constraint. It is specific enough to distinguish from generic search tools like search_records, but lacks explicit differentiation from other holiday-related tools.

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

    Usage Guidelines3/5

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

    The description implies usage for finding holidays within a date range, but does not explicitly state when to use this tool versus alternatives like search_employee or search_records. No exclusions or alternative references 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?

    Description adds no behavioral context beyond what annotations already provide (destructiveHint: true). No mention of side effects, reversibility, or permissions. Annotation covers destructiveness, so description adds minimal 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?

    Single sentence, very concise and front-loaded. However, the brevity sacrifices necessary detail, making it less useful than a slightly longer but more informative description.

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

    Completeness2/5

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

    Despite having an output schema (not provided here) and annotations, the description is too minimal. For a destructive operation with a complex parameter (approval object), it should explain what the approval object is (e.g., from preview_write response) and confirm's function.

    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 parameters (confirm and approval). The approval object is not described, nor is the role of the confirm boolean. Critical gap for a tool with nested objects.

    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's purpose: executing a previously previewed and confirmed write. It uses specific verb 'execute' and resource 'standard write', and distinguishes from siblings like preview_write and validate_write.

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

    Usage Guidelines3/5

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

    Implies prerequisite of a previewed and confirmed write, but does not explicitly state when to use this tool versus alternatives or provide exclusion criteria. Lacks guidance on required prior steps.

    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, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds no additional behavioral context (e.g., that it returns relationships, no side effects). With rich annotations, a 3 is appropriate as the description complements but doesn't expand.

    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, short sentence with no wasted words. It is concise, though it sacrifices completeness. It could benefit from a brief explanation of parameters or usage 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 (1 required) and no parameter documentation in the description, the description is incomplete. Although an output schema exists, the parameter semantics gap is significant for a tool with many 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 explain any of the six parameters (e.g., instance, fields_metadata, include_computed). Parameter names alone are insufficient for accurate usage; e.g., 'instance' is ambiguous without explanation.

    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 'Inspect model relationships and required field metadata' clearly states the verb 'inspect' and the specific resources 'model relationships and required field metadata'. It distinguishes from siblings like 'get_model_fields' which focuses on fields, not relationships.

    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. Among siblings, there are tools like 'get_model_fields', 'schema_catalog', and 'lookup_model_history', but no comparisons 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 declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is clear. The description adds context about 'fanned out' (parallel execution) and 'combined grand totals', which is beyond annotations but minimal. No contradiction.

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

    Conciseness3/5

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

    The description is very short (one sentence), which is concise but lacks structure. It is front-loaded but does not provide enough detail for its complexity. Every sentence earns its place, but more structure would improve clarity.

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

    Completeness2/5

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

    Given 5 parameters, 2 required, and 0% schema coverage, the description is incomplete. It does not explain parameters, return values (output schema exists but not provided), or behavior beyond the minimal statement. For a tool with this complexity, it should provide more context.

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

    Parameters1/5

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

    Schema description coverage is 0% (no descriptions in input schema), so the description must compensate. However, it does not explain any of the 5 parameters (model, group_by, domain, measures, instances). It fails to add 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?

    The description states 'Read-only aggregate fanned out across instances with combined grand totals', which clearly identifies the verb (aggregate), resource (across instances), and specific scope (combined grand totals). This distinguishes it from siblings like aggregate_records (single instance) and search_across_instances (search, not aggregate).

    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 cross-instance aggregation with grand totals but does not explicitly state when to use or avoid it, nor does it name alternatives among siblings. Guidance is implied but not explicit, so it's adequate but not strong.

    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 idempotentHint=true. The description adds that the domain is 'validated', but does not elaborate on validation behavior or error handling.

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

    Conciseness5/5

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

    Single sentence, no extraneous words. Perfectly concise for the information provided.

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

    Completeness2/5

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

    Despite having an output schema, the description lacks parameter details (especially for 'conditions') and usage context, making it incomplete for effective 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?

    Schema description coverage is 0%, and the description provides no information about the three parameters, leaving the agent to rely on the bare 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 a specific verb ('Build') and resource ('validated Odoo domain'), and 'from structured conditions' distinguishes it from sibling tools like search_records or execute_method.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool vs alternatives. No exclusions, prerequisites, or context about when building a domain is appropriate.

    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, destructiveHint=false, and idempotentHint=true, indicating a safe, non-destructive operation. The description adds minimal behavioral context beyond confirming no execution. It does not detail what 'diagnose' entails in terms of output 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?

    The description is a single, front-loaded sentence that efficiently conveys the core purpose. However, its brevity comes at the cost of omitting necessary parameter and behavioral details, making it under-specified for practical use.

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

    Completeness1/5

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

    Given the tool's complexity (10 parameters, 2 required, no schema descriptions) and the presence of a diagnostic output schema, the description fails to explain what the diagnosis returns or how parameters affect behavior. This makes the tool incomplete for accurate 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 has 10 parameters with 0% description coverage, and the tool description provides no information about any parameter meaning. This is a critical gap for an AI agent to correctly invoke the tool, especially for parameters like 'model', 'method', 'args', and 'kwargs'.

    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 'Diagnose an Odoo model call without executing it' clearly states the tool's purpose with a specific verb ('Diagnose') and resource ('an Odoo model call'), and distinguishes it from sibling tools like 'execute_method' which executes calls.

    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 diagnosing without executing, but lacks explicit guidance on when to use this tool versus alternatives like 'execute_method' or 'preview_write'. No mentions of when-not-to-use or prerequisites.

    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 readOnlyHint, idempotentHint, and non-destructive. The description adds insight about caching and boundedness, which are behavioral traits not covered by annotations. However, it does not detail side effects (e.g., cache invalidation).

    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, making it concise and front-loaded. It wastes no words, but could be more informative without losing conciseness.

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

    Completeness2/5

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

    Despite having 6 parameters and an output schema, the description provides almost no context. It does not explain what 'bounded' means, how caching works, or what the output contains. The output schema exists but the description fails to reference it.

    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%, meaning no parameter descriptions exist in the schema. The description mentions none of the 6 parameters, so it does not add meaning. Parameters like 'limit', 'query', 'models', 'refresh', 'instance', 'include_fields' are left completely 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 'Build and cache a bounded Odoo model schema catalog', which is a specific action on a defined resource. It is more detailed than a tautology, but it does not differentiate from sibling tools like 'get_model_fields' or 'list_models', which also deal with model schema.

    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 its siblings. There is no mention of prerequisites, scenarios, or exclusions. The agent is left to infer from the name and 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 annotations already declare the tool as readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it reports 'expected' items, which is consistent but does not provide additional behavioral insight beyond what annotations convey.

    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, making it concise. However, it could be slightly expanded to cover parameters 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?

    With three parameters and a complex domain (business pack reporting), the description lacks details about what 'expected' means, how parameters affect output, and any return value semantics. The output schema exists but is not described.

    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%, but the description only implicitly references the 'pack' parameter by stating it reports for a business pack. It does not explain the 'instance' or 'use_live_metadata' parameters, leaving significant semantic gaps.

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

    Purpose5/5

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

    The description clearly states the verb 'Report' and the specific resource 'expected modules, models, and safe discovery calls for a business pack'. This is distinct from sibling tools, none of which mention 'business pack'.

    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 like fit_gap_report or upgrade_risk_report. The description only states what it does, not the context or prerequisites for use.

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

  • Behavior2/5

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

    Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds no behavioral traits beyond the filtering behavior implied by the query parameter, and does not mention latency, auth requirements, or pagination.

    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 wasted words. The core action and optional filter are front-loaded, making it easy to scan.

    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 (3 optional params, output schema present), the description is adequate but minimal. It does not clarify what the output contains (e.g., model names only vs. full details) or how 'limit' and 'instance' affect results, leaving some ambiguity.

    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 all parameters. It only hints at 'query' for name filtering but provides no explanation for 'limit' or 'instance'. The output schema exists but is not described, so the agent cannot infer return structure from this description.

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

    Purpose5/5

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

    The description uses a specific verb 'List' and clearly identifies the resource 'Odoo models', with the optional name filtering hint. It distinguishes the tool from siblings like 'search_records' or 'get_model_fields' by focusing on listing models themselves.

    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 'search_records' or 'get_model_fields'. The description implies a use case (listing models with optional filtering) but does not specify exclusions or preferred contexts.

    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, idempotentHint=true, destructiveHint=false, so safety and idempotency are covered. The description adds no extra behavioral context beyond stating it reads a record. With annotations, the burden is lower, but no additional details like return format or error cases are given.

    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 gets straight to the point. It is front-loaded with the main action and resource, and contains no unnecessary 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?

    The description is minimal but for a simple read tool with annotations covering behavior, it is fairly complete. However, the absence of parameter descriptions and usage guidance leaves gaps, especially given multiple sibling tools and 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%, meaning no parameter descriptions exist in the schema. The overall description does not explain any of the four parameters (model, record_id, fields, instance). For clarity, each parameter should be described; the description completely fails to do so.

    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 reads a single Odoo record by model and ID. This distinguishes it from siblings like search_records (multiple records) and get_model_fields (metadata). The verb 'read' and resource 'single Odoo record' are specific.

    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. It does not mention prerequisites, context, or that it is best for known record ID lookups. Sibling tools like search_records are not contrasted.

    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, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds no additional behavioral context such as search behavior (e.g., partial matching, case sensitivity) or result structure.

    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 lacks structure for a tool with multiple parameters. A more structured format (e.g., listing parameters briefly) would improve clarity without adding much length.

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

    Completeness3/5

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

    The tool is simple with one required parameter and an output schema, but the description does not mention the output schema or return format. It adequately addresses the core purpose but lacks details on optional parameters and results.

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

    Parameters2/5

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

    Schema coverage is 0%, so the description must compensate. It adds meaning for the 'name' parameter implicitly but provides no details on 'limit' or 'instance'. The description only partially explains the 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 action ('Search') and the resource ('employees') with a specific filter ('by name'). It distinguishes from sibling tools like search_records and search_across_instances by targeting employees specifically.

    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 searching employees by name but does not explicitly state when to use this tool versus alternatives like search_records or search_across_instances. No exclusions or when-not-to-use guidance is provided.

    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 mark the tool as read-only and idempotent. The description adds a key behavioral trait: 'without importing addon code', explaining it avoids side effects of importing modules.

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

    Conciseness5/5

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

    Single sentence that is concise and directly states the tool's purpose without extraneous 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 an output schema but no parameter details in the description, the tool is incomplete for effective use. The description should at least list what the returned data looks like or mention key 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%, yet the description provides no explanation of the three parameters (max_files, addons_paths, max_file_bytes). Users cannot infer their meaning or usage from the description.

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

    Purpose5/5

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

    Description clearly states the tool scans local Odoo addon source files without importing, using a specific verb and resource. It distinguishes from sibling tools that focus on data records or other operations.

    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 read_record or inspect_model_relationships. The description lacks context for appropriate usage.

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

  • Behavior3/5

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

    The description adds context beyond annotations by specifying 'allowlisted', 'long-running', and 'background'. However, it does not disclose the return value, how to monitor progress, or what happens on completion. Annotations already indicate it's a safe read, so the added value is moderate.

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

    Conciseness5/5

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

    The description is a single, well-structured sentence of 8 words with no redundancy. It directly states the action, resource, and constraints, making it efficient for an agent to parse.

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

    Completeness2/5

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

    Despite having annotations and an output schema, the description does not cover important aspects like parameter details, workflow after submission, or relation to sibling tools like 'get_async_task'. It is incomplete for a tool with 3 parameters and async behavior.

    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. It explains the 'operation' parameter only implicitly ('allowlisted read operation') and does not clarify 'params' or 'instance' parameters. This leaves significant ambiguity for the agent.

    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 runs an allowlisted, long-running read operation in the background. It uses a specific verb ('Run') and resource ('allowlisted long-running read operation'), which distinguishes it from synchronous read tools like 'read_record' or 'search_records'.

    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 does not provide guidance on when to use this tool versus alternatives (e.g., synchronous read, other async task tools). It implies usage for long-running reads but lacks explicit when-to-use or when-not-to-use instructions.

    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 provide readOnlyHint, openWorldHint, idempotentHint, destructiveHint; description adds context about fan-out, merging, and attribution, enriching behavioral understanding beyond annotations.

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

    Conciseness4/5

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

    Single sentence efficiently states purpose and behavior. Front-loaded with key info, but could benefit from brief parameter enumeration to improve structure.

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

    Completeness2/5

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

    Despite complex cross-instance search with merging and attribution, description omits parameter roles. With 5 params and 0% schema coverage, description is insufficient for agent understanding.

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

    Parameters1/5

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

    Schema coverage is 0%, but description provides no parameter details. Five parameters (model, domain, fields, instances, limit_per_instance) are undocumented in both schema and description, failing to add 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?

    Description uses specific verb 'search' and resource 'across configured Odoo instances', clearly distinguishing it from sibling tools like 'search_records' which searches a single instance.

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

    Usage Guidelines3/5

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

    Implied usage for cross-instance search, but no explicit guidance on when to use this vs alternatives like 'search_records' or 'aggregate_across_instances'. No when-not-to-use or prerequisites 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, idempotentHint=true, and destructiveHint=false. The description adds the key behavioral trait 'without executing it,' which aligns with annotations but does not provide additional details like authorization needs or rate limits. This is adequate given the annotation coverage.

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

    Conciseness5/5

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

    The description is a single sentence that is front-loaded and contains no unnecessary words. Every element serves a purpose, making it highly concise.

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

    Completeness2/5

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

    Despite having an output schema (not shown), the description lacks guidance on parameter usage and return values. With 7 parameters and no schema descriptions, the description is insufficient for correct tool invocation, especially for an agent unfamiliar with the tool.

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

    Parameters1/5

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

    The input schema has 7 parameters with 0% schema description coverage, and the tool description provides no explanation of any parameter. Without compensating information, the agent cannot understand the meaning or proper usage of parameters like 'model,' 'operation,' 'values,' etc.

    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 "Preview create, write, or unlink without executing it" clearly states the tool's purpose with a specific verb ('preview') and resource scope ('create, write, or unlink'). It distinguishes itself from sibling tools like 'execute_approved_write' and 'validate_write' that perform actual execution or validation.

    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 you want to see the effect of a write operation without committing. It is clear from the context, but it does not explicitly mention alternatives or when not to use this tool, which would make it a 5.

    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, openWorldHint, idempotentHint, destructiveHint as false. Description adds version-specific implementation details but does not disclose additional behavioral traits beyond what annotations provide.

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

    Conciseness5/5

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

    Two sentences, front-loaded with purpose, second sentence adds concise implementation detail. No redundant or irrelevant 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?

    Though output schema exists, the description is too brief for a 9-parameter aggregation tool. It does not explain how to use domain, measures, order, or lazy parameters. Adequate for basic understanding but incomplete for effective 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 has 0% description coverage for 9 parameters. Description mentions 'groupby/sum/count' but does not explain any parameter meanings or usage. Does not compensate for lack of schema 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?

    Description clearly states it aggregates Odoo records using Postgres groupby/sum/count, which is a specific verb+resource. It distinguishes from siblings like search_records (raw data) and aggregate_across_instances (cross-instance). The mention of Odoo versions adds specificity.

    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. Implied usage is for server-side aggregation rather than fetching individual records, but no exclusions or alternative tool references 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?

    Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds no further behavioral context (e.g., limitations, performance considerations). With annotations present, this is adequate but not exemplary.

    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 that efficiently conveys purpose and outcomes. No unnecessary words or repetition.

    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 three parameters (one required, two optional) and an output schema, the description provides a high-level goal but omits practical details like input constraints, expected version values, or output format. It is barely adequate for agent invocation.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. However, it only mentions 'log errors' without defining 'log_text' or explaining optional version parameters. The agent lacks details on expected input format or version syntax, which is insufficient for 0% 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 tool's purpose: classifying Odoo upgrade log errors into three categories with fix suggestions. It uses a specific verb ('classify') and resource ('Odoo install/update log errors'), differentiating it from siblings like 'health_check' or 'upgrade_risk_report' which cover other aspects.

    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 analyzing upgrade logs, but provides no guidance on when to use this tool versus alternatives like 'upgrade_risk_report' or 'scan_addons_source'. No explicit when-not or 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 declare it read-only, idempotent, and non-destructive; description adds 'bounded slice' and 'local index', but could clarify whether the index persists or is ephemeral.

    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 front-loads the verb and resource, no wasted 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?

    Given existing annotations and output schema, the description provides the basic action but lacks parameter explanations and details on side effects of building the local index.

    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 adds no explanation for any of the 6 parameters (e.g., model, domain, fields) beyond their names.

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

    Purpose5/5

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

    Clearly states it fetches a bounded slice of records and builds a local BM25 knowledge index, distinguishing it from siblings like search_knowledge or knowledge_stats.

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

    Usage Guidelines3/5

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

    Implies use when you need to build a local BM25 index, but provides no explicit when-to-use or when-not-to-use guidance, nor comparisons to sibling 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 indicate it is read-only and idempotent. The description adds value by revealing the search is relevance-ranked (BM25) and limited to local (single instance) data, which are behavioral traits not covered by 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 7-word sentence, extremely concise. It conveys the core purpose without waste, but the brevity limits the information conveyed 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?

    Given the tool has 4 parameters and an output schema exists, the description is too sparse. It fails to explain the role of 'model' and 'instance', how 'limit' affects results, or what the output contains. The existing output schema partially compensates, but the description lacks sufficient context 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 compensate for the 4 parameters. However, it only mentions 'previously indexed records', which weakly hints at 'model' and 'instance' but offers no concrete meaning for 'query', 'limit', or the relationship between 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 specifies a concrete action ('search'), identifies the resource ('previously indexed records'), and includes the ranking method ('BM25') and scope ('local'). It clearly distinguishes from cross-instance or global search siblings like 'search_across_instances'.

    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 local searches over indexed records but provides no explicit guidance on when to choose this tool over alternatives like 'search_records' or 'search_across_instances'. No exclusions or context are given.

    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 readOnly, idempotent, non-destructive. The description adds meaningful behavioral context by listing specific check types and stating it operates on one Odoo model. However, it does not explain potential resource impact or return format limitations.

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

    Conciseness5/5

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

    The description is a single sentence front-loaded with the core verb and resource. It is concise, includes essential details, and has no wasted words.

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

    Completeness2/5

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

    With 5 parameters and no schema descriptions, the description provides high-level purpose but insufficient detail for correct invocation. The output schema exists but is not provided; however, the description does not explain return values. The tool's full usage context 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 parameter description coverage is 0%. The description mentions check types (duplicates, missing required, etc.) which likely correspond to the 'checks' parameter, but does not explain other parameters (instance, key_fields, sample_limit) or their formats. The agent must infer from parameter names.

    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 runs read-only data-quality checks on one Odoo model and lists specific check types (duplicates, missing required values, orphaned references, format anomalies). This distinguishes it from sibling tools like search_records or aggregate_records.

    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 for data-quality inspection but does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives like diagnose_odoo_call or inspect_model_relationships. Usage is inferred but not clarified.

    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 readOnlyHint, idempotentHint, and non-destructive. The description adds 'without network access', clarifying local execution. It does not contradict annotations. Additional context like auth needs or rate limits is not needed given the annotations.

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

    Conciseness5/5

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

    The description is a single concise sentence that effectively communicates the tool's purpose and key behavioral trait (no network access). It is well front-loaded with no 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?

    Despite having an output schema, the description lacks context about what JSON-2 is, what fields the preview includes, and how to correctly fill the 7 input parameters. The agent may struggle to invoke the tool correctly without additional guidance.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It provides no information about parameter meanings, leaving the agent to infer from names alone. Generic parameters like 'args' and 'kwargs' are particularly 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 the verb 'Build', the resource 'JSON-2 request preview', and the constraint 'without network access'. It distinguishes the tool from siblings, none of which mention JSON-2 or payload preview.

    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 the tool is used to generate a preview of a request payload, but it does not explicitly state when to use it vs alternatives or provide guidance on prerequisites or conflicts. Usage context is implied by the tool name and description.

    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?

    Description adds 'poll' context, confirming repeated safe calls (consistent with idempotentHint, readOnlyHint). Does not contradict annotations. Does not disclose additional behaviors like rate limits or typical completion times.

    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: 5 words in one sentence. No superfluous information. Front-loaded with core action and resource.

    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 low complexity (1 param, polling) and presence of output schema, description is sufficient. Covers status and result retrieval. Missing explicit mention of incomplete results if task not done, but 'poll' implies waiting.

    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?

    Single parameter task_id has 0% schema description coverage. Description does not explain the parameter's purpose, format, or where to obtain it, failing to compensate for the lack of schema documentation.

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

    Purpose5/5

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

    Description clearly states the tool polls a background task's status and result. Uses specific verb 'poll' and resource 'task', distinguishing it from sibling tools like submit_async_task, cancel_async_task, and list_async_tasks.

    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?

    Description implies usage after submitting a task, but does not explicitly state when to use this vs alternatives (e.g., list_async_tasks, cancel_async_task). No guidance on prerequisites or context.

    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, idempotentHint, and non-destructive, so safety is clear. The description adds value by specifying that content is 'size-capped', which is crucial behavioral information not captured in annotations. It could be improved by noting the cap size or behavior when exceeded, but overall adds transparency.

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

    Conciseness5/5

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

    The description is a single sentence that efficiently conveys the tool's purpose and key behavioral details. It is front-loaded with the verb and resource, and every word contributes meaning. No superfluous 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?

    Given the tool has 3 parameters, an output schema, and sibling tools that also read data, the description is minimally complete for a simple read tool. However, it lacks parameter explanations and does not clarify the return structure (though output schema may cover that). The size-cap info is good, but overall could be more thorough.

    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 explain what the three parameters (instance, include_data, attachment_id) mean and how they affect the operation. It does not do so. The description only mentions the overall action, leaving parameter semantics completely 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 uses a specific verb 'Read' and a precise resource 'ir.attachment', and it clearly states what is returned (metadata and size-capped base64 content). This distinguishes it from sibling tools like read_record or execute_method, which have different purposes.

    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 reading attachments, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among the many sibling tools. The context is clear but lacks direct directives.

    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 declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. Description adds that it uses the search_read method and that query matches name/ref/email-like fields, providing context 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, front-loaded sentence efficiently conveys purpose and key feature (free-text query). No extraneous text; every word contributes.

    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?

    With 8 parameters and existing output schema, description covers core search intent but omits details on filtering with domain, field selection, ordering, and pagination. Adequate but incomplete for complex 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 coverage is 0% so description must compensate. Only 'query' parameter receives partial description (matches across fields). Other seven parameters (limit, order, domain, etc.) are not described, leaving significant gaps.

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

    Purpose5/5

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

    The description clearly states 'Search Odoo records with read-only search_read', specifying verb and resource. It distinguishes from sibling tools like search_across_instances by focusing on single-instance search.

    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?

    Description mentions optional free-text query but does not specify when to use this tool versus alternatives such as search_across_instances or model-specific searches. No explicit when-not or usage context.

    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?

    Adds value beyond annotations by detailing the approval token requirement and the env variable toggle. Description aligns with annotations (readOnlyHint false, destructiveHint true).

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

    Conciseness5/5

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

    Two succinct sentences front-loading the primary action and usage variants, with no wasted words.

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

    Completeness2/5

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

    Despite moderate complexity (10 params, no param descriptions), the description omits critical parameter details and does not leverage the existing output schema to explain behavior. Agent would struggle to correctly populate all fields.

    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 fails to explain most parameters (body, model, record_id, etc.), only mentioning 'approval'. Leaves agent with insufficient parameter-level 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 verb 'Post', resource 'chatter message', and target 'mail.thread record', distinguishing it from siblings like preview_write.

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

    Usage Guidelines4/5

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

    Provides explicit guidance on two modes: default requires approval token from preview, direct mode bypasses with environment variable. Does not compare to alternative tools but gives clear usage 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 indicate readOnly and idempotent. Description adds specifics about what is reported, but doesn't disclose additional behavioral traits like auth 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.

    Conciseness5/5

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

    Single sentence, directly front-loaded with purpose, no unnecessary words.

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

    Completeness5/5

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

    Given zero parameters and simple output, description fully explains the tool's purpose. Output schema covers return structure.

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

    Parameters4/5

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

    No parameters exist, so the description doesn't need to add parameter meaning. Baseline applies.

    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 tool reports specific data: local knowledge index sizes and document budget. It distinguishes itself from siblings like search_knowledge or index_knowledge.

    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 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 declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds the 'newest-first' ordering, but no mention of pagination, limiting, or filtering behavior. Output schema exists, so return structure is covered.

    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 (4 words) yet conveys the core purpose and ordering. Every word is meaningful; no waste.

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

    Completeness4/5

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

    Given no parameters and the presence of an output schema, the description is adequate. It could mention that it returns a list of tasks, but the output schema handles that. The annotations cover safety and idempotence.

    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 (0 params, 100% schema coverage), so baseline is 4 per instructions. The description does not need to add param info.

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

    Purpose5/5

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

    The description uses a specific verb 'List' and a clear resource 'recent background tasks' with ordering 'newest-first', which distinguishes it from sibling tools like get_async_task (single task) or submit_async_task (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 like get_async_task or search_records. The description implies usage for listing recent tasks, but lacks exclusion criteria or prerequisites.

    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, idempotentHint, and destructiveHint. The description adds the key behavioral trait 'without credentials,' which implies no authentication is required and no sensitive data is exposed. This complements annotations effectively without contradiction.

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

    Conciseness5/5

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

    A single, concise sentence that conveys the entire purpose without unnecessary words. It is optimally front-loaded for quick comprehension.

    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?

    The description is sufficient for a simple, parameterless tool. It states what the tool returns (instance names) and that it is safe. An output schema exists, so return format details are covered there. Could be more complete by noting that the list is static or cached, but overall 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?

    No parameters exist, so schema coverage is 100%. The description does not need to elaborate. Baseline for zero parameters is 4, as no additional parameter meaning is required.

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

    Purpose5/5

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

    The description clearly states 'List configured Odoo instance names without credentials,' specifying the verb (List) and resource (Odoo instance names). It distinguishes from sibling tools like list_models or list_async_tasks by focusing on instances and emphasizing 'without credentials'.

    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. It does not mention scenarios like listing instances for monitoring or comparison, nor does it exclude cases where credential info is needed. Sibling tools exist for broader operations (e.g., aggregate_across_instances), but no differentiation provided.

    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 provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by clarifying that it reports 'non-secret' runtime safety posture, which helps the agent understand what information it will get. 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?

    The description is a single, concise sentence that states the tool's purpose without unnecessary words. It is front-loaded with the action and resource.

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

    Completeness5/5

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

    Given the tool's simplicity (no parameters, presence of output schema), the description provides complete context: it reports the server's non-secret runtime safety posture. No additional details are needed.

    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 0 parameters, and the input schema is fully descriptive (100% coverage). Per guidelines, baseline is 4 for 0 parameters; the description does not need to add parameter info.

    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 ('Report') and clearly identifies the resource ('this MCP server's non-secret runtime safety posture'). It distinguishes from sibling tools like 'accounting_health_summary' by focusing on general server safety rather than accounting-specific health.

    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 (e.g., when to use 'health_check' vs 'accounting_health_across_instances'). No explicit context or exclusions are provided.

    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 idempotentHint=true, so the description confirms a safe lookup. It adds the detail of looking up history, which is consistent. No contradictions, but could mention limitations if any.

    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 action and resource. No wasted words. Example enhances understanding without bloating.

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

    Completeness5/5

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

    Given the simple tool with one required parameter, clear annotations, and an existing output schema, the description is complete. No need to explain return values.

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

    Parameters5/5

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

    The schema has 0% description coverage, so the description fully compensates by explaining that the 'name' parameter can be an old or new model name, with a concrete example. Adds significant semantic value.

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

    Purpose5/5

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

    The description clearly states the action (look up), the resource (Odoo model rename/removal history), and the method (by old or new model name). An example is provided, and it distinguishes from sibling tools like list_models or get_model_fields.

    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 (to find rename/removal history) but does not explicitly state when not to use or provide alternatives. It gives a clear use context but lacks exclusions.

    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

mcp-odoo MCP server

Copy to your README.md:

Score Badge

mcp-odoo 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/MarioMillet2b/mcp-odoo'

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