Skip to main content
Glama
nmassi

glyphs-mcp

by nmassi

get_spacing_strings

Generates canonical spacing test strings for visually evaluating a glyph's spacing in GlyphsApp, using industry-standard methods like three-at-a-time, systematic pairs, and cross-case tests.

Instructions

Get spacing test strings for visually evaluating a glyph's spacing.

RECIPE: For systematic spacing work, follow get_recipe("spacing_workflow").

Generates canonical test strings based on industry-standard methods:

  • Three-at-a-time (OH no Type Co): glyph sandwiched between n/o or H/O

  • Systematic pairs (Jamra): glyph paired with every letter in its case

  • Cross-case integration: glyph in mixed UC/LC context

  • Ruder test: hard vs easy word columns for overall color evaluation

  • Single-stem stress test: words like "millennial", "minimum" (for i, l, r, t)

Use these strings in GlyphsApp's Edit view to visually assess spacing quality.

Args: glyph_name: Name of the glyph to generate test strings for

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
glyph_nameYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A3.7/5.0
Behavior3/5

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

The description details what the tool generates (canonical test strings based on five named methods), which is useful behavioral context. But with no annotations provided, the description carries the full burden and does not explicitly state whether the tool is read-only, modifies anything, or has preconditions. The imperative 'Get' implies read-only, but this is not disclosed.

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 well-structured: a clear purpose statement in the first line, followed by a scannable bullet list of methods and a practical usage note. Each bullet adds meaningful detail about the generated strings, and the RECIPE pointer is useful. It is slightly longer than necessary but every section 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?

The presence of an output schema covers return-value expectations, and the description provides strong context about the tool's purpose and output methods. However, missing annotations and the absence of any statement about preconditions (e.g., glyph must exist) or error behavior leave gaps. It is adequate but not fully complete for an agent to invoke with full confidence.

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 for the single parameter. The 'Args' section simply says 'Name of the glyph to generate test strings for,' which adds minimal meaning beyond the parameter name. It provides no examples, allowed formats, constraints, or guidance on what constitutes a valid glyph name.

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 verb ('Get'), a concrete resource ('spacing test strings'), and the precise purpose ('visually evaluating a glyph's spacing'). It distinguishes itself from sibling analysis tools like analyze_spacing by listing canonical test string methods (e.g., three-at-a-time, systematic pairs), making the tool's unique role clear.

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?

It provides a clear usage context: 'for visually evaluating a glyph's spacing' and explicitly directs systematic work to get_recipe('spacing_workflow'). It also explains where the strings are applied ('GlyphsApp's Edit view'). However, it doesn't explicitly name alternative tools or state when not to use this tool, so it falls short of perfect guidance.

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