device_shell
Execute a shell command on an Android device and return output
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| udid | Yes | Device serial number (UDID) | |
| command | Yes | Shell command to execute on the device |
Execute a shell command on an Android device and return output
| Name | Required | Description | Default |
|---|---|---|---|
| udid | Yes | Device serial number (UDID) | |
| command | Yes | Shell command to execute on the device |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of disclosing behavioral traits. It states that it executes a command and returns output, but it does not explain potential side effects (e.g., the command could perform destructive actions on the device), permission requirements, or error handling. For a command execution tool that can have arbitrary side effects, this is a significant gap. The description does not contradict any annotations (as none exist), but it is under-informed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that accurately and completely describes the tool's function. There is no unnecessary filler, and the key elements (execute, shell command, Android device, return output) are all present. This is an example of appropriate brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple with only two parametersamenities, and the schema provides complete coverage of those parameters. However, because the tool executes arbitrary shell commands, the description does not warn about the potential for destructive actions or require root privileges. Given the lack of annotations and output schema, the description could provide more context about the security implications and expected output format. It is adequate for a simple command executor but not fully complete for safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema describes both parameters adequately ('Device serial number (UDID)' and 'Shell command to execute on the device'). However, the description does not add additional meaning beyond the schema, such as the format of the command (e.g., if it should include shell escaping) or whether the command runs in a specific context (e.g., as root). The baseline 3 is appropriate as the schema does the heavy lifting and no extra semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Execute a shell command on an Android device and return output', which clearly specifies the verb (execute), resource (shell command on an Android device), and the result (return output). While there is an 'ios_shell' sibling, the description does not explicitly differentiate from it, but the Android mention does so implicitly. The purpose is clear and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage context (for Android devices) but does not provide explicit guidance on when to use this tool versus alternatives like 'ios_shell' or other device-specific commands. It does not mention any preconditions, such as the device being connected or the shell being available. The guidance is not misleading but is minimal beyond the obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.