Skip to main content
Glama

playcal_doctor

Checks Python, git, the Unity CLI, open Editors and the SDK before a run, so you can catch environment problems early and fix them before starting the edit-settle-verify loop.

Instructions

check Python, git, the Unity CLI, open Editors and the SDK before a run

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "playcal_doctor"
  }
}

Input Schema

NameRequiredDescriptionDefault
projectNoUnity project folder to check (default: whatever Editors are open)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations supplied, the description carries the full behavioral burden. It legitimately discloses the scope of inspection, which is the core behavior, but says nothing about whether the tool only reports or also mutates/repairs the environment, whether it requires permissions, or how failures are signalled. That is a meaningful gap for a diagnostics tool with zero annotation coverage.

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?

A single compact clause that front-loads the verb and lists the checks efficiently, with zero filler. It is a sentence fragment rather than a structured statement, but nothing is padded or redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, one-optional-parameter tool this is close to adequate, and the enumerated checks cover the essence. Because there is no output schema, the description should still say what the check produces (pass/fail per component? a summary report?), and it does not, leaving the agent unsure how to interpret results.

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?

There is only one optional parameter, and the schema already documents it fully, including the "default: whatever Editors are open" behavior. Schema coverage is 100%, so the baseline of 3 applies; the description adds no extra meaning about how the project path is resolved or validated.

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 description uses a concrete verb ("check") and enumerates the specific resources inspected: Python, git, the Unity CLI, open Editors, and the SDK. No sibling tool performs a pre-flight diagnostic, so it is distinguishable from the loop/query/report family. It falls short of a 5 only because "before a run" leaves the triggering workflow slightly implicit.

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?

The phrase "before a run" implies the correct usage window, which is useful context. However, it names no alternatives and gives no explicit when-not guidance (for example, whether to skip it if a previous check already passed, or how it relates to playcal_loop or playcal_baseline).

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