Command set
This is the canonical tool reference for the server shipped in this repo. The site navbar links to the current release/version; avoid copying the full command table into README or promotional pages.
The active tool list can be smaller than this page when a Tool Profile is selected in Edit -> Glyphs MCP Server Status.... Reconnect your MCP client after changing profiles so it fetches the current tools/list.
Most used tools
list_open_fonts: list open fonts and pick afont_index.get_font_masters: find master IDs.get_selected_font_and_master: confirm current font, master, and selection.review_spacing/apply_spacing: review, dry-run, and apply spacing changes.generate_kerning_tab: open a kerning proof/worklist tab.review_kerning_bumper/apply_kerning_bumper: audit and apply conservative collision fixes.review_italic_first_pass/apply_italic_first_pass: preview and apply a guarded roman-to-italic first pass.docs_search/docs_get: fetch focused Glyphs docs on demand.
Discovery and inspection
Glyph and layer inspection responses may include Glyphs show links:
showUrl: nativeglyphsapp://show/URL.showHttpUrl: local bridge URL.showMarkdown: Markdown link form suitable for agent responses.showUrlUnavailableReason: returned when an unsaved font cannot produce a stable link.
| Tool | Description |
|---|---|
list_open_fonts | List open fonts and basic metadata. |
get_font_glyphs | Return glyph list and key attributes for a font, including show links when available. |
get_font_masters | Return detailed master information, including italicAngle from Glyphs Font Info Metrics and legacy slantAngle from the separate postscriptSlantAngle custom parameter. |
get_font_instances | List instances and interpolation data. |
get_glyph_details | Return glyph details, layers, paths, components, and show links. |
list_style_sets | List ss01-ss20 features, source/replacement glyphs, and group links. |
get_glyph_components | Inspect components used in a glyph. |
get_selected_glyphs | Inspect glyphs currently selected in the UI. |
get_selected_font_and_master | Inspect current font, master, and selection snapshot. |
get_selected_nodes | Inspect selected nodes with per-master mapping for edits. |
get_glyph_paths | Export paths as JSON suitable for review or controlled editing. |
review_collinear_handles | Review curve nodes that should be smooth based on handle collinearity. |
Kerning
| Tool | Description |
|---|---|
get_font_kerning | Return kerning pairs for a master. |
generate_kerning_tab | Generate and open a kerning review proof tab. |
review_kerning_bumper | Measure collisions or near-misses and compute deterministic bumper suggestions. |
apply_kerning_bumper | Apply bumper suggestions as glyph-glyph exceptions; supports dry_run and requires confirm=true to mutate. |
set_kerning_pair | Set or remove a specific kerning pair. |
Spacing
| Tool | Description |
|---|---|
review_spacing | Review spacing and suggest sidebearing/width changes without mutation. |
apply_spacing | Apply spacing suggestions; supports dry_run and requires confirm=true to mutate. |
set_spacing_params | Set spacing parameters as font/master custom parameters; no auto-save. |
set_spacing_guides | Add or clear glyph-level guides visualizing the spacing measurement model; no auto-save. |
Compensated tuning
| Tool | Description |
|---|---|
review_master_stem_metrics | Review master stem metrics required by Cursivy and related filters. |
set_master_stem_metrics | Create or update master stem metrics; supports dry_run and requires confirm=true to mutate. |
measure_stem_ratio | Measure the stem ratio between two masters for compensated tuning. |
review_compensated_tuning | Preview compensated-tuned outlines for one glyph without mutation. |
apply_compensated_tuning | Apply a two-master compensated scaling transform; supports dry_run, requires confirm=true, and can create backup layers. |
Editing and outlines
Italic first-pass tools use the Glyphs source/Transformations angle convention: positive angle values lean Latin outlines to the right. The default is 12.0, chosen as a modern common working default. Exported OpenType/UFO metadata uses the opposite sign convention, so a Glyphs +12 degree source angle corresponds to about -12 in post.italicAngle or an OpenType slnt axis value.
| Tool | Description |
|---|---|
review_italic_first_pass | Preview a roman-to-italic layer copy and slant workflow without mutation. |
apply_italic_first_pass | Apply a guarded first-pass italic/oblique workflow; supports dry_run, requires confirm=true, and can create backup layers. |
set_master_italic_angle | Set a master's Glyphs Font Info Metrics italicAngle; supports dry_run and requires confirm=true to mutate. |
create_glyph | Add a new glyph. |
delete_glyph | Remove a glyph. |
update_glyph_properties | Change unicode, category, export flags, metrics keys, groups, or similar glyph properties. |
copy_glyph | Duplicate outlines or components from one glyph to another. |
update_glyph_metrics | Adjust width and sidebearings. |
add_component_to_glyph | Append a component to a glyph layer. |
add_anchor_to_glyph | Add an anchor to a glyph layer. |
add_corner_to_all_masters | Add a _corner.* corner hint at selected nodes across all masters. |
set_glyph_paths | Replace glyph paths from JSON. |
apply_collinear_handles_smooth | Set smooth flags for reviewed collinear-handle curve nodes; supports dry_run and requires confirm=true to mutate. |
Docs helpers
| Tool | Description |
|---|---|
docs_search | Search bundled Glyphs SDK/ObjectWrapper docs by title and summary. |
docs_get | Fetch a bundled docs page by id/path, with paging support. |
docs_enable_page_resources | Register each documentation page as a separate MCP resource; optional and noisy. |
Prefer docs_search plus docs_get over registering every page as a resource.
Export and execution
| Tool | Description |
|---|---|
ExportDesignspaceAndUFO | Export UFO masters and designspace documents with structured logs and errors. |
execute_code | Execute arbitrary Python in the Glyphs context. |
execute_code_with_context | Execute Python with injected helper objects such as font, glyph, and layer. |
save_font | Save the active font, optionally to a new path. |
Execution notes:
- Prefer dedicated tools when they fit.
- Prefer
execute_code_with_contextfor glyph-scoped scripts. - Use
snippet_only=truewhen you want a Macro Panel snippet instead of automatic execution. - Bound large outputs with
max_output_charsandmax_error_chars. - Avoid
exit(),quit(), andsys.exit(). - Large glyph edits should use Glyphs undo/change wrappers inside the script.
Safe starter prompts
Health check
Call list_open_fonts and tell me how many fonts are open.
If you see an error, quote it verbatim.
Spacing review
Review spacing for my current selection.
Rules: read first, do not auto-save, and do not mutate without a dry run.
1. Call review_spacing with {"font_index":0}
2. Call apply_spacing with {"font_index":0,"dry_run":true,"clamp":{"maxDeltaLSB":80,"maxDeltaRSB":80,"minLSB":-50,"minRSB":-50}}
3. Stop and wait for approval before using confirm=true.
Kerning collision review
Review kerning collisions or near-misses in my current font/master.
Rules: do not mutate anything.
Call review_kerning_bumper with {"font_index":0,"min_gap":5,"relevant_limit":2000,"include_existing":true,"scan_mode":"two_pass","dense_step":10,"bands":8,"result_limit":200}
Summarize the 20 worst findings and likely next steps.
Focused docs lookup
Search the bundled Glyphs docs for "GSLayer bounds".
Call docs_search first, then docs_get for the best match.
Summarize only the details needed for this task.