Skip to main content
Glama

shell

Run sh commands in Termux on an Android phone to manage packages, apps, and system tasks via pkg, termux-* tools, am, and pm.

Instructions

Run an sh command in Termux on the user's Android phone. Working dir is the Termux home; shared storage is ~/storage/shared (after termux-setup-storage). pkg, termux-* commands, am and pm are available.

Input Schema

NameRequiredDescriptionDefault
commandYes
timeout_msNodefault 60000

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A3.5/5.0
Behavior3/5

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

No annotations, so the description carries the full burden. It does disclose genuinely useful behavior: the working directory is the Termux home, shared storage lives at ~/storage/shared and requires termux-setup-storage first, and specific command families are available. It says nothing about output format (stdout/stderr/exit code), timeout enforcement despite the 60000ms default, or that arbitrary command execution is inherently destructive.

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?

Three short sentences, zero filler, and the core action is front-loaded before the environment details. The parenthetical prerequisite (after termux-setup-storage) 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 an arbitrary-code-execution tool with no annotations and no output schema, the environment context (cwd, storage, available binaries) is the hardest thing for an agent to infer and is well covered. What is missing is consequential: return value shape, failure/exit-code behavior, and any safety framing about running destructive commands.

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 50%: timeout_ms is documented in the schema as defaulting to 60000, while command has no schema description at all. The description partially compensates by establishing the working directory and storage paths, which determine how relative paths in command resolve, but it adds nothing about command syntax, quoting, or what happens when timeout_ms is exceeded.

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?

States a specific verb and resource: run an sh command in Termux on the user's Android phone. That clearly separates it from the task-specific siblings (open_app, notify, clipboard), though it never explicitly says to prefer those wrappers over raw shell.

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 only implied by the environment facts: the mention of pkg, termux-*, am and pm hints at what is possible here, but there is no explicit 'use this when...' or 'prefer open_app over am start' guidance, and no statement about when shell is the wrong choice.

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