Skip to main content
Glama

lock

Press the power button: the simulated phone locks and shows the lock screen. The app and its screen are kept. While locked, tap, type, scroll and back fail with phone_locked. Logged in device_log as simulated.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "session": "<session>"
    },
    "name": "lock"
  }
}

Input Schema

NameRequiredDescriptionDefault
sessionYesSession from open_app

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior5/5

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

Annotations declare only readOnlyHint=false and destructiveHint=false; the description goes well beyond them. It discloses that state is preserved (non-destructive in practice), that subsequent tap/type/scroll/back calls fail with a specific error code `phone_locked`, and that the action is recorded in device_log with a 'simulated' marker. These are exactly the behavioral facts an agent needs to plan around a lock.

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, front-loaded with the action and effect, then state preservation, then downstream error behavior and logging. No filler or restated title.

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 one-parameter state-change tool with no output schema, the description covers everything material: what happens to the device, what happens to the running app, what fails afterward and with what error, and where it is logged. Nothing an agent needs before or after calling is missing.

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 single parameter `session` is fully documented in the schema ('Session from open_app') at 100% coverage, so the schema carries the load. The description adds nothing about the session parameter, and none is needed. 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 names a concrete action and effect: 'the simulated phone locks and shows the lock screen'. An agent can immediately tell this apart from the inverse `unlock` sibling and from app-state tools. It stops just short of explicitly naming `unlock` as the counterpart, so it is clear but not maximally differentiated.

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?

'Press the power button' frames the real-world action that this call simulates, which is a usable when-to-use signal. It also states the consequence ('the app and its screen are kept') and what stops working, giving the agent enough to decide between locking and, say, `kill_app` or `end_session`. No explicit exclusion sentence exists, so it falls short of a 5.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.