Skip to main content
Glama

Server Details

Turns a phone into a camera+Bluetooth remote so AI assistants can see and control any PC.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
BorisGujvin/dittu-mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsB

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

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: click actions, mouse movement, keyboard input, scrolling, screen captures (raw, calibrated, with grid or crosshair), and calibration. No overlap between tools.

Naming Consistency5/5

All tools use snake_case verb_noun pattern consistently (e.g., get_corners, take_screenshot, set_corners), with longer names following the same convention (e.g., take_screenshot_with_crosshair).

Tool Count5/5

12 tools are well-scoped for remote computer control and calibration, covering essential actions without being excessive or insufficient.

Completeness4/5

The set covers core operations (click, type, scroll, screenshot, calibration) but lacks a dedicated drag or right-click tool, which agents may need to work around.

Available Tools

12 tools
clickAInspect
Click at normalized screen coordinates.
nx, ny: float 0.0000–1.0000 where (0,0) = top-left, (1,1) = bottom-right.
ParametersJSON Schema
NameRequiredDescriptionDefault
nxYes
nyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the click action and normalized coordinates, but does not specify click type (left/right), whether mouse moves first, or any duration/delay. It adds some value beyond the schema but lacks thorough behavioral disclosure.

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

Conciseness5/5

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

Two sentences with zero fluff: first sentence states action, second details parameters. Front-loaded and efficient.

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 is sufficient for a simple click action with normalized coordinates, and an output schema exists to document return values. However, it could specify if it's left-click or default click type, and whether it moves the mouse. Minor gaps reduce from perfect.

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

Parameters5/5

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

Schema coverage is 0%, so the description fully compensates. It explains nx and ny as normalized floats in range 0-1 with origin at top-left, providing complete semantics for both parameters.

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

Purpose5/5

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

The description clearly states the tool clicks at normalized screen coordinates, specifying the action (click) and the coordinate system (0,0 top-left to 1,1 bottom-right). This distinguishes it from siblings like move_mouse (no click) and double_click (two clicks).

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 like double_click or move_mouse. It lacks usage context or prerequisites, which is a significant gap given the sibling tools.

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

double_clickCInspect

Double-click at normalized screen coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
nxYes
nyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior2/5

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

No annotations are provided, and the description lacks behavioral details such as whether the mouse moves first, if there is a delay, or what the output is. The tool has an output schema but its content is not mentioned.

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 without fluff. However, it could be more informative 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?

For a simple double-click tool with an output schema, the description fails to explain the output, the coordinate system, or any side effects. It is not sufficiently complete for an agent to reliably use.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only says 'normalized screen coordinates' without explicitly stating that nx and ny are numbers in [0,1] or explaining their meaning. This leaves ambiguity.

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 (double-click) and the target (normalized screen coordinates). It distinguishes from the sibling 'click' tool by specifying double-click, but could be more explicit about the normalization range.

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

Usage Guidelines2/5

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

No guidance on when to use double_click versus alternatives like 'click' or 'move_mouse'. The description does not provide context for appropriate usage scenarios.

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

get_cornersAInspect
Get the phone's current screen-corner calibration.
Returns {"tl": [nx,ny], "tr": [nx,ny], "br": [nx,ny], "bl": [nx,ny]} — each corner
is a normalized point (0.0–1.0) in the RAW camera frame, defining the perspective
warp that maps the camera view onto a flat rectangle representing the monitor.
These four points are an arbitrary quadrilateral (trapezoid), not a bounding box —
adjust one corner at a time without assuming the others move symmetrically.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

No annotations are provided, so the description carries full burden. It explains the return format, semantics of the corner points (normalized, define perspective warp), and warns that it's an arbitrary quadrilateral not a bounding box—adding valuable behavioral context beyond the schema.

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

Conciseness5/5

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

The description is a single paragraph with three sentences. It front-loads the purpose, then gives the return format and a key behavioral caveat. Every sentence adds value, no wasted words.

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

Completeness4/5

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

Given no parameters and no output schema, the description adequately explains what the tool returns and how to interpret the data. It could mention typical usage context (e.g., for calibration before screen actions), but overall it is complete for a simple read tool.

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

Parameters4/5

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

There are zero parameters, and schema coverage is 100%. The description adds no parameter info because none exist, but it explains the tool's output meaning. With 0 parameters, a baseline of 4 is appropriate, and the description provides full context for the return value.

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

Purpose5/5

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

The description clearly states the tool's action: 'Get the phone's current screen-corner calibration.' It uses a specific verb and resource, and distinguishes itself from sibling tools like set_corners (write) and screenshot tools (different purpose).

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is given. The description implies usage for reading calibration data before perspective-dependent operations, but does not state alternatives or exclusions.

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

get_raw_screenshotAInspect
Capture the RAW camera frame — no perspective warp, no crop to the calibrated
screen quad. Use this to see exactly what the camera sees before any correction,
e.g. when troubleshooting why take_screenshot looks wrong, or before adjusting
corners with get_corners/set_corners.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

No annotations provided, so description carries full burden. It discloses that no perspective warp or crop is applied, which is the key behavioral trait. Does not mention return format or failure modes, but adequate for a simple read-only tool.

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

Conciseness5/5

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

Two sentences, front-loaded action then usage context. Every word 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?

Given no params, no output schema, and no annotations, the description is fairly complete: purpose, usage context, behavioral traits. Could mention output is an image, but implied.

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?

No parameters. Schema coverage is 100%. Description adds value by explaining what the tool does with zero config, though it doesn't need to add per-param info. Baseline 4 for no 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?

Description clearly states it captures the raw camera frame without warp or crop, distinguishing it from take_screenshot. Verb 'capture' and resource 'raw camera frame' are 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?

Explicitly says when to use troubleshooting take_screenshot issues, before adjusting corners. Implicitly not for normal screenshots. Slightly lacking explicit 'when not to use' but clear enough.

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

keyAInspect
Press a key combination.
modifiers bitmask: LCtrl=1, LShift=2, LAlt=4, LWin=8
Common keycodes: Enter=40, Escape=41, Tab=43, Space=44,
  F4=61, PageDown=78, PageUp=75, Win=227
Examples:
  Alt+F4  → key(4, [61])
  Ctrl+W  → key(1, [26])
ParametersJSON Schema
NameRequiredDescriptionDefault
keycodesYes
modifiersYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

With no annotations, the description explains the bitmask and keycodes, but does not disclose behavioral traits such as system-wide effects, feedback, or handling of invalid combinations. It provides adequate but not rich transparency.

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

Conciseness5/5

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

The description is concise with a clear structure: purpose, parameter explanations, common keycodes, examples. Every sentence is informative and well-organized.

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 simple tool and available output schema (not shown but present), the description covers input semantics well. It could mention that the key press is global or active window focused, but overall it is sufficiently complete.

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

Parameters5/5

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

The schema has 0% description coverage, but the description fully explains both parameters: modifiers as a bitmask with key meanings, keycodes as integers with common examples. Examples further clarify usage. This adds significant value beyond the schema.

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

Purpose5/5

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

The description states 'Press a key combination', clearly identifying the verb and resource. It provides specific details about modifiers and keycodes, and examples distinguish it from sibling tools like click or type_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?

The description explains how to construct key combinations but gives no guidance on when to use this tool versus alternatives like type_text or click. There is no explicit context for when to use or avoid this tool.

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

move_mouseBInspect
Move mouse cursor to normalized coordinates WITHOUT clicking.
nx, ny: float 0.0000–1.0000.
ParametersJSON Schema
NameRequiredDescriptionDefault
nxYes
nyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior2/5

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

No annotations provided. Description covers that the tool does not click and uses normalized coordinates, but lacks details on immediate vs. animated movement, coordinate origin, or behavior for invalid input.

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

Conciseness5/5

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

Two concise sentences with no wasted words, front-loading the key purpose and normalization 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?

Output schema exists, so return values are covered. However, the description omits important behavioral aspects like coordinate system orientation and movement style, making it incomplete for effective use.

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

Parameters2/5

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

Schema coverage is 0%. Description adds the normalized range (0.0000–1.0000) but does not explain what the coordinates represent (e.g., top-left origin).

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

Purpose5/5

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

Description clearly states 'Move mouse cursor' and specifies it is 'WITHOUT clicking', distinguishing it from sibling tools like click and double_click.

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?

Implied usage by stating 'WITHOUT clicking', but no explicit when-to-use or alternatives compared to other cursor-related tools.

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

scrollAInspect
Scroll the mouse wheel.
delta: number of ticks. Positive = scroll down, negative = scroll up.
ParametersJSON Schema
NameRequiredDescriptionDefault
deltaYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

With no annotations, the description partially covers behavioral traits by explaining the delta parameter's direction and meaning. However, it does not disclose whether the scroll occurs at the current mouse position, whether it is virtual or physical, or what happens if no scrollable area is present.

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

Conciseness5/5

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

The description is extremely concise with two sentences, both essential. It front-loads the core action and immediately explains the parameter, with no unnecessary words.

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

Completeness4/5

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

Given the simplicity of the tool (one parameter, output schema exists), the description is mostly complete. It explains the parameter and the action. One minor gap: it does not mention that scrolling happens at the current cursor location, which could be inferred but not explicit.

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

Parameters4/5

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

Schema description coverage is 0%, but the description adds significant meaning for the delta parameter: it clarifies that delta is in ticks and defines positive/negative direction. This goes beyond the schema's bare type constraint.

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 scrolls the mouse wheel and explains the delta parameter. The verb 'scroll' and resource 'mouse wheel' are specific, and there is no sibling tool for scrolling, so it is well distinguished.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like click or move_mouse. There is no mention of prerequisites, context, or when not to use it, leaving the agent without comparative context.

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

set_cornersAInspect
Update the phone's screen-corner calibration.
Each corner is [nx, ny] normalized 0.0–1.0 in the raw camera frame.
tl/tr/br/bl = top-left/top-right/bottom-right/bottom-left of the monitor as seen
by the camera (an arbitrary trapezoid due to perspective — not a rectangle).
Call get_corners() first to read the current values before nudging one of them.
ParametersJSON Schema
NameRequiredDescriptionDefault
blYes
brYes
tlYes
trYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

Explains coordinate format and perspective geometry, but omits side effects, persistence, or safety considerations. With no annotations, more could be 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?

Concise, front-loaded with purpose, follows with parameter explanation and usage hint. No superfluous text.

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

Completeness4/5

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

Covers coordinate format and typical workflow, but does not detail exact array length (implied as 2) or post-update effects. Adequate for a calibration tool with output schema.

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

Parameters5/5

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

Despite 0% schema coverage, description explains each parameter by name and expands on the meaning of tl/tr/br/bl as corners, plus the normalized coordinate system.

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?

Clear verb 'Update' with specific resource 'phone's screen-corner calibration'. Differentiates from sibling get_corners by indicating write vs read.

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?

Advises to call get_corners() first, providing clear workflow context. However, does not state when to avoid using the tool or mention alternatives beyond get_corners.

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

take_screenshotAInspect

Capture the current screen via the Dittu phone camera. Returns a JPEG image. Call this to see what's on screen before acting.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

No annotations provided, so description bears full burden. It discloses return type (JPEG image) and action (capture screen). Lacks details on side effects, permissions, or constraints (e.g., need for unlocked device, app running). Adequate but minimal.

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

Conciseness5/5

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

Two sentences, no extraneous words. Purpose and behavior are front-loaded. 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 no output schema and no parameters, the description covers the essentials: what it does, what it returns, and when to use. Could mention prerequisites (e.g., device state) but overall complete for a simple snapshot tool.

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

Parameters4/5

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

No parameters (0 required), so schema coverage is 100% by default. Per rubric, 0 params baseline is 4. Description does not need to add parameter info.

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

Purpose5/5

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

Clearly states 'Capture the current screen via the Dittu phone camera' with a specific verb and resource. Distinguishes from sibling tools like get_raw_screenshot and variants with crosshair/grid by describing a standard screenshot returning JPEG.

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

Usage Guidelines4/5

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

Explicitly says 'Call this to see what's on screen before acting,' providing a clear usage context. Does not explicitly exclude alternatives or compare to siblings, but the hint is effective for typical use.

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

take_screenshot_with_crosshairAInspect
Capture the screen, crop tightly around (nx, ny), zoom in, and draw a crosshair
at exactly that expected position.

Use this for screen-corner calibration: move_mouse(nx, ny) near a screen edge,
then call this to see whether the actual cursor lines up with the crosshair
(where it SHOULD be if calibration is perfect). If the cursor is offset from the
crosshair, or missing entirely (edge is cropped out of frame), corners need
adjusting — see get_corners/set_corners.

nx, ny: the same coordinates you passed to move_mouse.
zoom: magnification factor for the cropped region (default 4x).
ParametersJSON Schema
NameRequiredDescriptionDefault
nxYes
nyYes
zoomNo
Behavior5/5

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

Describes the effects: capture, crop, zoom, draw crosshair, and mentions possible outcomes (cursor offset or missing). Since no annotations exist, the description fully covers behavioral aspects without contradiction.

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 paragraphs with front-loaded purpose: first explains what it does, second explains when to use. Every sentence contributes value; no unnecessary words.

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

Completeness4/5

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

Sufficient for calibration use case with 3 parameters and no output schema. However, it does not explicitly state what the tool returns (e.g., an image), which would be helpful but not critical given the context.

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

Parameters5/5

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

Despite 0% schema description coverage, the description explains nx and ny as 'the same coordinates you passed to move_mouse' and zoom as 'magnification factor (default 4x)'. This adds essential meaning beyond the schema's type/default fields.

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 captures a screen region, crops around (nx, ny), zooms, and draws a crosshair. This is a specific verb+resource combination that distinguishes it from siblings like take_screenshot and take_screenshot_with_grid.

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 to use for screen-corner calibration after move_mouse, and provides guidance on interpreting results (cursor offset or missing indicates need for get_corners/set_corners). Clearly separates when to use this vs alternative tools.

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

take_screenshot_with_gridAInspect
Capture the screen and overlay a coordinate grid.
step: grid spacing (default 0.1, use 0.05 for finer grid on small UI elements).
Returns a JPEG image with grid drawn on top.
ParametersJSON Schema
NameRequiredDescriptionDefault
stepNo
Behavior3/5

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

No annotations are provided, so the description must cover behavioral traits. It mentions the output is a JPEG with grid, which is helpful, but it does not disclose whether the operation is read-only or state side effects, leaving gaps in transparency.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose, and every sentence adds value. No wasted words.

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

Completeness4/5

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

For a simple tool with one optional parameter and no output schema, the description covers purpose, output format, and parameter usage. It is mostly complete, though it could mention the entire screen capture and coordinate system.

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

Parameters5/5

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

The description adds significant meaning to the 'step' parameter beyond the schema: it explains grid spacing, default value, and suggests 0.05 for finer grids on small UI elements. Since schema coverage is 0%, the description fully compensates.

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 'Capture the screen and overlay a coordinate grid.' It uses specific verbs and resources, and the grid overlay distinguishes it from siblings like 'take_screenshot' and 'take_screenshot_with_crosshair'.

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

Usage Guidelines4/5

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

The description implies use for tasks needing a grid overlay, and provides a parameter tip for finer grid on small UI elements. However, it does not explicitly state when not to use it or name alternative tools.

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

type_textCInspect

Type text on the computer keyboard.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It only states 'Type text on the computer keyboard' without mentioning typing speed, special character handling, focus requirements, or error handling. This is insufficient for an AI agent to predict tool effects.

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

Conciseness4/5

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

The description is a single sentence, making it concise. However, it could be slightly more structured (e.g., 'Types the provided text string as keystrokes') without losing conciseness.

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 that an output schema exists, the description should still explain behavior. It does not mention return values, side effects, or prerequisites. For a simple tool with one parameter, the description is incomplete for safe use.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain the 'text' parameter beyond its type. The description adds no meaning, e.g., whether it supports special keys, newlines, or formatting. This fails to compensate for the missing schema 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 'Type text on the computer keyboard' clearly states the action and resource. However, it does not distinguish from sibling tool 'key', which may be for individual key presses, but the purpose is still 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 on when to use this tool versus alternatives like 'key' for single keys or other typing methods. The description lacks usage context or prerequisites.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.