Skip to main content
Glama

Environment Doctor

env_doctor
Read-onlyIdempotent

Diagnose local run failures by checking required toolchain tools - Xcode, Swift, Node, Ruby, Git, uv, asc, fastlane, Maestro, Java 17+, and maestro-live - with versions and availability.

Instructions

Check the local toolchain: xcode, swift, node, ruby, git, uv, asc, fastlane, maestro, Java 17+ and maestro- live.

Use when: something fails to run locally. Not for: credentials/config (use config_doctor or setup_status). Returns: {ok, available: {tool: bool}, versions: {tool: str}, notes?}.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds the inspection scope plus the existence of a 'notes' field for anomalies, which is useful behavioral context beyond the annotations, though it stops short of describing failure or partial-availability behavior.

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 labeled fragments (scope, when, exclusions, returns) with no filler and the trigger condition front-loaded after the scope. Every line carries selection-relevant information.

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 parameterless, read-only diagnostic with a rich annotation set and an output schema, the description supplies everything needed: what is checked, when to reach for it, which siblings to prefer instead, and a sketch of the response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no argument semantics to explain – baseline 4 applies. The description correctly does not invent parameter guidance where none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check the local toolchain') and enumerates exactly which tools are inspected (xcode, swift, node, ruby, git, uv, asc, fastlane, maestro, Java 17+, maestro-live). An agent can distinguish this from sibling diagnostics like config_doctor or pipeline_status without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Uses explicit 'Use when' / 'Not for' framing, names the triggering condition ('something fails to run locally'), and routes the agent to the correct alternatives by name (config_doctor, setup_status) for the excluded credential/config case.

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

Deploy Server

Other Tools