Skip to main content
Glama
nmassi

glyphs-mcp

by nmassi

check_glyphset_coverage

Check a font's coverage against Google Fonts glyphsets (like GF_Latin_Core) to see which glyphs are present or missing. Optionally create empty glyphs for missing characters to prepare for drawing.

Instructions

Check font coverage against Google Fonts glyphset definitions.

With no arguments, lists all available glyphsets. With a glyphset name, reports which glyphs are present and which are missing.

Use add_missing=True to create empty glyphs for all missing characters, ready for the designer to draw.

Args: glyphset: Glyphset name or shortcut. Examples: "GF_Latin_Core" — required for Google Fonts onboarding (324 glyphs) "GF_Latin_Plus" — extended Latin (141 additional glyphs) "latin_core" — shortcut for GF_Latin_Core "latin_plus" — shortcut for GF_Latin_Core + GF_Latin_Plus (465 total) "latin_all" — shortcut for Core + Plus + Beyond (598 total) "cyrillic_core", "greek_core", "arabic_core" — other scripts Empty string — list all available glyphsets and shortcuts add_missing: If True, create empty glyphs for all missing characters in the font. New glyphs are marked with blue color label.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
glyphsetNo
add_missingNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries full behavioral burden. It discloses the tool's dual behavior (listing vs. checking) and explains that add_missing=True creates empty glyphs marked with blue color label. It implies read-only behavior when add_missing is false (reports), and clearly indicates modification when true. It doesn't mention edge cases (invalid glyphset names, effect on existing glyphs) but covers the core behaviors adequately for a font-checking tool.

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 concise opening sentence stating the core function, followed by a short explanation of modes, then an Args section with detailed parameter explanations. It includes examples that are helpful but not excessive. While it is somewhat lengthy, every sentence adds value—the examples clarify shortcuts and the add_missing effect is necessary. It's appropriately front-loaded with the main purpose first.

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 tool with 2 optional parameters and an output schema (not shown but implied), the description is complete. It covers both parameter semantics, the two operational modes, and the side effect of add_missing. It explains what the tool returns (which glyphs are present/missing) and how to list all glyphsets. No critical information is missing for an agent to call it correctly.

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 fully compensate. It does so excellently: the glyphset parameter is explained with concrete examples and shortcuts (GF_Latin_Core, latin_core, latin_all, cyrillic_core, etc.), and add_missing is described with its effect and visual marker. This adds substantial meaning beyond the bare schema types and defaults, making it easy for an agent to select correct values.

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 the tool's purpose: checking font coverage against Google Fonts glyphset definitions. It distinguishes between two modes (listing all glyphsets vs. checking a specific one) and explicitly names the action (reports present/missing, optionally adds missing glyphs). This is a specific verb+resource that separates it from sibling tools like check_language_support or check_overshoots.

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?

The description provides clear usage context: 'With no arguments, lists all available glyphsets. With a glyphset name, reports which glyphs are present and which are missing.' It also explains the optional add_missing parameter. It does not explicitly state when NOT to use this tool or mention alternatives, but the function is unambiguous and the context signals (e.g., no other tool checks glyph coverage) make the usage obvious. It lacks explicit exclusions but is still clear.

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