Skip to main content
Glama

Check prerequisites and the workspace

doctor
Idempotent

Check your workspace, Python gate dependencies, uv, Node >=20, npm, and TypeScript runtime before using api-to-mcp. Failed checks return install commands; fix mode builds missing runtime when safe.

Instructions

Preflight: the workspace (your own directory, or a platform-mcp checkout when contributing), the Python gate dependencies (platform-mcp-hub, pytest, respx, ...), uv, node (>= 20) and npm, and whether platform-mcp-hub's TypeScript runtime is available. Each failed check carries the exact install command for this OS. fix: true builds a checkout's TypeScript runtime when that is safe (node and npm present, lockfile, writable; npm ci + tsc). mode: full | python_only | blocked.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fixNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, destructiveHint=false and idempotentHint=true, and the description adds real behavioral detail beyond them: each failed check emits the exact OS-specific install command, and fix:true only builds when node, npm, lockfile and writability are all present (npm ci + tsc). This discloses the mutation's safety preconditions, though it does not say what state changes if fix is skipped or how output is shaped.

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 'Preflight:' followed by a dense enumeration, with the fix behavior and mode values trailing. It is efficient for the amount it covers, though the parenthetical lists and '...' abbreviations make it slightly telegraphic.

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 returns (per-check install commands, mode values) and the fix mutation path. For a one-parameter diagnostic tool with annotations already covering safety, this is close to complete, missing only a clear statement of the return 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?

One parameter at 0% schema coverage, so the description carries the burden and does so: it defines fix:true as building the checkout's TypeScript runtime under stated conditions. The 'mode: full | python_only | blocked' string is ambiguous as to whether it is input or output, which slightly muddies the single-parameter story.

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 precise diagnostic verb and enumerates exactly what is checked: workspace/checkout, Python gate deps, uv, node (>=20), npm, and the TypeScript runtime. It is unmistakably distinct from all siblings (save_entry, lint_entry, generate_server, etc.), none of which perform environment preflight.

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?

'Preflight' implies use before running the pipeline, and the description notes the checkout case 'when contributing', which gives implied context. However it never states when NOT to use it or points to any alternative sibling, leaving the agent to infer the trigger conditions.

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