Skip to main content
Glama

text_mesh

Generate 3D text labels as closed meshes or engrave letters into existing meshes for Blender models.

Instructions

Make a text label as a closed mesh, or engrave text into a mesh. size is the height of a capital letter and depth the thickness, in metres. \n starts a new line. plane: XZ stands upright and reads from the front (-Y), XY lies flat and reads from above, YZ stands and reads from +X. The back face is on the plane. at is the anchor in the world (the origin when empty) and the object origin; align puts the middle, the left end or the right end of the text there; vertically the text is centred. font is a path to a .ttf or .otf file. The built-in font has Latin and Cyrillic; a font without a glyph shows nothing for that character. bevel rounds the edges (0 to depth/2). The same name replaces the earlier text. on_object (a mesh) puts the text on its surface: a ray through at along the plane normal finds the first hit, and the text lands offset metres above it (a decal that does not z-fight). The text stays flat: use it on flat or nearly flat surfaces. engrave=true cuts the letters depth deep into on_object instead, with the checks and clean-up of boolean; no text object stays and bevel is ignored. The mesh must be closed. The answer has the volume before and after.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
atNo
fontNo
nameNotext
sizeNo
textYes
alignNocenter
bevelNo
depthNo
planeNoXZ
offsetNo
engraveNo
on_objectNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: engrave applies boolean checks and clean-up, requires a closed mesh, leaves no text object and ignores bevel; the decal does not z-fight; the same name replaces earlier text; the response reports volume before and after. These are exactly the mutation side effects an agent needs.

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?

Dense but every clause carries information; parameter explanations are grouped per concept with backticked names for scanability. It is a long block of near-continuous prose, so it is efficient rather than optimal, but there is little waste.

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?

No annotations and no output schema, so the description must cover behavior and does, even stating the return value (volume before and after). It stops short of describing the exact response shape or the resulting object's name in the scene tree, which is a minor gap for a 12-parameter mutation tool.

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

Parameters5/5

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

Schema description coverage is 0% and 12 parameters are present, so the description must compensate, and it does: units (metres), size = capital-letter height, depth = thickness, bevel range 0..depth/2, plane orientation with reading direction, at as world anchor and object origin, align horizontal placement with vertical centring, font path and glyph fallback, offset height above the hit point. Only the self-evident `text` parameter is left to the 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?

Opens with a specific verb+resource: 'Make a text label as a closed mesh, or engrave text into a mesh.' The two modes are distinguished up front, and no sibling tool in the list does text geometry, so the agent can route to it unambiguously.

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?

Gives real selection criteria: use on_object for a decal on flat or nearly flat surfaces, engrave=true for cutting letters into a closed mesh, and notes engrave ignores bevel and leaves no text object. It does not name an alternative tool, but there is no competing sibling for text creation, so the remaining guidance is conditional rather than comparative.

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