Skip to main content
Glama

scrcpy-mcp

MCP server that gives AI agents full vision and control over Android devices via ADB and scrcpy.

Connect any MCP-compatible AI assistant (Claude Code, OpenCode, Cursor, VS Code Copilot, etc.) to your Android device. The AI can see the screen, tap, swipe, type, launch apps, inspect UI elements, transfer files, and run shell commands.

MCP Badge

Features

  • 36 tools covering screenshots, input, apps, UI automation, shell, files, clipboard, and video streaming

  • scrcpy-first: uses scrcpy's binary control protocol for 10-50x faster input and near-instant screenshots (~33ms)

  • ADB fallback: every tool works without scrcpy — slower but always available

  • Image-returning screenshots: the AI actually sees the screen, not just a file path

  • UI element finding: ui_find_element returns tap coordinates so the AI can act on what it sees

  • Clipboard that works on Android 10+: scrcpy bypasses the restrictions that break ADB-only solutions

Related MCP server: agentic-android

Prerequisites

Required

Requirement

Install

Verify

Node.js 24+

nodejs.org or nvm install (uses .nvmrc)

node --version

ADB (Android Platform Tools)

developer.android.com/tools/releases/platform-tools

adb version

Android device with USB debugging

Settings → Developer Options → USB Debugging

adb devices

Optional (for enhanced performance)

Requirement

Install

Benefit

scrcpy

github.com/Genymobile/scrcpy

10-50x faster input, ~33ms screenshots

ffmpeg

apt install ffmpeg / brew install ffmpeg

Required for scrcpy video stream decoding

Device setup

  1. Enable Developer Options: Settings → About Phone → tap "Build Number" 7 times

  2. Enable USB Debugging: Settings → Developer Options → USB Debugging

  3. Connect device via USB

  4. Accept the RSA fingerprint prompt on the device

  5. Verify: adb devices should show your device as device (not unauthorized)

Installation

# Run directly with npx (no install needed)
npx scrcpy-mcp

# Or install globally
npm install -g scrcpy-mcp

MCP Client Configuration

Claude Code

claude mcp add android -- npx scrcpy-mcp

Or add to .mcp.json in your project root:

{
  "mcpServers": {
    "android": {
      "command": "npx",
      "args": ["scrcpy-mcp"]
    }
  }
}

OpenCode

Add to .mcp.json:

{
  "mcpServers": {
    "android": {
      "command": "npx",
      "args": ["scrcpy-mcp"]
    }
  }
}

Cursor

Settings → MCP → Add Server:

{
  "android": {
    "command": "npx",
    "args": ["scrcpy-mcp"]
  }
}

Claude Desktop

Edit ~/.config/Claude/claude_desktop_config.json (Linux) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "android": {
      "command": "npx",
      "args": ["scrcpy-mcp"]
    }
  }
}

VS Code (GitHub Copilot)

Add to .vscode/mcp.json:

{
  "servers": {
    "android": {
      "command": "npx",
      "args": ["scrcpy-mcp"]
    }
  }
}

Customizing Environment Variables

If you need to configure custom options (such as pointing to a non-standard scrcpy-server path), you can add the "env" object to your server configuration. For example:

{
  "mcpServers": {
    "android": {
      "command": "npx",
      "args": ["scrcpy-mcp"],
      "env": {
        "SCRCPY_SERVER_PATH": "C:\\path\\to\\scrcpy-server"
      }
    }
  }
}

Note: only set SCRCPY_SERVER_VERSION if version auto-detection fails — it overrides detection, so a stale value causes the version mismatch described in Troubleshooting. Match it to your installed scrcpy (scrcpy --version).

Note: On Windows, remember to double-escape backslashes (\\) in your configuration paths.

OpenCode users: OpenCode uses "environment" instead of "env" for passing environment variables to MCP servers. Replace "env" with "environment" in the example above if you're configuring scrcpy-mcp in opencode.json.

Tool Reference

Session Management

Tool

Description

start_session

Start a scrcpy session. When active, input and screenshots use the fast path (10-50x faster).

stop_session

Stop the scrcpy session. Tools fall back to ADB.

Video Streaming

Tool

Description

start_video_stream

Start an HTTP MJPEG video stream and open an ffplay viewer window. Auto-starts a scrcpy session if needed.

stop_video_stream

Stop the video stream and close the viewer window.

Device Management

Tool

Description

device_list

List all connected devices with serial, state, and model

device_info

Get model, Android version, screen size, SDK level, battery

screen_on

Wake the device screen

screen_off

Turn the screen off

rotate_device

Rotate the screen (requires active session)

expand_notifications

Pull down the notification panel (requires active session)

expand_settings

Pull down the quick settings panel (requires active session)

collapse_panels

Collapse notification/settings panels (requires active session)

Vision

Tool

Description

screenshot

Capture the screen and return it as an image. ~33ms with scrcpy, ~500ms via ADB.

screen_record_start

Start recording the screen to a file on the device

screen_record_stop

Stop recording and optionally pull the file to the host

Input Control

All input tools use scrcpy (~5-10ms) when a session is active, otherwise fall back to ADB (~100-300ms).

Tool

Description

tap

Tap at screen coordinates

swipe

Swipe from one point to another

long_press

Long press at coordinates

drag_drop

Drag from one point to another

input_text

Type a text string into the focused field

key_event

Send a key event: HOME, BACK, ENTER, VOLUME_UP, VOLUME_DOWN, POWER, etc.

scroll

Scroll at a position (dx=horizontal, dy=vertical)

App Management

Tool

Description

app_start

Launch an app by package name. Prefix with + to force-stop before launch.

app_stop

Force-stop an app

app_install

Install an APK from the host machine

app_uninstall

Uninstall an app

app_list

List installed packages, optionally filter by name or system/third-party

app_current

Get the current foreground app and activity

UI Automation

Tool

Description

ui_dump

Dump the full UI hierarchy as XML

ui_find_element

Find elements by text, resource ID, class name, or content description. Returns tap coordinates.

Shell & Files

Tool

Description

shell_exec

Execute an arbitrary ADB shell command and return the output

file_push

Push a file from the host machine to the device

file_pull

Pull a file from the device to the host machine

file_list

List directory contents on the device

Clipboard

Tool

Description

clipboard_get

Get clipboard content. Uses scrcpy to bypass Android 10+ restrictions.

clipboard_set

Set clipboard content. Pass paste: true to also paste immediately.

Performance

Operation

scrcpy (session active)

ADB fallback

Screenshot

~33ms

~500ms

Tap / Swipe

~5-10ms

~100-300ms

Text input

~5ms

~100-300ms

Clipboard

~10ms

unreliable on Android 10+

Start a session once at the beginning to unlock the fast path:

start_session → take screenshots → tap → swipe → ...

Environment Variables

Variable

Default

Description

ADB_PATH

adb

Path to the ADB binary

ANDROID_SERIAL

(none)

Default device serial, overrides auto-detection

SCRCPY_SERVER_PATH

(auto)

Path to the scrcpy-server binary

SCRCPY_SERVER_VERSION

(auto)

Version of the scrcpy-server binary

FFMPEG_PATH

ffmpeg

Path to the ffmpeg binary

FFPLAY_PATH

ffplay

Path to the ffplay binary (for the video stream viewer)

When only one device is connected, tools auto-detect it. With multiple devices, pass the serial parameter explicitly or set ANDROID_SERIAL.

Troubleshooting

adb devices shows unauthorized Accept the RSA fingerprint prompt on the device. If the prompt doesn't appear, revoke USB debugging authorizations in Developer Options and reconnect.

start_session fails Make sure scrcpy is installed and the scrcpy-server binary is accessible. On Windows, add the folder containing both scrcpy.exe and scrcpy-server to your PATH, or set SCRCPY_SERVER_PATH to the full path of the scrcpy-server file.

  • File vs Directory: Ensure SCRCPY_SERVER_PATH points directly to the scrcpy-server file itself (e.g. C:\path\to\scrcpy-server), NOT to its parent folder.

  • Android Directory Conflict: If you previously pushed a directory to the server path, /data/local/tmp/scrcpy-server.jar on the Android device might have been created as a folder. Run adb shell rm -rf /data/local/tmp/scrcpy-server.jar to delete it.

  • Version Mismatch: The client must send the exact version of the scrcpy-server file it pushes. To guarantee that, the server and the version are never resolved separately — one scrcpy install is resolved as a pair, and the version comes from the client belonging to that same install. The install is found in this order: SCRCPY_SERVER_PATH if set (its client is then located beside the server, or one prefix step away at ../../bin/scrcpy); otherwise the scrcpy on your PATH, whose server is located beside it or at ../share/scrcpy/scrcpy-server; otherwise whatever your package manager reports (dpkg, pacman, rpm, apk, brew). A symlinked client is resolved to its real directory before its counterpart is derived, so a link farm such as Homebrew's bin/scrcpy pairs with the install it points at rather than with the link's own directory. SCRCPY_SERVER_VERSION overrides the detected version if set. So on Windows, or when a GUI app launches the MCP without your shell PATH, pointing SCRCPY_SERVER_PATH at a server inside a complete scrcpy install is enough on its own, and it wins even if a different scrcpy comes first on your PATH — note that reading the version runs that install's executable, so point SCRCPY_SERVER_PATH only at an install you trust (the same trust the server file itself already requires, since it gets pushed to your device and executed there). If no client can be found for the resolved server (for example a lone scrcpy-server downloaded from the releases page), the client falls back to the default version and the server may exit with a version-mismatch error; set SCRCPY_SERVER_VERSION to your installed version (e.g., "4.1"). Run the version tool to see which version is in use and where it was resolved from. See the Environment Variables table above.

Screenshots are slow (~500ms) Start a scrcpy session with start_session to enable the fast video stream path. Requires scrcpy and ffmpeg.

expand_notifications / expand_settings / collapse_panels fail These tools require an active scrcpy session. Run start_session first.

Clipboard doesn't work on Android 10+ ADB clipboard access is restricted on Android 10+. Start a scrcpy session — the scrcpy clipboard protocol bypasses this restriction.

Multiple devices connected Pass serial to each tool or set the ANDROID_SERIAL environment variable.

Security

This server provides full control over connected Android devices. The shell_exec tool can run arbitrary commands, and file_push/file_pull can read and write any file accessible to the shell user.

  • The server runs locally over stdio — it is not exposed to the network

  • ADB requires USB debugging to be explicitly enabled on the device

  • The device must accept your host's RSA key on first connection

  • Only connect devices you own and trust the AI agent you are using

License

MIT — see LICENSE

Available Tools

38 tools
app_currentA

Get the currently foregrounded app package name and activity.

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the action without disclosing behavioral traits like required permissions, error conditions (e.g., no foregrounded app), or side effects. Minimal beyond the action.

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

Conciseness5/5

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

A single, front-loaded sentence that efficiently conveys the tool's purpose with 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?

The description explains what the tool returns (package name and activity), which compensates for the lack of an output schema. However, it does not specify the format or structure of the return value, leaving minor ambiguity.

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% for the single parameter 'serial', which has a clear description. The tool description does not add any additional meaning 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 clearly states the verb 'Get' and the resource 'currently foregrounded app', and specifies what it returns (package name and activity). This distinguishes it well from siblings like app_install or app_start.

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

Usage Guidelines3/5

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

The description implies usage as a simple query tool, but provides no explicit guidance on when to use it versus alternatives or when not to use it. Sibling tools are listed but not referenced.

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

app_installB

Install an APK file on the device from the host machine.

ParametersJSON Schema
NameRequiredDescriptionDefault
apkPathYesAbsolute path to the APK file on the host machine
serialNoDevice serial number

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden but fails to disclose behavioral details such as whether installation is destructive (e.g., overwrites existing app) or requires specific conditions.

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?

Single sentence with no redundancy, directly states the action and context.

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?

Missing details about return values, error scenarios, or device state requirements; incomplete for a tool with no output schema and no annotations.

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%; description adds 'Absolute path' for apkPath which aligns with schema, but does not enrich beyond schema for either parameter.

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 'Install', the resource 'APK file', and the context 'on the device from the host machine', effectively differentiating it from siblings like app_uninstall.

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 (e.g., app_start) or any prerequisites like device connection or permissions.

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

app_listB

List installed packages on the device. Optionally filter by name or restrict to system/third-party apps.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter packages by name (partial match, case-insensitive)
systemNotrue = system apps only, false = third-party only, omit = all
serialNoDevice serial number

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility. It only mentions listing and filtering, but does not disclose any behavioral traits such as permissions needed, whether this is a read-only operation, or potential side effects.

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

Conciseness5/5

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

A single concise sentence that directly states the tool's purpose and key options. No unnecessary words or redundant information.

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

Completeness2/5

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

The description lacks information about the return format (e.g., list of package names or details), ordering, or pagination. Given the absence of an output schema and annotations, the agent may not know what to expect from the tool's response.

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

Parameters3/5

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

All three parameters ('filter', 'system', 'serial') are described in the input schema with full coverage. The description adds minimal value by reiterating the filter and system options, but does not explain the 'serial' parameter or provide further details 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 clearly states the tool lists installed packages on the device, with optional filtering by name or type (system/third-party). It effectively distinguishes from sibling tools like app_install or app_start which perform different actions.

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

Usage Guidelines3/5

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

The description implies usage when needing to list packages, but provides no explicit guidance on when not to use this tool versus alternatives. No comparison with siblings like app_current or ui_find_element is given.

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

app_startA

Launch an app on the device. Uses scrcpy START_APP when a session is active for faster launch, falls back to ADB am start. Supports force-stop prefix (+) to stop the app before launching.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageNameYesPackage name to launch (e.g., 'com.example.app'). Prefix with '+' to force-stop the app first (e.g., '+com.example.app')
serialNoDevice serial number

TDQS

A4/5.0
Behavior4/5

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

Without annotations, the description provides useful behavioral details: it uses scrcpy when a session is active, falls back to ADB, and supports a force-stop prefix. However, it does not disclose what happens if the app is already running or error handling, which is a minor gap.

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 long, front-loaded with the main purpose, and each sentence adds value: the first states the action, the second explains the method and a special feature. 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?

The tool is simple, and the schema covers parameters well. The description adds key behavioral context (fallback, force-stop). However, it could clarify whether serial is optional and what happens if the app is already running, but overall sufficient for a launch tool.

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

Parameters3/5

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

Both parameters have descriptions in the schema (100% coverage), so the description adds little beyond confirming the force-stop prefix. The baseline of 3 is appropriate as the schema already clarifies the parameters adequately.

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 primary function: 'Launch an app on the device.' It specifies the resource (app) and verb (launch), and differentiates from sibling tools like app_stop (stop) and app_install (install) by focusing solely on launching.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives like app_stop or app_current. While it mentions internal behavior (session vs. ADB), it lacks guidance on choosing this tool over others for specific scenarios.

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

app_stopB

Force-stop an app on the device.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageNameYesPackage name to force-stop (e.g., 'com.example.app')
serialNoDevice serial number

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only says 'force-stop' without explaining side effects like data loss, app state reset, or whether it works on background processes. Behavior is under-disclosed.

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

Conciseness4/5

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

The description is a single, short sentence with no wasted words. While concise, it could be slightly more informative without sacrificing brevity.

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

Completeness2/5

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

Given no output schema and a forceful operation, the description lacks important context such as return value, failure conditions (e.g., app not running), and whether it blocks. Incomplete for an agent to use confidently.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The tool description adds no extra meaning beyond the schema, so 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 clearly states the action (force-stop) and the resource (app on the device). It distinguishes itself from sibling tools like app_start or app_uninstall by specifying 'force-stop' rather than 'start' or 'uninstall'.

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 usage guidelines are provided. The description does not indicate when to use this tool instead of alternatives, nor does it mention prerequisites or potential consequences.

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

app_uninstallC

Uninstall an app from the device.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageNameYesPackage name to uninstall (e.g., 'com.example.app')
serialNoDevice serial number

TDQS

C2.8/5.0
Behavior1/5

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

No annotations are provided, so the description must disclose behavior. It does not mention potential side effects (e.g., data deletion), required permissions, or whether it works on system apps.

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

Conciseness3/5

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

The description is a single sentence with no wasted words, but it is too sparse. It could be considered under-specified rather than appropriately concise.

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

Completeness2/5

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

Given no output schema and no annotations, the description fails to cover expected behavior, error handling, or how to use the optional serial parameter effectively.

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%, so the schema already describes both parameters. The tool description adds no extra meaning beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the action ('Uninstall') and resource ('app from the device'). It is specific and distinct from sibling tools like app_install or app_start.

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 this tool versus alternatives such as app_stop or app_install. No prerequisites or context for usage (e.g., device must be connected, app must be installed).

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

clipboard_getA

Get the current clipboard content from the device. Uses scrcpy GET_CLIPBOARD when a session is active (works on Android 10+), falls back to ADB clipboard commands.

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number

TDQS

A4.3/5.0
Behavior4/5

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

Without annotations, the description carries the full burden. It discloses the dual method (scrcpy vs ADB) and version dependency (Android 10+), providing clear behavioral insight. No destructive actions are 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?

Two concise sentences with no wasted words. The first sentence states the purpose, the second adds important behavioral detail. Ideal structure for quick understanding.

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 simple nature of the tool (one optional parameter, no output schema), the description fully covers the functionality, method selection logic, and version constraints. No missing information for an agent to use the tool correctly.

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

Parameters3/5

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

The input schema has 100% coverage with a description for the serial parameter. The description does not add additional context beyond the schema, so it meets the baseline without adding extra 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 'Get the current clipboard content from the device' with a specific verb and resource. It distinguishes from the sibling tool clipboard_set by focusing on getting rather than setting.

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 explains when scrcpy is used (active session) and the fallback to ADB, providing implicit guidance for context. It does not explicitly state when not to use or compare to alternatives, but the scope is narrow enough that this is sufficient.

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

clipboard_setA

Set the clipboard content on the device. Uses scrcpy SET_CLIPBOARD when a session is active (with optional paste flag), falls back to ADB clipboard commands.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to set in the clipboard
pasteNoAlso simulate paste action (scrcpy only)
serialNoDevice serial number

TDQS

A4.2/5.0
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 the dual mechanism (scrcpy vs ADB) and the paste flag limitation, providing good behavioral context. However, it does not mention side effects like overwriting or permissions.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the purpose and efficiently conveys key behavior without extraneous 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 3 parameters, no output schema, and no annotations, the description covers the main behavior and parameter semantics adequately. It lacks details on return values or error states but is sufficient for a set operation.

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%, so baseline 3. The description adds value by explaining the fallback behavior and the paste flag's scrcpy-only dependence, which goes beyond schema descriptions.

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 'Set' and the resource 'clipboard content on the device', and distinguishes it from the sibling 'clipboard_get' by specifying the write operation. It also explains the fallback behavior.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives like clipboard_get, nor does it provide when-not-to-use or prerequisites. The usage is implied but not guided.

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

collapse_panelsA

Collapse all open panels (notification, settings) (requires active scrcpy session)

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the action and prerequisite, but does not mention behavior when no panels are open, potential side effects, or error conditions. This is adequate but not thorough.

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

Conciseness5/5

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

The description is a single sentence that front-loads the action and includes a prerequisite. Every word is necessary, 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 the tool's simplicity (single optional parameter, no output schema), the description effectively covers the core purpose and prerequisite. It is nearly complete but could mention fallback behavior or confirmation of action.

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 has one parameter 'serial' with a description 'Device serial number', achieving 100% coverage. The tool description adds no further information about the parameter, so it meets the baseline but adds no extra 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 action ('collapse all open panels') and gives specific examples ('notification, settings'). It also mentions a prerequisite, distinguishing it from sibling tools like expand_notifications and expand_settings.

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 prerequisite 'requires active scrcpy session', providing clear context for usage. However, it does not specify when not to use the tool or mention alternatives, which would strengthen guidance.

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

connect_wifiB

Enable WiFi ADB and connect to the device wirelessly. Returns the connection address.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoTCP port for ADB connection (default: 5555)
serialNoDevice serial number

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states the action and return type, omitting side effects (e.g., enabling a setting, potential security implications), requirements (e.g., USB debugging must be enabled), or 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.

Conciseness5/5

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

The description is extremely concise: two sentences, front-loaded with the action, and no extraneous words. Every word serves a purpose.

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

Completeness2/5

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

Given the lack of annotations, output schema, and the presence of a complementary sibling ('disconnect_wifi'), the description is insufficient. It does not explain prerequisites, return value structure, error handling, or side effects, leaving an agent with incomplete context to use the tool reliably.

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 both parameters ('port' with default and 'serial') are described in the schema. The tool description adds 'Returns the connection address' but no additional meaning to the parameters beyond what the schema provides. 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 clearly states the tool's purpose: 'Enable WiFi ADB and connect to the device wirelessly.' It uses a specific verb ('enable' and 'connect') and identifies the resource ('WiFi ADB' and 'device'). It distinguishes from the sibling 'disconnect_wifi', making the tool's role unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives or prerequisites. It does not mention that the device must first be connected via USB to enable WiFi ADB, nor does it specify when not to use it.

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

device_infoA

Get detailed info about a device: model, Android version, screen size, SDK level, battery level

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number. If omitted, uses the only connected device.

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It implies a read-only operation (Get) and lists the returned data. It does not mention potential error conditions, but for a simple info retrieval tool, the behavioral traits are sufficiently disclosed.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the action and lists key information. Every word earns its place with no redundancy or filler.

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 the lack of an output schema, the description lists the types of information returned (model, version, screen size, etc.), which is sufficient for an agent to understand the result. The tool is simple and the single optional parameter is well-documented in the schema.

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 coverage is 100% with one parameter that has a clear description. The tool description does not add additional meaning beyond the schema, so it meets the baseline expectation.

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 'Get' and the resource 'detailed info about a device', listing specific attributes. It distinguishes from sibling tools like device_list which only lists devices, and other device-specific tools that modify state.

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 clear context for when to use the tool, but does not explicitly mention when not to use it or offer alternatives. However, the purpose is distinct enough among siblings that an agent can infer appropriate usage.

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

device_listA

List all connected Android devices with their serial numbers, state, and model

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
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 output fields and scope ('all connected Android devices'), but doesn't mention error cases or empty list behavior. For a list tool, this is adequate.

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?

Single sentence with no fluff, front-loading the verb 'List' and specifying the resource and output. Every word adds value.

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 simple list tool with no parameters and no output schema, the description is fully complete. It tells what is listed and what fields are returned, which is all an agent needs.

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?

No parameters exist, and schema coverage is 100% (empty schema). The description adds meaning by clarifying what the tool outputs, which is beyond the schema. Baseline for zero parameters is 4; the clear output specification earns a 5.

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 lists connected Android devices and specifies the returned fields (serial, state, model). It distinguishes from sibling tools like device_info which would provide details on a single device.

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

Usage Guidelines3/5

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

Usage is implied but no explicit when-to-use or when-not-to-use guidance. The simplicity of the tool mitigates the need for detailed alternatives, but a mention of context (e.g., before installing) would improve clarity.

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

disconnect_wifiB

Disconnect from a wireless ADB device

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesDevice address (e.g., 192.168.1.100:5555)

TDQS

B3.1/5.0
Behavior2/5

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

The description lacks behavioral details beyond the basic action. It does not disclose side effects, required state (e.g., must be connected), or error conditions. With no annotations, the description carries the full burden but provides minimal 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 a single, concise sentence with no unnecessary words. It is appropriately front-loaded and efficient.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description is adequate but lacks context on prerequisites, behavior when no connection exists, or consequences. It is minimally complete but could be more informative.

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 the description does not add additional meaning beyond the schema. The parameter 'address' is already described in the schema. Baseline 3 applies.

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

Purpose4/5

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

The description clearly states the action 'Disconnect' and the target 'wireless ADB device'. It is specific and implicitly distinguishes from the sibling 'connect_wifi'.

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 this tool versus alternatives, such as when a connection is active or prerequisites. The context is implied by the name but not explicitly stated.

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

drag_dropA

Perform a drag and drop gesture from one point to another. Uses input draganddrop on Android 8.0+ (API 26), falls back to swipe on older versions.

ParametersJSON Schema
NameRequiredDescriptionDefault
startXYesStart X coordinate
startYYesStart Y coordinate
endXYesEnd X coordinate
endYYesEnd Y coordinate
durationNoDuration in milliseconds
serialNoDevice serial number

TDQS

A3.6/5.0
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 version-dependent behavior (API 26 vs fallback) but omits other behavioral traits such as prerequisites (e.g., screen state) or effects of the gesture beyond movement. It adds value but is not comprehensive.

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 long, front-loads the primary purpose, and includes a critical version-specific detail without any superfluous words. Every sentence earns its place.

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 simplicity (gesture without complex outputs), the description covers the main behavior and version handling. It is reasonably complete for a 6-parameter tool, though it could mention coordinate constraints relative to screen boundaries.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter having a basic description (e.g., 'Start X coordinate'). The tool description does not add extra meaning beyond what the schema already provides. 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 clearly states the action ('drag and drop gesture'), the resource ('from one point to another'), and distinguishes from sibling tools like 'swipe' by specifying the use of a dedicated API on Android 8.0+ with a fallback to swipe on older versions. This provides a specific verb and resource context.

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 explicit guidance on when to use this tool versus alternatives like 'swipe' or 'long_press'. It implies usage for drag-and-drop gestures but lacks clear context, exclusions, or transition cues to other tools.

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

expand_notificationsA

Expand the notification panel (requires active scrcpy session)

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number

TDQS

A3.8/5.0
Behavior3/5

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

Lacking annotations, the description only mentions the session requirement but does not disclose other behavioral traits such as error behavior, permission needs, or side effects.

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

Conciseness5/5

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

The description is a single, concise sentence with no unnecessary words, efficiently conveying the tool's purpose and a key prerequisite.

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 one-parameter tool with no output schema, the description sufficiently covers the action and the critical prerequisite, though it could mention behavior when no session exists.

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% for the single parameter, and the description adds no extra meaning beyond what the schema already provides.

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 'Expand the notification panel' uses a specific verb and resource, clearly distinguishing it from sibling tools like 'collapse_panels' and 'expand_settings'.

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 states the prerequisite 'requires active scrcpy session' but provides no guidance on when to use this tool versus alternatives (e.g., expand_settings) or when not to use it.

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

expand_settingsA

Expand the quick settings panel (requires active scrcpy session)

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description only mentions a prerequisite. It does not disclose other behaviors (e.g., toggling behavior, Android version requirements, or side effects) beyond the basic action.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no extraneous words. Every part (action and prerequisite) earns its place.

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

Completeness3/5

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

For a simple tool with one optional parameter, the description is adequate but minimal. It could benefit from explaining the panel's purpose or result state, though sibling context somewhat compensates.

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% with 'Device serial number' for the only parameter. The tool description adds no further parameter meaning beyond what the schema already provides.

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 'Expand the quick settings panel', a specific verb and resource. It distinguishes from siblings like 'expand_notifications' and 'collapse_panels' by naming a different panel.

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 notes a prerequisite ('requires active scrcpy session') but provides no guidance on when to use vs. alternatives like swipe or tap, nor what happens if already expanded.

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

file_listC

List directory contents on the device.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the directory on the device (e.g., /sdcard/)
serialNoDevice serial number

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It fails to disclose behavior for errors (e.g., invalid path), permission needs, or output format. The description is too minimal for safe invocation.

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

Conciseness2/5

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

The description is a single sentence, but it is under-specified for the tool's complexity (2 params, no annotations). It lacks essential details, so it does not earn its place; conciseness without completeness is a flaw.

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

Completeness2/5

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

Given no output schema and many sibling tools, the description should explain return values and differentiate usage. It does neither, making it incomplete for reliable tool selection.

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%, so both parameters (path, serial) are described in the schema. The description adds no extra meaning beyond the schema, so a baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states it lists directory contents on the device, using a specific verb and resource. It distinguishes from siblings like file_pull and file_push, but does not specify whether listing is recursive or one level, which is a minor gap.

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 vs alternatives. There is no mention of context, prerequisites, or exclusions, leaving the agent without decision support.

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

file_pullB

Pull a file from the device to the host machine.

ParametersJSON Schema
NameRequiredDescriptionDefault
remotePathYesPath to the file on the device (e.g., /sdcard/myfile.txt)
localPathYesDestination absolute path on the host machine
serialNoDevice serial number

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It does not disclose error behavior, overwrite policy, permission requirements, or any side effects. The agent lacks critical behavioral context.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but insufficiently detailed. It meets minimal standards but lacks necessary elaboration for a useful tool description.

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

Completeness2/5

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

Given no output schema and no annotations, the description should provide more context about return values, error handling, and behavioral details. It is incomplete for an agent to use effectively.

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 no additional meaning beyond the schema's parameter descriptions; it does not enhance understanding of the parameters.

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

Purpose5/5

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

The description clearly states the action ('Pull') and the resource ('a file from the device to the host machine'). This verb+resource structure is specific and distinguishes the tool from siblings like file_push.

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, nor are there any prerequisites or exclusions mentioned. The agent is left without context for appropriate usage.

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

file_pushB

Push a file from the host machine to the device.

ParametersJSON Schema
NameRequiredDescriptionDefault
localPathYesAbsolute path to the file on the host machine
remotePathYesDestination path on the device (e.g., /sdcard/myfile.txt)
serialNoDevice serial number

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided. Description does not disclose key behaviors like overwrite policy, permission requirements, error handling, or size limits. For a mutation tool, this is a significant gap.

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?

Single sentence with 10 words is highly concise. However, it omits important information that could be added without significant bloat.

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

Completeness2/5

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

Given no output schema and no annotations, the description fails to provide sufficient context for an agent to understand results, side effects, or error conditions. Should include overwrite behavior and outcome indicators.

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 descriptions cover all three parameters with clear explanations (localPath, remotePath, serial). The main description adds no extra param details, but schema coverage is 100%, so baseline 3 applies.

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 the action (push) and the resource (file) with direction from host to device. Distinguishes from sibling file_pull which does the reverse.

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 this tool versus alternatives like adb push or other file tools. No mention of prerequisites or conditions.

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

input_textA

Type text into the currently focused input field

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to type
serialNoDevice serial number

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so the description must fully disclose behavior. It states the action (typing into focused field) but omits details like what happens if no field is focused, typing speed, or support for special characters.

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?

Single sentence, no wasted words. Clearly conveys the core action.

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 two parameters and no output schema, the description is mostly complete. It could hint at the prerequisite of an active focus, 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 descriptions). The description does not add meaning beyond what the schema provides, so baseline 3 applies.

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 uses a specific verb ('Type') and resource ('text into the currently focused input field'), clearly distinguishing from sibling tools like tap, swipe, or key_event.

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

Usage Guidelines3/5

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

The description implies usage (when you need to input text into a focused field), but provides no explicit guidance on when to use it versus alternatives like key_event for individual keystrokes, nor conditions for success.

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

key_eventB

Send a key event to the device. Supports keycodes like HOME, BACK, ENTER, VOLUME_UP, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
keycodeYesKeycode name (e.g., 'HOME', 'BACK') or numeric value
serialNoDevice serial number

TDQS

B3.2/5.0
Behavior2/5

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

Beyond stating it sends a key event, the description provides no behavioral details such as whether it is synchronous, how the device responds to invalid keycodes, or side effects (e.g., waking the device). With no annotations, more transparency is needed.

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 (two sentences) with no redundant information. It front-loads the action and immediately provides useful examples, wasting no words.

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

Completeness3/5

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

For a simple tool, the description covers the basics (action and keycode examples) but lacks details on error behavior, device connectivity, or when to use it over sibling tools. With no output schema, the agent is left guessing about the result of the operation.

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 description adds value by listing example keycode names (HOME, BACK, ENTER) which supplement the schema's broad type definition. However, it does not mention the optional 'serial' parameter, leaving its purpose implicit.

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 ('Send a key event to the device') and provides examples of supported keycodes, making the purpose specific and discernible from siblings like tap or swipe. However, it does not explicitly differentiate it from similar tools.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives (e.g., shell_exec, tap). The description does not mention prerequisites, device state requirements, or scenarios where key_event is preferred over other input methods.

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

long_pressC

Perform a long press at the specified coordinates

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate
yYesY coordinate
durationNoDuration in milliseconds
serialNoDevice serial number

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the action without mentioning side effects, blocking behavior, or return values.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks structure. It is not verbose, but could be more informative without being longer.

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?

No output schema exists, and the description does not explain what the tool returns or how it interacts with the device. Given the number of parameters and sibling tools, more context is needed.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for each parameter, so the description adds no extra meaning. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action (long press) and location (coordinates). It is specific but does not differentiate from sibling tools like 'tap' or 'swipe', which could confuse an AI agent.

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 this tool vs alternatives (e.g., tap, swipe). The description lacks context about prerequisites or typical use cases.

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

rotate_deviceB

Rotate the device screen (requires active scrcpy session)

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number

TDQS

B3.1/5.0
Behavior2/5

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 mentions the prerequisite but fails to describe the exact rotation behavior (e.g., toggles orientation vs. rotates by a fixed angle) or any side effects. The agent is left uncertain about the outcome.

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

Conciseness5/5

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

The description is a single, concise sentence with no filler words. It efficiently communicates the action and a key prerequisite. No structural improvements are needed.

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

Completeness3/5

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

Given the tool's simplicity and lack of output schema, the description covers the basic purpose and a critical condition. However, it omits details like return value (e.g., success flag) or orientation state after rotation, which would help an agent verify success.

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 has one parameter ('serial') with a description ('Device serial number') that is clear. Schema description coverage is 100%, so the description does not need to add more. Baseline score 3 is appropriate as the description neither clarifies nor obscures the parameter.

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

Purpose4/5

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

The description clearly states the verb 'Rotate' and the resource 'device screen', making the action unambiguous. It also notes a prerequisite (active scrcpy session), which adds context. However, it does not specify the rotation direction (e.g., toggle or 90° clockwise), leaving some ambiguity.

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

Usage Guidelines2/5

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

The description provides a single usage condition ('requires active scrcpy session'), which is useful but insufficient. It does not indicate when to avoid using this tool (e.g., when no session exists) or suggest alternatives, even though siblings like 'screen_on' or 'tap' are unrelated.

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

screen_offB

Turn the device screen off

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description bears full responsibility. It only states the action without disclosing side effects (e.g., whether a session must be active, if the device must be unlocked, or if the screen can be turned back on via screen_on).

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

Conciseness5/5

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

The description is a single sentence with no extraneous words. It is maximally concise and front-loaded.

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

Completeness3/5

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

Given the simplicity of the tool (one optional parameter, no output schema), the description is minimally adequate. However, it lacks behavioral context that would help an agent understand implications, such as whether it requires an active session or if it triggers any side effects.

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% for the single parameter (serial). The description adds no extra meaning beyond what is already in the schema, so a baseline score 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 and resource: 'Turn the device screen off.' It clearly distinguishes from sibling tools like screen_on (opposite) and screen_record_start (different action).

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 (e.g., screen_on, rotate_device). There is no context about prerequisites or typical use cases.

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

screen_onB

Wake the device screen (turn screen on)

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden, but it only says 'wake the device screen'. It does not disclose potential side effects like unlocking the screen, triggering a lock screen passcode, or requiring specific permissions. The behavior is under-specified.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. It is appropriately concise for a simple tool, though it could benefit from minor expansion (e.g., on usage context).

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

Completeness2/5

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

Given no output schema and a simple parameter, the description is incomplete. It does not mention that the 'serial' parameter is optional (required params count = 0), nor does it describe the return value or error states (e.g., what happens if the device is off or unreachable).

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

Parameters3/5

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

Schema coverage is 100% with one parameter 'serial' described as 'Device serial number'. The description adds no additional semantics beyond what the schema provides, so the baseline score 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 clearly states the action ('Wake the device screen') and the resource ('screen'). It effectively distinguishes from sibling tools like screen_off (which turns screen off) and screenshot (which captures image).

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. For example, it does not mention whether the device must be unlocked or if the screen is already on, nor does it suggest when to use screen_on versus key_event (e.g., power button).

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

screen_record_startA

Start recording the screen. Recording continues until screen_record_stop is called.

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number
remotePathNoPath on device to save recording/sdcard/scrcpy-mcp-recording.mp4
durationNoMax recording duration in seconds (optional, device limit usually 180s)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It states the start/stop lifecycle and mentions a duration limit (in the parameter description). However, it does not disclose other behavioral traits like file size, permission needs, or potential conflicts (e.g., restricting other screen operations).

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 with no unnecessary words. Every sentence adds value: the first states the purpose, the second explains lifecycle. It is 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?

For a start-variant tool with no output schema, the description is reasonably complete given the simplicity of the action. It covers the core lifecycle (start/stop) and duration constraint. However, it could hint at return status (e.g., 'returns a success flag') for completeness.

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% (all three parameters have descriptions). The description adds no extra meaning to parameters beyond what the schema provides, so the baseline score 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 clearly states the action ('Start recording the screen') and the resource ('screen'). It also explicitly mentions the pairing with screen_record_stop, which distinguishes it from sibling tools. 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 indicates when to use this tool ('Start recording') and that recording continues until stop is called, implying a pairing. However, it lacks explicit guidance on when not to use it or alternatives (though no direct alternative exists). The context is clear but not exhaustive.

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

screen_record_stopA

Stop screen recording and optionally pull the file to the host.

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number
pullToHostNoPull the recording to the host machine
localPathNoLocal path to save recording (only if pullToHost is true)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only mentions optional pull, but fails to disclose what happens to the recording file if not pulled, or any other behavioral traits.

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?

One short, complete sentence with 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 output schema, low complexity, and full schema coverage, the description is adequate. Could mention file location if not pulled, but not critical.

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

Parameters3/5

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

Schema coverage is 100% with descriptions. The description adds the phrase 'optionally pull' which aligns with pullToHost, but does not add meaning 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 clearly states the action (stop screen recording) and the optional file pull, distinguishing it from screen_record_start.

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

Usage Guidelines3/5

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

No explicit guidance on when to use vs alternatives, but it is naturally complementary to screen_record_start. A minimal viable score.

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

screenshotA

Take a screenshot of the Android device screen. Returns the image as base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number

TDQS

A3.6/5.0
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 return format (base64) but omits side effects, permissions, or resolution details. Adequate for a simple read operation.

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

Conciseness5/5

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

Extremely concise with two sentences, front-loaded with action. 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?

For a simple tool with one param and no output schema, the description is mostly complete. Minor missing detail: base64 encoding format (e.g., PNG).

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

Parameters3/5

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

Schema coverage is 100% with param 'serial' described. Description adds no extra meaning beyond schema; baseline score 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 clearly states the tool takes a screenshot and returns base64. It is a specific verb+resource, distinct from siblings like screen_record_start.

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 this tool versus alternatives (e.g., screen_record_start, ui_dump). No explicit context or exclusions provided.

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

scrollB

Scroll at the specified position. dx and dy are scroll amounts (-1 to 1 range approximated for ADB).

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate to scroll at
yYesY coordinate to scroll at
dxYesHorizontal scroll amount (negative=left, positive=right)
dyYesVertical scroll amount (negative=up, positive=down)
serialNoDevice serial number

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It mentions ADB approximation and range, but does not disclose side effects, permissions, or error behavior.

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

Conciseness5/5

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

Extremely concise: two sentences covering purpose and parameter detail. No unnecessary words, well front-loaded.

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

Completeness3/5

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

No output schema or return value info. While the tool is simple, description lacks details on what happens after scroll (e.g., success indication, whether it blocks). Adequate but not complete.

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

Parameters4/5

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

Schema already covers all parameters with descriptions. Description adds the key nuance that dx/dy are in -1 to 1 range approximated for ADB, enhancing understanding.

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

Purpose4/5

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

The description clearly states the tool scrolls at a position and defines dx/dy as scroll amounts. It distinguishes from sibling tools like swipe, but could be more explicit about the gesture type.

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 scroll vs alternative tools like swipe or drag_drop. No context on prerequisites or limitations.

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

shell_execA

Execute an arbitrary ADB shell command on the device and return the output. Use this for any device operation not covered by other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesShell command to execute on the device
serialNoDevice serial number

TDQS

A3.7/5.0
Behavior2/5

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 only says 'execute an arbitrary ADB shell command and return the output', lacking warnings about potential destructive actions, permissions, or error handling.

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 wasted words. Front-loads purpose and usage guidance efficiently.

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

Completeness3/5

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

Given the simplicity of the tool and high schema coverage, the description covers purpose and usage. However, it lacks safety context that would be prudent for an arbitrary command execution tool.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both parameters. The description does not add additional meaning beyond what the schema already provides.

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 verb 'execute' and resource 'ADB shell command', and differentiates from sibling tools by specifying it is for operations not covered by other tools.

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 'Use this for any device operation not covered by other tools', guiding when to use. However, no exclusions or prerequisites are mentioned.

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

start_sessionA

Start a scrcpy session for fast input control and screenshots. When a session is active, tap/swipe/text/screenshot are 10-50x faster. Requires scrcpy-server to be installed.

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number
maxSizeNoMax screen dimension in pixels (default 1024)
maxFpsNoMax frames per second (default 30)

TDQS

A4/5.0
Behavior3/5

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

The description discloses that the session makes subsequent operations faster and requires scrcpy-server, but does not specify behavior on session duplication, resource locking, or error states. Since no annotations are provided, the description carries the full burden and offers moderate 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 purpose and benefit, and includes a prerequisite. Every sentence adds value, with 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 tool with three optional parameters and no output schema, the description adequately covers purpose, benefit, and prerequisite. However, it omits details on return values or success/failure indicators, which would improve completeness.

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 description does not add any parameter-specific information beyond the input schema, which already fully covers the three parameters (serial, maxSize, maxFps). Given high schema coverage, 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 clearly states the tool's purpose: starting a scrcpy session for fast input control and screenshots. It differentiates from siblings like stop_session and implies its role in enabling faster operations for tools like tap and swipe.

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 when to use the tool (before tap/swipe/text/screenshot to gain speed benefits) and mentions a prerequisite (scrcpy-server installation), but does not explicitly state when not to use it or provide alternatives.

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

start_video_streamB

Start an HTTP MJPEG video stream of the device screen. Opens a native ffplay window that connects to the stream URL. Requires an active scrcpy session.

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number
portNoHTTP port for the MJPEG stream (default 7183)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It mentions opening a native ffplay window and requiring an active scrcpy session, but fails to describe side effects (e.g., blocking behavior, resource usage, what happens if already streaming) or how to stop the stream.

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

Conciseness4/5

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

The description is two sentences, with the primary purpose first and a necessary prerequisite second. It is concise and front-loaded, though the second sentence could be slightly more integrated.

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

Completeness3/5

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

Given no annotations, no output schema, and two well-described parameters, the description covers the basics but omits important context: how to stop the stream (via stop_video_stream), what the stream URL is, and whether the ffplay window must be manually closed. It is minimally adequate.

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 full coverage (100%) for both parameters (serial, port) with clear descriptions. The tool description adds no additional meaning beyond what the schema states, so it does not improve parameter understanding.

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 starts an HTTP MJPEG video stream of the device screen, using a specific verb and resource. It implicitly distinguishes from siblings like screenshot (single image) and screen_record (file recording) by mentioning the stream and ffplay window.

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 mentions a prerequisite ('Requires an active scrcpy session') but does not provide explicit guidance on when to use this tool versus alternatives like screen_record_start or screenshot. There is no mention of when not to use it or trade-offs.

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

stop_sessionA

Stop the active scrcpy session. Tools will fall back to ADB commands.

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description adds some behavioral context beyond the bare action by stating that tools will fall back to ADB. But it lacks details on side effects, idempotency, or what happens if no session is active.

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. The information is front-loaded and each 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?

For a simple stop tool with one optional parameter and no output schema, the description covers the main action and a key consequence. Minor gap: no mention of idempotency or call safety, but overall adequate.

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%, so the schema already documents the single parameter. The description does not add any additional parameter-specific information beyond what is in 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 clearly states the verb ('Stop') and resource ('active scrcpy session'), and distinguishes it from sibling tools like start_session by explaining the effect on tool behavior.

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 implies use when a scrcpy session is active and notes the fallback to ADB, providing context for when to invoke. However, it does not explicitly state when not to use or list alternatives.

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

stop_video_streamA

Stop the HTTP MJPEG video stream and close the viewer window for a device.

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number

TDQS

A3.6/5.0
Behavior3/5

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

Without annotations, the description provides basic behavior: stopping stream and closing window. However, it does not disclose effects like idempotency (safe to call multiple times) or error conditions, leaving some gaps.

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

Conciseness5/5

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

The description is a single concise sentence with no fluff. Every word adds value, and it is front-loaded with the key 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?

For a simple tool with one parameter and no output schema, the description covers the main action and target. Minor gaps (e.g., no mention of error states) but generally adequate.

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

Parameters3/5

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

Schema coverage is 100% with a description for the 'serial' parameter. The tool description adds no extra meaning beyond the schema; 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 clearly states the action: 'Stop the HTTP MJPEG video stream and close the viewer window for a device.' It includes a specific verb and resource, and distinguishes from sibling tools like 'start_video_stream'.

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 this tool or when not to. It does not mention prerequisites (e.g., stream must be active) or alternative tools, leaving the agent to infer usage context.

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

swipeC

Perform a swipe gesture from one point to another

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesStart X coordinate
y1YesStart Y coordinate
x2YesEnd X coordinate
y2YesEnd Y coordinate
durationNoDuration in milliseconds
serialNoDevice serial number

TDQS

C2.9/5.0
Behavior2/5

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

The description is minimal and does not disclose behavioral traits beyond the basic gesture. No annotations exist, so the description should explain the effect of coordinates, duration, edge cases, or device interaction. It fails to convey what happens during the swipe or any 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?

The description is a single sentence with no redundant words. It is front-loaded with the main action. However, it could be slightly expanded to include key context 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?

Given the absence of both annotations and an output schema, the description should provide more context about return values, device targeting (serial parameter), and behavior. The current description is too brief to be fully actionable for an autonomous agent.

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 covers all six parameters with individual descriptions, providing high coverage (100%). The description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states it performs a swipe gesture between two points, which is specific to the tool's function. However, it does not differentiate itself from sibling gesture tools like 'scroll' or 'drag_drop', which could be confused with a swipe in certain contexts.

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 (e.g., tap, long_press, scroll). There is no mention of prerequisites, context, or cases where this tool is inappropriate, leaving the agent without decision support.

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

tapA

Tap at the specified screen coordinates

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate
yYesY coordinate
serialNoDevice serial number

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits but only states the action. It doesn't mention coordinate system, off-screen behavior, or feedback, which is minimal but not misleading for a simple action.

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 clear sentence with no unnecessary words, efficiently conveying the tool's purpose.

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 3 parameters and no output schema, the description is mostly complete but lacks details on coordinate system or edge cases, slightly reducing completeness.

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%, but the description adds no extra meaning beyond the schema's field descriptions (e.g., 'X coordinate'). 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 'Tap at the specified screen coordinates' uses a specific verb ('tap') and resource ('screen coordinates'), clearly distinguishing it from sibling tools like 'long_press' or 'swipe'.

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 (e.g., when a tap vs. click or long press is needed), nor any prerequisites or context.

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

ui_dumpA

Dump the full UI hierarchy of the current screen as XML. Useful for understanding screen structure before using ui_find_element.

ParametersJSON Schema
NameRequiredDescriptionDefault
serialNoDevice serial number

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It does not mention whether the operation is read-only, requires authentication, or has side effects. The agent cannot infer safety or 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 extremely concise with two sentences, no unnecessary words, and effectively communicates the core purpose and a contextual tip.

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

Completeness2/5

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

Without an output schema, the description does not explain the structure or content of the returned XML. It also omits important context such as whether a session is required, or if the dump works on all screens.

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% for the single parameter 'serial'. The description adds no additional meaning beyond the schema. Baseline score is 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?

The description clearly states the tool dumps the full UI hierarchy as XML, using a specific verb ('Dump') and resource ('UI hierarchy'). It also differentiates from sibling tools by mentioning its usefulness before using ui_find_element.

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 a clear usage context: 'Useful for understanding screen structure before using ui_find_element.' This suggests a sequential workflow, but it does not explicitly state when not to use this tool or mention alternatives.

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

ui_find_elementA

Find UI elements on screen by text, resource ID, class name, or content description. Returns matching elements with their tap coordinates. At least one search criterion must be provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoText content to search for (partial match, case-insensitive)
resourceIdNoResource ID to match exactly (e.g., 'com.app:id/button')
classNameNoClass name to match exactly (e.g., 'android.widget.Button')
contentDescNoContent description to search for (partial match, case-insensitive)
serialNoDevice serial number

TDQS

A4/5.0
Behavior3/5

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

While no annotations are provided, the description mentions returning elements with tap coordinates but lacks details on multiple matches, timeouts, or confirmation of whether it waits for elements. Schema descriptions partially compensate by noting match types.

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

Conciseness5/5

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

Two concise sentences directly stating purpose and a key usage rule. No redundant information, front-loaded with the main action.

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 basic functionality and return value, but lacks details on multiple matches or ordering. Given no output schema, it could be more complete but is sufficient for common use.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds no new meaning beyond listing the criteria types (text, resource ID, class name, content description). It does not explain behavior like partial vs exact matching beyond what schema descriptions already provide.

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 finds UI elements by various criteria (text, resource ID, class name, content description) and returns coordinates, distinguishing it from sibling tools like tap or ui_dump.

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 specifies that at least one search criterion must be provided, giving clear usage constraints. It does not explicitly compare to alternatives, but the context of sibling tools makes usage context clear.

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. Dates show when Glama detected each change.

  1. 38 tool updatesv0.2.3
    • First observedapp_current
    • First observedapp_install
    • First observedapp_list
    • First observedapp_start
    • First observedapp_stop
    • First observedapp_uninstall
    • First observedclipboard_get
    • First observedclipboard_set
    • First observedcollapse_panels
    • First observedconnect_wifi
    • First observeddevice_info
    • First observeddevice_list
    • First observeddisconnect_wifi
    • First observeddrag_drop
    • First observedexpand_notifications
    • First observedexpand_settings
    • First observedfile_list
    • First observedfile_pull
    • First observedfile_push
    • First observedinput_text
    • First observedkey_event
    • First observedlong_press
    • First observedrotate_device
    • First observedscreen_off
    • First observedscreen_on
    • First observedscreen_record_start
    • First observedscreen_record_stop
    • First observedscreenshot
    • First observedscroll
    • First observedshell_exec
    • First observedstart_session
    • First observedstart_video_stream
    • First observedstop_session
    • First observedstop_video_stream
    • First observedswipe
    • First observedtap
    • First observedui_dump
    • First observedui_find_element

TDQS

A3.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, with categories like app, clipboard, file, screen, input, UI, and session management. Overlaps are minimal and descriptions clarify any potential confusion.

Naming Consistency4/5

Most tools follow a verb_noun or noun_verb pattern consistently within categories (e.g., app_*, file_*, screen_*). Minor deviations like 'drag_drop' and 'screenshot' are present but do not significantly impact predictability.

Tool Count4/5

38 tools is on the higher side but still justified by the broad scope of device control (apps, files, input, screen, UI, streaming). Paired operations (start/stop) contribute to the count without redundancy.

Completeness5/5

The tool surface covers app lifecycle, file transfer, input gestures, key events, clipboard, screen management, UI inspection, recording, and streaming. The inclusion of 'shell_exec' as a catch-all ensures no operation is impossible.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/JuanCF/scrcpy-mcp'

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