dittu
Server Details
Turns a phone into a camera+Bluetooth remote so AI assistants can see and control any PC.
- Status
- Healthy
- Uptime
- 97.3% over 43 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- BorisGujvin/dittu-mcp
- GitHub Stars
- 0
TDQS
Scored across 12 tools
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.
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).
12 tools are well-scoped for remote computer control and calibration, covering essential actions without being excessive or insufficient.
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 toolsclickAInspect
Click at normalized screen coordinates.
nx, ny: float 0.0000–1.0000 where (0,0) = top-left, (1,1) = bottom-right.
| Name | Required | Description | Default |
|---|---|---|---|
| nx | Yes | ||
| ny | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided; the description only says 'Click'. It does not disclose which button (left/right), whether it's a click-and-release, or any side effects. For a mutation tool with no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple click tool with an output schema (not shown), the description adequately covers the input semantics. It could mention return behavior, but the output schema likely handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description adds the crucial meaning of nx and ny as normalized coordinates with a clear mapping (0,0 top-left, 1,1 bottom-right).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Click') and the resource ('normalized screen coordinates'). It explains the coordinate system and distinguishes from siblings like double_click.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for a single click at normalized positions. It does not explicitly state when not to use it or alternatives, but sibling names make the context clear.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nx | Yes | ||
| ny | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Does not disclose behavior beyond basic action, such as whether coordinates are relative to current position, any delay, or if it triggers OS-level double-click.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but omits essential details for a tool with no annotations and undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and sibling tools, the description lacks depth on output, prerequisites, and behavioral context. Incomplete for practical use without assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, description adds minimal value by mentioning 'normalized' but does not specify coordinate range, format, or how they interact with other tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'double-click' and the resource 'normalized screen coordinates', distinguishing it from sibling tools like 'click' which implies a single click.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 click or other mouse tools. Lacks context such as typical use cases or alternatives.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist; description explains return format, normalized points, perspective warp, and warns about quadrilateral nature and asymmetric adjustments.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Clear and front-loaded with purpose. Two paragraphs; slightly verbose but all sentences add value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description sufficiently explains return format and semantics for a parameterless tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; baseline 4. Description adds meaning about return structure and coordinates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Get' and resource 'phone's current screen-corner calibration'. Distinguishes from sibling 'set_corners' by being the read counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for reading calibration, but no explicit when-to-use, prerequisites, or comparison with alternatives like 'set_corners'.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description explains the core behavior (no warp/crop) but omits potential side effects or requirements. Adequate for a simple capture tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste, front-loaded with the key purpose. Efficiently communicates all essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and a straightforward action, the description provides complete context for usage and purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so baseline 4. The description adds no parameter info but the schema fully covers the empty parameter set.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Capture the RAW camera frame' and contrasts with corrections, making the purpose unmistakable and distinct from sibling tools like take_screenshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete use cases: 'when troubleshooting why take_screenshot looks wrong, or before adjusting corners with get_corners/set_corners', directly guiding when to choose 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.
keyBInspect
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])
| Name | Required | Description | Default |
|---|---|---|---|
| keycodes | Yes | ||
| modifiers | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. The description explains parameter encoding (bitmask, keycodes) but does not disclose behavior such as whether keys are pressed and released, duration, or any side effects. This leaves important behavioral gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: a one-line purpose, a clear bitmask definition, a list of common keycodes, and two examples. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers parameter usage well but lacks behavioral details (e.g., key press and release timing). Output schema exists but is not detailed in context. For a simple keyboard shortcut tool, it is mostly complete but missing execution semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description compensates well by explaining the modifiers bitmask, providing common keycode examples, and showing usage in examples. This adds meaningful semantics beyond the integer type in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool presses a key combination and provides examples (Alt+F4, Ctrl+W). It distinguishes from sibling tools like click or type_text by specifying keyboard shortcuts, though it could explicitly contrast with type_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives. It gives examples but no explicit context for when to prefer key over type_text or other input tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_mouseAInspect
Move mouse cursor to normalized coordinates WITHOUT clicking.
nx, ny: float 0.0000–1.0000.
| Name | Required | Description | Default |
|---|---|---|---|
| nx | Yes | ||
| ny | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clarifies the key behavior of not clicking and specifies the coordinate range (0.0000–1.0000). With no annotations, it carries the full burden and does so adequately, though it omits details like error handling or response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action and key qualifier ('WITHOUT clicking'), with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple move command, the description fully covers purpose, coordinate system, and the important no-click behavior. Output schema exists so return values are not needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds critical semantics: both parameters are normalized floats in [0,1], which the schema only lists as 'number' without constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Move mouse cursor to normalized coordinates') and specifies it does not click, clearly differentiating from siblings like 'click' or 'double_click'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for moving the cursor without clicking but does not explicitly state when to use or when to avoid, nor does it mention alternatives for clicking.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| delta | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries burden; explains delta meaning and direction, though no side effects or platform details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded, no wasted words; efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with one parameter; could mention units (pixels/lines) but still complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 0%, description adds value by explaining delta as ticks and sign convention beyond schema type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool scrolls the mouse wheel, distinguishing it from siblings like click, move_mouse, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides basic usage (delta meaning) but lacks guidance on when to use vs alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bl | Yes | ||
| br | Yes | ||
| tl | Yes | ||
| tr | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description explains the coordinate system and perspective trapezoid, but does not specify persistence, permissions, or side effects of calibration updates. Some transparency but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose, coordinate definition, usage advice. No redundant words, front-loaded with primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers parameters, coordinate system, and prerequisite. Output schema exists so return values not needed. Missing potential details like range validation or effect scope, but sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% parameter description coverage. Description compensates by explaining each corner's role and that each is a normalized [nx, ny] array in camera frame, adding significant meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates screen-corner calibration, defines the normalized coordinate system, and differentiates from sibling get_corners by recommending calling it first to read current values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises calling get_corners() first before modifying, establishing a clear usage pattern. Does not mention when not to use or alternatives, but provides necessary context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
take_screenshotBInspect
Capture the current screen via the Dittu phone camera. Returns a JPEG image. Call this to see what's on screen before acting.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states it returns a JPEG image but does not explicitly say it is read-only or non-destructive, nor does it discuss permissions or potential failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff, front-loaded with the main action. Every word is useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description mentions the return format (JPEG) but does not explain when to use this tool over closely related siblings. For a simple tool, it is adequate but incomplete in distinguishing from alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the input schema is fully covered. The description adds no parameter information, which is acceptable for zero-parameter tools. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it captures the current screen via the Dittu phone camera and returns a JPEG image. However, it does not explicitly distinguish this tool from sibling tools like take_screenshot_with_crosshair or 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says 'Call this to see what's on screen before acting,' providing a usage context. But it does not specify when not to use it or mention alternative tools (e.g., get_raw_screenshot for raw data).
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).
| Name | Required | Description | Default |
|---|---|---|---|
| nx | Yes | ||
| ny | Yes | ||
| zoom | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: crops tightly, zooms, draws crosshair at expected position. Also explains consequences if cursor is offset or missing, which is critical for calibration feedback.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each purposeful. No redundancy, front-loaded with action and purpose. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, behavior, and parameter semantics well. Lacks explicit mention of return value (likely an image), but given no output schema, it's acceptable. Could be slightly more complete on what the tool returns visually.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description carries full burden. It explains nx, ny are the same coordinates passed to move_mouse and zoom is magnification (default 4x). This adds essential meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: capture screen, crop around (nx, ny), zoom in, draw crosshair at expected position. It distinguishes from siblings like take_screenshot (no crosshair) and take_screenshot_with_grid (different overlay).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states use case: screen-corner calibration after move_mouse near edge. Mentions alternative tools get_corners/set_corners for adjusting, so the agent knows when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| step | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description carries full burden. It discloses the output (JPEG with grid) but does not mention side effects, permission requirements, or limitations (e.g., full-screen capture). Adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no wasted words. Purpose is front-loaded, and all content is relevant. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the core purpose, parameter semantics, and return format. Could mention that it captures the full screen, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond the schema by explaining step as grid spacing and suggesting usage (0.05 for finer grid on small UI elements). This compensates for the schema's minimal description (0% coverage).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool captures the screen and overlays a coordinate grid, which is a specific verb+resource combination. This distinguishes it from sibling tools like take_screenshot (no grid) and take_screenshot_with_crosshair (crosshair overlay).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on the step parameter (default and finer grid usage) but does not explicitly state when to use this tool versus alternatives or when not to use it. Implies use for coordinate-based actions but lacks explicit context.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
- First observed
click - First observed
double_click - First observed
get_corners - First observed
get_raw_screenshot - First observed
key - First observed
move_mouse - First observed
scroll - First observed
set_corners - First observed
take_screenshot - First observed
take_screenshot_with_crosshair - First observed
take_screenshot_with_grid - First observed
type_text
Related MCP Connectors
Give any AI assistant real-time access to your phone's GPS and location history.
Eyes and hands on real Windows PCs — observe, click, type via Glasswarp API.
Melaya is a remote MCP server. It gives an assistant hands on your own Android phone and browser: it reads the screen through the accessibility tree, then taps, types and navigates inside the apps and sites you allow-list, with no per-app API. It also builds, schedules and runs agent pipelines across 6k+ connected tools. OAuth 2.1, nothing to install.
Drive real devices from your AI Coding tool. Embed a client SDK (Unity, Godot, Flutter, iOS/macOS, Android, React Native, Web) in your app, then capture screenshots, traverse the UI tree, inject taps and key events, and run automated test tasks on the physical device over a secure relay.
Related MCP Servers
- AlicenseAqualityBmaintenanceGives PC AI agents real-world senses by connecting to an Android phone's camera, sensors, and files over local Wi-Fi without cloud relay or ADB.724 PyPI2MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to remotely control an Android device from a PC, using Termux API for camera, location, SMS, notifications, and shell commands over SSH or SSE.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to remotely control Android devices in the cloud via P2P WebRTC, providing tools for screenshots, touch input, file management, and automation scripts.15 npmMIT
- AlicenseNot gradedqualityBmaintenanceSecurely control your Mac from AI assistants using native mouse, keyboard, screenshot, and shell tools.343MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.