Skip to main content
Glama

arrange_apps

Lay out an installed app on the home screen: pinned (first), hidden (not on the home screen, still opens with switch_app), position (0 first) and schedule (days, from, to: the app shows only then, e.g. a weekly planner Monday to Friday 08:00-18:00 and weekend plans on Saturday). Leave days out or pass an empty list for every day. Pass schedule: null to always show. Fails with not_installed or bad_placement. The home screen text says which apps are showing and why one is not. Logged in device_log.

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>",
      "id": "<id>"
    },
    "name": "arrange_apps"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesApp id
hiddenNo
pinnedNo
sessionYesSession from open_app
positionNo
scheduleNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds the failure modes (not_installed, bad_placement), the visible side effect (the home screen text reflects which apps show and why one does not), and the fact that the change is logged in device_log. That is meaningful behavioral disclosure well beyond the annotations.

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?

Front-loaded with the verb and resource, then a dense but well-ordered enumeration of properties, followed by edge cases and error names. It is a single run-on sentence, so it is efficient but slightly harder to scan than a structured list would be.

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 six-parameter mutation tool with no output schema and low schema coverage, the description covers behavior, defaults, error codes, and logging. Only the origin of the session value and the response on success are left implicit (session is documented in the schema).

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?

Schema coverage is only 33%, but the description compensates richly: pinned and position ordering (0 = first), hidden's exact meaning and its switch_app escape hatch, and the schedule object's days/from/to semantics with a worked weekday-plus-weekend example. Session and id are the only parameters left to the schema's brief descriptions.

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 concrete verb and resource: 'Lay out an installed app on the home screen', then enumerates the four adjustable properties. It also distinguishes itself from switch_app by noting hidden apps still open there, though it does not contrast with list_installed_apps or find_apps.

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?

Gives clear operational context for the settings (pinned means first, hidden means off the home screen but still launchable via switch_app) plus explicit edge-case rules: omit days or pass an empty list for every day, pass schedule: null to always show. There is no explicit 'when not to use' or statement of prerequisites beyond the implied open session.

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.