Skip to main content
Glama
nhodges
by nhodges

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool addresses a distinct capability: launching, screen identification, OCR, clicking, typing, saving, exporting, etc. Even the 'seeing' tools (screenshot, find_text, find_button) have clearly separated purposes: one captures, one finds text, one finds buttons. The interaction primitives (click, drag, scroll, type, key) are mutually exclusive and well-defined. No two tools could be confused for the same action.

    Naming Consistency4/5

    All tools share the 'vroid_' prefix and mostly follow a verb_noun pattern (open_tab, export_vrm, set_slider), but a few are single verbs or nouns (status, release, screenshot, click, type). The naming is predictable and readable, with only minor deviations like 'status' and 'release' being not strictly verb_noun. Overall consistent enough for an agent to infer actions.

    Tool Count4/5

    18 tools is on the higher side but justified for a GUI automation server that needs primitives for every interaction type plus higher-level workflows like export and save. The count feels well-scoped for the domain—each tool earns its place since there's no redundant functionality. Slightly heavy but still reasonable.

    Completeness5/5

    The surface covers the full lifecycle: launch, status, screen detection, navigation (open_tab, scroll), interaction (click, drag, type, key, sliders, colors), inspection (screenshot, OCR), persistence (save_project), export (export_vrm), and creation (new_character). No obvious gaps—even edge cases like disabled buttons and modal detection are addressed. The server appears fully equipped for its stated purpose of automating VRoid Studio.

  • Average 4.5/5 across 18 of 18 tools scored.

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

    • No community issues in the last 6 months
    • 4 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

  • Behavior4/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 it locates the 'Create New' tile by text (robust to the Recently Edited grid growing), clicks the card, picks the base thumbnail, and waits up to a minute for the editor to appear, acknowledging the 3D viewport delays. This goes beyond the short intent, but it does not mention potential failure modes or side effects (e.g., what happens if the editor doesn't load). Still, it is substantially transparent for a creation tool.

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

    Conciseness4/5

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

    The description is a compact block of text that clearly front-loads the purpose and then details the steps. Each sentence earns its place: the text-locating technique, the click sequence, and the wait time are all useful for execution. It could be slightly shorter, but it avoids redundancy and remains focused on actionable information.

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

    Completeness4/5

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

    Given the tool's complexity (multi-step navigation with timing considerations) and the presence of an output schema (so return values need not be described), the description covers the essential context: the start screen prerequisite, the steps, and the wait behavior. It does not specify what happens if the start screen is not present or if the base selection fails, but these are edge cases that are not typically required for standard usage. Overall, it is complete for an agent to call the tool correctly under normal conditions.

    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 parameter 'base' is fully described in the schema with an enum and a clear description ('Which base model the 'Select a base to start with' modal offers'). The tool description does not add any additional meaning beyond the schema, which is already explicit. Since schema coverage is 100%, a baseline score of 3 is appropriate; the description does not compensate with extra 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 tool's purpose: navigating from the start screen to create a new character by clicking 'Create New', selecting a base, and landing in the editor. It specifies the exact workflow and distinguishes itself from sibling tools like vroid_launch (which likely starts the app) or vroid_open_tab (which opens tabs). The verb-resource pair is specific and unambiguous.

    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 sets clear context by starting with 'From the start screen', implying the app must already be launched and on that screen. It does not explicitly mention alternatives or when not to use, but the procedural nature and the prerequisite are evident. It lacks explicit exclusions, but the context is clear enough for an agent to infer appropriate usage.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden. It discloses the ~2 second wait for redraw, the return of a verification screenshot path, and the suggestion to take a screenshot to view results. It does not specify failure modes (e.g., what happens if OCR cannot find the tab), but the disclosed timing and return behavior are useful. No contradictions with annotations (since none exist).

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

    Conciseness5/5

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

    The description is very concise, with the core purpose in the first sentence and supporting details in a short second paragraph. It front-loads the function and then adds necessary constraints and behavior without any redundant or irrelevant content. Every sentence adds value.

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

    Completeness4/5

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

    Given the availability of an output schema (though not shown) and high parameter schema coverage, the description provides sufficient context for an agent to call the tool correctly. It covers the environment limitation, the wait time, and the return value. Missing details include error handling when OCR fails, but for a tool that is part of a larger suite with similar patterns, this is a minor gap.

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

    Parameters3/5

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

    The schema description covers 100% of the single parameter 'name' with clear allowed values (Face, Hairstyle, Body, Outfit, Accessories, Look). The description does not add additional meaning about the parameter beyond what the schema already provides, which is acceptable given the high schema coverage. The baseline of 3 is appropriate.

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

    Purpose5/5

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

    The description states a specific verb ('Switch'), a clear resource ('top-level tab'), and the method ('located by OCR of the tab strip'). It clearly distinguishes this from sibling tools like vroid_click (which clicks generic elements) or vroid_find_text (which locates text), since it is specialized for tab switching. The screen restriction further refines its purpose.

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

    Usage Guidelines4/5

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

    The description explicitly states the tool only works on the editor screen, excluding start, export, and hair editor screens, which tells the agent when not to use it. However, it does not directly mention alternatives or contrast with sibling tools like vroid_click when a tab is already visible. The guidance is clear on the environment constraint but lacks explicit 'use this instead of X' phrasing.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full responsibility of behavioral disclosure. It transparently describes the step-by-step mechanism: scrolling the right-hand panel, clicking the hex field, replacing contents, and pressing Return. It also discloses the limiting condition about the currently open tab. This is a solid level of transparency for a UI automation tool, though it does not mention potential failure modes (e.g., label not found) or side effects beyond the described actions.

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

    Conciseness5/5

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

    The description is exceptionally concise—two sentences—and front-loads the purpose in the first sentence. The second sentence packs in the operational steps and the caveat with no wasted words. Every element contributes to understanding, and nothing is redundant with the schema.

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

    Completeness4/5

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

    The description covers the essential aspects of the tool: its purpose, the detailed interaction sequence, and a critical precondition (correct tab and sub-category). It does not explain error handling or what happens if the label is missing, but given that an output schema exists (though not shown) and the tool is relatively simple, the description is sufficiently complete for an agent to use it effectively.

    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?

    Both parameters have schema descriptions with examples, so the baseline is 3. The description adds extra meaning by explaining how each parameter is used in the operation: 'label' identifies the row to scroll to, and 'hex' is the value typed into the field. This contextualizes the parameters beyond their simple data type definitions, making the tool easier to invoke correctly.

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

    Purpose5/5

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

    The description states a clear, specific action: 'Set a colour swatch by typing a hex code into its #RRGGBB box.' It identifies the resource (colour swatch) and the method (typing hex code), and the focus on color differentiates it from sibling tools like vroid_set_slider. The purpose is unambiguous and actionable.

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

    Usage Guidelines3/5

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

    The description provides a caveat ('Same caveat as sliders: the row must belong to the currently open tab and sub-category') which gives some usage context, but it does not explicitly state when to use this tool versus alternatives like vroid_set_slider or vroid_click. There is no direct 'use this when...' or 'do not use when...' guidance, leaving the agent to infer the appropriate scenario from the tool's purpose.

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

  • Behavior5/5

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

    Without any annotations, the description carries the full burden and does so richly: it discloses the focus/raise behavior, refusal condition, pointer glide timing (~0.35 s), and the requirement for fresh captures. This goes well beyond what the schema conveys and gives the agent a clear model of side effects.

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

    Conciseness4/5

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

    Three paragraphs, with the core action stated first, followed by essential behavioral caveats. It is reasonably tight—each sentence contributes (focus behavior, pointer glide, coordinate freshness). No redundant fluff, though it could be compressed slightly. The structure is logical and front-loaded.

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

    Completeness4/5

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

    Given the output schema exists and parameter schema covers everything, the description supplies needed behavioral context: when it refuses, how it moves the cursor, and the freshness requirement. It does not mention return values, but the output schema handles that. It is complete enough for an agent to invoke correctly, leaving no major gaps.

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

    Parameters3/5

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

    The input schema already describes all 5 parameters with 100% coverage. The description adds only context about coordinate freshness (stale coordinates cause misses), but does not elaborate on 'space', 'button', or 'double'. Since the schema is exhaustive, the description adds little extra but is not deficient.

    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 precisely that it clicks a point in the VRoid window using the real compositor cursor, distinguishing it from drag, scroll, and other sibling actions. The verb, resource, and mechanism are explicit, so an agent can clearly understand the tool's role.

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

    Usage Guidelines4/5

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

    Provides explicit guidance that coordinates must come from a current capture, and that it will focus/raise the VRoid window itself, refusing to click into other apps. This conveys when to use it (for interacting with VRoid) and warns against stale coordinates. However, it does not explicitly contrast with sibling click-like tools (though drag/scroll are self-evident).

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

  • Behavior5/5

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

    With no annotations provided, the description fully carries behavioral disclosure. It details idempotency, window parking on workspace 9, focusing and fullscreening, blocking behavior, cold start timing, and the caveat that the start screen may not be ready. This is comprehensive for a launch tool.

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

    Conciseness4/5

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

    The description is concise and logically sequenced: purpose first, then idempotency, workspace details, and timing caveat. Each sentence adds necessary information without fluff. Slightly longer than minimal but justified by the behavioral details.

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

    Completeness4/5

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

    Given no annotations and an output schema present, the description covers essential launch behavior, blocking, and post-launch guidance. It does not explicitly state return values, but the output schema likely handles that. It also does not mention error handling, but that is not critical for a launcher.

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

    Parameters3/5

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

    Schema coverage is 100% and both parameters have descriptive schema entries (restart warns about unsaved work, timeout defines wait). The description adds context around restart via idempotency but does not materially extend parameter meaning beyond the schema. Baseline 3 is appropriate.

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

    Purpose5/5

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

    The description opens with a specific verb and resource: 'Start VRoid Studio (Steam appid 1486350, Proton) and take control of it.' It distinguishes itself from siblings by describing idempotent behavior and workspace parking, making it clear this is the launcher, not any other action.

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

    Usage Guidelines4/5

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

    The description gives explicit context: it can be reused if window exists, blocks for 30-90s on cold start, and instructs to take a screenshot before clicking. It names vroid_release as complementary, implying when not to use (though it does not explicitly exclude other tools). The guidance is clear and actionable, though slightly implicit about alternatives.

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

  • Behavior4/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It adds key details: the glide is 24 interpolated steps to register a drag rather than a click, and the kinds of operations it performs (slider, camera orbit, pan). While it doesn't discuss failure modes or side effects, it covers the essential behavioral traits an agent would need to know before calling.

    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 paragraphs: the first delivers the primary purpose in a compact phrase, and the second adds usage guidance and a behavioral detail. Every sentence earns its place, and the key scoping information is front-loaded.

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

    Completeness4/5

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

    The description gives enough context for correct invocation: it names target resources, the condition for using it, and the interpolation detail. An output schema exists, so return values are covered. It stops short of describing error handling or coordinate system conversion, but for a drag tool that's acceptable given the schema richness.

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

    Parameters3/5

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

    The input schema already provides 100% coverage with detailed descriptions for x1, y1, x2, y2, space, and button, including enums and defaults. The description does not add parameter-specific explanation beyond what the schema offers, so a baseline of 3 is appropriate because the schema does the heavy lifting.

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

    Purpose5/5

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

    The description clearly states the verb (press, glide, release) and the specific resources it acts on (slider handles, 3D camera, hair guides), and it distinguishes itself from sibling vroid_set_slider by noting dragging is only for controls without a numeric box. This leaves no ambiguity about what the tool does.

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

    Usage Guidelines5/5

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

    Explicitly states when to use this tool versus vroid_set_slider, with a concrete rule: 'prefer vroid_set_slider for parameters sliders' and 'dragging is only for controls that have no numeric box.' It also mentions camera and hair guides, giving clear contexts for alternative use. No inference is needed.

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

  • Behavior5/5

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

    With no annotations provided, the description carries the full behavioral burden, and it excels. It discloses the side effects (opens modals, uses Wine save dialog), the time cost (30s to minutes), the failure behavior (raises with a diagnostic screenshot path), and the recommended retry strategy (read the screenshot, beware of leftover modals). This is unusually rich and actionable, covering the obvious 'what happens to the system' and 'what to expect' questions an agent would have.

    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 longer than average, but it front-loads the core action ('Walk the entire Export-as-VRM flow and write a .vrm file') and structures the rest as a concise step chain, a prerequisite, a timing note, and a failure/retry note. Each sentence earns its place; there is no filler. It could arguably be trimmed slightly (e.g., the detailed UI path), but the richness contributes to transparency, so a 4 is fair.

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

    Completeness5/5

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

    Despite having an output schema, the description explicitly states what it returns (the written path and its size) and how it signals failure (a diagnostic screenshot path), which complements the schema. It also covers prerequisites, duration, and the retry hazard. For a complex multi-step GUI automation tool, this is fully complete; an agent has everything needed to invoke it correctly and handle outcomes.

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

    Parameters3/5

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

    The schema description coverage is 100%, so all five parameters already have explanations (e.g., path is a Linux path translated to Z:\, avatar_name is required for the Export button to activate). The tool description does not add any parameter-specific semantics beyond what the schema provides. Per the rubric, with full schema coverage, the baseline is 3, and the description adds no extra value here.

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

    Purpose5/5

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

    The description clearly states the tool walks the entire 'Export as VRM' flow and writes a .vrm file, with a verb (walk/export), a specific resource (VRM file), and an explicit step sequence. It distinguishes itself from low-level siblings like vroid_click or vroid_type by being a composite workflow, and from vroid_save_project (which saves a project, not exports a VRM). The first sentence alone conveys the exact purpose.

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

    Usage Guidelines4/5

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

    The description gives a clear prerequisite: 'Must be started from the EDITOR screen with a model loaded.' It also implies when to use it (when you need a .vrm export) and orients the user by narrating the UI steps. It does not explicitly name an alternative tool or describe when NOT to use it, but given the sibling set (most are atomic actions), the usage context is sufficient. A minor gap is the lack of explicit 'use this instead of manual steps' guidance.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden. It discloses a notable behavioral nuance: Escape does not close the hamburger menu, and that key presses go to the focused widget. This is sufficient for a key-press tool, though it doesn't describe potential side effects or focus requirements beyond what's implied.

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

    Conciseness5/5

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

    The description is concise and well-structured: the primary objective is stated first, followed by a list of useful combos and a caveat. Every sentence contributes value, and there is no fluff. The layout is easy to scan.

    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 key-press tool, the description covers what keys to press, gives practical examples, and highlights a relevant gotcha. It doesn't mention return values, but the output schema likely indicates success/failure, and for this tool it's not critical. It is sufficiently complete for an agent to call correctly.

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

    Parameters4/5

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

    The schema already describes both parameters (combo and times) with examples and aliases, so the baseline is 3. The description adds value by providing concrete, useful key combinations (e.g., 'Return confirms a value box', 'ctrl+s saves'), which goes beyond the schema's generic format explanation and clarifies likely inputs.

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

    Purpose5/5

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

    The description clearly states the tool's function: 'Press a key combination in the focused VRoid widget.' It uses a specific verb and resource, and distinguishes itself from siblings like vroid_click and vroid_type by focusing on key combinations. The context of 'focused widget' adds clarity.

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

    Usage Guidelines4/5

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

    It provides practical guidance by listing useful key combinations (Return, ctrl+s, ctrl+z, etc.) and their effects, which helps an agent decide when to use this tool. It also gives a specific caution about Escape not closing the hamburger menu. However, it does not explicitly mention alternatives or when not to use it, though the examples imply its use for shortcuts and confirmations.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden. It discloses the exact sequence of actions (scrolls, clicks, clears, types, presses Return) and notes that it works for parameters below the fold. It does not cover failure behavior, but the described mechanics are transparent and complete for normal usage.

    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 tight paragraphs. The first sentence states the purpose directly. The second details the method without fluff. The third gives usage distinction and prerequisite. Every sentence earns its place; no redundancy.

    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 UI automation tool with two parameters and an output schema, the description covers the core usage: what it does, how it works, when to use it, and the prerequisite tab. It omits error handling and return-value details, but those are not critical for a correct first call. Minor gap, but overall sufficient.

    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%—both parameters have descriptive comments. The description does not add extra meaning beyond what the schema already provides (e.g., 'Value to type into the row's numeric box' matches). Baseline of 3 is appropriate; no further compensation needed.

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

    Purpose5/5

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

    States a specific verb ('Set') and resource ('Parameters slider') with the method ('typing into its numeric box'). It explicitly distinguishes from sibling vroid_drag by saying 'use vroid_drag only for controls with no numeric box', making it clear which tool to select.

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

    Usage Guidelines5/5

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

    Provides clear when-to-use ('This is far more reliable than dragging the handle'), when-not-to-use (use vroid_drag for controls without numeric box), and a prerequisite ('Open the right tab first (vroid_open_tab)'). No ambiguity about context.

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

  • Behavior5/5

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

    With no annotations provided, the description fully carries the burden of behavioral disclosure. It reveals the matching mechanism (button chrome), the output ordering (biggest-first, image px), and the semantic meaning of a disabled grey pill, including the specific validation context on the VRM Settings modal. This goes well beyond the schema and gives agents critical operational knowledge.

    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 compact three sentences, each earning its place: purpose and differentiation (sentence 1), technical rationale and output format (sentence 2), and practical interpretation of a key signal (sentence 3). It is front-loaded with the core purpose and contains no filler, making it highly efficient for agent parsing.

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

    Completeness5/5

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

    The tool is moderately complex with 4 parameters and an output schema, but the description covers the essential context: why this tool exists (OCR failure), how results are returned (blobs, ordered), and what a specific result indicates (disabled state). Combined with the exhaustive schema descriptions, nothing critical for correct invocation is missing.

    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 baseline is 3. The description adds little beyond what the schema already explains (e.g., the color enum semantics are already in the schema). It does reinforce the color meanings but does not add new parameter-level detail for label, limit, or region. The description therefore does not elevate above the baseline.

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

    Purpose5/5

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

    The description clearly states the tool's purpose: finding VRoid buttons by color rather than text. It specifies the resource (primary action buttons), the method (color matching), and explicitly differentiates from text-based approaches. The mention of 'ready for vroid_click' also clarifies the intended downstream use, making the tool's role unambiguous relative to siblings like vroid_find_text.

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

    Usage Guidelines4/5

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

    The description provides strong usage context by explaining why color-based matching is necessary (tesseract loses white labels), implicitly steering agents away from text-based tools. It also gives guidance on interpreting results (grey pill means disabled) and notes the typical next step (click). However, it does not explicitly name alternative tools or enumerate when NOT to use this tool, which keeps it from a 5.

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

  • Behavior4/5

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

    With no annotations, the description carries the full burden. It discloses that the tool is 'cheap-ish' (only OCRs the top strip, ~2 s) and that 'unknown' indicates a modal, which are useful behavioral traits. However, it does not explicitly state that the tool is read-only or has no side effects. For a diagnostic tool, this is a minor omission, so a 4 is appropriate.

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

    Conciseness5/5

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

    The description is compact and well-structured: the first sentence states the primary purpose, and the second provides usage guidance and troubleshooting. Every sentence contributes meaningful information without redundancy. The 'unknown' tip is an efficient way to add depth.

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

    Completeness5/5

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

    For a zero-parameter diagnostic tool, the description is complete. It covers purpose, possible outputs, cost, common failure interpretation, and a recommended next step. The output schema likely provides the exact return type, but the description already gives enough to the agent. No significant gaps remain.

    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 baseline is 4. The description adds value by enumerating the possible output values (the five screen states), which helps the agent interpret the result. No parameter details are needed, so this dimension is well-served.

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

    Purpose5/5

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

    The description clearly states the tool's purpose: to identify which VRoid screen is on top, listing the possible outputs (start, editor, export_vrm, hair_editor, unknown). The verb 'identify' and the resource 'screen state' are specific, and the explicit list of possible values distinguishes it from sibling tools that perform actions rather than diagnostics.

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

    Usage Guidelines5/5

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

    The description explicitly says when to use it: 'worth calling whenever a flow tool fails' and explains the common failure mode. It also provides guidance on interpreting the 'unknown' result (modal is up) and suggests a follow-up action (take a full-window screenshot). This gives clear decision-making context.

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

  • Behavior5/5

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

    With no annotations provided, the description fully discloses behavior: it takes a fresh screenshot, returns coordinates in image pixels ordered by OCR confidence, and is designed for direct use with vroid_click. It candidly lists known OCR weaknesses ('Export' splits to 'E'+'xport', white text on blue buttons disappears) and performance implications (~10s full frame vs ~2s region). This is exceptionally transparent for a tool with 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?

    The description is front-loaded with the core purpose in the first sentence, then flows logically through currentness, output format, limitations, alternatives, and failure handling. Every sentence carries substantive information—no filler. It is long but appropriately dense for a tool with this many behavioral caveats and integration points.

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

    Completeness5/5

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

    The description covers everything an agent needs to invoke this tool correctly: what it does, output format and ordering, how to feed results into vroid_click, known failure modes (OCR splitting, missing white-on-blue text), performance guidance via region, alternative tool for buttons, and what a null result implies. Since an output schema exists, return details are not required in the description. For a computer-vision OCR tool with multiple integration touchpoints, this is complete.

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

    Parameters3/5

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

    Schema coverage is 100% and each parameter (query, exact, limit, region) already has detailed descriptions including defaults and examples. The tool description adds little beyond schema—it only mentions that results are ready for vroid_click, which is about output usage rather than parameter meaning. Baseline 3 is appropriate because the schema fully documents parameters and the description does not enhance it.

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

    Purpose5/5

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

    The description opens with a precise action and resource: 'OCR the current VRoid window and return where `query` appears.' It immediately distinguishes itself from the sibling vroid_find_button by noting it handles text labels, and even mentions specific limitations for button text. This makes the tool's purpose unmistakable relative to its siblings.

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

    Usage Guidelines5/5

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

    The description explicitly says when to use this tool versus alternatives: use vroid_find_button for blue primary buttons, and it notes that icons have no text so users should consult the UI map. It also advises when no result is found (screen may be wrong or modal covering) and recommends taking a screenshot. This is clear conditional guidance with exclusions and alternatives.

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

  • Behavior4/5

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

    With no annotations, the description carries the full behavioral burden. It discloses the workspace switch and that VRoid remains running, which is the primary behavior. It does not mention potential side effects like saving state or closing dialogs, but these are likely irrelevant for a simple release action. Slightly more detail would earn a 5.

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

    Conciseness5/5

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

    Two sentences, front-loaded with the core action and usage context. Every word earns its place, with no filler or redundancy.

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

    Completeness5/5

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

    For a zero-parameter tool with an output schema present, the description covers the purpose, the behavioral outcome, and the appropriate invocation time. Nothing an agent needs to call it correctly is missing.

    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 baseline is 4. No parameter descriptions are needed, and the description adds sufficient context for how the tool behaves regardless of inputs.

    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 precise action: 'switch to the workspace the user was on before' and clarifies that VRoid remains running on workspace 9. This clearly distinguishes it from siblings like vroid_launch or vroid_open_tab, and leaves no ambiguity about the tool's core function.

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

    Usage Guidelines5/5

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

    Explicitly says when to call: 'Call this when you are done with a session, or before handing control back to the human.' This gives clear situational context and implies it should not be used mid-task, providing strong usage guidance.

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

  • Behavior5/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It explains that the wheel is sent as X11 button 4/5 (6/7 horizontally) because VRoid is an XWayland client that ignores Wayland virtual-pointer axis events. It also reveals the direction semantics: 'POSITIVE scrolls DOWN' and 'over the 3D viewport, positive zooms OUT.' This is rich, honest behavioral context beyond a simple 'scroll' statement, with no contradiction to any annotations (none exist).

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

    Conciseness5/5

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

    The description is three sentences with zero waste. It front-loads the purpose, then explains the platform-specific mechanism, then gives a concrete use case with a reference to alternatives. Every sentence earns its place.

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

    Completeness5/5

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

    Given the tool's moderate complexity, the rich input schema (with parameter descriptions), and an output schema, the description is fully sufficient. It explains why the tool exists (XWayland limitation), when to use it (scrolling long panels), and how it contrasts with siblings. Nothing an agent needs to call it correctly is missing.

    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 per the rubric the baseline is 3. The description does not add parameter-specific meaning beyond the schema; it focuses on when to use the tool and the underlying mechanism. The schema already contains detailed descriptions for each parameter (e.g., x: 'Park the pointer here first...'), so the description's lack of direct parameter elaboration is acceptable.

    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 opens with a specific verb+resource combination: 'Wheel-scroll a panel or zoom the 3D viewport.' It immediately differentiates from siblings by noting that vroid_set_slider scrolls automatically and vroid_find_text cannot see labels below the fold. This clearly tells an agent what the tool does and how it differs from related tools.

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

    Usage Guidelines5/5

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

    The description provides explicit when-to-use context: 'Long Parameters lists need this - a label that vroid_find_text cannot see is usually just below the fold.' It also explicitly states when not to use it: 'vroid_set_slider scrolls to its own row automatically, so you rarely need to do it by hand.' This gives clear guidance on selecting this tool over alternatives.

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

  • Behavior5/5

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

    No annotations are provided, so the description carries full burden. It discloses the XTEST mechanism and the Proton mis-read issue, directly warns about caret independence, and explains the symptom of wrong-field typing. It also notes the effect of clear_first semantically. This is exemplary transparency for an input tool.

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

    Conciseness4/5

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

    The description is dense but well-organized: purpose statement, usage direction, and verification step. It front-loads the critical warning about clicking first. Slightly verbose but every sentence adds operational value, so it earns a high score rather than a 3.

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

    Completeness5/5

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

    Given the tool's complexity (keyboard input on a misbehaving client), the description covers prerequisites, mechanism, verification, and failure modes. Output schema exists, so return value details aren't needed. All information an agent needs to call it correctly and detect errors is present.

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

    Parameters4/5

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

    Schema coverage is 100% and both parameters have descriptions. The text parameter's escape sequence ('\n' for Return) is already in the schema. The description adds context about literal text and the clear_first behavior, which is beyond the schema's simple description. A high score because the description reinforces the meaning and clarifies usage in context.

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

    Purpose5/5

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

    States a specific verb (type), resource (keyboard focus), and clearly distinguishes from siblings (vroid_click, vroid_key). The purpose is unmistakable: type text into the currently focused widget. The caveat about having no idea where the caret is clarifies its scope versus click.

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

    Usage Guidelines5/5

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

    Explicitly instructs to click the field first (naming vroid_click as prerequisite), warns about XTEST versus Wayland issue, and mandates a screenshot afterwards to verify. It also identifies a specific failure mode (grayed-out primary button) and provides the verification step. This is complete when-to-use guidance with clear sequencing.

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

  • Behavior5/5

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

    No annotations are provided, so the description bears full responsibility. It discloses that plain Save silently overwrites the existing file, that Save As opens Wine's save dialog, and that without a name the dialog only appears if never saved. It also mentions it waits for the file and explains the persistence context. This is transparent and goes beyond mere operation to side effects and prerequisites.

    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 compact and front-loaded: it states the core purpose first, then explains the two modes, then the critical warning. Each sentence earns its place, with no redundant phrasing or filler. The structure makes it easy for an agent to parse and act on.

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

    Completeness5/5

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

    For a tool with two modes and edge cases (unsaved project), the description covers everything needed: mode selection, what happens with and without a name, the dialog behavior, and the importance relative to other tools. It also addresses persistence and the destructive nature of vroid_launch(restart=true). No critical information is missing.

    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 input schema already covers both parameters fully (100% coverage) with descriptions. The tool description adds value by explaining the behavioral difference between supplying `name` (Save As) vs omitting it (plain Save), and clarifies that omitting it opens the dialog only if never saved. This adds operational meaning beyond the schema's straightforward parameter descriptions, so it exceeds the baseline of 3.

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

    Purpose5/5

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

    Description starts with 'Save the .vroid project - plain Save, or Save As to an explicit path' which clearly states the tool's specific action and distinguishes the two modes. It is distinct from siblings (no other save tool) and gives a concrete resource (the .vroid project).

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

    Usage Guidelines5/5

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

    Explicitly provides usage context: 'Worth doing before any risky experiment...' and explains that nothing else persists work and vroid_launch(restart=true) discards it. It also details when to use name (Save As) vs plain Save, including the caveat about the dialog appearing only when never saved and the instruction to retry with a name. This is clear, actionable guidance.

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

  • Behavior5/5

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

    With no annotations present, the description carries the full behavioral burden and does so thoroughly. It discloses that every capture is saved to a captures directory, returned images may be downscaled, coordinates use native image pixel space, and there are driver quirks around modals and viewport dithering. This is unusually transparent.

    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 long but every section earns its place: purpose, return behavior, coordinate system, and practical gotchas. It is front-loaded with the core action and then layers important operational details so an agent can use the tool correctly without skimming irrelevant prose.

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

    Completeness5/5

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

    For a screenshot tool with no output schema and no annotations, this is complete: the agent learns what is returned, where it is written, how coordinates should be scaled, what mode to use for verification, and what UI regions are reliable to observe. I see no important calling context missing.

    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 schema already describes all four parameters, so the baseline is 3; the description adds meaningful coordinate-space and downscale context that directly affects how region and full_resolution should be interpreted. It does not separately expand on tag or whole_screen, but the schema handles those sufficiently.

    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 opens with a specific verb and resource: 'Screenshot VRoid and return the image, plus the path it was saved to.' This clearly states the tool's purpose and main outputs, and the later coordinate-space discussion differentiates it from related perception tools like vroid_find_text and vroid_find_button.

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

    Usage Guidelines5/5

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

    It gives explicit usage context: look at the returned image before deciding anything, capture the whole window when verifying changes, avoid relying on the dithered 3D viewport, and prefer vroid_find_text / vroid_find_button for coordinates. This goes far beyond a generic description and routes the agent to the right behavior and alternatives.

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

  • Behavior5/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states that the tool is 'Cheap and side-effect free (no OCR, no input)' and describes the side effects of the `focused` flag on other tools, as well as the external helper dependencies it reports. This is transparent and thorough, even anticipating edge cases.

    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 well-structured into three clear parts: primary purpose, usage guidance, and helper reporting. It front-loads the most critical information (status report) and continues with actionable context. Every sentence adds value—'Cheap and side-effect free' justifies frequent use, and the helper list tells the agent what to expect. No fluff or redundancy.

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

    Completeness5/5

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

    For a zero-parameter tool with an output schema (which covers return format), this description provides all necessary context: what it reports, when to use it, side effects on other tools, and external dependencies. It even explains how `focused` false affects subsequent acting tools and how to recover. The tool is simple, and the description fully covers its use.

    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 baseline for this dimension is 4. The description appropriately focuses on behavior and usage rather than parameter details. No parameter explanations are needed, and the description does not introduce any parameter ambiguity.

    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 exactly what the tool does: 'Report whether VRoid Studio is running, focused, and where it sits.' The verb 'Report' is specific, the resource (VRoid Studio) is clear, and the scope is distinct from the acting sibling tools (vroid_launch, vroid_click, etc.), which perform actions rather than status checks.

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

    Usage Guidelines5/5

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

    The description gives explicit guidance on when to use the tool: 'use it before anything else, and after anything that might have lost focus.' It also explains the consequence of `focused` false and names the alternative (vroid_launch) that can restore focus. This is clear, actionable usage guidance that distinguishes it from other tools.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

mcp-vroid MCP server

Copy to your README.md:

Score Badge

mcp-vroid 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/nhodges/mcp-vroid'

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