Skip to main content
Glama
OliverRhyme

openproject-mcp

by OliverRhyme

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool targets a distinct resource and action (e.g., op_create_project, op_delete_work_package, op_list_boards). Even similar operations like add/remove watchers are clearly differentiated. The escape hatch (op_api_passthrough) is explicitly noted as distinct.

    Naming Consistency5/5

    All tools follow the consistent pattern op_verb_noun (snake_case), with clear verbs like create, delete, get, list, update, etc. No mixing of conventions or ambiguous prefixes.

    Tool Count4/5

    37 tools is above the typical ideal range, but each tool serves a specific and necessary operation for OpenProject's domain (projects, work packages, attachments, users, notifications, etc.). The count reflects the complexity of the platform rather than poor scoping.

    Completeness4/5

    The tool surface covers most core workflows: CRUD for projects and work packages, attachments, relations, notifications, and user management. Minor gaps exist (e.g., no update for relations or users), but these are likely intentional due to permissions or scope.

  • Average 3.4/5 across 37 of 37 tools scored. Lowest: 2.6/5.

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

    • No community issues in the last 6 months
    • 25 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 failing
  • 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 are provided, so the description must disclose behavioral traits. It indicates a write operation but omits details on permissions, side effects, idempotency, or error handling.

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

    Conciseness3/5

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

    The description is a single sentence, efficient but lacking necessary detail. It sacrifices completeness for brevity.

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

    Completeness2/5

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

    Given no output schema, no annotations, and zero schema description coverage, the description is insufficient. It does not explain the concept of watchers, return values, or potential errors.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description should explain parameter meaning. It mentions 'a user' and 'a work package' but does not explain how to obtain the IDs or any constraints.

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

    Purpose4/5

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

    The description clearly states the action ('Add') and the objects (user and work package), distinguishing it from siblings like op_remove_watcher. However, it does not specify the exact role or context of 'watcher'.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like op_remove_watcher or op_list_watchers. No prerequisites or conditions mentioned.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It lacks information on side effects, permissions, or return behavior, which is insufficient for a mutation-free 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 extremely concise with one sentence, front-loading the core purpose. While it could be more structured, it avoids redundancy.

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

    Completeness2/5

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

    Given no output schema and 0% param descriptions, the description should provide more context. It fails to explain return values or parameter usage, making it incomplete for a simple fetch tool.

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

    Parameters1/5

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

    Schema has 0% description coverage, and the tool description does not explain the meaning or purpose of the 'raw' parameter. The agent is left to infer its function without any hints.

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

    Purpose4/5

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

    The description clearly states the action (Fetch) and resource (single relation by id), distinguishing it from sibling tools like op_list_relations. However, it could explicitly differentiate from other relation-related tools.

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

    Usage Guidelines2/5

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

    No guidance on when to use or not use this tool. Alternatives like op_list_relations are not mentioned, leaving the agent without context for selection.

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

  • Behavior2/5

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

    The description only says 'Destructive,' which indicates mutation, but doesn't elaborate on side effects, required permissions, reversibility, or what exactly is affected beyond the attachment itself. Since no annotations are provided, more detail is needed.

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

    Conciseness3/5

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

    The description is extremely concise but at the expense of necessary detail. While not verbose, it omits essential information, making it barely adequate.

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

    Completeness2/5

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

    For a destructive tool with no output schema and minimal parameter info, the description lacks completeness. It does not cover error states, usage context, or integration with other tools like op_list_attachments.

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

    Parameters1/5

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

    The schema has 0% description coverage for the single parameter 'id,' and the description does not explain what the id refers to (e.g., attachment ID). This is a critical gap for correct tool invocation.

    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 'Delete an attachment,' providing a specific verb and resource. This distinguishes it from sibling tools like op_get_attachment and op_upload_attachment, which have different 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 or alternatives. It lacks context about prerequisites, when not to use, or comparison to other delete tools like op_delete_work_package.

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

  • Behavior2/5

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

    No annotations provided; description does not disclose any behavioral traits such as read-only nature, permissions, return format, or pagination. The list of relation types is the only extra info.

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

    Conciseness3/5

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

    The description is concise (one sentence plus list), but it is under-specified; it could be expanded with parameter details while remaining concise.

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

    Completeness2/5

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

    Given 2 parameters, no output schema, and no annotations, the description is incomplete. It lacks details on response, pagination, and parameter behavior.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not explain the parameters workPackageId and raw. The required parameter is not highlighted, and the boolean raw parameter is left unexplained.

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

    Purpose5/5

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

    The description clearly states it lists relations for a work package and provides the specific relation types, which is specific and distinguishes it from sibling tools like op_create_relation and op_get_relation.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives, no prerequisites or exclusions mentioned. The description only states the function without context.

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

  • Behavior2/5

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

    With no annotations, the description must cover behavioral traits. It only states the purpose but omits details like read-only nature, permissions, response format, or any side effects. The agent cannot infer safety or constraints.

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

    Conciseness4/5

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

    The description is a single sentence, achieving brevity. However, it sacrifices completeness for conciseness. Still, it is not verbose and front-loads the purpose.

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

    Completeness2/5

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

    Given no output schema and sparse description, the tool leaves significant gaps: no return value description, no pagination info, no example usage. The agent cannot confidently invoke the tool without additional knowledge.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must explain parameters. It does not mention workPackageId or raw at all. The agent must guess their meanings and valid values.

    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 'List users watching a work package' clearly indicates the action (list) and resource (watchers for a work package). It distinguishes itself from sibling tools like op_add_watcher and op_remove_watcher.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus siblings. For example, no mention of prerequisites like needing a valid workPackageId or that it is read-only. No alternatives or when-not-to-use context.

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

  • Behavior2/5

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

    No annotations provided, so description must disclose behavior. It states 'mark as read' implying a write operation, but lacks details on side effects, permissions, or idempotency.

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

    Conciseness3/5

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

    The description is very short at one sentence, which is concise but lacks substance. It is not verbose but could be expanded to include parameter details.

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

    Completeness2/5

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

    Given a single parameter, no output schema, and no annotations, the description should explain the 'id' parameter and the tool's behavior. It fails to provide sufficient context for correct usage.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not mention the 'id' parameter, its purpose, how to obtain it, or any constraints.

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

    Purpose5/5

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

    The description clearly states the action (mark) and resource (notification) and specifies it is for a single notification, distinguishing it from the sibling tool 'op_mark_all_notifications_read'.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like 'op_mark_all_notifications_read'. The sibling tool name hints at the alternative, but the description itself does not provide usage context.

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

  • Behavior2/5

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

    No annotations are provided, so the description must bear the full burden. It mentions visibility scope ('visible to current API key') but omits details like pagination, rate limits, or the fact that it's a read operation. The schema shows sorting and pagination parameters, but the description does not address these behavioral aspects.

    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 long, front-loading the core purpose and then listing filter examples. It is concise with no superfluous words, though a more structured breakdown of parameters could improve clarity.

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

    Completeness2/5

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

    Given the tool has 5 parameters, no annotations, and no output schema, the description is incomplete. It only addresses filters for a few fields, leaving sorting, pagination, and raw mode undocumented. The agent would lack essential context for using the tool effectively.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description only partially covers the 'filters' parameter by naming specific fields and operators. It does not explain 'sortBy', 'offset', 'pageSize', or 'raw'. The description adds some value but fails to compensate for the lack of schema documentation for 4 out of 5 parameters.

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

    Purpose5/5

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

    The description clearly states the tool lists users visible to the current API key, and provides example filters for name, status, and login. This is specific and distinct from sibling tools that list other resources.

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

    Usage Guidelines2/5

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

    The description does not provide guidance on when to use this tool versus alternatives like op_get_user for a single user or op_list_watchers for watchers. No when-not or context for selection is given.

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

  • Behavior2/5

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

    With no annotations, the description should fully disclose behavioral traits. It mentions mutation but omits side effects, required permissions, error handling, or response details.

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

    Conciseness4/5

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

    The description is a single concise sentence, efficiently conveying the core concept without waste. However, it could be better structured to include more details.

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

    Completeness2/5

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

    Given no output schema, no annotations, and 5 parameters, the description is insufficient. It lacks information on return values, error states, and complete parameter guidance.

    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 clarify any parameter meaning beyond their names. No explanation of 'public' or 'active' project semantics is provided.

    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 ('Patch an existing project') and distinguishes it from creation and deletion siblings by emphasizing partial updates ('Only include the fields you want to change').

    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?

    It provides one useful guideline (partial updates) but lacks exclusions, prerequisites, or explicit comparisons to alternatives like op_create_project or op_delete_project.

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

  • Behavior2/5

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

    With no annotations, the description carries full burden but omits key behaviors: it does not disclose that the 'notify' parameter controls notifications, or that attaching a file modifies the comment text. It also fails to mention any authentication or permission requirements.

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

    Conciseness5/5

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

    Single sentence, front-loaded with the primary action, and no unnecessary words. Effectively communicates the core functionality and optional attachment feature.

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

    Completeness2/5

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

    Given 5 parameters, no output schema, and no annotations, the description is not complete. It lacks details on required parameters (id, comment), optional notify behavior, and attachment semantics beyond embedding.

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

    Parameters2/5

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

    Schema coverage is low (40%), and the description only adds meaning for 'attachFilePath' (embed inline). It does not explain 'id' (work package ID), 'comment' (markdown text), 'notify' (triggers notifications?), or 'attachFileName' (override).

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

    Purpose5/5

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

    Description clearly states the verb 'Add' and the resource 'markdown comment to a work package activity stream', which distinguishes it from sibling tools like op_create_work_package or op_update_work_package. The mention of optional file attachment adds specificity.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. For instance, it does not mention that to update work package fields one should use op_update_work_package or that to list activities one should use op_list_work_package_activities.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavioral traits. It only states 'Delete a relation' without mentioning side effects, irreversibility, permissions, or what happens to linked data. A delete operation inherently involves destruction, but the description does not elaborate on the scope or consequences.

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

    Conciseness4/5

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

    The description is extremely concise, consisting of one sentence with only five words. It is front-loaded and efficient. However, it is so brief that it borders on under-specification, which slightly reduces the score.

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

    Completeness2/5

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

    For a simple delete operation with one parameter and no output schema, the description is minimal. It does not explain what happens after deletion (e.g., confirmation, error cases) or provide any context about the relation being deleted. Given the complexity of the tool and the lack of output schema, the description is incomplete.

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

    Parameters2/5

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

    The description does not mention the single parameter 'id' or clarify its meaning. With 0% schema description coverage, the description should compensate, but it fails to add any semantic value beyond what is obvious from the parameter name. The integer type and requirement are already in the schema, so the description adds nothing.

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

    Purpose5/5

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

    The description clearly states the action ('Delete') and the resource ('a relation'), which distinguishes it from sibling tools like op_create_relation (create) and op_get_relation (get). The purpose is unambiguous.

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

    Usage Guidelines3/5

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

    The description implies that the tool should be used when the goal is to delete a relation, but it provides no explicit guidance on when to use it versus alternatives (e.g., op_delete_work_package) or any prerequisites. The name and context make the usage fairly clear, but no additional direction is given.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. 'Fetch' implies read-only, but no disclosure on authentication, permissions, rate limits, or side effects. Minimal 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?

    Single sentence, no unnecessary words. Front-loaded with key information.

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

    Completeness3/5

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

    For a simple fetch tool, it covers the basics but lacks details on return format, defaults, or error states. With no output schema, more completeness would be beneficial.

    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 parameter meanings, especially the optional 'raw' boolean. Adds no value beyond the schema.

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

    Purpose5/5

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

    The description 'Fetch a single notification by id' clearly states the verb (fetch), resource (notification), and identifier (by id). It distinguishes from siblings like op_list_notifications (list multiple) and op_mark_notification_read (mark read).

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

    Usage Guidelines3/5

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

    Usage is implied: use when you have a specific notification id. However, no explicit guidance on when not to use, prerequisites, or alternatives is provided.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It states 'fetch' suggesting a read operation, but does not confirm safety, disclose if the operation has side effects, or mention prerequisites like permissions. The phrase 'full HAL detail' lacks elaboration on response format or pagination.

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

    Conciseness5/5

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

    The description is a single sentence with 12 words, front-loading the core action and parameter. Every word is meaningful, with no redundancy or fluff.

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

    Completeness2/5

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

    Given the tool has 2 parameters (one required) and no output schema or annotations, the description is too minimal. It does not explain the return value shape, possible error conditions, or the effect of the `raw` parameter. An agent lacks enough context to use the tool correctly.

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

    Parameters2/5

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

    Schema description coverage is 0%, requiring the description to explain all parameters. It mentions 'by numeric id' for the `id` parameter, but omits any explanation of the `raw` boolean parameter. The description adds partial meaning but leaves a parameter undocumented.

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

    Purpose5/5

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

    The description 'Fetch a single work package by numeric id with full HAL detail' clearly specifies the verb 'Fetch', the resource 'single work package', and a key parameter 'numeric id'. It distinguishes from siblings like `op_list_work_packages` (which lists multiple) and `op_delete_work_package` (which deletes).

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

    Usage Guidelines3/5

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

    The description implies usage for fetching one work package by id but gives no explicit guidance on when to use it versus alternatives like `op_list_work_packages` for multiple items or other `get_*` tools. No exclusions or conditions are provided.

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

  • Behavior3/5

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

    With no annotations, the description implies a safe read operation but does not disclose any potential behaviors like pagination, ordering, or error handling. For a simple list tool, it is minimally adequate but lacks depth.

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

    Conciseness4/5

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

    The description is a single concise sentence that front-loads the action. It wastes no words, though it could be expanded slightly without harming conciseness.

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

    Completeness3/5

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

    Given the tool's simplicity (list operation, 2 params, no output schema), the description covers the basic purpose but lacks information about return values and the 'raw' parameter. It is barely adequate for an agent to use correctly.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must explain parameters. It mentions 'on a work package' for workPackageId but does not explain the 'raw' boolean parameter. This omission leaves parameter semantics unclear.

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

    Purpose5/5

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

    The description 'List attachments on a work package' clearly specifies the verb 'List' and the resource 'attachments on a work package'. It distinguishes from siblings like op_get_attachment (get single) and op_upload_attachment, op_delete_attachment.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives (e.g., op_get_attachment for a single attachment) or any preconditions. The description only states what it does, not when to use it.

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

  • Behavior2/5

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

    No annotations provided, so description carries full burden. It does not disclose read-only nature, pagination, rate limits, or any side effects. Only mentions optional filtering.

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

    Conciseness5/5

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

    Single 7-word sentence is highly concise and front-loaded with the action and resource. No redundant 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?

    Adequate for a simple list tool with one optional parameter and no output schema, but lacks behavioral details and usage context that would fully inform an agent.

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

    Parameters3/5

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

    With 0% schema coverage, description adds value by explaining the parameter 'projectIdOrIdentifier' is for optional filtering. However, no constraints or format details are given.

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

    Purpose5/5

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

    The description explicitly states the action 'List' and resource 'versions' with optional filtering by project. The title clarifies 'milestones' and distinguishes this from sibling tools like op_list_projects.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. The description only states the basic function, lacking when-not, context, or sibling differentiation.

    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 full burden. It discloses output ordering and that it includes both comments and changes. However, it does not mention pagination, rate limits, or whether the list is exhaustive, which would be helpful for a read 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 sentence, very concise and to the point. It front-loads the key action and resource. However, it could add a brief note about parameter roles without becoming verbose.

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

    Completeness3/5

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

    For a simple list tool with 2 parameters and no output schema, the description covers the essential purpose and ordering. However, it omits details about the activity items returned and potential filtering (e.g., by date). It is adequate but not fully complete.

    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 tool description implies 'id' is the work package ID but does not explicitly state it. The 'raw' parameter is not explained at all. The description adds minimal meaning beyond the schema's property definitions.

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

    Purpose5/5

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

    The description clearly states the verb 'list', the resource 'activities (comments and changes) on a work package', and the ordering 'oldest first'. It effectively distinguishes from sibling tools like op_list_work_packages which lists work packages, not activities.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. It does not mention when not to use it, prerequisites, or related tools like op_comment_work_package for filtering comments.

    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 full burden. It states the action (removing a watcher) but does not disclose permissions, side effects, or whether the user must currently be a watcher.

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

    Conciseness5/5

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

    Single sentence, directly states purpose with no extraneous words. Ideal length.

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

    Completeness3/5

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

    No output schema, no parameter explanations, no usage hints. For a simple mutation, it is somewhat complete, but lacks detail on prerequisites and return values.

    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%, and the description does not explain parameters beyond their names. The schema provides types (integers) but no descriptions. The description does not compensate for the lack of parameter details.

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

    Purpose4/5

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

    The description clearly states the verb 'Remove' and the resource 'user from watching a work package'. It distinguishes from sibling tool 'op_add_watcher' by implication, but does not explicitly contrast.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like op_api_passthrough or op_list_watchers. No prerequisites or context provided.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden for behavioral disclosure. It only states the basic purpose, omitting any details about authentication requirements, rate limits, error handling (e.g., when project not found), 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 a single sentence that is front-loaded and efficient, containing no extraneous information.

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

    Completeness3/5

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

    Given the lack of output schema, annotations, and incomplete parameter description, the description is minimally adequate for a simple retrieval tool but lacks details on response format, error behavior, and the 'raw' parameter.

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

    Parameters2/5

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

    The schema covers 50% of parameters with descriptions (idOrIdentifier is described, raw is not). The tool description does not add any additional meaning for 'raw', leaving its purpose unclear. With low schema coverage, the description should compensate but fails to do so.

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

    Purpose5/5

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

    The description clearly states the verb 'Get' and the resource 'a single project', and specifies the acceptable identifier types (numeric id or identifier slug). This distinguishes it from sibling tools like op_list_projects (list all) and op_create_project (create).

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

    Usage Guidelines3/5

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

    The description implies usage for fetching a specific project by id or slug, but does not provide explicit guidance on when to use this tool versus alternatives (e.g., op_list_projects for multiple projects) 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?

    No annotations are provided, so the description carries the full burden. It discloses that the tool is destructive, requires admin permission, and processes asynchronously. This adds meaningful context beyond a simple delete. Lack of details on failure modes or completion is minor.

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

    Conciseness5/5

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

    The description is two sentences, highly concise, and front-loaded with the core purpose. Every sentence provides essential information without redundancy.

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

    Completeness2/5

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

    With only one parameter and no output schema, the description is too minimal. It lacks details on how to provide the idOrIdentifier (e.g., numeric ID or string identifier) and what the response looks like. The agent is left guessing.

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

    Parameters1/5

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

    The input schema has 0% description coverage for the parameter idOrIdentifier, and the description does not elaborate on its format, meaning, or usage. The description fails to compensate for the schema gap.

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

    Purpose5/5

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

    The description clearly states 'Delete a project,' specifying the action (delete) and resource (project). It effectively distinguishes from sibling tools like op_delete_work_package and op_delete_relation, which operate on different resources.

    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 'requires admin permission' and 'asynchronous processing,' which provides some context but does not explicitly guide when to use this tool versus alternatives like op_update_project. Usage is implied but not explicitly differentiated.

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

  • Behavior3/5

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

    The description discloses permanent deletion and destructiveness, which is minimal but adequate for a simple delete. However, no annotations exist, so it should mention side effects like cascading deletes or permission requirements.

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

    Conciseness5/5

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

    The description is extremely concise with two short sentences, each carrying essential information about permanence and destructiveness. No unnecessary words.

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

    Completeness4/5

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

    Given the tool's simplicity (one parameter, no output schema, no annotations), the description covers the basic function. However, it could mention that this action is irreversible and may affect related data.

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

    Parameters2/5

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

    The parameter 'id' is not described in the description, and schema coverage is 0%. The description should at least specify that 'id' is the work package identifier. The low coverage is not compensated.

    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 'Permanently delete' and the resource 'work package', and the term 'Destructive' adds emphasis. It distinguishes itself from sibling delete tools by specifying the resource type.

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

    Usage Guidelines2/5

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

    No usage guidance is provided. The description lacks when to use, when not to use, or alternatives. Only a vague 'Destructive' note, which implies caution but doesn't give explicit 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?

    No annotations are provided, so the description carries the full burden. It mentions fetching a board with widget/column configuration, but lacks details on authentication, error conditions, or read-only nature. 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.

    Conciseness4/5

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

    The description is a single front-loaded sentence, 16 words, efficient. Could add a bit more detail without losing conciseness.

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

    Completeness3/5

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

    No output schema exists, so the description should clarify the return value. It only mentions including widget/column configuration, but does not state that it returns the board object or that it's a read-only 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%. The description does not elaborate on the parameters (id and raw) beyond the schema. The 'raw' boolean parameter is unexplained, and the id parameter's exclusiveMinimum is not contextualized.

    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 (Fetch), resource (board/grid by id), and includes the specific configuration details (widget/column). It distinguishes from sibling tools like op_list_boards which lists multiple boards.

    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 you have a board id, but does not provide explicit guidance on when to use this vs alternatives, nor when not to use it.

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

  • Behavior3/5

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

    The description states it 'fetches' a user, implying a read-only operation with no side effects. However, with no annotations provided, it does not disclose error handling (e.g., missing id), permission requirements, or response format. This is acceptable for a simple get operation but lacks depth.

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

    Conciseness5/5

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

    The description is a single sentence, front-loaded with the verb 'Fetch', and no unnecessary words. It is optimally concise for the information it provides.

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

    Completeness2/5

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

    Given the tool's simplicity (2 parameters, no annotations, no output schema), the description should mention the optional 'raw' parameter and hint at the return value or behavior. It does not, leaving gaps for the agent.

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

    Parameters2/5

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

    The description mentions 'by numeric id', which adds some context to the required 'id' parameter, but it does not explain the optional 'raw' boolean parameter. Since schema description coverage is 0%, the description fails to compensate by explaining all parameters or their usage.

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

    Purpose5/5

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

    The description clearly states the action (Fetch), resource (user), and method (by numeric id). It distinguishes from siblings like op_current_user and op_list_users by specifying the id-based retrieval.

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

    Usage Guidelines3/5

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

    The description implies it is for retrieving a single user by its numeric id, but it does not explicitly state when to use this tool versus alternatives like op_current_user (for current user) or op_list_users (for all users). No guidance on when not to use it.

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

  • Behavior2/5

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

    No annotations provided, so description must carry the burden. It only states what the tool lists, but does not disclose read-only nature, performance characteristics, or any side effects. Minimal 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?

    Single sentence clearly conveys the tool's purpose with no unnecessary words. Highly concise and 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 no parameters and no output schema, the description provides the essential purpose. However, it lacks details about return format or typical usage context, making it minimally adequate.

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

    Parameters3/5

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

    No parameters exist, so schema coverage is 100%. Baseline is 3; description adds no parameter information beyond the schema, which is already 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?

    Description clearly states the tool lists all work package statuses. Verb 'List' and resource 'work package statuses' are specific, and it distinguishes from sibling tools like op_list_projects or op_list_users.

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

    Usage Guidelines3/5

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

    No explicit guidance on when to use this tool versus alternatives. However, with zero parameters and a descriptive name, the usage context is implied, but formal guidelines are missing.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It only mentions the lockVersion requirement and implies a partial update ('patch'). It does not disclose whether the operation is destructive, what permissions are needed, how errors are reported, or what the response contains (e.g., updated work package object). Given the lack of annotations, this is insufficient 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?

    The description is two sentences long: one for purpose, one for critical usage guidance. No filler or redundancy. Every part earns its place.

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

    Completeness2/5

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

    Given the tool's complexity (12 parameters, no output schema), the description is too brief. It lacks information on return values, error handling, required permissions, and which fields are optional vs required beyond the schema. This leaves significant gaps for the agent to make informed decisions.

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

    Parameters2/5

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

    Schema description coverage is only 8% (only assigneeId has a description). The description adds no extra meaning beyond the schema—it only mentions lockVersion in the usage guideline but doesn't explain the purpose or constraints of other parameters. For a tool with 12 parameters, the description should compensate for the sparse schema but fails to do so.

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

    Purpose5/5

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

    The description clearly states 'Patch fields on a work package', which is a specific verb ('patch') and resource ('work package'). It effectively distinguishes from sibling tools like op_create_work_package (create) and op_delete_work_package (delete).

    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 mandates passing the current lockVersion and explains the consequence of not doing so (stale-object error). It also implies fetching the work package first using op_get_work_package. However, it does not explicitly state alternatives (e.g., use op_create_work_package for new work packages) or when not to use this tool.

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

  • Behavior2/5

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

    No annotations are provided, so the description must fully disclose behavioral traits. It only mentions creation and date formatting, but omits side effects (e.g., notifications, permissions needed), return value, error handling, or confirmation behavior.

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

    Conciseness5/5

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

    The description is very concise at two sentences, with the purpose stated first and no extraneous information. Every sentence adds value.

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

    Completeness2/5

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

    Given the complexity (12 parameters, no output schema, no annotations), the description is too brief. It lacks guidance on optional fields, return format, error conditions, or permissions. The phrase 'When patching dates' is misleading for a creation tool.

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

    Parameters3/5

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

    The description reinforces required parameters and adds date format guidance beyond the schema. However, schema coverage is 50% and the description does not add meaning for many parameters (e.g., description, statusId, priorityId, etc.) beyond what the schema already provides.

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

    Purpose5/5

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

    The description clearly states the action ('Create') and the resource ('work package in a project'), distinguishing it from sibling tools like 'op_update_work_package' or 'op_delete_work_package'. It also lists the minimum required fields.

    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 instructions on required parameters and date format, but does not explicitly state when to use this tool over alternatives or when not to use it. The context is clear from the tool name.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It mentions filter syntax and common fields but does not describe behavior for pagination (offset, pageSize), sorting (sortBy), grouping (groupBy), or the 'raw' parameter. The return structure is not described.

    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, front-loading the purpose. It efficiently conveys scope and filter support, though it could include more details without significant increase in length.

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

    Completeness3/5

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

    Given 7 parameters, no output schema, and no annotations, the description is moderately complete. It covers the core use case but omits details about return format, pagination behavior, and parameter interactions. Sibling tools imply a rich ecosystem, but the description alone is insufficient for complex queries.

    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 low (14%). The description adds value by listing common filter fields and their operators (e.g., '~' for subject), but it does not describe other parameters like sortBy, groupBy, offset, pageSize, or raw. This partially compensates but leaves gaps.

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

    Purpose5/5

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

    The description clearly states the action ('List work packages') and the resource, with optional scoping to a project. It distinguishes from siblings like op_get_work_package which fetches a single work package, and op_create_work_package which creates new ones.

    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 optional scoping and filter syntax, implying when to use filters. However, it lacks explicit guidance on when not to use this tool (e.g., if you need a single work package, use op_get_work_package) or alternatives like op_list_attachments.

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

  • Behavior3/5

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

    Description indicates mutation ('create') but lacks details on side effects, permissions, or constraints. With no annotations, the burden is on the description, which is 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?

    Two sentences, front-loaded with core purpose, and efficiently lists types. 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?

    No output schema, so description should explain return value (e.g., created relation ID). It does not. Also missing context about scoping (e.g., project context). Adequate but incomplete.

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

    Parameters3/5

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

    Schema description coverage is 75% (3 of 4 parameters documented). The description adds example types but overlaps with schema's examples. Adds marginal value beyond 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 'Create a relation between two work packages' with a specific verb and resource. Lists relation types, distinguishing from siblings like op_delete_relation and op_get_relation.

    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?

    Lists types but provides no guidance on when to use this tool versus alternatives, or context for selecting relation types. No exclusions or prerequisites mentioned.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It mentions visibility based on API key and filter support, but does not disclose pagination behavior, default response format, rate limits, or performance implications. Some transparency but significant 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.

    Conciseness5/5

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

    The description is three sentences: first states purpose, second introduces filter support, third gives concrete examples. It is concise, front-loaded, and contains no unnecessary words.

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

    Completeness3/5

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

    Given 5 parameters, no output schema, and no annotations, the description covers the main purpose and filter syntax but lacks details on pagination, sorting, default response format, and error handling. It is adequate for simple use but incomplete for understanding all behaviors.

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

    Parameters3/5

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

    With 60% schema description coverage, the baseline is 3. The description adds value by explaining the filter syntax and giving common field examples (e.g., 'active', 'name_and_identifier'), which the schema does not provide. However, it does not elaborate on other parameters like sortBy or raw beyond what is in 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 lists OpenProject projects visible to the API key, with a specific verb and resource. It distinguishes itself from sibling tools like op_get_project, op_create_project, etc., by focusing on listing.

    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 support for filter syntax and gives common field examples, implying usage for filtered listing. However, it does not explicitly state when to use this tool vs. alternatives (e.g., op_get_project for a single project) or any prerequisites.

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

  • Behavior2/5

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

    No annotations are provided, so the description must carry full burden. It discloses optional scoping but does not mention data freshness, side effects (none expected), or whether the list is system-wide or depends on project membership. Minimal 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 with no wasted words. Purpose and optional scoping are front-loaded. Every sentence contributes meaning.

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

    Completeness3/5

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

    Given no output schema and no annotations, the description leaves gaps: return format not mentioned, no hint about whether types are mutable or static. It is borderline adequate for a simple list tool, but could elaborate on what exactly is returned (e.g., type IDs and labels).

    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 parameter documentation relies on description. The description adds meaning with 'Optionally scope to a project', indicating the parameter filters types by project. This is valuable context beyond the schema's bare type string.

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

    Purpose5/5

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

    The description clearly states the verb 'List' and the resource 'work package types', and provides concrete examples (Task, Bug, Feature, Milestone). It distinguishes from sibling list tools by specifying the type of resource.

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

    Usage Guidelines3/5

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

    The description implies when to use (to get work package types) and mentions optional project scoping, but lacks explicit when-not or alternative choices among the many sibling list tools. No guidance on prerequisites or context.

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

  • Behavior2/5

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

    No annotations are provided, and the description does not disclose behavioral traits such as authentication requirements, rate limits, or side effects. The tool is likely read-only, but this is not confirmed.

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

    Conciseness5/5

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

    The description is a single concise sentence that efficiently communicates the tool's purpose with no wasted words.

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

    Completeness4/5

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

    Given the tool has no parameters and no output schema, the description is adequate for understanding its basic function. However, mentioning the return format (e.g., a full user object) would improve completeness.

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

    Parameters4/5

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

    There are no parameters in the input schema, so the description does not need to add parameter semantics. The baseline for zero parameters is 4, and the description adds no unnecessary information.

    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 the user associated with the configured API key, distinguishing it from siblings like op_get_user (gets a specific user by ID) and op_list_users (lists all users).

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

    Usage Guidelines3/5

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

    No explicit guidance on when to use this tool vs alternatives, but the zero-parameter interface makes its purpose obvious. The description does not mention exclusions or sibling comparisons.

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

  • Behavior3/5

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

    With no annotations provided, the description must disclose behavioral traits. It correctly implies a read operation by using 'list', but it does not mention authorization needs, rate limits, or the fact that it returns all instance-wide priorities. The description is minimal but not misleading.

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

    Conciseness5/5

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

    The description is a single concise sentence that effectively communicates the tool's function without unnecessary words. It is appropriately front-loaded with the action and resource.

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

    Completeness4/5

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

    Given the simplicity of the tool (no parameters, no output schema, no annotations), the description is mostly complete. However, it could briefly note that it's a read-only operation that returns all priorities without any filtering or side effects, which is implied but not explicit.

    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 the input schema covers 100% of the specification. Since there are no parameters, the description does not need to add semantic meaning beyond what the schema already provides.

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

    Purpose5/5

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

    The description clearly states the verb 'list' and the resource 'priorities', making the purpose unambiguous. It distinguishes from sibling tools that list other entities like projects or work packages.

    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. Sibling tools include many other list operations, but the description does not indicate when priorities should be listed or if there are any prerequisites.

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

  • Behavior3/5

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

    No annotations are provided, so the description bears full burden. It clearly states the action (mark all as read) but does not mention side effects (e.g., irreversibility), authorization needs, or rate limits. Adequate but lacks depth.

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

    Conciseness5/5

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

    Single sentence, front-loaded with action and scope, no wasted words. Perfectly concise for the tool's simplicity.

    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 0-parameter, no-output-schema tool, the description covers the essential purpose. It could mention confirmation or outcome, but the action is self-explanatory. Complete given low complexity.

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

    Parameters4/5

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

    With 0 parameters and 100% schema coverage (empty schema), the description adds no extra parameter info. Per guidelines, 0 parameters defaults to baseline 4. The description does not contradict 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 'Mark all notifications as read for the current user' uses a specific verb (mark) and resource (all notifications) with clear scope (current user). It distinguishes itself from sibling tool op_mark_notification_read which handles single notifications.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives like op_mark_notification_read. The description implies bulk usage but does not state when not to use or provide context for selection.

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

  • Behavior3/5

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

    No annotations provided, and the description does not disclose behavioral traits like authentication needs, rate limits, or return format beyond implying GET is read-only.

    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, front-loaded with key purpose, no unnecessary words.

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

    Completeness3/5

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

    The description covers essential use but lacks mention of return value format, error handling, or authentication requirements for such a low-level passthrough tool.

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

    Parameters3/5

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

    Schema coverage is 100% and already includes a description and pattern for 'path'. The description adds an example but no significant new meaning beyond the schema.

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

    Purpose5/5

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

    The description clearly states the tool is an 'escape hatch' to call any GET endpoint under /api/v3, distinguishing it from sibling typed tools.

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

    Usage Guidelines4/5

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

    Explicitly says 'Use sparingly — prefer the typed tools above,' providing clear guidance on when to use versus alternatives.

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

  • Behavior3/5

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

    With no annotations provided, the description adds some behavioral context (permissions, sub-project creation, auto-generated identifier). However, it lacks details on return value, error scenarios, or idempotency, which are important for a creation 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?

    The description is two sentences, front-loaded with the core purpose. Every sentence adds value without redundancy or extraneous information.

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

    Completeness3/5

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

    Given no annotation, no output schema, and 5 parameters, the description covers permissions and sub-project creation but is incomplete. Missing return value details and error handling reduce completeness for an AI agent.

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

    Parameters3/5

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

    Schema description coverage is 40%; the description adds context for parentId (mentioning identifier or numeric id via _links.parent.href) but does not elaborate on name, description, or public. It partially compensates for missing 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 creates a new project, which distinguishes it from sibling tools like op_update_project and op_delete_project. It also specifies sub-project creation via parent identifier, adding clarity on variations.

    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 required permissions (admin or 'add project') and explains when to use parent parameters for sub-projects. However, it does not explicitly mention when not to use this tool or provide alternatives for similar actions.

    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 mentions storage as grids and endpoint path but lacks details on pagination, permissions, or behavior if project is invalid. Adequate but incomplete.

    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 extraneous content; front-loaded with the core action and scope.

    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?

    Simple tool but missing explanation for raw parameter, response format, and pagination; no output schema. Adequate for the general purpose but not fully self-contained.

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

    Parameters3/5

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

    Schema coverage is 50% with only projectIdOrIdentifier described; description repeats that and adds no insight for raw boolean. Baseline score as description adds minimal value.

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

    Purpose5/5

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

    The description clearly states the action 'list boards' and specifies the resource as Kanban-style boards for a project, which distinguishes it from op_get_board (single board) and other listing tools.

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

    Usage Guidelines4/5

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

    The description implies use for listing boards per project but does not explicitly exclude conditional use or mention alternative tools like op_get_board, leaving some inference to the agent.

    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 full burden. It describes a read operation, but doesn't explicitly state non-destructive nature or disclose pagination/rate limits. Adequate for a simple 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: first states purpose clearly, second gives actionable filter examples. No redundant information, 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?

    No output schema, so return values undocumented. Parameters partially explained. Adequate for basic understanding but lacks details for advanced usage (e.g., default pagination, sorting behavior).

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

    Parameters3/5

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

    Schema description coverage is 0%, so description must compensate. It explains two filter fields (readIAN, reason) with operator/values, but doesn't cover other parameters (sortBy, offset, pageSize, raw). Adds partial value beyond schema 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?

    Clearly states it lists in-app notifications for the current user, with examples of common filters. Distinguishes from siblings like op_get_notification (single) and op_list_work_packages (different resource).

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

    Usage Guidelines4/5

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

    Provides common filter examples implying typical use cases, but lacks explicit guidance on when to use vs alternatives (e.g., op_get_notification, op_mark_notification_read) or when not to use.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the core action but fails to disclose important traits such as side effects (e.g., file size limits, permissions required, or return value). The description does not contradict annotations (none present), but is incomplete 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.

    Conciseness5/5

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

    The description is extremely concise: two sentences covering the core purpose, key requirement (absolute path), and optional behaviors. Every sentence adds value and the most critical information 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 moderate complexity (6 parameters, no output schema), the description covers the main use case but lacks details about the return value or what happens after upload (e.g., attachment ID). It provides enough for basic usage but not full completeness.

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

    Parameters4/5

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

    Schema description coverage is 67% (4 of 6 parameters have descriptions). The description adds value by clarifying that 'filePath' must be an absolute path, 'fileName' overrides the default, and 'embedIn' triggers insertion of an image reference. This supplements the schema's parameter descriptions 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 the action ('upload a file'), resource ('attachment on a work package'), and key requirement ('provide the absolute path'). It distinguishes from sibling tools like op_delete_attachment and op_get_attachment by focusing on upload.

    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 usage guidance: specify the absolute file path, optionally override the file name, and optionally embed the attachment as an image reference. It does not explicitly state when not to use or compare to alternatives, but for a single-purpose upload tool, 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.

  • 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 discloses that it's a read operation that can optionally download content, but lacks details on error behavior, permissions, or side effects. Adequate but not comprehensive.

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

    Conciseness5/5

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

    Two sentences with no extraneous words. The first sentence states the primary purpose, and the second adds optional functionality. Efficient and well-structured.

    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?

    With 3 parameters and no output schema, the description covers the main use cases (fetch metadata, optionally download). It lacks details about return format or error handling but is reasonably complete for a simple fetch tool.

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

    Parameters3/5

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

    Schema coverage is low (33%), but the description adds meaning for 'id' (by id) and 'saveTo' (download to local path and return embedLocations). The 'raw' parameter is left unexplained, so it only partially compensates for the schema gaps.

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

    Purpose5/5

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

    The description clearly states the tool's main action: 'Fetch attachment metadata by id,' using a specific verb and resource. It distinguishes from siblings like op_list_attachments and op_delete_attachment by focusing on a single attachment.

    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 when to use the tool (to fetch metadata, optionally download content) and mentions the extra embedLocations return when saveTo is set. It does not explicitly exclude scenarios like when not to use it, but the sibling context provides alternatives.

    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

openproject-mcp MCP server

Copy to your README.md:

Score Badge

openproject-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/OliverRhyme/openproject-mcp'

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