Skip to main content
Glama

activate_app

Bring the requested app to the foreground and return its state for foreground interaction.

Instructions

Bring the requested app forward and return its state. Use when foreground interaction is required. On Windows and Linux, changing foreground requires 10 seconds without human keyboard or mouse activity; otherwise PERSON_ACTIVE is returned with no foreground change or input. Inspect the returned window before input and do not compete with user activity.

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": {
      "app": "<app>"
    },
    "name": "activate_app"
  }
}

Input Schema

NameRequiredDescriptionDefault
appYesApp name or full app path; macOS bundle ID; macOS and Windows pid:<pid>; Windows process name, window title fragment, or Start-menu shortcut name; Linux desktop entry name, executable name or window title fragment
disableDiffNo
waitForTextNoWait for exact, case-sensitive text in element lines only (within scope when supplied), excluding headers and window summaries, without UI actions. Use only a known expected label during a real load; omit on ordinary reads.
waitTimeoutMsNoPolling deadline for waitForText; defaults to 5000 ms. Native call timeouts remain separate.
includeScreenshotNoDefault false. Use true for visual content or coordinate input; omit for indexed controls, menus, dialogs and text editing.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.9.0

TDQS

A3.9/5.0
Behavior4/5

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

Adds substantial behavior beyond the thin annotations (readOnlyHint=false, openWorldHint=true): the Windows/Linux 10-second idle requirement before foreground can change, and the specific failure mode where PERSON_ACTIVE is returned with no foreground change or input. It also advises inspecting the returned window before acting and not competing with user activity. Remaining gaps are macOS-specific constraints and whether any permissions are needed.

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?

Four sentences, front-loaded with purpose then the platform constraint then the safety caveat — a sensible order with no filler. It is dense but each sentence carries operational information; minor tightening is possible in the final workflow sentence.

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?

With no output schema, the description does the work of explaining that a state is returned and that PERSON_ACTIVE may come back instead of a foreground change, which is the critical edge case for a mutation tool. It does not describe what the returned state contains (elements, screenshot when includeScreenshot is true), leaving a small gap for a 5-parameter, open-world 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 description coverage is 80%, so the schema already documents app, waitForText, waitTimeoutMs and includeScreenshot thoroughly. The description adds no parameter-level meaning of its own, and the one undocumented parameter (disableDiff) is left unexplained in both places. 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?

States a specific verb and resource: 'Bring the requested app forward and return its state,' with the added scoping phrase 'Use when foreground interaction is required.' It is clear what the tool does, but it does not explicitly distinguish itself from the sibling get_app_state, which also returns app state — the reader must infer that activation is the differentiator.

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 a clear selection condition ('Use when foreground interaction is required') plus workflow guidance: inspect the returned window before input and do not compete with user activity. It stops short of naming the alternative (get_app_state) for read-only state retrieval, so the when-not case is only implied.

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