Skip to main content
Glama
beckettlab

Beckett — MCP for Godot

by beckettlab

doctor

Read-only

Diagnose why tools appear missing or calls fail unexpectedly. Get edition, effort cap, tool counts, server/auth state, config freshness, and context cost; run first when the server misbehaves.

Instructions

Beckett self-diagnosis — one call answers 'why can't the agent see or do X?'. Reports: edition (Lite/Full), the effort dial vs its ceiling AND where the cap comes from (a beckett/effort= line committed in project.godot silently trims every clone's tool list), advertised-vs-ceiling tool counts, dock-disabled tools, server/port/auth state, per-client config freshness (does each written config still carry the CURRENT endpoint URL?), runtime-bridge liveness, what this tool surface costs your context (exact tools/list bytes and approximate tokens for every effort tier, measured on THIS install, so you can price a tier before dialing to it), whether the game plays EMBEDDED in the editor's Game workspace or in its own window (embedded means the Suspend button freezes every runtime call and window-mode asserts can never pass), and whether the editor auto-reloads externally-changed scripts (off = every script this server writes waits behind a modal the human must click). Run this FIRST when tools seem missing, counts look wrong, or calls fail unexpectedly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
toolsYes
editorNo
effortYes
serverYes
clientsNo
contextYes
editionYes
securityNo
warningsNo
game_viewNo
game_bridgeNo
godot_versionYes
beckett_versionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.14.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "beckett_version": {
      +      "type": "string"
      +    },
      +    "clients": {
      +      "type": "array"
      +    },
      +    "context": {
      +      "type": "object"
      +    },
      +    "edition": {
      +      "type": "string"
      +    },
      +    "editor": {
      +      "type": "object"
      +    },
      +    "effort": {
      +      "type": "object"
      +    },
      +    "game_bridge": {
      +      "type": "object"
      +    },
      +    "game_view": {
      +      "type": "object"
      +    },
      +    "godot_version": {
      +      "type": "string"
      +    },
      +    "ok": {
      +      "type": "boolean"
      +    },
      +    "security": {
      +      "type": "object"
      +    },
      +    "server": {
      +      "type": "object"
      +    },
      +    "tools": {
      +      "type": "object"
      +    },
      +    "warnings": {
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "ok",
      +    "edition",
      +    "beckett_version",
      +    "godot_version",
      +    "effort",
      +    "tools",
      +    "context",
      +    "server"
      +  ],
      +  "type": "object"
      +}
  2. Addedv1.12.1
  3. Removedv1.10.1
  4. Addedv1.9.1

TDQS

A4.8/5.0
Behavior5/5

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

Even though readOnlyHint and destructiveHint annotations already cover safety, the description goes far beyond them by disclosing what the tool reports, including config freshness, runtime-bridge liveness, context cost by effort tier, and editor behaviors that affect automation. It also surfaces a non-obvious consequence: with auto-reload off, scripts 'wait behind a modal the human must click.'

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?

The description is dense and long, but every clause contributes meaningful behavioral or usage information. The core purpose is front-loaded, though the single extended sentence could be better structured as a list for faster parsing.

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 no-parameter diagnostic tool with an output schema, the description fully covers purpose, usage, what to expect, and why it matters. It even includes cost-awareness context and specific environmental conditions that affect calling other tools, leaving no meaningful gap.

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?

This tool has zero parameters and the schema reflects that, so there are no parameter semantics for the description to add. Per the baseline for tools with no parameters, this earns a 4 rather than a 3 because there is no possible parameter gap.

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?

The description names the tool as 'Beckett self-diagnosis' and states it 'one call answers why can't the agent see or do X?', providing a specific verb, resource, and observable outcome. It also distinguishes the tool from siblings by describing it as the broad diagnostic entry point rather than a subsystem-specific tool.

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?

The description explicitly says 'Run this FIRST when unable to see or perform an action' and tells the agent to prefer targeted siblings like logs_read for logs or game_logs for runtime output. This gives clear when-to-use and when-not-to-use guidance with named alternatives.

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