Skip to main content
Glama
solutionsunity

OdooSurface MCP

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools are clearly distinct, but some overlap exists: get_model_actions, get_available_actions, and get_model_interface all deal with actions, and the workflow/skill tools (list/find/get) have similar purposes. Descriptions help differentiate them, but an agent might still misselect.

    Naming Consistency5/5

    Tool names consistently follow a verb_noun pattern with snake_case (e.g., list_records, get_record, create, update). Prefixing for related tools (translation_*, get_*, list_*) is uniform. No mixing of conventions.

    Tool Count4/5

    34 tools is on the high side but justified given the breadth of Odoo functionality covered (records, translations, website pages, workflows, actions, attachments, etc.). It remains well-scoped without feeling bloated.

    Completeness5/5

    The tool surface is remarkably comprehensive: full CRUD (create, update, archive), search, list, field metadata, translations, actions, messaging, activities, attachments, binary operations, and workflow/skill management. Only hard delete is missing, but archive covers deactivation.

  • Average 3.9/5 across 34 of 34 tools scored. Lowest: 2.7/5.

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

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

  • This repository includes a README.md file.

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

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

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

  • If you are the author, simply .

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

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

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

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

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

How is the quality score calculated?

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

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

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

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

Tool Scores

  • Behavior2/5

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

    No annotations provided; description only says 'Publish or unpublish' implying state change, but does not disclose required permissions, side effects, or reversibility. For a mutation tool, this is insufficient transparency.

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

    Conciseness4/5

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

    Two sentences, no redundancy. The first sentence is a tip not directly about the tool, but the core message is concise. Could be more focused.

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

    Completeness3/5

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

    For a simple toggle tool, the description provides minimal context. No output schema means no need to document return values, but missing any mention of errors, idempotency, or behavior when already published/unpublished.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not explain the parameters page_id or is_published. Despite self-explanatory names, the description adds no value beyond the schema, failing to compensate for the low coverage.

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

    Purpose4/5

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

    Description states 'Publish or unpublish a website page' which is a specific verb-resource pair. It distinguishes from sibling tools like list_pages and get_page_arch, but lacks nuance like 'set visibility'.

    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 includes a generic tip about checking recipes before multi-step work, but provides no guidance on when to use this tool versus alternatives (e.g., when to publish vs unpublish). No context on prerequisites or limitations.

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

  • Behavior2/5

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

    With no annotations, the description must fully disclose behavior. It mentions the caller is responsible for valid XML but omits details on mutation, idempotency, permissions, error conditions, or return value. The warning is insufficient for a write operation.

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

    Conciseness4/5

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

    The description is brief with two sentences and a tip, front-loading the usage hint. Every sentence adds value, though the emoji is unnecessary. It is efficient for a simple tool.

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

    Completeness2/5

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

    Given the lack of output schema and annotations, the description is incomplete. It does not explain return behavior, error cases, or whether the write is immediate or queued. A more comprehensive description is needed for a mutating operation.

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

    Parameters2/5

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

    Schema coverage is 0%, so the description must add meaning. It links view_id to get_page_arch and arch to XML, but does not explain constraints, formats, or required relationships. This provides minimal value beyond the schema.

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

    Purpose4/5

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

    The description clearly states it writes arch_db XML to an ir.ui.view, which is a specific verb-resource pair. It distinguishes from sibling get_page_arch (read) and set_page_visibility (different action) by advising to use view_id from get_page_arch.

    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 includes a tip to check for canonical recipes before multi-step work, implying this tool is for writing XML pages. However, it does not explicitly state when not to use it or provide alternatives, leaving room for ambiguity.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden. It mentions required parameters and return format but does not disclose side effects, idempotency, permissions required, or whether scheduling affects the record state or triggers notifications.

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

    Conciseness4/5

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

    The description is concise and front-loaded with the main action. It efficiently lists parameters and return format without extraneous words, though a more structured format could enhance readability.

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

    Completeness3/5

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

    For a tool with 7 parameters, no output schema, and no annotations, the description covers most parameters and return format. However, it misses explaining 'model' and 'record_id', and lacks context about side effects or system impact, leaving gaps.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must explain all parameters. It provides examples and format for activity_type, deadline, summary, note, and assigned_user_id, but omits 'model' and 'record_id', which are required and undocumented in both schema and 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 clearly states the action 'Schedule an activity on a record' with a specific verb and resource. It lists all key parameters and distinguishes this tool from siblings like 'create' and 'update' by focusing on activity scheduling.

    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 'create' or 'execute_action'. There is no mention of prerequisites, when not to use it, or how it differs from similar tools.

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

  • Behavior3/5

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

    With no annotations, the description carries full burden. It discloses that the tool returns full skill records with body and an empty array if no matches, but does not explicitly state whether the tool is read-only, requires authentication, or has any side effects.

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

    Conciseness4/5

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

    The description is two sentences: the first states the purpose, the second explains filtering and return value. It is front-loaded and contains 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 the tool has three optional parameters, no output schema, and no annotations, the description covers the basic functionality and return value, but lacks details on default behavior when no parameters are provided, allowed parameter values, and the exact structure of the returned records.

    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 lists the three parameters and states they filter against 'applies_to', but does not explain each parameter's meaning, valid values, or behavior when multiple are combined. This provides minimal additional 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 clearly states the tool finds skills matching a situation by filtering on model, field_type, and operation. It uses specific verbs and resources, but does not differentiate from sibling tools like list_skills or get_skills, which could also return skills.

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

    Usage Guidelines3/5

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

    The description implies usage when filtering by model, field_type, and/or operation is needed, but does not provide explicit guidance on when to use this tool versus alternatives, nor does it state when not to use it.

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

  • Behavior3/5

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

    With no annotations, the description carries the burden. It implies a read operation by saying 'Return,' but does not explicitly state it is non-destructive, mention permissions, or discuss any side effects. The return content is described adequately.

    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 main purpose, no redundant information. Every word is functional and contributes to understanding the tool's output.

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

    Completeness3/5

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

    The description covers the main output (types of actions and CRUD flags) but omits the return structure and fails to document the optional action_id parameter, leaving gaps for an agent. Given no output schema, more detail would be helpful.

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

    Parameters1/5

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

    Schema coverage is 0% and the description does not explain the 'model' or 'action_id' parameters. The agent must infer their meaning from context alone, which is insufficient for a tool with two 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 specifies the tool returns all actions available on a model, explicitly listing three categories (server actions, report actions, form-view buttons) and adding CRUD access flags. This specificity distinguishes it from siblings like get_available_actions.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives (e.g., get_available_actions, get_model_interface). The description does not mention exclusions or prerequisites, leaving the agent without context for tool selection.

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

  • Behavior3/5

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

    With no annotations, the description carries full burden. It discloses that the server handles transfer (no binary in context) and that using attachment_id replaces in-place without architecture update. Some behavioral aspects are covered, but it omits safety details like error handling or destructive potential.

    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 moderately concise with a tip and three operational sentences. However, it could be tightened by removing the emoji and better front-loading the core action.

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

    Completeness2/5

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

    Given the complexity (7 params, no annotations, no output schema), the description is incomplete. It fails to document most parameters and does not fully describe return values beyond {id, src}, leaving significant gaps for an AI agent.

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

    Parameters2/5

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

    Schema description coverage is 0%. The description explains only source and attachment_id, leaving 5 other parameters (name, public, res_id, is_image, res_model) undocumented. This is insufficient for a 7-parameter tool.

    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 loads a file from a URL or local path and stores it as an ir.attachment. It also provides a hint to check sibling tools for canonical recipes, distinguishing its purpose.

    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 offers a usage tip to check find_skill/list_workflows before multi-step work and explains when to use attachment_id vs omit. However, it lacks explicit guidance on when not to use this tool versus siblings like upload_binary.

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

  • Behavior3/5

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

    With no annotations, description carries burden. States it returns specific fields but does not disclose if it is read-only, potential performance implications, or behavior when website_id is omitted. Adequate but not thorough.

    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: two sentences with no redundancy. Front-loaded with verb and resource, efficiently listing output fields.

    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?

    Adequate for a simple listing tool but missing parameter clarification and usage context. With many siblings, more specificity about when to use would improve completeness.

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

    Parameters2/5

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

    Schema coverage is 0%, yet description does not explain the role of the optional website_id parameter. Only mentions it in returned fields, not that it filters pages. Agent must infer from parameter name.

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

    Purpose5/5

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

    Clearly states the tool lists website pages and enumerates returned fields: id, name, url, is_published, view_id, website_id. Distinguishes from siblings as no other tool lists pages.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives or any conditions. Just a brief description with no context on usage scenarios.

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

  • Behavior3/5

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

    No annotations are present, so the description must cover behavioral traits. It mentions defaults merging, action_id for context, and return format ({id, display_name} or {error}), but does not clarify side effects (e.g., that it modifies state) or prerequisites (e.g., required permissions). This is adequate but not comprehensive for a mutation tool.

    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 reasonably concise, with a key usage hint at the beginning and clear parameter explanations. It uses an emoji to draw attention, and no sentences are wasted. Could be slightly shorter but is well-organized.

    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 4 parameters, no output schema, and no annotations, the description covers the return format and parameter semantics adequately. However, it does not explain error conditions beyond '{error}', and lacks details on the 'model' parameter or any limitations. For a simple create tool, it is minimally complete but could be improved.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description adds significant value. It explains that 'values' are form-view fields only, 'context' is for wizard models, and 'action_id' includes action context. The 'model' parameter is not described but its role is implied. This substantially compensates for the missing schema descriptions.

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

    Purpose4/5

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

    Description clearly states 'Create a new record,' which is a specific verb+resource. The note about checking find_skill/list_workflows helps differentiate from recipe-related tools, but the purpose is generic and does not distinguish between record types.

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

    Usage Guidelines3/5

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

    The description provides a usage hint to check find_skill/list_workflows before multi-step work, but does not explicitly state when to use this tool versus siblings like update or archive. It implies usage for simple record creation with optional context parameters.

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

  • Behavior3/5

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

    No annotations are provided, so the description alone must disclose behavior. It indicates a read operation (Return) but lacks details on side effects, performance, or authorization needs. The description is adequate but minimal.

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

    Conciseness5/5

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

    The description is concise with two sentences: the first states the purpose, the second adds UI context. No extraneous information, and the key action is front-loaded.

    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 (2 parameters, no output schema), the description covers the basic purpose and context. However, it does not describe the return structure or provide complete parameter guidance, leaving some gaps for an agent.

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

    Parameters1/5

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

    The input schema has 2 parameters (model, action_id) with 0% schema description coverage, yet the description provides no additional meaning for these parameters. It does not clarify 'model' or 'action_id', making it unhelpful for correct parameter use.

    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 'Return' and the resource 'saved filters and favourites', which is distinct from sibling tools like get_model_actions or get_available_actions. It precisely conveys what the tool does.

    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 mentions the context (model's list view dropdown in Odoo UI), implying when to use the tool. However, it does not explicitly state when not to use or name alternatives, which keeps it from 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?

    No annotations are provided, so the description carries the full burden. It explains the core action (setting active=False) and the return values, but does not disclose whether the operation is reversible, idempotent, or what prerequisites (e.g., permissions) are needed. Some transparency, but gaps remain.

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

    Conciseness4/5

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

    The description is two sentences plus a tip, which is reasonably concise. The tip is front-loaded, which is helpful. However, the emoji and general advice could potentially be trimmed without losing essential 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 absence of annotations and output schema, the description covers the main purpose and return format but lacks parameter details. The sibling tools include many CRUD operations, but the description does not position this tool relative to them. Adequate but not comprehensive.

    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 does not describe the parameters 'model' or 'record_id' beyond their names. It does not provide guidance on valid values for 'model' or the format of 'record_id'. Minimal added value beyond the schema.

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

    Purpose5/5

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

    The description clearly specifies the verb 'Archive (deactivate)' and resource 'a record', and explains the mechanism (setting active=False). It distinguishes this tool from general update or delete operations by focusing on deactivation, and explicitly states the prerequisite (model must have an active field).

    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 gives a helpful tip to check for canonical recipes before multi-step work, and states the precondition (only works on models with active field). However, it does not explicitly mention when not to use this tool or compare it to alternatives like delete or update.

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

  • Behavior3/5

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

    No annotations are provided, so the description fully carries the burden. It correctly indicates a read-only operation (listing models) with no side effects. However, it does not mention any authentication requirements or limitations like 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?

    The description is a single sentence that efficiently conveys two distinct usage patterns. No wasted words; front-loaded with the primary usage.

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

    Completeness3/5

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

    Given no output schema and no annotations, the description is adequate but could be improved by mentioning the return format (e.g., list of model names or objects) and any relevant behavior like empty results.

    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 only defines 'base' as a string with no description (0% coverage). The tool description fully explains the parameter's purpose: to specify a base model for listing relational models reachable via form-view fields. This adds high value.

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

    Purpose4/5

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

    The description clearly states it lists primary models via menus or relational models with a base parameter. It differentiates from sibling tools like get_fields or get_model_actions by specifying the context (menus and form-view 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 explains two usage modes (without and with base parameter), which implies appropriate contexts. However, it does not explicitly state when not to use this tool or suggest alternatives among siblings.

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

  • Behavior3/5

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

    With no annotations, the description carries the burden. It discloses the return format (view_id, arch_db) and that the AI is responsible for reading/editing the XML. It does not mention permissions, rate limits, or side effects.

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

    Conciseness5/5

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

    The description is two sentences, front-loaded with purpose, and contains no unnecessary words. Every sentence adds value.

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

    Completeness4/5

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

    For a simple retrieval tool with one parameter and no output schema, the description covers the essential aspects: what it returns, where to get the input, and how to handle the output. Could mention error cases but not required.

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

    Parameters3/5

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

    Schema coverage is 0%, so the description compensates by stating page_id comes from list_pages. This adds meaning beyond the schema, but does not explain the parameter further (e.g., valid range or format).

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

    Purpose5/5

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

    The description clearly states the tool returns raw arch_db XML of a website page's view, using a specific verb and resource. It distinguishes from sibling tools like 'set_page_arch' (write) and 'list_pages' (list).

    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 tells the agent to pass page_id from list_pages, which is a prerequisite. However, it does not explicitly state when to use this tool versus alternatives or when not to use it.

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

  • Behavior4/5

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

    Discloses key behavior: returns metadata only, never binary data, and src field is usable as URL. With no annotations, this is sufficient for a read-only search tool. Could add more about pagination or rate limits.

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

    Conciseness5/5

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

    Three sentences with no wasted words. Information is front-loaded: first sentence gives purpose, second clarifies behavior, third provides usage guidance.

    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?

    No output schema, so description should detail return format—it only mentions metadata and src. Does not explain relationship to sibling tools like search_records. Adequate but incomplete for a search 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?

    Description does not explain any of the 4 parameters (name, limit, res_id, res_model). Schema coverage is 0%, so description should compensate but fails to do so. Only implies model and ID filtering indirectly.

    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 searches ir.attachment records for any model, specifies it returns metadata only (never binary), and distinguishes from upload/download tools. The use case is explicitly mentioned.

    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?

    Explicitly says to use for finding existing files before uploading duplicates. Does not explicitly state when not to use, but the behavior distinction is clear. Could mention alternatives like search_records for other models.

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

  • Behavior4/5

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

    With no annotations provided, the description carries full burden. It discloses the prerequisite (requires mail.thread), explains the two message behaviors (comment sent to followers, note is internal), and specifies the return format ({message_id} or {error}). This adds significant behavioral context beyond the input schema.

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

    Conciseness5/5

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

    The description is two sentences, front-loading the core purpose and prerequisite, then detailing message types and return value. Every sentence adds necessary information without redundancy.

    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 4 parameters, no output schema, and absent annotations, the description provides essential context but omits details on the 'model' parameter (which model/object type) and potential error cases. It is functional but not fully comprehensive for complex usage scenarios.

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

    Parameters2/5

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

    Schema description coverage is 0%. The description only explains the optional 'message_type' parameter (with enum values and their meanings). The required parameters 'body', 'model', and 'record_id' receive no explanation, leaving the agent to infer their purpose.

    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 posts a message or internal note on a record, with specific distinction between 'comment' and 'note' message types. It uniquely identifies the resource and action, differentiating it from sibling tools like 'create' or 'update'.

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

    Usage Guidelines3/5

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

    The description mentions the prerequisite 'requires mail.thread' and explains when to use 'comment' vs 'note'. However, it does not provide explicit guidance on when to use this tool over alternatives like 'create' or 'update', nor does it specify 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?

    Discloses execution mechanism (view buttons call method directly, server actions use ir.actions.server.run) and return types (action result, {success:true}, or {error}). With no annotations, could better state potential side effects (destructive hints) but still adds meaningful behavioral context.

    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 plus a technical note, all front-loaded. Every sentence adds value, no redundancy. Efficient and clear.

    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?

    Covers purpose, parameter semantics for action, usage hint, and return format. With no annotations or output schema, could specify permissions or error handling more, but overall sufficient for an AI 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.

    Parameters3/5

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

    Schema coverage is 0%, so description carries burden. Explains action parameter in detail (button name/label, examples, view vs server), but provides no extra meaning for model or record_id beyond their names. Adequate but not comprehensive.

    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?

    States 'Execute a button or server action on a record' with clear verb+resource. Distinguishes from siblings by referencing find_skill/list_workflows for canonical recipes and get_model_actions for action names, establishing when this tool is appropriate.

    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?

    Explicitly advises checking canonical recipes before multi-step work. References sibling get_model_actions for action parameter guidance. Lacks explicit 'when not to use' but provides clear 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?

    With no annotations, the description carries the full burden. It discloses that the tool returns field metadata and specifies the output structure, but it does not mention any read-only behavior, required permissions, or potential side effects. The transparency is adequate but minimal.

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

    Conciseness5/5

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

    The description is extremely concise: two sentences with no fluff. The first sentence states the purpose and scope, the second adds parameter details and return format. It is front-loaded and every word is necessary.

    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 output schema, the description provides a clear picture of the return structure (list of objects with specific keys). It covers both parameters adequately. Minor improvement would be to note any ordering or limits, but it is nearly complete for a straightforward metadata tool.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It explains the 'model' parameter implicitly by context, and explicitly describes 'view_type' with valid values and default. It adds value beyond the raw schema by explaining the return structure.

    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 function: returning metadata for all fields visible in a model's form or list view. It specifies the key parameter (view_type) and the return format, distinguishing it from siblings like get_model_actions which deal with actions rather than 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 using this tool when you need field metadata for a specific view type, but it does not explicitly state when to avoid it, mention prerequisites, or compare with alternatives such as get_model_interface. This leaves room for ambiguity.

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

  • Behavior4/5

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

    With no annotations, the description reveals key behaviors: reads file from absolute path on server filesystem, encodes, writes via ORM, and returns success/error. It also notes that no base64 appears in AI context, enhancing transparency for a write operation.

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

    Conciseness4/5

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

    The description is a single paragraph that front-loads a helpful tip, then states the primary action, migration use case, and return format. Every sentence adds value, no fluff.

    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 4 parameters, no output schema, and no annotations, the description covers the main use case and return format, but lacks details on error handling, file limitations, or parameter constraints. It references sibling download_binary but not fetch_and_upload.

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

    Parameters3/5

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

    Schema coverage is 0%, but parameter names are self-explanatory. The description adds context for source_path (absolute path on server) and field (binary field), but does not detail model or record_id. This partially compensates for the 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?

    The description clearly states the tool uploads a local file into an Odoo record's binary field, distinguishing it from siblings like download_binary and fetch_and_upload. It specifies the verb 'upload' and resource 'file into Odoo record's binary field', with additional context about reading from source_path and encoding.

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

    Usage Guidelines4/5

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

    The description provides explicit guidance: check find_skill/list_workflows for recipes, and use this as the target step in a cross-instance binary migration with download_binary. It does not list when not to use it, but the migration context clearly distinguishes from alternatives.

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

  • Behavior3/5

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

    No annotations provided; description does not disclose behavioral traits like read-only nature, idempotency, or side effects. Only describes return content, not safety or authorization aspects.

    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 and value. No wasted words; efficient and clear.

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

    Completeness4/5

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

    For a tool with one parameter and no output schema, the description sufficiently covers its primary function. However, lacks parameter details and behavioral transparency, leaving some completeness gap.

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

    Parameters2/5

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

    Only one parameter ('model') with 0% schema coverage. Description adds no meaning beyond the schema—no format, example, or constraint details. Should at least indicate it's the model name.

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

    Purpose5/5

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

    The description uses specific verbs ('returns') and clearly defines the resource (form-view field metadata, model actions, CRUD flags). It distinguishes from siblings like get_fields and get_model_actions by offering a combined single-call helper.

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

    Usage Guidelines5/5

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

    Explicitly states when to use ('before creating or editing records') and the alternative ('separate get_fields + get_model_actions round trips'). Provides clear 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?

    With no annotations, the description must fully convey behavior. It explains return content and context effects but omits key aspects: whether the operation is read-only (likely, but not stated), error handling for missing records, permission requirements, or potential performance implications. The example helps but leaves gaps.

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

    Conciseness5/5

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

    Three sentences: first defines purpose, second covers fields parameter, third covers context with example. Each sentence adds value without redundancy. No fluff, front-loaded with main purpose.

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

    Completeness3/5

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

    For a tool with 4 parameters, no output schema, and nested objects, the description is partially complete. It explains input parameters adequately but fails to describe the return format (e.g., structure of form-view field values). Without an output schema, this omission hinders complete understanding.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description adds significant meaning. It explains 'fields' (subset selection) and 'context' (control read behavior with example). It does not detail 'model' or 'record_id', but these are self-explanatory. Overall, it fills the gaps well.

    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 'Return form-view field values for a single record', specifying the verb ('return'), resource ('form-view field values'), and scope ('single record'). This distinguishes it from sibling tools like list_records (multiple records) and search_records (search operation).

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

    Usage Guidelines4/5

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

    The description implies proper usage: use when you need field values for one record. It explains optional parameters for subsetting (fields) and controlling read behavior (context). However, it does not explicitly contrast with alternatives like get_fields or list_records, which would strengthen guidance.

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

  • Behavior4/5

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

    With no annotations, the description carries full burden. It discloses key behaviors: the binary is decoded and written to disk, no base64 in context, and returns a structured result. It doesn't detail overwrite behavior, error handling beyond returning an error object, or any authorization requirements, but covers the core behavioral traits adequately.

    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 highly concise with three sentences. The first sentence states the core action, the second adds key behavioral detail, and the third provides usage guidance and return format. No unnecessary words or repetition.

    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?

    Despite no output schema, the description fully describes the return value format. The tool has only 4 simple parameters (no enums or nested objects), and the description covers the main usage scenario. No additional information seems necessary 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%, meaning the JSON schema provides no parameter descriptions. The tool description only mentions the parameter names (model, record_id, field, dest_path) without adding any semantics, constraints, or examples. This is a significant gap; the agent must infer meaning solely from 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 downloads a binary field from an Odoo record to a local filesystem path. It uses specific verbs ('download') and resource ('binary field value from an Odoo record'), and distinguishes itself from siblings like 'upload_binary' by specifying the direction of data flow.

    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 gives explicit usage context: it's intended as the source step in a cross-instance binary migration, paired with 'upload_binary'. It also notes that no base64 passes through AI context, indicating a constraint. However, it does not explicitly state when not to use it or list alternative tools for different scenarios.

    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?

    Despite no annotations, description discloses key behaviors: partial success for missing names, optional expansion of skills, and requirement for names. No mention of auth or rate limits, but adequate for a read tool.

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

    Conciseness5/5

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

    Four concise sentences, each with a clear purpose: purpose, basic usage, optional parameter, error behavior. No redundant information.

    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?

    Covers core functionality well given no output schema, but slight lack of detail on exact return structure (e.g., fields returned). Still sufficient for most use cases.

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

    Parameters4/5

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

    With 0% schema coverage, description adds meaning for both parameters: names accepts single or multiple, expand_skills includes skill bodies, and error handling for missing 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 'Return one or more workflows in full' with specific details on content (frontmatter + markdown body) and distinguishes from siblings like list_workflows by focusing on full content retrieval.

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

    Usage Guidelines3/5

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

    Usage is implied through description of parameters and behavior, but no explicit guidance on when to use this tool over siblings like list_workflows 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.

  • Behavior4/5

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

    Describes pagination behavior, return structure, and context effects (e.g., language, archived records). No annotations, so description carries burden; provides good 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?

    Concise, dense with information, front-loaded with purpose, and structured logically without wasted words.

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

    Completeness4/5

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

    Covers pagination, return format, context usage, and action_id. Lacks explanation for order parameter, but sufficient for a list tool with no output schema.

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

    Parameters3/5

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

    Adds meaning for action_id and context, but does not explain limit, offset, order, or model beyond schema type hints. Schema coverage is 0%, so description compensates partially.

    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 returns a paginated list of records for a model, differentiating from sibling tools like search_records and get_record.

    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?

    Explains when to use action_id and context parameters with specific examples, but does not explicitly state when not to use this tool.

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

  • Behavior4/5

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

    No annotations are provided, so the description carries full behavioral disclosure. It explains that both form-view and non-form fields are written, details Odoo Command tuples for relational fields, and covers context effects like language and suppressing chatter. However, it does not mention authorization needs or destructive behavior.

    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 informative but slightly lengthy; it begins with a note about checking other tools before stating the purpose. However, it is well-structured and each sentence adds value. Could be trimmed slightly without losing clarity.

    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 4 parameters (0% schema coverage), no output schema, and complexity (Odoo relational commands), the description covers essential behavioral details, return values, and context examples. It is self-contained and sufficient for an AI agent to invoke correctly.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It explains the 'values' parameter in depth, including Odoo Command tuples for one2many/many2many, and the 'context' parameter with examples. 'model' and 'record_id' are not explained, but their purpose is self-evident.

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

    Purpose5/5

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

    The description clearly states 'Update fields on an existing record,' specifying the verb (update) and resource (record). It distinguishes from create and archive by implication, and also mentions checking find_skill/list_workflows for canonical recipes.

    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 lacks explicit guidance on when to use this tool versus siblings like create, archive, or execute_action. It only advises checking for recipes before multi-step work, not when to prefer update.

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

  • Behavior5/5

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

    With no annotations, the description fully discloses behavior: it evaluates invisible expressions deterministically, reads only necessary fields, and returns a structured response. There is 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.

    Conciseness4/5

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

    The description is concise with two sentences. It front-loads the purpose and adds internal logic details. Slightly verbose but still efficient.

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

    Completeness5/5

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

    Given no output schema, the description fully defines the return structure. It explains internal mechanics (field extraction, deterministic evaluation) and covers key aspects for an agent to understand usage.

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

    Parameters2/5

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

    Schema description coverage is 0%, yet the description does not add semantics for parameters. It fails to explain the 'action_id' parameter and provides no format or constraints beyond the schema's basic types.

    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 that the tool returns visible buttons and actions for a specific record based on its current field values. It distinguishes itself from siblings like 'get_model_actions' by emphasizing record-level visibility matching the Odoo web client form view.

    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 needing to see record-level available actions, mirroring the form view. It does not explicitly mention when not to use or provide alternatives, but the context is clear.

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

  • Behavior3/5

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

    No annotations provided, so description carries burden. It explains parameter effects but does not mention idempotency, read-only nature, or potential errors.

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

    Conciseness5/5

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

    Two sentences, no wasted words, purpose front-loaded. Every sentence earns its place.

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

    Completeness4/5

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

    Adequate given no output schema: explains input parameters and their effects. Could mention return format or default handling, but not critically missing for common usage.

    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?

    With 0% schema description coverage, the description fully compensates: explains model as target, action_id for action context, context for wizard models, adding meaning beyond type-only schema.

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

    Purpose5/5

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

    The description clearly states the tool returns default field values for a model, akin to pre-fill on 'New' action. It distinguishes from siblings like get_model_actions or list_records by focusing on default values.

    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 gives specific guidance on when to use action_id vs context dict, but does not explicitly state when to use this tool over alternatives or provide 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?

    No annotations exist, so the description carries the burden. It discloses the output fields and that no body is returned, but does not explicitly state read-only nature or any other behavioral traits. It adds value beyond the empty schema.

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

    Conciseness5/5

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

    Two sentences, front-loaded with purpose, no wasted words. Every sentence adds value.

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

    Completeness5/5

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

    Low complexity (no params, no output schema). Description explains what the tool returns and how to get full details, making it complete for an agent.

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

    Parameters4/5

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

    There are no parameters, and schema coverage is 100%, so the description does not need to add parameter details. Baseline 4 is appropriate as the description is sufficient.

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

    Purpose5/5

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

    The description clearly states the tool lists all atomic skills, specifies the returned fields (name, summary, hint, applies_to, used_in), and distinguishes from get_skill for full text. It uses specific verbs and resources, differentiating from sibling tools like get_workflows.

    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 guidance to use 'get_skill' for full text, implying this tool is for overview. While not exhaustive with siblings, it gives clear context for when to use this tool vs alternatives.

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

  • Behavior4/5

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

    With no annotations, the description carries full burden. It discloses the structure of translations for char vs html fields, the requirement that the target language be installed, and the return formats for different input forms. It does not mention permissions or side effects but covers essential behavioral traits.

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

    Conciseness4/5

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

    The description is well-organized with clear separation of forms and bullet points for examples. It is front-loaded with the purpose and the initial note about find_skill/list_workflows. While somewhat lengthy, every sentence is informative.

    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 output schema, the description adequately explains return values for different input forms. It covers error cases with {error} and mentions language installation. Minor gaps exist, such as not clarifying partial batch failures or the error for missing language, but overall it is fairly complete.

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

    Parameters4/5

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

    Schema coverage is 0%, but the description explains all parameters in context, including examples for translations objects and the difference between single and batch forms. The model parameter is mentioned as required but not elaborated; overall, it adds significant meaning beyond the raw 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 explicitly states 'Write translations for translatable field(s)' and distinguishes two forms: single/same-map and batch. It specifies the resource (translatable fields on a model) and clearly differentiates from sibling tools like translation_get (reading) and translation_audit (auditing).

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

    Usage Guidelines4/5

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

    It provides guidance on when to use each form (single vs batch) and suggests checking find_skill/list_workflows before multi-step work. However, it does not explicitly exclude alternatives or explain when not to use this tool compared to other update tools like create or update.

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

  • Behavior4/5

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

    No annotations are provided, so the description carries full burden. It discloses partial success with error objects and the inclusion of back-references, providing useful behavioral context beyond a simple fetch.

    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 concise, front-loaded sentences with no redundant information. Every word adds value.

    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 one parameter and no output schema, the description covers input semantics, output format (full skill data with specific fields), and error handling. Lacks explicit structure of frontmatter but is 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?

    Schema coverage is 0%, so the description must add meaning. It explains that the array can hold one or more names and that missing names return error objects, adding value beyond the schema's type definition.

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

    Purpose5/5

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

    The description clearly states it returns skills with full details (frontmatter, markdown body, used_in back-references). This distinguishes it from siblings like list_skills (which likely returns summaries) and find_skill.

    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 specifies that a single name or array of names can be passed and explains partial success behavior for missing names. It does not explicitly contrast with alternatives, but the usage pattern is clear.

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

  • Behavior4/5

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

    No annotations are provided, so the description carries full burden. It discloses that context can enable archived record search ({active_test: false}) or language-specific display names ({lang: 'fr_FR'}), returns [{id, display_name}] with a limit. This is solid behavioral 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 four sentences, each concise and informative. It front-loads the purpose, then adds parameter details, context examples, and return format without 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 6 parameters, no output schema, and no annotations, the description covers main parameters and return shape. Missing details like error conditions or pagination beyond limit, but it's sufficiently complete for a search tool.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description compensates by explaining query (free-text), domain (Odoo domain syntax), action_id (scope), and context (with examples). Only 'model' is not described, but it's likely obvious as it's the record type.

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

    Purpose5/5

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

    The description starts with 'Search for records by name or domain', which clearly states the tool's action (search) and resource (records). It differentiates from siblings like list_records (which likely lists without search) and get_record (single record).

    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 explains multiple search modes (query, domain, action_id, context) and provides examples for context usage. While it doesn't explicitly state when to use search_records over list_records, the purpose is clear enough for an AI agent to infer appropriate use.

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

  • Behavior4/5

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

    With no annotations, the description carries the burden. It discloses that the tool returns {key, name, html} or {error}, indicating a read operation. It does not cover edge cases like rate limits or idempotency, but is sufficient for a simple fetch.

    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 concise sentences with no unnecessary words. The description is front-loaded and every sentence adds value.

    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?

    For a low-complexity tool with 1 required parameter and no output schema, the description covers the purpose, input example, and return structure. It is complete.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description adds value by providing an example of the key format ('website.s_text_image'). This compensates for the lack of schema documentation.

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

    Purpose5/5

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

    The description clearly states the verb 'Fetch' and the resource 'HTML for a website building-block snippet', distinguishing it from siblings like list_snippets.

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

    Usage Guidelines4/5

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

    The description implies when to use: when needing the HTML for a specific snippet key. It does not explicitly state when not to use or mention alternatives, but the context is clear.

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

  • Behavior4/5

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

    No annotations are provided, so the description carries full burden. It discloses that the tool returns a summary (name, summary, applies_to, skills) and not the full text, which is sufficient for a read-only list tool.

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

    Conciseness5/5

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

    Two sentences, front-loaded with the action, and every word adds value. No waste.

    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?

    For a simple list tool with no parameters or output schema, the description is complete: it states the action, the returned fields, and references get_workflow for more detail.

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

    Parameters4/5

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

    The tool has zero parameters, and schema description coverage is 100%. Baseline for 0 params is 4, and no additional param info is needed.

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

    Purpose5/5

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

    The description clearly states 'List all multi-step workflows' and specifies the returned fields (name, summary, applies_to, skills). It differentiates from get_workflow by indicating that tool provides full text.

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

    Usage Guidelines4/5

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

    The description provides clear context for when to use this tool (to get a list/summary) and when to use get_workflow (for full details). While it doesn't explicitly list exclusions, the guidance is sufficient.

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

  • Behavior4/5

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

    With no annotations, the description adequately details the read-only behavior, including batch processing, optional filtering, and return format variations. It lacks explicit mention of side effects or authentication needs, but for a read tool this is sufficient.

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

    Conciseness4/5

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

    The description is moderately long but well-structured, front-loading the purpose. Every sentence adds value, though slightly more brevity could improve conciseness.

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

    Completeness5/5

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

    Given no output schema, the description thoroughly covers input variations, batch behavior, and return formats (single vs array). It accounts for complexity and is complete enough for correct invocation.

    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?

    Schema coverage is 0%, so the description fully explains each parameter: record_id and field_name accept single values or arrays, langs is optional, model is required. This adds significant meaning beyond the schema types.

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

    Purpose5/5

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

    The description clearly states it reads all language translations for a translatable field on a record. It specifies the action (read), resource (translations), and scope (for a translatable field), distinguishing it from sibling tools like translation_update and translation_audit.

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

    Usage Guidelines4/5

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

    It explains when to use the tool (to read translations), mentions batch reading and optional language filtering. While it does not explicitly state when not to use or provide alternatives, the usage context is clear enough for appropriate selection.

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

  • Behavior5/5

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

    With no annotations, the description fully carries the behavioral transparency burden. It discloses integrity flags (suspect_source, nonempty_base), truncation behavior with max_list and _truncated flag, and return format ({passed, summary, results} or {error}). This comprehensively informs the agent about tool effects and outputs.

    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 dense and front-loaded with the core purpose, then details parameters and behavior. It is well-structured but slightly verbose; some details like data types could be inferred from the schema. However, every sentence adds value, and the length is justified by the tool's complexity.

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

    Completeness5/5

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

    Given no output schema and 6 parameters (3 required), the description is remarkably complete. It explains what the tool returns, the meaning of integrity flags, truncation behavior, and default language handling. No gaps remain for an agent to understand how to invoke and use the tool correctly.

    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?

    Schema coverage is 0%, so the description must add meaning for all 6 parameters. It explains that record_id and field_name accept single values or arrays, base_lang defaults to 'en_US', target_langs defaults to all non-base languages, and max_list caps term lists with a truncation flag. This provides essential context beyond the schema.

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

    Purpose5/5

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

    The description clearly states the tool audits translation coverage and integrity for translatable fields across records. It uses specific verbs like 'audit' and 'reports', and distinguishes itself from sibling tools like translation_get and translation_update by focusing on auditing rather than retrieval or modification.

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

    Usage Guidelines4/5

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

    The description explicitly recommends using the tool to 'verify a bilingual push in one call and to catch source corruption early', providing clear use cases. It explains flexible parameter acceptance (single value or array) and defaults for base_lang and target_langs. However, it does not explicitly state when not to use it or mention alternatives, though context implies it's for auditing rather than fetching single translations.

    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?

    Describes search behavior (substring, case-insensitive) and return format with specific keys. No annotations provided, so description carries full burden; covers query characteristics and output structure adequately.

    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. Every sentence provides value: tool purpose, parameter behavior, return structure, sibling reference. No redundant text.

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

    Completeness5/5

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

    Fully covers purpose, parameter usage, return shape, and relationship with sibling. Given simple input schema and no output schema, description leaves no gaps for an agent to invoke correctly.

    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 sole parameter 'search' is explained: 'filters by any substring of the key or name (case-insensitive)'. Schema has 0% description coverage, so this adds essential 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?

    Clearly states 'List available website building-block snippets' with a specific verb and resource. Distinguishes from sibling 'get_snippet' by positioning this as the listing tool.

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

    Usage Guidelines5/5

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

    Explicitly explains when to use (list all or filter) and directs to 'get_snippet(key)' for fetching injectable HTML, providing clear alternative.

    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

odoo-surface-mcp MCP server

Copy to your README.md:

Score Badge

odoo-surface-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/solutionsunity/odoo-surface-mcp'

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