Skip to main content
Glama
nhodges
by nhodges

vroid_find_text

Scan the current VRoid window with OCR to find a specified text label and return its pixel coordinates for automated clicking.

Instructions

OCR the current VRoid window and return where query appears.

Takes its own fresh screenshot, so coordinates are current. Results are image px, ordered by OCR confidence, ready to pass straight to vroid_click (which defaults to space='image').

Known OCR weaknesses in this UI: small, letter-spaced or light-on-dark labels get split or dropped ('Export' -> 'E' + 'xport'), and white text on VRoid's blue primary buttons often disappears entirely - use vroid_find_button for those. Icons (toolbar, left rail) have no text at all; the README's UI map has their fractional positions.

If nothing is found, that is information: the screen may not be the one you think it is, or a modal is covering it. Take a screenshot and look.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
exactNoRequire the whole word to match, not a substring. Use for captions that share a prefix with a heading (e.g. 'Name' vs 'Avatar Name').
limitNoMax matches to return.
queryYesLabel to look for, e.g. 'Export', 'Hairstyle', 'Avatar Name'. Matching is case- and punctuation-insensitive substring by default.
regionNoRestrict OCR to this rectangle (image px). Strongly recommended: OCR of a full 2560x1440 frame takes ~10 s, a panel-sized region under 2 s.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

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.

Install Server

Other Tools

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