Skip to main content
Glama

merge_vertices

DestructiveIdempotent

Merges STL vertices closer than a specified tolerance to close mesh gaps and prepare files for reliable slicing.

Instructions

Merge vertices in an STL file closer than the specified tolerance

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": {
      "stl_path": "<stl_path>"
    },
    "name": "merge_vertices"
  }
}

Input Schema

NameRequiredDescriptionDefault
stl_pathYesPath to the STL file
toleranceNoMax distance to merge (mm, default: 0.01)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.1

TDQS

C2.9/5.0
Behavior2/5

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

Annotations declare destructiveHint=true and readOnlyHint=false, so the agent knows the operation mutates. The description adds no behavioral context beyond that: it never says whether the STL is rewritten in place or a new file is produced, whether the change is reversible, or that merged vertices cannot be recovered. For a destructive mesh operation this is the critical missing piece.

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 front-loaded sentence with the operation, target, and threshold in that order and zero filler. It is efficient, though its brevity comes at the cost of the behavioral detail noted elsewhere.

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?

This is a destructive, non-readonly file mutation with no output schema and no stated return value. The description should at minimum say whether the original file is overwritten and what is reported back, and it says neither, leaving the agent unable to predict the side effect.

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 coverage is 100% — both stl_path and tolerance (with unit and default) are fully documented in the schema. The description's 'closer than the specified tolerance' merely restates the schema's 'Max distance to merge (mm, default: 0.01)' without adding edge-case meaning, so the 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 ('Merge vertices in an STL file') plus the operative condition ('closer than the specified tolerance'), which is enough to distinguish it from the transform siblings like scale_stl, rotate_stl, and extend_stl_base. It stops short of naming any alternative or sequencing, so a 5 isn't warranted.

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 when-to-use guidance: nothing says this is a mesh-cleanup step to run before slice_stl, nor any condition under which it should be avoided. The agent must infer the workflow position from the tool name alone.

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