Skip to main content
Glama
nmassi

glyphs-mcp

by nmassi

rmx_tune

Adjust glyph outlines in GlyphsApp by applying RMX Tuner's weight, width, height, slant, and blend deltas directly to a named glyph. Use for precise tuning of letterforms without leaving the editor.

Instructions

Adjust a glyph by delegating directly to the installed RMX Tuner.

This tool calls the real RMXTuner instance loaded in GlyphsApp (Glyphs.filters) and passes the values to Tuner's own controls. It does NOT approximate Tuner with native interpolation.

IMPORTANT: Width/height/weight/slant are RMX Tuner deltas, not percentages. Typical useful range is roughly -100 to +100, depending on the font/RMX setup. Blend is normalized: 0 = no blend-in layer, 1 = full blend-in layer. Values above 1 extrapolate and can produce extreme outlines.

Args: glyph_name: Name of the glyph to tune. weight: RMX Tuner Weight value (+ = heavier, - = lighter). width: RMX Tuner Width value (+ = wider, - = narrower). height: RMX Tuner Height value (+ = taller, - = shorter). slant: RMX Tuner Slant value. blend: RMX Tuner Blend value. Use 0.0–1.0 for interpolation. fixed_width: Keep advance width fixed via RMX Tuner's checkbox. master_id: Optional master/layer ID. Empty = first master. all_masters: If True, pass all master layers of the glyph to RMX Tuner.

Example: rmx_tune("R.001", height=88, weight=88)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
blendNo
slantNo
widthNo
heightNo
weightNo
master_idNo
glyph_nameYes
all_mastersNo
fixed_widthNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden, and it delivers: it discloses that width/height/weight/slant are deltas not percentages, that blend is normalized 0-1, that values above 1 extrapolate and 'can produce extreme outlines', and that the tool calls the real Tuner rather than approximating. This is exactly the safety-relevant behavior 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?

Well structured: the essential delegation behavior is front-loaded, parameter documentation is cleanly formatted, and a concrete example closes the description. It is somewhat long, but every section earns its place for a 9-parameter tool, so this is warranted length rather than padding.

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?

Comprehensive for a 9-parameter tool with no output schema: all parameters documented with semantics and ranges, behavioral caveats (delta interpretation, extrapolation risk) explained, and a usage example given. Nothing an agent needs to call this correctly is missing.

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%, so the description must compensate, and it fully does. Every parameter is documented with its meaning and direction (weight '+ = heavier, - = lighter', width, height, slant) plus semantics for blend, fixed_width, master_id, and all_masters. Ranges are given where it matters.

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 verb and resource ('Adjust a glyph by delegating directly to the installed RMX Tuner') and draws a sharp contrast with native interpolation ('does NOT approximate Tuner with native interpolation'). The purpose is unambiguous and distinguishable from siblings like rmx_scale and rmx_harmonize.

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?

Explains the delegation model and the condition under which it applies (when the real RMXTuner instance is needed rather than native interpolation). It provides useful range guidance for typical values. However, it never names sibling tools or states when one should choose rmx_tune over rmx_scale, rmx_harmonize, or rmx_batch, leaving some routing implicit.

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