Skip to main content
Glama

analyze_scad_code

Read-only

Parses OpenSCAD source to identify parameters, modules, and library imports, revealing code structure so you know which modules exist and what they do before making changes.

Instructions

Analyze the structure of OpenSCAD code.

        Parses parameters, modules, and library imports to understand
        the code's architecture. Use this before modifying code to know
        what modules exist and what each one does.

        Args:
            scad_code: OpenSCAD source code.
        

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "scad_code": "<scad_code>"
    },
    "name": "analyze_scad_code"
  }
}

Input Schema

NameRequiredDescriptionDefault
scad_codeYesOpenSCAD source code.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.5.1
    • addedInput schema / properties / scad_code / description
      Added value: +"OpenSCAD source code."
  2. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and closed-world behavior, and the description is consistent with a non-mutating parse. Beyond that it only hints at the content of the analysis (architecture, modules, imports) and says nothing about the shape of the result or its limits, which matters since there is no output schema.

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 purpose and usage guidance are front-loaded in three short sentences, and the key 'do this before editing' instruction appears early. The trailing Args block duplicates the input schema verbatim and could be dropped without loss.

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 single-parameter, read-only analysis tool with full annotation coverage, the description covers what it does, what it extracts, and when to call it. The main omission is any indication of what the returned analysis looks like, which is not covered by an output 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?

Only one parameter exists and the schema already describes it at 100% coverage as 'OpenSCAD source code.' The description's Args block restates that same phrasing without adding format, size, or validity constraints, so it provides no meaning beyond the schema; baseline 3 applies.

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?

States a specific verb and resource ('Analyze the structure of OpenSCAD code') and clarifies what the analysis extracts: parameters, modules, and library imports. However, it does not distinguish itself from close siblings such as parse_scad_parameters or validate_openscad_code, so an agent cannot tell purely from the description which of these SCAD inspection tools to pick.

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

Usage Guidelines4/5

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

'Use this before modifying code to know what modules exist and what each one does' gives a clear situational trigger tied to an editing workflow. It stops short of naming alternatives or exclusions (e.g., when to prefer parse_scad_parameters over this), so it is strong context without full routing guidance.

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