Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation4/5

    Tools are grouped by product prefix and target distinct resource/action pairs, so most are easy to tell apart even at 55 tools. The main risk is within Figma where get_file/get_metadata/get_design_context and get_screenshot/download_assets have adjacent image/export purposes, though the descriptions provide enough separation.

    Naming Consistency4/5

    Nearly all tools follow a product_verb_noun snake_case pattern (confluence_create_page, jira_transition_issue), which is highly predictable. Deviations like figma_whoami/gitlab_whoami and the ambiguous gitlab_save_merge_request (create-or-update) keep it from a perfect score.

    Tool Count1/5

    At 55 tools this server presents an extreme selection burden, far beyond the 25+ threshold; it effectively bundles four product-specific servers into one namespace. The per-platform subsets are reasonable, but the aggregate would be better split into separate MCP servers.

    Completeness4/5

    Core lifecycles are covered for all four platforms: Confluence pages/comments, GitLab MRs/issues/pipelines/files, Jira issues/transitions/comments/worklogs/links, and Figma read/export/context. Missing operations are mostly destructive ones (deletes, comment updates) that can be worked around or are rarely needed in AI-assisted dev workflows.

  • Average 3/5 across 55 of 55 tools scored. Lowest: 2.3/5.

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

    • No community issues in the last 6 months
    • 13 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • 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?

    With no annotations provided, the description bears the full burden of behavioral disclosure. It only states the resource and HTTP method, with no mention of read-only behavior, return contents, effects of the withContent parameter, or permissions.

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

    Conciseness2/5

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

    The description is extremely short and front-loads the resource, but it is a fragment rather than a clear sentence. It omits a verb and reads more like a label than an actionable description, making the brevity counterproductive.

    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 two-parameter endpoint with no output schema and no annotations, the description leaves essential context missing: what withContent does, what the response contains, and any project-related scope details. It is not complete enough to reliably invoke the tool.

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

    Parameters2/5

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

    Schema coverage is only 50%: projectId is documented in the schema, but withContent has no description and the tool description does not clarify it. The description adds no parameter meaning beyond the endpoint path, so it fails to compensate for the gap.

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

    Purpose3/5

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

    The description is a noun phrase 'Wiki pages' plus the API endpoint, which implies a list operation but does not explicitly state one. It is distinct from siblings by resource, but the tool name carries most of the meaning rather than the description itself.

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

    Usage Guidelines2/5

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

    No guidance is given about when to use this tool or how it relates to other GitLab tools. It does not mention alternatives, prerequisites, or context, leaving the agent to infer usage entirely from the name and endpoint.

    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 behavioral burden, but it only restates the create operation and endpoint. It does not disclose permissions needed, whether the comment appends to existing footer comments, idempotency, or what the API returns on success or failure.

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

    Conciseness3/5

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

    The single sentence is compact and front-loaded, but it is under-specified rather than efficiently concise. It omits essential context that an agent would need to confidently select and invoke the tool.

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

    Completeness2/5

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

    Given the absence of annotations and output schema, and only minimal schema descriptions, the description is incomplete. It does not explain the purpose of a footer comment, when to choose it over inline comments, or any behavioral consequences, leaving significant gaps for the agent.

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

    Parameters1/5

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

    Schema description coverage is only 33%, yet the description provides no parameter information at all. bodyValue and bodyRepresentation are left entirely unexplained, and even pageId gets no additional context beyond 'Page ID.' The description fails to compensate for the sparse schema.

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

    Purpose4/5

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

    The description clearly states the action ('Creates') and resource ('footer comment'), and includes the exact API endpoint for precision. It is distinguishable from the sibling inline-comment creation tool, though it doesn't explicitly explain how footer comments differ from inline comments.

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

    Usage Guidelines2/5

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

    There is no guidance about when to use this tool instead of the sibling confluence_create_inline_comment, nor any mention of prerequisites, contexts, or exclusions. The description states what it does, but not when to invoke it.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure, but it only restates the endpoint. It does not mention pagination via the cursor parameter, whether results are flat or hierarchical, supported status values, or any authentication/rate-limit behavior. The GET verb at least signals 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.

    Conciseness3/5

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

    The single sentence is compact and front-loads the resource, and the embedded endpoint adds structural value. However, it is under-specified to the point of reading like a title rather than a functional description.

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

    Completeness2/5

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

    For a 5-parameter list endpoint with no annotations and no output schema, the description omits return shape, pagination defaults, and filter semantics. An agent cannot predict the response format or how cursor, limit, and status interact.

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

    Parameters2/5

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

    Schema description coverage is only 20% (spaceId alone is documented in the schema), and the tool description adds nothing about parameters. The endpoint reference hints at the space ID, but limit, title, cursor, and status remain completely unexplained, and there are no enums to constrain them.

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

    Purpose3/5

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

    The description is a noun phrase ('Pages in a space') with no explicit verb, so the agent must infer the list operation from the HTTP path. It names the resource and scope, but does not distinguish this from siblings like confluence_get_page_descendants or confluence_search_cql, which also return pages.

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

    Usage Guidelines2/5

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

    No guidance is given on when to use this tool versus alternatives. The description never mentions when to prefer it over confluence_search_cql for filtered searches, confluence_get_page for a single page, or confluence_get_page_descendants for a hierarchy.

    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 HTTP GET in parentheses implies a read-only operation, but nothing is disclosed about whether descendants are returned recursively, how depth is interpreted, how cursor/limit pagination behaves, or what the response structure looks like. With no annotations, the description carries the full behavioral burden and fails to meet it.

    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 text is short and free of fluff, with the endpoint front-loaded. However, it is a bare fragment rather than a useful description, so the conciseness comes at the cost of important detail.

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

    Completeness2/5

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

    The tool involves a depth parameter, a cursor, and a limit, yet none of those behaviors are explained, and there is no output schema. An agent would need to guess at pagination and depth semantics, making the description insufficient for correct invocation.

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

    Parameters2/5

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

    Schema coverage is only 25%, with pageId being the only described parameter. The description adds no meaning for depth, limit, or cursor beyond what their names suggest, and it does not compensate for the lack of schema documentation.

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

    Purpose4/5

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

    The description names the resource ('Page descendants') and gives the exact GET endpoint, so an agent can tell what data is being requested. It is distinguishable from sibling tools like get_page and get_pages_in_space by the word 'descendants', though it lacks an explicit verb like 'retrieve'.

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

    Usage Guidelines2/5

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

    There is no guidance about when to use this tool instead of alternatives, such as when a user wants descendants vs. a single page vs. all pages in a space. The tool name implies the use case, but no explicit conditions or exclusions are given.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden, but it only reveals the HTTP method and path. It does not disclose pagination behavior, authentication requirements, filtering, ordering, or what happens when no comments exist. The GET method implies read-only behavior, but little else is conveyed.

    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 line that front-loads the resource and includes the endpoint. It is efficient, though it sacrifices useful detail 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?

    The endpoint-only description is insufficient for an agent to call the tool correctly without prior Confluence API knowledge. There is no output schema, no annotation, and no explanation of pagination or return format, leaving significant gaps.

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

    Parameters1/5

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

    Schema description coverage is only 33%, and the tool description adds no meaning to the parameters. The limit and cursor parameters, which are critical for pagination, are left entirely undocumented in both the schema and the description.

    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 identifies a specific resource, footer comments, and includes the exact HTTP endpoint with the page ID placeholder. This distinguishes it from sibling tools like confluence_get_page_inline_comments, though it does not explicitly state the action verb beyond the GET method.

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

    Usage Guidelines2/5

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

    No guidance is provided about when to use this tool versus alternatives. The description does not mention that this is for fetching page footer comments as opposed to inline comments, creating comments, or searching for them.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the operation is a POST/write, but does not mention side effects, permissions, duplicate URL behavior, or failure cases.

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

    Conciseness4/5

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

    The description is a single sentence with no filler and places the core action and endpoint right at the start. It is concise to the point of being under-specified, but structurally efficient.

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

    Completeness2/5

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

    For a state-changing tool with no annotations, no output schema, and no parameter documentation, this description is insufficient. An agent would need additional context about required fields, relationship semantics, and expected responses.

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

    Parameters1/5

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

    Schema description coverage is 0% and the description does not explain any parameter. issueIdOrKey, url, title, and relationship are left entirely to inference; the optional relationship parameter has no documented meaning or allowed 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 states a specific action ('Creates a remote link') and includes the exact REST endpoint, making the resource type clear. It does not explicitly contrast with sibling jira_create_issue_link, but 'remote link' and the '/remotelink' endpoint are specific enough to avoid major confusion.

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

    Usage Guidelines2/5

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

    No guidance is given about when to use this tool versus jira_create_issue_link, or how it differs from jira_get_remote_issue_links. The agent is left to infer usage context entirely from the tool name and endpoint.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It discloses that this is a mutating operation via PUT, but does not mention permissions, whether the update is partial or full replacement, irreversibility, error behavior, or what the response contains.

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

    Conciseness4/5

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

    The description is a single efficient sentence with no wasted words and the core action is front-loaded. However, it is terse to the point of under-specification, so it earns a high conciseness score but not a perfect one.

    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 annotations, no output schema, nested objects in the schema, and a large set of Jira sibling tools, this description is far from complete. It does not explain the semantics of fields versus update, what a successful update returns, or how this differs from other issue-modifying tools.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description provides no parameter semantics. The fields and update objects are dynamic and opaque in the schema, and the description does not explain their roles or how issueIdOrKey maps to the {key} path parameter.

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

    Purpose4/5

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

    The description states a clear verb and resource: 'Updates an issue' and gives the exact endpoint PUT /rest/api/3/issue/{key}. This distinguishes it from sibling tools like jira_create_issue or jira_transition_issue, though it does not explicitly name or contrast them.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus alternatives such as jira_transition_issue, jira_add_comment, or jira_create_issue. The description only states what it does, not the conditions, prerequisites, or exclusions for using 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 are present, so the description has full responsibility for disclosing behavior. It reveals only the HTTP method and path; it does not mention pagination, response shape, ordering, or whether only comments visible to the user are returned. This is minimal disclosure.

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

    Conciseness4/5

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

    The description is very short and front-loaded, with no filler. However, it may be too terse to fully support call construction.

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

    Completeness2/5

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

    With no output schema or annotations, the description would need to state what the response contains and how pagination works. It does neither, so the definition is incomplete for correct invocation beyond the minimal pageId call.

    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 describes only pageId ('Page ID.'), and the inferred endpoint confirms this parameter. limit and cursor have no descriptions, and the description does not explain their role in pagination, leaving 67% of parameters underspecified.

    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 identifies the operation as retrieving inline comments for a page and gives the exact REST endpoint, so an agent can infer the resource and HTTP verb. It is clear, though it doesn't explicitly state 'list' or differentiate from the footer-comments sibling beyond the path.

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

    Usage Guidelines2/5

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

    There is no guidance on when to choose this over alternatives like confluence_get_page_footer_comments or confluence_create_inline_comment. The name and endpoint hint at the use case, but no explicit context or exclusions are given.

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

  • Behavior3/5

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

    The description explicitly shows 'GET', which signals a read-only search operation, and identifies the API path. However, with no annotations, it leaves important behavioral details unmentioned: return shape, pagination behavior, excerpt handling, and whether the search covers pages, blog posts, attachments, or other content.

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

    Conciseness4/5

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

    The description is extremely short and front-loaded, with no filler words or redundant phrasing. It is appropriately compact for a simple search tool, though the brevity does sacrifice useful explanatory content that is penalized elsewhere.

    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 four-parameter tool with no annotations and no output schema, the description is incomplete: it omits valid CQL syntax guidance, return value structure, pagination semantics, and the scope of searchable content. The endpoint and name only provide basic orientation, not enough for reliable autonomous invocation.

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

    Parameters1/5

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

    The description adds no meaning to any of the four parameters; the only parameter documentation is the cql example in the schema. With schema description coverage at only 25%, the description was expected to compensate for the undocumented limit, start, and excerpt parameters, but it does not.

    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 names a specific operation, 'CQL search', and supplies the REST endpoint, making it clear this tool runs Confluence Query Language searches. It is sufficiently distinct from sibling search tools like jira_search_jql and gitlab_search, though it does not spell out what content types are searched.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool instead of alternatives such as confluence_get_pages_in_space, jira_search_jql, or gitlab_search. The endpoint is provided, but no conditions, exclusions, or contextual recommendations are given.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure, but it only says a job is fetched and repeats the HTTP method. It does not disclose what the response contains, whether additional scopes or project visibility are required, or how missing/invalid job IDs are handled.

    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, efficient sentence with no filler and the endpoint is front-loaded where it is most useful. It is appropriately brief for such a small tool, though the brevity borders on under-specification in other dimensions.

    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 read tool with no output schema and no annotations, the description should at least indicate what data is returned and how to obtain a valid job ID. It does neither, and it omits the natural connection to sibling tools like gitlab_get_pipeline_jobs, leaving the agent without enough context to call it reliably.

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

    Parameters2/5

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

    Schema description coverage is only 50%, and the description does not compensate: jobId is left entirely undocumented, and projectId's meaning must be gathered from the schema. The endpoint template hints that projectId maps to ':id' and jobId to ':job_id', but this is minimal and indirect.

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

    Purpose4/5

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

    The description uses the specific verb 'Gets a job' and names a concrete resource, backed by the exact GitLab REST endpoint. It is clear that this tool retrieves a single CI job by ID, though it does not explicitly contrast itself with the sibling gitlab_get_pipeline_jobs.

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

    Usage Guidelines2/5

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

    There is no guidance about when to use this tool versus related alternatives like gitlab_get_pipeline_jobs or gitlab_get_pipeline. The description merely states what the endpoint does, leaving the agent to infer that it should be used when a specific job ID is already known.

    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 only states the verb and GET endpoint; it does not mention read-only semantics, pagination defaults, result shape, authentication needs, or rate limits.

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

    Conciseness4/5

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

    The description is a single short sentence with no filler, and the core action and endpoint are front-loaded. It is concise, though the brevity sacrifices important detail captured as gaps in the other dimensions.

    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 five-parameter list endpoint with no annotations and no output schema, this description is too thin. It omits filter semantics, pagination behavior, and return-value expectations, providing the minimum needed to identify the tool but not enough to invoke it correctly for non-default cases.

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

    Parameters2/5

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

    Schema description coverage is only 20%, so the description needed to compensate for the undocumented ref, status, page, and perPage parameters. It does not; it only references the endpoint path. Only projectId has a schema description, leaving the other four parameters without meaningful semantics in either the schema or the description.

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

    Purpose4/5

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

    The description uses a specific verb+resource ('Lists pipelines') and includes the REST endpoint, so an agent can tell this is a collection-level listing rather than a single-pipeline fetch. It clearly contrasts with siblings like gitlab_get_pipeline and gitlab_get_pipeline_jobs, though it does not name them explicitly.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus alternatives such as gitlab_get_pipeline or gitlab_get_pipeline_jobs. The intended context is only inferable from the tool name and sibling list, not from the description itself.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a mutation via POST but does not disclose that transitions may require additional fields, may be irreversible, depend on the issue's current workflow state, or require specific permissions.

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

    Conciseness4/5

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

    The description is a single efficient sentence with no filler and the endpoint is included for precision. It is concise, though the brevity comes at the cost of behavioral and parameter detail.

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

    Completeness2/5

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

    For a tool with no annotations, no output schema, and no schema descriptions, this description is too sparse. It does not explain how to construct the fields object, whether the transition can change required fields, or how the tool relates to jira_get_transitions, leaving important operational knowledge implicit.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description adds no parameter-level meaning. While issueIdOrKey and transitionId are reasonably self-explanatory, the 'fields' and 'comment' parameters remain underspecified—especially 'fields', which often carries required transition fields.

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

    Purpose4/5

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

    The description states a specific action ('Applies a transition') and identifies the REST endpoint, making it clear this tool performs a state transition on a Jira issue. It is distinguishable from sibling tools like jira_get_transitions by its verb and POST method, though it does not explicitly name the alternative.

    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 about when to use this tool versus related tools such as jira_get_transitions or jira_edit_issue. The description does not mention prerequisites like retrieving valid transition IDs first, nor does it describe any exclusions.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals only that this is a merge action via PUT, but does not mention side effects like source branch deletion, merge commit behavior, permission requirements, or failure conditions.

    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 and includes the endpoint for reference. Minor redundancy in 'Accepts/merges' prevents a perfect score, but there is no wasted content.

    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 mutating operation with no annotations and no output schema, the description is too minimal. It lacks context about optional parameters, expected behavior, and any post-conditions, making it incomplete for safe autonomous invocation.

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

    Parameters1/5

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

    Schema description coverage is only 20% and the description adds no parameter-level meaning. It does not explain squash, mergeCommitMessage, or shouldRemoveSourceBranch, leaving the agent without the information needed to set them appropriately.

    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 operation: 'Accepts/merges an MR' and includes the exact API endpoint. This distinguishes it from sibling tools like gitlab_get_merge_request and gitlab_save_merge_request without ambiguity.

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

    Usage Guidelines2/5

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

    The description gives no guidance on when to use this tool versus alternatives such as gitlab_save_merge_request or gitlab_create_merge_request_note. There are no stated conditions, prerequisites, or exclusions.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a write operation via POST, but does not mention required permissions, side effects, idempotency, rate limits, or what happens on failure. The description adds little beyond what 'Creates an issue' already implies.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core operation and adds the endpoint as useful technical context without unnecessary elaboration.

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

    Completeness1/5

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

    This is an issue-creation tool with 5 parameters, no annotations, and no output schema, yet the description gives no behavioral or parameter context. An agent would have to infer important details such as required fields beyond the schema, label syntax, assignee ID types, and expected return data. The description is far too thin for the tool's complexity.

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

    Parameters1/5

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

    Schema description coverage is only 20%, with only projectId documented in the schema. The tool description provides no parameter details, nor does it compensate for the undocumented title, labels, assigneeIds, and description parameters. It does not explain formats, constraints, or relationships between parameters.

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

    Purpose5/5

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

    The description clearly states the action 'Creates an issue' and identifies the specific resource and endpoint (POST /projects/:id/issues), making the tool's purpose unambiguous. The GitLab prefix in the tool name further distinguishes it from similar create-issue tools like jira_create_issue.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives, such as gitlab_get_issue or jira_create_issue. It does not state prerequisites, when not to use it, or how to choose between similar issue-related tools.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Comment on an MR' and gives the POST endpoint; it does not state that the action creates a persistent note, what permissions are required, whether it is reversible, or what response to expect. The POST method implies a write but adds little beyond that.

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

    Conciseness5/5

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

    The description is a single, scannable sentence with no filler. The endpoint parenthetical adds a small but useful technical clarification, and every word earns its place.

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

    Completeness2/5

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

    For a tool with three required parameters, no annotations, and no output schema, this description is too sparse. It omits usage context, expected response, error conditions, and behavioral caveats, leaving the agent to infer most details from the name and endpoint.

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

    Parameters2/5

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

    Schema description coverage is only 33% (only projectId is documented). The description does not explain mergeRequestIid or body, though 'Comment' and 'MR' weakly imply body is the comment text and the IID identifies the merge request. This does not adequately compensate for the undocumented parameters.

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

    Purpose4/5

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

    The description clearly states the action (comment) and resource (merge request), reinforced by the explicit POST endpoint. It does not explicitly differentiate from sibling tools, but the tool name and 'MR' make the target unambiguous.

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

    Usage Guidelines2/5

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

    No guidance is given about when to use this tool versus alternatives, nor when not to use it. There is no mention of prerequisites, contexts, or exclusions, leaving the agent to infer usage entirely from the name and endpoint.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of disclosing side effects and access behavior. It reveals only the HTTP method and endpoint, implying a read-only list, but says nothing about authentication, pagination behavior, or whether it returns all projects vs a filtered subset.

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

    Conciseness5/5

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

    A single line, front-loaded with the action and resource, with the endpoint as a low-cost disambiguator. There is no filler or redundant restating of the tool name.

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

    Completeness2/5

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

    For a tool with no annotations and no output schema, the description is too thin: it doesn't clarify the query parameter, pagination semantics, or what fields are returned. It is minimally callable with zero arguments, but an agent needing filtered or paginated results has to guess.

    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 provides names, types, and numeric constraints but no descriptions, and the description adds no parameter meaning. 'query' remains ambiguous (project name vs key vs text search), and startAt/maxResults are only weak clues to pagination, which the description never mentions.

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

    Purpose4/5

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

    The description uses an explicit action ('Lists') and resource ('Jira projects'), and adds the exact REST endpoint, which makes the operation unambiguous among the Jira siblings. It does not state what subset of projects is returned or whether query changes scope, but the core purpose is clear.

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

    Usage Guidelines2/5

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

    No guidance is given about when to prefer this tool over alternatives such as jira_search_jql or when not to use it. An agent must infer from the name that 'get projects' is for project enumeration, so the when-to-use context is essentially unaddressed.

    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 alone must disclose behavior. It reveals the HTTP method and accepted body formats, but it does not mention permissions, side effects, response behavior, idempotency, or handling of existing pages. This is insufficient for a mutating 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 two short sentences that directly state the core action, endpoint, and body format requirement. It is efficient and front-loaded, though it sacrifices completeness for brevity.

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

    Completeness2/5

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

    For a creation tool with no annotations and no output schema, the description omits critical context: how to obtain spaceId, semantics of status and parentId, relationship between bodyValue and bodyRepresentation, error behavior, and response contents. This is incomplete for a 6-parameter operation.

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

    Parameters2/5

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

    Schema description coverage is only 17%, with spaceId being the only parameter described. The description adds a note about 'storage HTML or atlas_doc_format', which clarifies the bodyRepresentation/bodyValue pairing, but it leaves title, status, parentId, and bodyValue semantics largely unexplained.

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

    Purpose4/5

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

    The description states a specific action ('Creates a page') and identifies the resource plus the HTTP endpoint. The verb 'creates' differentiates it from sibling tools like confluence_update_page and confluence_get_page, though it does not explicitly name those alternatives.

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

    Usage Guidelines3/5

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

    Usage context is only implied by the name and verb: an agent can infer this tool is for creating pages rather than updating or reading them. There is no explicit guidance about when to prefer this tool over confluence_update_page or how to decide between status values like draft and current.

    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?

    There are no annotations, so the description carries the full behavioral disclosure burden. It implies a read-only operation via GET, but does not mention pagination, response shape, scope of accessible spaces, or authentication requirements.

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

    Conciseness5/5

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

    The description is a single concise sentence with no filler. Including the endpoint adds precision without unnecessary length, making it well-structured for a simple list operation.

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

    Completeness2/5

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

    With no output schema and no annotations, 'Lists spaces' plus the endpoint is too thin. An agent cannot tell what the response looks like, how pagination works, or how the optional parameters affect 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 only 25%: keys is described, but type, limit, and cursor are not. The description itself adds no parameter meaning, so it fails to compensate for the low schema coverage.

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

    Purpose5/5

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

    The description identifies a specific verb ('Lists') and resource ('spaces'), and includes the REST endpoint (GET /wiki/api/v2/spaces). This clearly distinguishes it from sibling tools like confluence_get_page or confluence_get_pages_in_space.

    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 about when to use this tool versus alternatives such as confluence_search_cql or confluence_get_pages_in_space. The agent must infer appropriate usage from the tool name alone.

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

  • Behavior2/5

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

    No annotations are provided, so the description must carry the burden of behavioral disclosure. It only says 'Updates a page' and mentions versionNumber; it does not explain that content is replaced, that a stale versionNumber may cause failure, or any authentication/error behavior.

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

    Conciseness4/5

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

    The description is short and front-loaded with the core action. The versionNumber note is useful but somewhat redundant with the schema's required field list.

    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 8 parameters, no annotations, no output schema, and low schema coverage, the description is far from complete. It omits guidance on body format, required parameter roles, version handling, and failure behavior, leaving the agent to infer too much.

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

    Parameters2/5

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

    Schema description coverage is only 13%, so the description should compensate by explaining key parameters. It does not explain bodyValue, title, status, spaceId, bodyRepresentation, or versionMessage; the only mention, that versionNumber is required, merely repeats schema information.

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

    Purpose4/5

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

    The description clearly states the tool updates a Confluence page and identifies the underlying HTTP method. It distinguishes the operation from creation at a basic level, though it does not explicitly contrast with confluence_create_page or other siblings.

    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?

    Use is implied for updating existing Confluence pages, and the note that versionNumber is required provides an important precondition. However, there is no explicit guidance on when to choose this over confluence_create_page or how to obtain the correct versionNumber.

    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 behavioral disclosure. It only states what endpoints are involved, with no mention of whether this is a read-only operation, whether export URLs require asynchronous rendering, or how omitted nodeIds and includeImageFills affect the result. The nodeIds behavior is mentioned only in the parameter schema, not in the description.

    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 one compact sentence with no filler, and it front-loads the core purpose ('Export URLs'). The endpoint references add precision, though the wording is slightly stilted and could be clearer to an agent unfamiliar with Figma API conventions.

    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 six parameters, no required parameters, no output schema, and no annotations, the description leaves important operational details undefined. It does not explain possible combinations of url, fileKey, nodeIds, scale, and format, nor what the response shape is. An agent would likely need to open schemas or rely on trial and error to invoke this tool correctly.

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

    Parameters3/5

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

    Schema description coverage is 67%, with url, fileKey, nodeIds, and includeImageFills already explained in the schema. The description adds endpoint context and the notion of 'image fills,' but does not meaningfully elaborate on scale or format beyond what their constraints and enum already convey. This is an adequate but not exceptional contribution.

    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 names a concrete action ('Export') and specific resources ('URLs' and 'image fills'), and references the underlying Figma GET endpoints. This makes the tool's purpose reasonably clear and helps it stand apart from siblings like figma_get_file and figma_get_screenshot, though it could be phrased more plainly.

    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 gives no explicit guidance on when to use this tool versus alternatives, and it never names sibling tools or exclusion conditions. The endpoint references imply an asset-export use case, but an agent is left to infer when this should be chosen over figma_get_screenshot or figma_get_file.

    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 reveal behavioral details, but it only restates the endpoint. It does not disclose pagination, whether resolved comments are included, return structure, authentication needs, or any side effects. The GET endpoint hints at a read operation but little else.

    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 packs resource, verb, and endpoint into minimal space. There is no filler or repetition, and the key information is front-loaded.

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

    Completeness2/5

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

    With no output schema and no annotations, the description should explain what the response contains and how the tool behaves. It does neither, leaving an agent to infer return values, comment ordering, filtering, and pagination.

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

    Parameters3/5

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

    Schema coverage is 100%, with both 'url' and 'fileKey' already described in the schema. The tool description adds no further meaning about how these parameters interact or when one should be preferred, so the baseline 3 is appropriate.

    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 names a specific resource ('File comments') and includes the exact REST endpoint, making the tool's purpose clear. It is distinguishable from sibling Figma tools like figma_get_file or figma_get_metadata, though it doesn't explicitly contrast with them.

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

    Usage Guidelines2/5

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

    There is no guidance about when to use this tool versus alternatives, such as figma_get_design_context or figma_get_file. The endpoint implies 'retrieve comments on a file,' but the description does not state use cases, exclusions, or preferred alternatives.

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

  • Behavior3/5

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

    With no annotations, the description carries the behavioral disclosure burden. 'Gets' suggests a read-only operation and 'optionally commits, diffs, notes, and pipelines' indicates that include flags affect response composition. However, it does not explicitly state that the operation is side-effect-free, what defaults apply, or how the optional components alter the response, leaving meaningful ambiguity.

    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 with no filler words. It efficiently communicates the primary action and the optional response pieces, though the list order is minor and not fully aligned with parameter naming. It is concise without being verbose.

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

    Completeness2/5

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

    Given the absence of annotations and output schema, plus six parameters and many sibling tools, this short description is incomplete. It does not explain how to identify the MR, which parameters are required, when to prefer this over gitlab_list_merge_requests, or what the response contains by default. An agent could make a reasonable first call, but would lack important context for robust usage.

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

    Parameters2/5

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

    The schema description coverage is only 17%, yet the description does not explain the required parameters projectId and mergeRequestIid; in particular, mergeRequestIid's distinction from a global MR ID is left undocumented. The optional list partially maps to the include* booleans, but it does not connect those concepts to the actual parameter names or clarify required arguments, so it only weakly compensates for the low schema coverage.

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

    Purpose4/5

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

    The description states a specific verb ('Gets') and a specific resource ('an MR'), and lists the optional data components (commits, diffs, notes, pipelines). It is distinguishable from sibling gitlab_list_merge_requests because it targets a single MR rather than a list. It does not explicitly name the required identifiers, but the core purpose is clear.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus alternatives such as gitlab_list_merge_requests, gitlab_get_issue, or gitlab_save_merge_request. The phrase 'Gets an MR' implies use for retrieval, but no exclusions or comparison to other tools are provided, so an agent must infer the appropriate context from the name alone.

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

  • Behavior3/5

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

    With no annotations, the description must carry behavioral disclosure, and 'Gets' plus 'GET /pipelines/:pipeline_id' clearly indicate a read-only operation. It does not mention edge behaviors such as 404 handling, required permissions, or whether the full pipeline object is returned. For a simple GET operation, this is acceptable but minimal.

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

    Conciseness4/5

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

    The description is a single sentence with no wasted words, using a standard verb-resource form plus the endpoint. It is front-loaded and efficient. It is so terse that it sacrifices helpful context, but for a simple GET operation the brevity is not inappropriate.

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

    Completeness2/5

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

    The tool has no output schema, no annotations, and sits among many GitLab siblings with overlapping concepts, yet the description provides only minimal GET semantics. It does not explain when to choose this over list_pipelines or get_pipeline_jobs, nor how to obtain a valid pipelineId. This is not complete enough for confident selection and correct invocation.

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

    Parameters2/5

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

    Only one of the two parameters (projectId) has a schema description, and the tool description adds no parameter-level detail. pipelineId is only typed as a positive integer with no hint about where it comes from or how it relates to the project. The endpoint placeholder offers slight context, but it is insufficient compensation for the incomplete schema coverage and the description's silence on parameter meaning.

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

    Purpose4/5

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

    The description clearly identifies the action ('Gets') and resource ('a pipeline'), and the endpoint path confirms the specific API call. It is distinct from list_pipelines, which retrieves multiple pipelines, and from pipeline-related siblings like gitlab_get_pipeline_jobs. However, it does not explicitly differentiate itself from these siblings in the text.

    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 about when to use this tool versus gitlab_list_pipelines, gitlab_get_pipeline_jobs, or other GitLab siblings. There are no exclusions, prerequisites, or context cues beyond the bare GET semantics. An agent must infer usage from the tool name alone.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that the tool mutates state via POST/PUT, but it does not explain side effects, permissions required, what happens on update, required fields for creation, or response behavior. This is insufficient for a mutation tool with no annotation safety net.

    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 with no filler and includes the essential HTTP method distinction. It is concise and immediately communicates the core operation. However, it is so terse that it omits operationally important details, which slightly reduces the appropriateness of its size.

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

    Completeness2/5

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

    This is a 10-parameter, dual-mode mutation tool with no annotations and no output schema, so the description needs to supply substantial context. It fails to explain the create-vs-update trigger, required parameters for each mode, or consequences of invocation. The description is not complete enough for an agent to reliably select and call 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 only 10%, yet the description adds no parameter-level meaning. It does not indicate that mergeRequestIid selects update mode, that sourceBranch and targetBranch are likely needed for create, or how draft/removeSourceBranch behave. The agent must rely on schema property names alone for most 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 states a clear verb-resource pairing: 'Creates (POST) or updates (PUT) a merge request.' It names both the action and the target resource, and the HTTP methods reinforce the dual nature of the tool. There is no ambiguity with sibling tools like gitlab_list_merge_requests or gitlab_get_merge_request.

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

    Usage Guidelines2/5

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

    No guidance is given about when to use this tool versus alternatives, or when the create path applies versus the update path. The description does not mention that mergeRequestIid likely distinguishes update from create, nor does it reference any sibling tool for comparison. An agent must infer usage entirely from the tool name and schema.

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

  • Behavior2/5

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

    No annotations exist, so the description must carry the full behavioral disclosure burden. It only says 'Adds' and repeats the endpoint, with no mention of required permissions, time-tracking prerequisites, side effects on the issue, or response/error behavior. This gives minimal transparency beyond the mutation itself.

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

    Conciseness4/5

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

    The description is a single direct sentence with no filler, and the endpoint is useful context. It is concise, though it could have added more guidance without becoming verbose.

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

    Completeness2/5

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

    With no annotations, no output schema, four parameters, and incomplete parameter coverage, the one-sentence description is not enough for an agent to understand all requirements and expected behavior. The endpoint provides context, but the definition is otherwise minimal.

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

    Parameters2/5

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

    Schema coverage is only 50%, and the description adds no parameter details. While started and timeSpent have schema descriptions, comment and issueIdOrKey remain undocumented in both schema and description, and the description does not compensate for that 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 states a specific verb and resource ('Adds a worklog') and includes the exact REST endpoint, making it clear what the tool does. It is easily distinguished from siblings like jira_add_comment by the entity being added.

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

    Usage Guidelines2/5

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

    No guidance is given about when to use this tool versus alternatives such as jira_add_comment or jira_create_issue. The only implied usage is derived from the tool name, and there are no exclusions or conditions provided.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden—yet it only states that a link is created. It does not disclose that the operation mutates both issues, requires a valid existing issue link type, or may require specific permissions.

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

    Conciseness4/5

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

    The description is a single efficient sentence that front-loads the operation and includes an explicit endpoint. There is no redundancy or padding, though it could have used the brevity to mention key behavioral details.

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

    Completeness3/5

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

    For a small, fully documented schema, the description is minimally viable: all three required parameters have schema descriptions and the operation is clear. However, the lack of any annotation, output schema, or mention of dependencies like valid link types leaves notable gaps for a mutation tool.

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

    Parameters3/5

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

    Schema description coverage is 100%, and the individual parameter descriptions ('Type name', 'Destination issue (inward)', 'Source issue (outward)') are reasonably clear. The description adds no further parameter meaning beyond what the schema already provides, so the baseline score of 3 applies.

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

    Purpose4/5

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

    The description clearly states the action ('Creates a link between issues') and the resource, with the REST endpoint supplied as confirmation. It separates this tool from 'jira_get_issue_link_types' and 'jira_get_remote_issue_links', though it does not explicitly contrast itself with 'jira_create_remote_issue_link'.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus alternatives, nor any prerequisite such as first retrieving valid issue link types via jira_get_issue_link_types. An agent must infer context entirely from the name and endpoint.

    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 includes the HTTP method GET and the word 'metadata,' which strongly implies a read-only operation. However, with no annotations provided, the description carries the full burden and it does not explain behavior such as what happens when issueTypeId is omitted, required permissions, or response shape beyond the endpoint name.

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

    Conciseness5/5

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

    The description is a single compact sentence that front-loads the resource and includes the endpoint for precision. There is no redundant wording or filler.

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

    Completeness2/5

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

    Without an output schema or annotations, the description is too sparse to be fully self-sufficient. It lacks return value details, the effect of the optional issueTypeId parameter, pagination behavior, and any indication of permissions or prerequisites.

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

    Parameters2/5

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

    Schema description coverage is 50%; issueTypeId has a helpful description, but the required projectIdOrKey is undocumented. The tool description adds no parameter-level clarification, so an agent must infer from the parameter name and endpoint path that a project key or ID is expected.

    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 identifies a specific resource—issue type metadata and create fields—and gives the exact endpoint, so an agent can distinguish it from related tools like jira_get_issue_link_types or jira_get_remote_issue_links. The phrasing is slightly telegraphic but the meaning is clear.

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

    Usage Guidelines2/5

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

    No guidance is provided about when to use this tool versus alternatives such as jira_get_issue, jira_get_projects, or jira_get_issue_link_types. The endpoint path implies it is project-scoped, but the description does not state the intended use case or any exclusions.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavior on its own. It only repeats the search action and the POST endpoint; it does not mention pagination, response shape, authentication needs, or whether the operation has 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, front-loaded sentence with no filler. The endpoint parenthetical adds useful API context and every word earns its place.

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

    Completeness2/5

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

    For a tool with 5 parameters, no parameter descriptions, no annotations, and no output schema, this description is under-specified. It does not explain pagination via nextPageToken, how fields and expand work, or what the response contains.

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

    Parameters2/5

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

    Schema description coverage is 0%, yet the description only clarifies the jql parameter by mentioning JQL. The parameters expand, fields, maxResults, and nextPageToken receive no explanation beyond their names in the schema.

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

    Purpose4/5

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

    The description states a specific verb and resource: 'Search issues with JQL' and gives the exact REST endpoint. It is clearly distinct from jira_get_issue, which retrieves a single issue, though it does not explicitly name alternatives.

    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 phrase 'Search issues with JQL' implies the tool is for JQL-based issue searching, but it does not state when to prefer it over jira_get_issue or other Jira tools. There is no explicit when-to-use or exclusion guidance.

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

  • Behavior2/5

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

    There are no annotations, so the description carries the full disclosure burden. It does state that this is a mutating operation that creates a commit, but it does not disclose effects on the target branch, required permissions, or what happens when the commit is created.

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

    Conciseness5/5

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

    The description is a single, focused sentence with no filler. It front-loads the core purpose and includes the endpoint, which is useful context without adding unnecessary length.

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

    Completeness2/5

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

    For a mutating operation with five parameters, no annotations, and no output schema, the description is too sparse. It lacks critical context about required parameters, action semantics, branch behavior, and return values, leaving an agent under-informed.

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

    Parameters2/5

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

    Schema description coverage is only 20%, with only projectId described. The description adds little beyond the word 'actions' and does not explain branch, startBranch, commitMessage, or the structure and allowed values of actions. It fails to compensate for the schema's low coverage.

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

    Purpose5/5

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

    The description states a specific verb and resource: 'Creates a commit with actions' and includes the exact endpoint '(POST /repository/commits)'. This is clear and distinct enough from siblings like gitlab_add_branch or gitlab_get_commit.

    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 for when to use this tool versus alternatives. It does not mention that it is for creating new commits on a GitLab branch, nor does it contrast with gitlab_add_branch, gitlab_save_merge_request, or other commit-related operations.

    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 behavioral burden. It discloses that return content is base64-encoded, which is useful, and the GET verb implies a read-only operation. However, it doesn't mention error behavior, authentication, URL encoding of the file path, or limits.

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

    Conciseness5/5

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

    The description is extremely concise and front-loaded with the core purpose. The endpoint and base64 detail are delivered in one compact sentence with no filler.

    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 file-fetch operation, the description covers the essential action and a key response trait. But with no output schema and no annotations, an agent may still lack clarity on the exact response shape, error cases, and path-handling requirements.

    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 descriptions cover ref and projectId, but filePath has no schema description. The description's endpoint hint ':path' adds some context for filePath, but not enough to clarify path formatting, encoding, or whether a leading slash is needed. It adds little value beyond the schema.

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

    Purpose4/5

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

    The description states the resource (repository file), the operation (GET), and a key detail (base64 content). It clearly identifies the tool as a file-content fetcher. It doesn't explicitly distinguish itself from sibling tools, but the resource and operation are specific enough given the sibling list.

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

    Usage Guidelines2/5

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

    There is no guidance about when to use this tool versus alternatives. The description only states what the tool does, not when it should be chosen or when another gitlab tool would be more appropriate.

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

  • Behavior2/5

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

    There are no annotations, so the description carries the full behavioral burden, but it only states that the tool lists merge requests and provides the endpoint. It does not disclose pagination behavior, default result counts, state filtering effects, read-only guarantees, or any authentication requirements.

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

    Conciseness5/5

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

    The description is a single concise sentence that front-loads the action and includes the endpoint for precision. There is no filler or redundant content.

    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 7 parameters, no annotations, and no output schema, a one-line description is insufficient. It omits key context such as how filtering parameters work, pagination defaults, and what the response contains, leaving the agent with an incomplete picture.

    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 14%, with projectId being the only documented parameter. The description adds no parameter meaning beyond the endpoint's ':id' placeholder, leaving page, perPage, state, search, sourceBranch, and targetBranch semantically under-specified.

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

    Purpose5/5

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

    The description states a specific action ('Lists merge requests') and resource (project merge requests via the endpoint). This clearly distinguishes it from sibling tools like gitlab_get_merge_request, gitlab_accept_merge_request, and gitlab_save_merge_request.

    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 about when to use this tool versus alternatives, such as using gitlab_get_merge_request for a single merge request or gitlab_create_merge_request_note for commenting. The agent must infer usage purely from the tool name and endpoint.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden. It does disclose the HTTP method (GET), implying a read-only operation scoped to a project. However, it does not mention pagination, return format, authorization needs, or how the optional 'search' parameter affects behavior.

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

    Conciseness5/5

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

    The description is a single compact sentence with no filler. The resource and endpoint are front-loaded, making it immediately scannable and easy to parse.

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

    Completeness3/5

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

    For a simple list-style endpoint, the description is minimally adequate, but it omits any explanation of what the 'search' parameter does and what the response contains. An agent could probably invoke the tool correctly for basic use, but would lack context for filtering or interpreting results.

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

    Parameters2/5

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

    Schema coverage is only 50%; projectId is documented, but the 'search' parameter has no description in the schema. The tool description also does not explain the search behavior, so an agent gets no added meaning for the optionally critical parameter beyond the tool name.

    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 identifies the resource ('Project labels') and the exact API path, making the tool's purpose understandable at a glance. Although it lacks an explicit verb like 'list' or 'search', the GET endpoint and tool name strongly imply retrieving labels for a project.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus alternatives. The sibling list includes other GitLab tools like gitlab_search, but the description does not explain how this label-specific search differs or when to prefer it.

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

  • Behavior2/5

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

    With no annotations, the description carries the burden of behavioral disclosure. It only indicates the HTTP method (GET) and the resource, which implies a read-only operation, but it does not state that multiple links are returned, what the response structure is, whether pagination exists, or how errors/no links are handled.

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

    Conciseness4/5

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

    The description is a single concise sentence with the resource front-loaded and the endpoint in parentheses. It contains no filler, but it is more of a fragment than a complete instructional sentence.

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

    Completeness2/5

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

    The tool is simple with one parameter, but there is no output schema and no annotations, so the description needs to convey what the tool returns and when to use it. It only identifies the resource and endpoint, leaving return semantics and usage context unstated.

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

    Parameters3/5

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

    Schema description coverage is 0%, so the description needs to compensate. The endpoint template 'issue/{key}/remotelink' clarifies that issueIdOrKey is used as the path parameter, but it adds little beyond the self-descriptive property name 'issueIdOrKey' and does not specify accepted formats or behavior for invalid keys.

    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 names the resource ('Remote links on an issue') and provides the exact HTTP endpoint, making it clear this retrieves remote links for a Jira issue. It is distinguishable from sibling tools like jira_create_remote_issue_link and jira_get_issue_link_types, though it lacks an explicit verb like 'list' or 'fetch'.

    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 by the GET endpoint and resource name: use it when you need remote links of an issue. However, there is no explicit guidance about when to use this instead of related tools like jira_get_issue_link_types or jira_get_issue, and no mention of alternatives or exclusions.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full disclosure burden, but it only says 'Looks up users and accountId' and names the endpoint. It does not state whether this is read-only, how search matching behaves, whether maxResults limits results, or what the response shape looks like.

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

    Conciseness5/5

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

    The description is a single concise sentence with no wasted words. Including the REST endpoint adds valuable precision without bloating the text.

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

    Completeness3/5

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

    The tool is simple and the description identifies the main purpose, but it lacks guidance on when to invoke it, any caveats about search behavior, and detail about the maxResults parameter. Since there is no output schema or annotations, the description alone provides only partial context.

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

    Parameters2/5

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

    The schema describes the 'query' parameter as 'Name or email.', but the 'maxResults' parameter has no description and the tool description adds no parameter-level meaning. With only 50% schema description coverage, the description should compensate but does not.

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

    Purpose4/5

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

    The description uses a specific verb ('Looks up') and clear resource ('users and accountId'), plus the exact REST endpoint, making the tool's function immediately understandable. It does not explicitly differentiate from siblings, but no other sibling performs user lookup, so ambiguity is low.

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

    Usage Guidelines3/5

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

    The description implies the tool should be used when needing to find a user's accountId, but it never states when to use this tool versus alternatives or provides any prerequisite context. There are no explicit usage conditions or exclusions.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden and does disclose that the result is composed via REST and is not the official MCP codegen, which alerts agents to potentially different behavior. It does not address authentication, side effects, or failure modes, but 'get' implies a read operation and the output shape is stated.

    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 short sentences, with the main output content front-loaded and no filler. Every sentence adds information about the tool's nature.

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

    Completeness2/5

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

    With no output schema and no annotations, the description should do more to explain invocation: which parameter is needed first, how nodeIds changes the result, and how the returned 'context' is structured. The broad output categories are present, but the agent is left without practical guidance for actually composing a useful request.

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

    Parameters3/5

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

    Schema description coverage is 100% and the schema already documents url, fileKey, nodeIds, includeVariables, and includeScreenshot. The description adds no parameter-level meaning, so the baseline score of 3 applies.

    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 identifies the deliverable as implementation context (layout, tokens, components, screenshot URL), which is a clear resource distinct from sibling Figma tools like figma_get_file or figma_get_screenshot. However, it lacks an explicit action verb such as 'retrieves' or 'generates', and the 'composed via REST' phrasing leans on implementation detail.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus figma_get_file, figma_get_metadata, figma_get_screenshot, or figma_get_variable_defs. The only disqualifier, 'Not the official MCP proprietary codegen', is an implementation caveat, not usage direction. The intended usage is only implied by 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?

    With no annotations, the description carries the safety burden. 'GET' signals a non-mutating read operation, and the listed fields disclose the intended return shape. However, it does not clarify the response format, depth behavior, potential errors, or whether any side effects are possible.

    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 tight sentence with no filler. The output shape is front-loaded, followed by the endpoint, making it easy to scan.

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

    Completeness2/5

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

    The tool has no annotations and no output schema, so the description must carry more explanatory weight. It omits depth semantics, node-id vs. URL handling, and enough detail about the returned tree structure, leaving an agent under-informed for correct invocation.

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

    Parameters2/5

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

    Schema coverage is 75%, and the description adds no parameter-level meaning. In particular, the 'depth' parameter has no schema description and is not explained in the tool description, leaving its semantics ambiguous for an agent.

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

    Purpose4/5

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

    The description identifies a specific resource (Figma nodes) and a concrete endpoint, with the output fields (id, name, type, size) spelled out. It is reasonably distinguishable from sibling tools like figma_get_file by the word 'slim', though it does not explicitly name the alternative.

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

    Usage Guidelines3/5

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

    No explicit when-to-use or when-not-to-use guidance is provided. The word 'slim' implies lightweight metadata retrieval, but the description does not state when to choose this over figma_get_file, figma_get_design_context, or other siblings.

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

  • Behavior3/5

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

    Annotations are absent, so the description itself must convey behavior. The GET endpoint indicates a non-mutating read, and 'Local (and optionally published)' describes the data scope returned. However, it does not disclose pagination, errors, auth requirements, or the structure of the returned variable definitions, leaving the behavioral picture thin.

    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 compact sentence with no filler and it leads with the main scope distinction (local vs published). It is efficient and well-organized, though the brevity means some behavioral context is omitted and penalized elsewhere.

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

    Completeness3/5

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

    For a simple read-only tool with fully described parameters, this is minimally adequate: the core resource and the local/published option are stated. But with no output schema or annotations, it leaves the return payload, the relationship between url and fileKey, and when includePublished matters unspecified.

    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?

    All three parameters have descriptions in the schema (100% coverage), so the schema already carries the semantic load. The tool description only echoes the 'published' concept and adds no new detail about url/fileKey precedence or includePublished behavior. Baseline 3 applies.

    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 identifies the resource ('variables') and the scope ('Local (and optionally published)'), and the parenthetical 'GET /v1/files/:key/variables/...' makes the retrieval action explicit. It is clear enough to avoid confusing this with the other Figma tools, though it never states the action as a verb and doesn't explicitly differentiate from siblings.

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

    Usage Guidelines2/5

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

    No when-to-use guidance or alternative tools are mentioned. The only contextual hint is 'optionally published', which maps to includePublished but does not explain when to enable it. An agent must infer from the tool name and sibling list that this is the way to read variable definitions.

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

  • Behavior3/5

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

    With no annotations, the description carries the behavioral disclosure burden. The GET method clearly signals a non-mutating read operation, but the description does not mention what the response contains, whether transitions include ids/names, or how the result relates to jira_transition_issue. Basic safety is clear, but deeper behavior is not disclosed.

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

    Conciseness5/5

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

    The description is a single short sentence that front-loads the core purpose and includes the exact endpoint. Every word contributes information, and there is no redundancy or filler.

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

    Completeness2/5

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

    For a tool with no output schema and no annotations, the description is too thin for full self-sufficiency. It omits what the returned transitions look like, how the issueIdOrKey should be formatted, and how this tool connects to jira_transition_issue. An agent would likely understand the tool's intent but would need to infer important invocation details.

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

    Parameters2/5

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

    The input schema has only issueIdOrKey, and the description provides no additional meaning, examples, or format guidance. Since schema description coverage is 0%, the description should compensate, but it does not mention the parameter at all. The parameter name is somewhat self-explanatory, but no concrete detail such as 'PROJ-123' is given.

    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 resource and action: it returns available transitions for a Jira issue, and the included GET endpoint confirms it is a read operation. It does not explicitly differentiate itself from the sibling jira_transition_issue, though the name and wording make that distinction easy to infer.

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

    Usage Guidelines3/5

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

    The description implies the tool is used to fetch valid transitions before performing a transition, especially with the sibling jira_transition_issue present. However, it never explicitly says when to use this tool rather than alternatives, nor does it mention any workflow or prerequisites.

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

  • Behavior2/5

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

    With no annotations, the description carries the full behavioral burden, but it only states the mutation ('Creates') and the endpoint. It does not disclose required permissions, side effects, return behavior, or prerequisites like highlighted selection properties.

    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, front-loads the core action, and includes the API endpoint without any filler. Every word earns its place.

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

    Completeness2/5

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

    For a create operation with four parameters, a nested object, no annotations, and no output schema, a single sentence is insufficient. It omits guidance on required body content, representation format, and how the highlighted-selection properties should be structured.

    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 50%, and the description adds no parameter-level meaning. Required fields such as bodyValue remain unexplained, and inlineCommentProperties is only vaguely described in the schema as 'Highlighted selection/text properties' without detail.

    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 names a specific verb and resource: 'Creates an inline comment' with the exact API endpoint. This clearly distinguishes it from sibling tools like confluence_create_footer_comment and confluence_create_page.

    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 purpose implies when to use the tool: when an inline comment needs to be created. However, it provides no explicit guidance on when not to use it or how it differs from footer comments and page creation tools.

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

  • Behavior3/5

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

    The GET method implies a read-only fetch, but there are no annotations and the description discloses no further behavior such as return payload shape, error behavior, or the effect of bodyFormat. This is acceptable for a simple getter but does not add much behavioral context beyond the operation itself.

    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 front-loads the action and includes the endpoint for precision. There is no filler or 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?

    The tool is simple and the schema covers all parameters, but with no output schema and no annotations, the return value shape remains undocumented. It is enough to make a basic call with pageId, but it lacks richer context about what the agent will receive back.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents both pageId and bodyFormat adequately. The description adds no parameter-specific detail, so it meets the baseline without exceeding it.

    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 specific resource (a page) and the exact REST endpoint, which is enough to distinguish it from sibling tools like confluence_get_page_descendants or confluence_get_page_footer_comments. However, it does not explicitly contrast it with those siblings, so it stops short of a 5.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus alternatives such as confluence_get_page_descendants, confluence_get_pages_in_space, or confluence_search_cql. The agent is left to infer the correct choice from the tool name and sibling names.

    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 only states that a branch is created and identifies the HTTP method; it does not mention side effects, required permissions, idempotency, or error behavior such as what happens if the branch already exists.

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

    Conciseness5/5

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

    The description is a single short, front-loaded sentence with no filler. The parenthetical endpoint adds useful precision without repeating schema information or wasting words.

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

    Completeness2/5

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

    For a mutating tool with no annotations and no output schema, the description is too sparse. It omits what a successful response looks like, behavior on conflicts, prerequisites such as project existence or permissions, and any post-condition details. The schema covers the parameters but not the operational context.

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

    Parameters2/5

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

    Schema description coverage is 67%, so ref and projectId are partially explained by the schema, but the description adds no parameter-level meaning. The 'branch' parameter has no schema description and the tool description does not explicitly clarify that it is the new branch name, leaving an ambiguity that the description fails to resolve.

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

    Purpose5/5

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

    The description starts with a specific verb and object, 'Creates a branch,' and adds the exact REST endpoint 'POST /repository/branches', making the tool's purpose unambiguous. It is clearly distinct from sibling GitLab tools such as gitlab_add_commit or gitlab_create_issue, none of which create branches.

    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 only implied: an agent can infer this tool is for creating a new branch in a GitLab project, but there is no explicit guidance on when to use it versus alternatives, nor any mention of preconditions or limitations. No exclusions or alternative tools are noted.

    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 reveals the HTTP method GET and the targeted endpoint, which implies a non-destructive read operation. However, with no annotations at all, it does not disclose what commit data is returned, how the 'stats' parameter affects behavior, or any error/rate-limit considerations.

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

    Conciseness5/5

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

    The description is a single focused sentence with no filler. The action, resource, and endpoint are front-loaded, and every part contributes useful information.

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

    Completeness2/5

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

    With no output schema and no annotations, the description should carry more weight. It fails to explain the response shape, the role of 'stats', or how projectId is used in the endpoint, leaving an agent with significant gaps for correct invocation and result interpretation.

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

    Parameters2/5

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

    Schema description coverage is only 33%; only projectId is described. The description does indicate that sha is part of the URL path, adding some meaning, but the 'stats' boolean parameter remains entirely unexplained in both description and schema.

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

    Purpose5/5

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

    The description clearly states the action ('Gets') and the resource ('a commit'), and reinforces it with the HTTP endpoint 'GET /repository/commits/:sha'. This distinguishes it from sibling tools like gitlab_add_commit and gitlab_get_merge_request without requiring schema inspection.

    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 gives no guidance on when to use this tool versus alternatives, and there are many GitLab sibling tools that could overlap. No when-to-use criteria, exclusions, or alternative tool names 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 provided, the description carries the burden for behavioral disclosure. It does add useful behavior — default membership scoping and a simplified payload — but it does not disclose pagination behavior, response shape, or any read-only/authorization context, leaving meaningful gaps.

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

    Conciseness5/5

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

    Two short sentences with no filler, and the most decision-relevant information (default membership and simple payload) is front-loaded. It is a model of concise, scannable tool documentation.

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

    Completeness2/5

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

    This is a 12-parameter tool with no output schema and no annotations, so the description needs to provide more context for correct invocation. It gives the default call behavior but omits pagination, filtering guidance, and the shape of the returned payload, making it incomplete for an agent deciding between or configuring parameters.

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

    Parameters2/5

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

    Schema description coverage is only 33%, so the description needed to compensate for many undocumented parameters. It only addresses defaults for membership and simple, while page, sort, owned, search, visibility, starred, archived, and others receive no guidance from the description.

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

    Purpose5/5

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

    States an explicit verb and resource ('Lists projects') and even cites the endpoint (GET /projects). It also communicates default scoping ('user's membership, simple payload'), which clearly separates it from sibling list tools like gitlab_list_merge_requests or gitlab_list_project_members.

    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 when-to-use or when-not-to-use guidance is given, and no alternative tools are named. The 'Defaults to the user's membership' line hints at a primary use case but never tells the agent when to prefer this over gitlab_search or other GitLab list tools.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It conveys that the operation is a mutation through the verb 'Adds' and the POST method, but says nothing about side effects (e.g., watcher notifications), required permissions, or whether the created comment is returned. This is thin for a write operation.

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

    Conciseness5/5

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

    A single short sentence that front-loads the action and appends a high-value endpoint reference. There is no filler; every element earns its place.

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

    Completeness2/5

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

    The tool is structurally simple (2 required params, no output schema), but with zero annotations and 0% schema description coverage the description must do more. It leaves the body format ambiguous and gives no indication of return values or failure modes, so an agent could invoke it with a malformed comment payload.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. The endpoint's '{key}' segment gives a useful hint that the required issueIdOrKey is the Jira issue key used in the URL path, but the body parameter — which accepts either a string or an object — is left entirely unexplained, leaving ambiguity about whether to send plain text, markdown, or ADF.

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

    Purpose5/5

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

    States a specific verb and resource — 'Adds a comment' — and pins the exact operation with the REST endpoint 'POST /rest/api/3/issue/{key}/comment'. The '{key}' path segment makes clear this targets a Jira issue's comments, distinguishing it from comment siblings like confluence_create_inline_comment and from jira_add_worklog without opening any schema.

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

    Usage Guidelines3/5

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

    Usage context is only implied: the 'jira' namespace in the name and the '/issue/{key}/comment' endpoint signal this is for adding a comment to a Jira issue. There is no explicit routing versus alternatives such as jira_add_worklog or confluence_create_footer_comment, and no exclusions or prerequisites like required comment permissions.

    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 disclosure burden. It does convey the HTTP method (GET), which establishes read-only, non-mutating semantics — the most important behavioral trait for a fetch tool. However, it says nothing about error behavior, permissions, or response handling, which is a gap given zero annotation coverage.

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

    Conciseness5/5

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

    A single nine-word sentence with zero filler; verb and resource are front-loaded and the endpoint is parenthesized as precise supporting detail. Every word earns its place.

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

    Completeness3/5

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

    For a simple GET-by-key tool with a well-described schema, the description is minimally adequate: it names the operation and endpoint. But with no output schema and no annotations, it leaves return-value expectations, error behavior, and routing decisions to the agent's prior Jira API knowledge — the bare minimum rather than genuinely 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 coverage is 67%, leaving the `expand` parameter undocumented in both the schema and the description. The {key} placeholder in the endpoint maps to issueIdOrKey but adds no meaning beyond the schema's existing 'Key or ID, e.g. ABC-123.' The description does not compensate for the undocumented parameter.

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

    Purpose4/5

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

    The description states a specific verb and resource ('Gets a Jira issue') and pins it down with the exact REST endpoint (GET /rest/api/3/issue/{key}). The endpoint path distinguishes it from sibling get-* tools like jira_get_transitions and jira_get_remote_issue_links, though the core phrasing largely restates the tool name, so it stops short of a 5.

    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 jira_search_jql or the sibling get-* operations. The intended use case (fetch a single issue by key or ID) is implied by the verb and endpoint, but there is no when-not-to-use direction or mention of alternatives.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the behavioral burden. It signals a read-only operation via 'GET /v1/files/:key' and warns that payloads can be large enough to warrant depth/ids. It does not mention auth requirements, error behavior, or return structure, but for a straightforward read call this is sufficient.

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

    Conciseness5/5

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

    The description is two short sentences with no filler. The core action and endpoint are front-loaded, and the second sentence provides a practical tip that earns its place.

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

    Completeness3/5

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

    Given there is no output schema and no annotations, the description could say more about the returned document structure or which parameter is primary when all parameters are optional. However, the schema documents all parameters well, and the description conveys the core operation and the key payload-reduction technique, so it is adequate but not exhaustive.

    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 100%, establishing a baseline of 3. The description adds value by explaining that 'depth/ids' can shrink the payload, which is not explicitly stated in the input schema and helps an agent understand how to control response size.

    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 ('Gets') and the resource ('the Figma document'), and even includes the exact endpoint. It does not explicitly contrast with sibling tools like figma_get_metadata or figma_get_screenshot, but the document scope is reasonably distinct without needing further differentiation.

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

    Usage Guidelines2/5

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

    There is no guidance about when to choose this tool over alternatives such as figma_get_metadata or figma_get_design_context. The only instruction, 'Use depth/ids to shrink the payload,' is about parameter usage rather than tool selection, so an agent gets no routing or exclusion criteria.

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

  • Behavior3/5

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

    With no annotations, the description itself must carry the behavioral burden. The 'GET' verb does indicate a non-mutating read, which is useful, but nothing is said about return format, error behavior, permissions, or any other side-effect-relevant trait.

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

    Conciseness5/5

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

    A single, short sentence that immediately states the action and resource. No filler or repetition of schema details.

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

    Completeness3/5

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

    For a low-complexity read tool, the endpoint plus schema covers basic invocation. However, the absence of any return-value description and the undocumented issueIid parameter leave meaningful gaps for an agent deciding whether the result satisfies a request.

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

    Parameters2/5

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

    Schema coverage is only 50%; projectId has a description but issueIid does not. The description's endpoint pattern '/projects/:id/issues/:iid' mirrors the parameter names without explaining what an iid is or how it differs from an id, so it fails to compensate for the missing schema documentation.

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

    Purpose5/5

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

    The description uses a specific verb ('Gets'), a clear resource ('an issue'), and the exact REST endpoint. This unambiguously distinguishes it from siblings like gitlab_get_merge_request or gitlab_create_issue.

    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 gives no explicit guidance about when to use this tool versus alternatives, and does not mention prerequisites or exclusions. The endpoint makes the basic use obvious, but no decision support 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?

    There are no annotations provided, so the description carries the full burden of behavioral disclosure. It only states a GET endpoint, which hints at read-only behavior, but it does not mention pagination, whether all jobs are returned, or what the response contains; this is thin coverage for a tool with no annotation support.

    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 compact: a one-phrase resource statement followed by the exact API endpoint. Every word earns its place, and the key information is front-loaded before the parenthetical endpoint.

    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 two-parameter listing operation, the description is minimally sufficient: it identifies the inputs conceptually and the expected collection of jobs. However, with no output schema and no annotations, the lack of any mention of response format, pagination, or permissions leaves notable gaps in what an agent needs for robust use.

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

    Parameters3/5

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

    Schema coverage is 50%, with projectId already described. The endpoint string adds a little value by clarifying that pipelineId maps to the ':pipeline_id' path segment, but the description does not meaningfully expand on the schema or add context for how the parameters relate, such as requiring an existing pipeline.

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

    Purpose5/5

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

    The description specifies the resource ('jobs of a pipeline') and even gives the exact HTTP verb and path ('GET /pipelines/:pipeline_id/jobs'), so the tool's action and target are unambiguous. It also differentiates from siblings like gitlab_get_pipeline and gitlab_get_job by clearly focusing on the plural jobs collection.

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

    Usage Guidelines3/5

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

    The description implies the correct use case: when you need the jobs belonging to a particular pipeline. However, it never explicitly states when not to use it or mentions alternatives such as gitlab_get_job for a single job, leaving the routing decision to inference from sibling names.

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

  • Behavior3/5

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

    With no annotations, the description carries the disclosure burden. It discloses the endpoint and a meaningful behavioral difference: includeInherited uses members/all and includes inherited members. It does not mention pagination or return shape, but for a simple read-only list the key behavior is stated.

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

    Conciseness5/5

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

    Extremely compact and front-loaded: the resource and endpoint appear first, followed by the inherited-members caveat. There is no filler wording or repetition of schema details. Every element earns its place.

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

    Completeness3/5

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

    For a low-complexity read-only list, the description plus the projectId schema is nearly sufficient for a basic call. The optional query parameter is unexplained and no output structure is described, but neither blocks correct use for the common case. Adequate but not thorough.

    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 only 33%, so the description must add parameter meaning. It does explain includeInherited via the members/all note, but the query parameter remains entirely undocumented in both the schema and the description. It adds some but not complete parameter semantics.

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

    Purpose4/5

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

    The description identifies the resource ('Project members') and the exact API endpoint, making the tool's function evident. It lacks an explicit verb like 'list' and doesn't distinguish among sibling tools, but the GET method and tool name make the action clear.

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

    Usage Guidelines3/5

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

    The description implies the tool is for retrieving a project's members and clarifies that members/all covers inherited members, which helps the agent choose includeInherited. It offers no explicit when-to-use vs alternatives or exclusions, so usage guidance is only implicit.

    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 explicit GET endpoints communicate that this is a read-only search operation, and the project/global distinction is genuinely behavioral. But with no annotations provided, the description carries the full burden and does not mention result shape, pagination, rate limits, or authentication 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 entire description is one compact sentence with the key verb front-loaded and the API detail neatly parenthesized. Every word adds useful context and there is no repetition of schema 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 search tool with no annotations and no output schema, the description and schema together are minimally sufficient: an agent knows the required parameters, the allowed scopes, and the two invocation modes. However, it lacks return-value expectations, pagination behavior, and permission caveats, so it is not fully complete for autonomous use.

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

    Parameters3/5

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

    The schema already describes scope and projectId, leaving only the search parameter undocumented at 67% coverage. The description adds route-level meaning by implying that projectId selects the project-scoped endpoint, which helps, but it does not describe the search term or query syntax, so it only partially compensates for the gap.

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

    Purpose4/5

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

    The description clearly identifies the action as 'Search' and pinpoints the resource: a specific GitLab project or GitLab globally, reinforced by the concrete API routes. It does not explicitly differentiate itself from sibling tools like gitlab_search_labels, so it stops short of a 5.

    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 gives useful context by distinguishing project-scoped search from global search, which helps an agent decide between passing projectId or omitting it. However, it offers no guidance about when to prefer this tool over alternative search tools like gitlab_search_labels, and it names no exclusions.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the behavioral burden. The explicit GET method implies a read-only operation, which is useful, and the zero-parameter nature minimizes risk. However, it does not state whether a full list is returned, whether any authentication is required, or whether there are any unusual response characteristics.

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

    Conciseness5/5

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

    The description is one short, front-loaded phrase with no wasted words. It communicates the resource and endpoint immediately, which is exactly what a zero-parameter tool needs. There is no redundancy or unnecessary detail.

    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 zero-parameter, read-only GET endpoint with no output schema, this description is mostly sufficient: an agent can infer the operation and resource. It could be more complete by saying 'returns all issue link types' or 'lists configured issue link types', but the name and endpoint cover the essential context. Complexity is low, so the small gaps are acceptable.

    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 schema coverage is 100%, so there are no parameter semantics for the description to clarify. Nothing is missing in terms of inputs. A baseline of 4 is appropriate because no parameter documentation is needed.

    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 identifies the resource clearly—'Issue link types'—and provides the exact GET endpoint, so an agent can tell this is about Jira link types. It lacks an explicit verb phrase like 'Lists all', but the GET method and resource name make the purpose sufficiently clear. It does not explicitly differentiate from nearby siblings such as jira_create_issue_link, but the resource is distinct enough.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives, no exclusions, and no context about when issue link types are relevant. It only names the endpoint. An agent must infer use cases from the tool name alone.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the burden. It discloses the HTTP method (GET) and the fact that the operation is tied to the supplied token, which implies read-only behavior. However, it does not describe the response structure, error behavior, or whether any rate limits apply, leaving some behavioral gaps.

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

    Conciseness5/5

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

    The description is a single short sentence with the endpoint in parentheses, which is appropriately sized and front-loaded. Every word earns its place, and there is no redundancy.

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

    Completeness3/5

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

    For a zero-parameter identity lookup, invocation is fully specified. However, there is no output schema and the description does not enumerate the returned user fields, so an agent may not know what data to expect. This is a minor completeness gap for a standard GitLab /user endpoint.

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

    Parameters4/5

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

    The tool has zero parameters, so the input schema fully covers everything; there is nothing for the description to add. Baseline for zero-parameter tools is 4.

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

    Purpose4/5

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

    The description identifies the resource (the authenticated user associated with the token) and the exact endpoint (GET /user), making the tool's purpose clear. It lacks an explicit action verb like 'retrieves' or 'returns,' but the noun phrase is unambiguous. It is distinguishable from sibling tools like gitlab_list_projects because the endpoint and token reference are unique to identity lookup.

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

    Usage Guidelines3/5

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

    The description does not state when to use this tool versus alternatives such as figma_whoami or other GitLab tools. The usage is only implied: if you need the identity of the current token holder, this is the tool. There is no explicit mention of exclusions or alternatives.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It clearly states the core behavior—returning the authenticated user—but it does not mention failure modes, authentication requirements, or response shape. The word 'authenticated' only weakly implies the auth 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 a single, focused sentence that includes the endpoint for clarity and contains no filler or redundant information. It is efficiently 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?

    For a simple, zero-parameter read-only identity lookup, the description is largely complete: it names the tool's purpose, resource, and endpoint. However, because there is no output schema and no annotations, a bit more detail about the returned user object or error behavior would make it fully complete.

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

    Parameters4/5

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

    The tool has zero parameters and the input schema is fully empty, so there are no parameter semantics to document. The 0-parameter baseline of 4 applies; the description correctly adds nothing beyond the endpoint.

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

    Purpose5/5

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

    The description states a specific verb ('Returns'), a clear resource ('the authenticated Figma user'), and the exact endpoint ('GET /v1/me'). This distinguishes it from sibling tools like gitlab_whoami by explicitly naming Figma.

    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 any guidance on when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. The intended use is implied by the name and endpoint, but no explicit context is given.

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

  • Behavior4/5

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

    With no annotations, the description carries the transparency burden. It usefully discloses that plain-text descriptions are converted to ADF and identifies the HTTP method. It does not discuss permissions, idempotency, or side effects beyond creation, but the core behavior is clearly conveyed.

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

    Conciseness5/5

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

    The description is a single sentence with no filler. The primary action and endpoint are front-loaded, and the ADF note is a valuable second piece of 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?

    The description is minimally viable: it identifies the action and a key conversion behavior. Yet with six parameters, no annotations, and no output schema, it leaves gaps around expected return values, how extraFields should be shaped, and how required fields relate to other Jira lookup tools. More context would help an agent invoke it correctly on first try.

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

    Parameters2/5

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

    Schema description coverage is only 33%, so the description should compensate. It adds meaningful semantics only for 'description' by explaining ADF conversion. projectKey, summary, assigneeAccountId, and extraFields receive no additional explanation beyond their names, leaving the agent without adequate guidance for several 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 states a specific verb and resource: 'Creates an issue' with the exact endpoint 'POST /rest/api/3/issue'. This clearly distinguishes it from update, transition, and comment tools, and the endpoint adds precision beyond the tool name.

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

    Usage Guidelines3/5

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

    The usage context is implied by the verb 'creates' — use this when a new Jira issue is needed. However, the description does not explicitly contrast it with related tools like jira_edit_issue or transition_issue, nor does it mention prerequisites such as needing projectKey or issueType metadata.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the behavioral disclosure burden. It does disclose that the operation is a GET render and that returned URLs are temporary, which is useful. However, it omits other behavioral details such as error cases, URL expiration timeline, or that node rendering may fail for unsupported node types.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no filler. Every word contributes to understanding the tool, and the endpoint reference adds precision without bloat.

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

    Completeness3/5

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

    For a tool with 5 parameters, no annotations, and no output schema, the description is somewhat thin. It states the core behavior and temp-URL output, but does not describe the returned URL mapping, the relationship between url and fileKey/nodeIds, or any usage prerequisites. The agent must rely on the schema and API familiarity to invoke it correctly.

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

    Parameters3/5

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

    Schema description coverage is 60%, and the description adds little parameter-level meaning beyond the schema. nodeIds, fileKey, and url are already described in the schema, while scale and format rely on their names, enums, and numeric bounds. The description is adequate but does not meaningfully compensate for the undocumented scale/format semantics.

    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 ('Renders nodes as images'), the resource (GET /v1/images/:key), and the output (temporary URLs). This is specific enough to distinguish it from sibling tools like figma_get_file or figma_get_metadata.

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

    Usage Guidelines4/5

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

    The description gives clear context: this tool is for turning Figma nodes into rendered image URLs. It does not explicitly name alternatives or say when not to use it, but the rendering purpose is unambiguous and easily matched to an agent's need for screenshots.

    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

dev.mcp MCP server

Copy to your README.md:

Score Badge

dev.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/iwilldotdev/dev.mcp'

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