Skip to main content
Glama
tomyrese

OpenSCAD Design MCP

by tomyrese

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation4/5

    Most tools target clearly distinct actions and resources, such as project lifecycle, model editing, validation, rendering, and export. The closest overlaps are get_project vs. read_model and validate_scad vs. check_printability, but the descriptions separate metadata/snapshot reading and geometry validation/printability clearly enough for reliable selection.

    Naming Consistency4/5

    Tool names overwhelmingly follow a verb_noun snake_case pattern, which is easy to predict and scan. The main inconsistency is mixing synonyms like get_project and read_model for similar retrieval operations, and compound names like render_preview_set, but these are minor and do not obscure the pattern.

    Tool Count4/5

    At 17 tools, the server is slightly above the ideal 3-15 range, but the extra tools support a rich design workflow: versioning, rendering sets, mesh inspection, and finalization. Each tool addresses a distinct stage of the OpenSCAD pipeline, so the count feels justified rather than bloated.

    Completeness5/5

    The server covers the full OpenSCAD design lifecycle: project CRUD, code snapshot editing with optimistic concurrency, validation, printability checks, rendering, exporting, mesh inspection, finalization, and version restore. There are no obvious dead ends; even finalization is supported by an explicit gate-passing workflow.

  • Average 3.3/5 across 17 of 17 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 7 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It adds useful detail by saying the output is a verified PNG and that the camera is a numeric 6/7-value array, but it does not explain output behavior, failure modes, side effects, or interpretation of camera values.

    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?

    The description is a single well-structured sentence with a front-loaded action and minimal wasted words. It is concise without being vague in its core purpose, though that brevity does trade away parameter guidance.

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

    Completeness2/5

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

    For a tool with 9 parameters, no annotations, and no schema coverage in the description, the one-line description leaves significant context gaps. It does not explain what the render_mode preview/render distinction means, how sizing works, how colorscheme affects output, or how the custom camera values are consumed.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description needs to compensate. It adds meaning for 'view' and 'camera', but the other seven parameters—width, height, version, projection, colorscheme, render_mode, and project_id—receive no semantic explanation beyond their schema names and enums.

    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 clearly identifies the action ('Render a verified PNG') and the resource scope: a named view or a numeric 6/7-value custom camera. This gives the agent a concrete sense of what the tool does, though it does not explicitly distinguish the tool from the closely named sibling render_preview_set.

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

    Usage Guidelines2/5

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

    There is no guidance about when to use this tool versus alternatives like render_preview_set or export_model. The description states what it does but not which scenarios call for it or when it should be avoided.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full behavioral burden. It does disclose useful behavior: null values skip an axis and tolerances use the larger bound. However, it does not state whether this is read-only, whether it compares against actual project data, what happens on mismatch, or any authorization requirements.

    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?

    The description is a single, front-loaded sentence with no filler. Every clause adds meaningful information: comparison target, units, null handling, and tolerance behavior.

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

    Completeness2/5

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

    Despite having an output schema and nested input structure, the description omits key context: the object of comparison, how to determine pass/fail, and how the two tolerance modes interact. With no annotations and zero parameter descriptions, this is not enough for a reliable call site.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It mentions null axis behavior and the tolerance rule, which helps, but it never explains project_id, the relationship between tolerance and percent_tolerance, or what expected_dimensions represents beyond the schema. The parameter semantics are therefore only minimally clarified.

    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 specific verb ('Compare') and resource ('X/Y/Z in project units'), and the tolerance/null details make the intended operation fairly clear. However, it never states what the dimensions are compared against (e.g., actual model dimensions), so the core comparison target is left implicit.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus alternatives, and no mention of related operations like check_printability or validate_scad. The agent must infer usage from the name and context rather than from explicit direction.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It only adds the vague phrase 'fixed CLI arguments' and does not explain side effects, output destination, permissions, or whether the export creates files or returns data.

    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 a single, front-loaded sentence with no wasted words. The phrase 'fixed CLI arguments' is somewhat ambiguous, but the overall structure is appropriately concise.

    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 tool with only two parameters and an output schema, a long description is not necessary. Still, the description omits project_id semantics and any indication of what the export operation produces or where the output goes, leaving the agent to infer important context.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description should compensate. It does list the output formats, which mirrors the output_format enum, but it does not clarify the meaning of project_id or explain how 'fixed CLI arguments' affects parameter behavior. The added value over the schema is minimal.

    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 names a specific action (Export) and resource (model), and enumerates the supported output formats (STL, 3MF, OFF, AMF, DXF, SVG). It is clear, but it does not explicitly differentiate this from sibling tools such as read_model or render_preview.

    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 description implies the tool should be used when a model needs to be exported in one of the listed formats. However, it provides no explicit when-to-use or when-not-to-use guidance and does not mention any alternative sibling tools.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It discloses that finalization is conditional and that the tool performs multiple operations, but it does not state whether finalization is irreversible, locks the revision, requires special permissions, or what happens when any gate fails.

    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?

    One tightly packed sentence with a front-loaded verb list and a compact conditional clause. Every word contributes either to the composite scope or the gating condition, with no filler or repetition.

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

    Completeness2/5

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

    For a 7-parameter composite tool with no annotations, the description is too thin. It omits gate definitions, finalization semantics, parameter effects, and failure behavior. An output schema exists, which helps with return values, but it does not compensate for the missing behavioral and parameter context.

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

    Parameters2/5

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

    The input schema has 0% description coverage and the tool description names no parameters. The verbs hint at possible mappings (render to render_views, export to output_format, validate to require_watertight/expected_dimensions), but the description gives no concrete meaning, constraints, or defaults for any of the 7 parameters.

    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?

    Description uses specific action verbs ('Validate, render, export and inspect') and a conditional 'finalize only if all gates pass,' making the composite purpose reasonably clear. It also distinguishes itself from siblings like render_preview or export_model by bundling multiple gates into one finalization action, though it never defines what 'finalize' means in state terms.

    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 'finalize only if all gates pass' implies this is the final step after validation, rendering, export, and inspection succeed. However, it never explicitly names alternatives or says when not to use this tool instead of calling validate_scad, render_preview, or export_model individually, so usage guidance is only implied.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It does disclose a key behavior: it inspects an existing verified export or automatically creates a temporary STL. However, it does not clarify side effects, error cases, or whether the temporary STL is persisted or only used in-memory.

    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 a single, front-loaded sentence with no filler or redundant information. It is concise and readable, though it omits some useful details that would have made it more complete.

    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 single-parameter tool with an output schema, the description covers the core action and provides a behavioral fallback. But it lacks alternatives/usage context and leaves ambiguity around what 'inspect' returns and what creating a temporary STL implies for the project state.

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

    Parameters2/5

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

    The schema has 0% description coverage and the description does not mention project_id at all. While the parameter name is reasonably self-explanatory, the description adds no meaning beyond the schema, failing to compensate for the low coverage.

    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 names a specific verb ('inspect') and resource ('mesh'), and adds meaningful context about inspecting a verified STL/3MF export or creating a temporary STL. It does not explicitly distinguish itself from sibling tools like read_model or check_printability, so it stops short of a 5.

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

    Usage Guidelines2/5

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

    There is no guidance about when to use this tool versus alternatives, nor any stated conditions or exclusions. The description implies it is used for mesh inspection but does not explain when an agent should choose it over read_model, export_model, or render_preview.

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

  • Behavior3/5

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

    No annotations exist, so the description carries the full disclosure burden. It does add genuine behavioral facts: parallel execution, preserved ordering, and a six-default-view behavior when views is null, plus a 1–12 cardinality limit. However, it leaves key behaviors unexplained, including the semantic difference between render_mode 'preview' and 'render', the meaning of a 'custom' view, and how version affects the output.

    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?

    A single 14-word sentence front-loads the verb and the central default-vs-requested distinction, then compresses two behavioral traits ('in parallel', 'preserving order') without waste. Every word earns its place.

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

    Completeness2/5

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

    With six parameters, zero annotations, and 0% schema coverage, this description is too thin for reliable invocation. An agent cannot determine which views constitute the six defaults, what 'custom' names refer to, or what render_mode 'render' changes relative to 'preview'. The presence of an output schema mitigates the return-value gap, but not these parameter-level and mode-level holes.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate, but it only partially explains the views parameter (null → six defaults, provided → 1–12 named views). Width, height, version, render_mode, and project_id receive no semantic explanation in either the schema or the description, leaving an agent to guess at their roles.

    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 names a specific verb ('Render') and resource (project views) with a precise scope: six default views or 1–12 named views, executed in parallel with order preserved. This is clear and specific, but it never distinguishes itself from the near-twin sibling render_preview, so it stops short of a 5.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus alternatives. With the sibling render_preview almost certainly covering the single-view case, the description offers no condition or cue that would route an agent to one tool over the other.

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

  • Behavior3/5

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

    With no annotations, the description carries the behavioral transparency burden. It does add useful traits: the operation reads only ('Read'), operates on the 'current' snapshot, and is 'checksum-verified,' implying integrity checking. However, it does not disclose failure behavior, access requirements, or effects of invalid project_id, so transparency remains adequate but incomplete.

    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?

    The description is a single front-loaded sentence with no filler. 'Checksum-verified' and 'current' are meaningful modifiers, and every word contributes to conveying the tool's scope and behavior.

    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?

    The tool is simple—one required parameter—and an output schema exists, which reduces the need to describe return values. Even so, the lack of usage guidance relative to many siblings and the absence of project_id semantics leave minor but real gaps for correct selection and invocation.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description does not mention project_id at all. The parameter name is reasonably self-explanatory, but the description fails to compensate for the missing schema documentation by explaining how project_id relates to the snapshot or what format is expected.

    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 states a specific verb ('Read') and a clear resource ('checksum-verified current SCAD snapshot'), which makes the core action easy to grasp. It does not explicitly differentiate from siblings like get_project or render_preview, but the 'SCAD snapshot' language narrows the resource enough to avoid major confusion.

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

    Usage Guidelines2/5

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

    The description gives no guidance on when to choose this tool over siblings such as get_project, validate_scad, or render_preview. There are no explicit exclusions, prerequisites, or alternative routing, so the agent is left to infer usage from the name and resource.

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

  • Behavior3/5

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

    With no annotations, the description carries the burden. It discloses that the operation is read-only ('List') and that versions are immutable, and it enumerates return fields. However, it doesn't address practical behaviors like ordering, pagination, errors, or handling of unknown project_id.

    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?

    A single sentence, front-loaded with the action and resource, and every remaining phrase adds useful detail (immutable, UTC, summaries, SHA-256). No filler or redundancy.

    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?

    Given the low complexity (one required parameter) and that an output schema exists, the description is largely adequate: it names the resource and output fields. It loses a point because the parameter relationship is left implicit and there is no usage guidance, but nothing critically blocks a correct call.

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

    Parameters2/5

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

    Schema description coverage is 0% and the description does not explain project_id. Although 'project_id' is fairly self-explanatory and required, the description never connects it to the version listing or states that the versions are scoped to that project.

    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?

    Description opens with a specific verb ('List') and resource ('versions'), and adds precisely what kind of data versions contain (immutable, UTC timestamps, summaries, SHA-256 checksums). This clearly distinguishes it from sibling tools like list_projects or restore_version, though it doesn't explicitly name them.

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

    Usage Guidelines2/5

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

    No guidance on when to choose this tool over alternatives like restore_version or list_projects. There is no mention of prerequisites, ordering/pagination, or what a caller should do before invoking it. The usage context is only implied by the word 'list'.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden. It does disclose an important non-destructive trait: the restore creates a new version rather than overwriting history. However, it does not mention potential side effects, permission requirements, or failure behavior such as what happens when expected_version does not match.

    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?

    A single sentence with a clear action, object, and outcome. It is front-loaded and contains no filler words.

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

    Completeness2/5

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

    Although an output schema exists so return values need not be described, the description is incomplete for a mutating operation with three required parameters and no annotations. The critical semantics of expected_version, plus any concurrency or failure behavior, are missing.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It gives some meaning to 'version' as the historical snapshot to restore, but it does not explain project_id and especially expected_version, whose purpose is non-obvious and which is required.

    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 clearly states a specific action ('Restore a historical snapshot as a new version') and a key behavioral guarantee ('retaining the complete history'). This distinguishes it from sibling tools like list_versions, update_model, and finalize_model without ambiguity.

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

    Usage Guidelines2/5

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

    No guidance is given about when to use this tool versus alternatives, nor when not to use it. The intended context is only implied by the tool name and description.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden. 'Check' implies a read-only operation, and the explicit caveat about wall thickness, supports, and clearance honestly discloses what the tool will not report. It does not overstate capabilities, though it could be more explicit about side effects or operational constraints.

    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?

    The description is a single compact sentence with no filler. It front-loads the core action and resource, then adds an important limitation in the second clause. Every word contributes meaningful information.

    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?

    The output schema exists, so return-value details are not required. Still, with no annotations and minimal description, the definition is only minimally viable: it gives the core purpose and a key limitation, but it lacks guidance about when to use this tool instead of related inspection or validation tools.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description adds no parameter-level guidance. While parameter names like project_id, build_volume, and require_watertight are somewhat self-explanatory, the description does not clarify how they relate to 'check mesh and build extents' or how require_watertight affects the check.

    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 clearly states the verb 'check' and the resources 'mesh and build extents', and it further clarifies scope by listing what remains unknown. It is specific enough to distinguish from siblings like inspect_mesh, though it does not explicitly name an alternative.

    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 limitation statement 'wall thickness, supports and clearance stay unknown' implies this is a basic printability check and suggests other tools would be needed for those aspects. However, it does not explicitly state when to use this tool versus alternatives like inspect_mesh or validate_scad.

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

  • Behavior3/5

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

    With no annotations, the description carries the behavioral disclosure burden. It transparently indicates that results include UTC timestamps and latest status, and 'List' implies a read-only operation, but it does not mention ordering, pagination, whether deleted or archived projects are included, or any other operational constraints.

    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?

    The description is a single, front-loaded sentence that states the action, resource, and relevant output attributes. There is no filler or redundant phrasing; every word earns its place.

    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 zero-parameter list operation with an output schema available, the description covers the essential behavior and output characteristics. The main missing piece is guidance distinguishing it from related tools, but the low complexity and self-explanatory name keep this from being a major 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?

    The input schema has zero properties, so there are no parameters to explain. The description appropriately avoids inventing parameter details, and the zero-parameter case gets the baseline score of 4.

    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 clearly states the action ('List') and resource ('projects'), and adds the key output fields (UTC timestamps, latest status). It does not explicitly differentiate it from siblings like get_project or list_versions, but the plural resource and list action make the core purpose unambiguous.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives such as get_project, list_versions, or get_system_status. There is no mention of filters, prerequisites, or intended use cases, so the agent must infer usage purely from the tool name.

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

  • Behavior4/5

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

    No annotations exist, so the description carries the full burden — and it delivers substantive disclosures: atomicity ('Atomically'), conditional gating ('if expected_version matches'), and the side effect of 'invalidating previous results.' The main gap is the failure mode when expected_version does not match (error vs. no-op), but the most critical mutation behaviors are transparently disclosed.

    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?

    A single 12-word sentence with zero filler. The verb and atomicity qualifier are front-loaded, and every phrase — atomic, version-match condition, invalidation side effect — earns its place.

    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 4-parameter mutation tool with no annotations, the description covers the headline behaviors but leaves real gaps: the result or error when expected_version mismatches, what 'previous results' actually refers to (renders, validation, exports), and routing guidance relative to siblings. The presence of an output schema means return values need not be described, which slightly mitigates the incompleteness.

    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?

    Schema description coverage is 0%, so the description must compensate. It clarifies expected_version's role as the gate for the update and implicitly identifies scad_code as the new code, but it says nothing about project_id or change_summary, which an agent still needs to understand to invoke the tool correctly. Only partial compensation for the coverage gap.

    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 states a specific action ('Atomically update code') on a specific resource, and adds the governing condition ('if expected_version matches'). The core purpose is unmistakable. It falls short of 5 because it doesn't explicitly distinguish this tool from siblings like create_project or finalize_model, though the version-gated semantics are distinctive.

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

    Usage Guidelines2/5

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

    No guidance is offered on when to use update_model versus its siblings (create_project, finalize_model, restore_version, read_model). The version-match condition hints at a concurrency/edit scenario, but this is never stated explicitly, leaving the agent to infer the appropriate context from sibling names alone.

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

  • Behavior3/5

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

    With no annotations, the description carries the behavioral disclosure burden. It does disclose the temporary nature of the STL and the recording of diagnostics, but it does not state whether the project is modified, what occurs on compile failure, or what the diagnostics contain.

    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?

    A single dense sentence with no filler; 'temporary' signals the side-effect profile and 'recording diagnostics' indicates the outcome. Every word contributes.

    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 simple single-parameter tool with an output schema, the description captures the core workflow (compile, inspect, record) and the output schema can cover return details. It is slightly incomplete in not stating explicit outcome/error behavior, but not severely so.

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

    Parameters2/5

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

    Schema description coverage is 0% and the description never mentions project_id or its required format/meaning. The parameter name is self-explanatory, but the description adds no semantic value beyond what the schema already shows.

    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 gives a specific mechanism — compile SCAD to a temporary STL and inspect for empty geometry — which clearly defines what validate_scad does and distinguishes it from siblings like render_preview and inspect_mesh. The title and description align on the resource and action.

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

    Usage Guidelines2/5

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

    The description gives no when-to-use guidance, prerequisites, or comparison to alternatives such as check_printability or inspect_mesh. It does not state when validation should be run or when another tool would be more appropriate.

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

  • Behavior4/5

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

    With no annotations, the description carries the behavioral burden, and 'Read' explicitly signals a non-mutating operation. It also names the exact data categories accessed, giving the agent a concrete scope of what the tool does; it does not discuss auth or error behavior, but the read-only intent is clear.

    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?

    A single, front-loaded sentence that omits filler; every element identifies an action or a returned category. It is short but not under-specified.

    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 one-parameter read with an output schema, the description names the major returned categories and the read-only nature, which is adequate at a basic level. It lacks guidance on how to obtain a project_id or when to prefer this over read_model/export_model, leaving moderate ambiguity in a sibling-heavy context.

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

    Parameters2/5

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

    Schema coverage is 0%, so the description must compensate, but it never mentions project_id or how the parameter maps to the returned project. The parameter name is self-explanatory and the tool name implies it, but no semantic detail is added beyond the raw schema.

    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?

    Description begins with 'Read', a specific action, and names the project-level resources it returns: metadata, current code, exports, and the latest finalization report. This distinguishes get_project from siblings like list_projects (enumeration), read_model (single model), and get_system_status (system health).

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

    Usage Guidelines2/5

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

    No guidance is given about when to use get_project instead of related tools such as read_model or export_model, and no exclusions or prerequisites are stated. The description only defines what the tool reads, leaving selection among project/model-level siblings to inference.

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

  • Behavior4/5

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

    With no annotations, the description carries the behavioral burden. It goes beyond 'create' by disclosing that validation happens during creation and that invalid geometry is still saved and editable, which is a non-obvious side effect.

    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?

    One tight sentence with the key caveat in front; no filler. It is concise, though its brevity leaves parameter semantics to the schema.

    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?

    The create flow and validation behavior are covered, and an output schema exists, so return details are not required. However, with no parameter descriptions and no guidance on how this validation differs from validate_scad, a fully autonomous agent would still have to guess at some inputs.

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

    Parameters2/5

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

    Schema description coverage is 0%; the description adds almost no parameter-level meaning. 'Invalid geometry' hints at initial_scad_code, but units, requirements, name, and description semantics are left entirely to inference from parameter names.

    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 action ('Create and validate version 1') on a clear resource via the title, and the validation caveat distinguishes it from update/finalize/validate-only tools. No ambiguity about what operation this performs.

    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 description implies use when creating a new project and its first version ('Create and validate version 1'), but it does not explicitly say when not to use it or point to alternatives such as update_model or validate_scad.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the behavioral transparency burden. It usefully discloses that deletion is a move to trash rather than a permanent erase, and that an exact confirmation match is required. It does not cover auth or cascading effects, but the core behavior is clear and not contradicted by any annotation.

    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?

    The description is a single sentence with no filler. The action and resource appear first, followed by the safety condition, making it easy to parse and directly useful.

    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 tool with two required string parameters and an output schema, the description is nearly sufficient. The main gaps are the ambiguous confirmation parameter semantics and the absence of any usage or permission context, which matter for an agent deciding whether it can safely invoke this deletion.

    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?

    Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that a confirmation ID must match exactly, which gives context to confirm_project_id. However, it never explicitly states that confirm_project_id must equal project_id or explains where the confirmation ID comes from, leaving some ambiguity.

    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 states a specific action ('move to trash') on a specific resource ('a project') and adds a critical condition (confirmation ID matches exactly). This clearly distinguishes the tool from siblings like create_project, get_project, and restore_version.

    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 'only when the confirmation ID matches exactly' gives a condition for safe invocation, implying the tool should not be used without that confirmation. However, it does not explicitly describe when to prefer this tool over alternatives, nor does it mention exclusion cases or prerequisites.

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

  • Behavior4/5

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

    With no annotations, the description carries the burden, and it discloses non-obvious behavior: it does not just read version metadata; it actually probes real PNG rendering. It also mentions reporting versions and limits. It is a read-only diagnostic in spirit, though it does not explicitly state that it has no side effects.

    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?

    The entire description is one tight sentence with three parallel clauses that are front-loaded with the most important actions. Every part adds distinct information and no filler is present.

    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 status probe with an output schema, the description is complete: it states what is checked, that a real render is exercised, and what is reported. The output schema can handle return details, so nothing critical is missing.

    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 has zero parameters, so the description does not need to document parameter meaning. The baseline of 4 applies.

    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 a specific resource (system/dependency environment) and concrete actions: detect OpenSCAD, probe real PNG rendering, and report versions/limits. None of the sibling tools cover system-level status, so it is clearly distinguishable from project/model operations.

    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 intended context is implied: call this to verify the OpenSCAD/rendering environment before relying on it. However, there is no explicit when-to-use or when-not-to-use guidance, nor any naming of alternatives.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

OpenSCAD Design MCP MCP server – quality and maintenance score on Glama

Copy to your README.md:

Score Badge

OpenSCAD Design MCP MCP server – quality and maintenance score on Glama

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tomyrese/openscad-design-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server