Skip to main content
Glama

server_status

Check MCP server health, engine availability, and diagnostic counters to confirm the server is running or troubleshoot performance issues.

Instructions

Return MCP server status. engine: native engine availability — uia: 'native' = Rust UIA addon (~2 ms focus / ~100 ms tree); 'powershell' = PS fallback (~366 ms focus). nativeUia says why: 'native', 'disabled' (DESKTOP_TOUCH_DISABLE_NATIVE_UIA=1 takes the native UIA engine out and keeps the rest of the addon: UIA calls with a PowerShell version use it, the rest are skipped), or 'unavailable' (the addon has no UIA engine). nativeUiaEvidence says whether the native UIA engine actually ran in this process, as the engine and the OS answer rather than the switch: comThreadStarts and tasksSent (the engine's own counts of attempts), tasksDone (tasks the engine finished; far below tasksSent means native UIA is stuck and every UIA call is waiting out its timeout), focusRegistration ('pending' for long means focus events are off because a desktop-wide registration is not returning), uiaCoreLoaded (whether UIAutomationCore.dll is loaded, supporting evidence only); null = the addon cannot say. It changes per call, so read it after the act it should cover. imageDiff: 'native' = Rust SSE2 SIMD (0.26 ms @ 1080p); 'typescript' = TS fallback (~3.8 ms). health: process diagnostic snapshot (issue #365) — pid (which process these numbers are from; the evidence counts restart from zero in a new one), uptimeSec, memory.{rssBytes,heapUsedBytes,heapTotalBytes}, cpu.{userUs,systemUs} (cumulative since startup), shutdown.{pending,graceMs,inflightCount} (pending=true means stdin EOF received and grace timer is running), lastRpc.{receivedAt(ISO),method} (last JSON-RPC request observed on stdio transport; HTTP transport is not tracked). Diagnostic metadata — do not surface unless the user asks about performance/troubleshooting. engine values other than nativeUiaEvidence are stable for the process lifetime; nativeUiaEvidence and health change per call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
includeNoOptional response-shape opt-in. `['envelope']` returns the self-documenting envelope (`_version` / `data` / `as_of` / `confidence`). `['raw']` forces raw shape (overrides DESKTOP_TOUCH_ENVELOPE=1 server default). Default behaviour is raw shape (compat with existing clients).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv2.3.1
    • addedInput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • removedInput schema / additionalProperties
      Removed value: -false
  2. Addedv1.9.2
  3. Removedv1.8.0
  4. Addedv1.6.0
  5. Removedv1.5.1
  6. Addedv1.5.0
  7. Removedv1.4.3
  8. Addedv1.4.2
  9. Removedv1.4.0
  10. Changed1 schema field changedv1.2.1
    • addedInput schema / properties / include
      Added value: +{
      +  "description": "Optional response-shape opt-in. `['envelope']` returns the self-documenting envelope (`_version` / `data` / `as_of` / `confidence`). `['raw']` forces raw shape (overrides DESKTOP_TOUCH_ENVELOPE=1 server default). Default behaviour is raw shape (compat with existing clients).",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  11. Addedv1.1.1
  12. Removedv1.1.0
  13. Addedv1.0.3

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does so substantially: it discloses that engine values are stable for the process lifetime while nativeUiaEvidence and health change per call, that health counters reset in a new process, and that the tool is a diagnostic read. It stops short of stating the safety profile (no side effects / auth) explicitly, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in one short sentence, but the remaining ~300 words are an unstructured run-on dumping every internal field's semantics, including details the description itself says not to surface unless asked. Sized and structured poorly for tool selection, even if the individual facts are accurate.

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 high-complexity diagnostic tool with no output schema, the description exhaustively documents the returned fields (engine, nativeUia/nativeUiaEvidence, imageDiff, health) and their stability semantics, so an agent can interpret the response. The only real omission is the `include` response-shape option, which is covered in the schema.

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 schema has 100% description coverage for the single `include` parameter (envelope vs raw shape), so the schema already does the heavy lifting. The description never mentions `include` or the envelope/raw response-shape choice, adding nothing beyond the baseline.

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 first sentence gives a specific verb+resource ('Return MCP server status') that an agent can act on immediately. It is clearly distinguishable from the action-oriented siblings (browser_*, click_element, etc.) by being diagnostic in nature, though the description never explicitly says so. The purpose is clear but buried under heavy field-level detail.

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?

It offers scattered timing guidance ('read it after the act it should cover') and output guidance ('do not surface unless the user asks about performance/troubleshooting'), which is useful. However, it never states when to call server_status versus the sibling tools or what question it answers, so invocation guidance is only implied.

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