Glyphs 3 compatibility
Glyphs MCP supports Glyphs 3 and Glyphs 4 from the main branch. The macOS installer detects both versions, while the terminal installer defaults to Glyphs 4 and accepts --glyphs-version 3 for Glyphs 3.
Use get_server_info first. A Glyphs 3 compatibility run should report Glyphs 3.5, Python 3.12.x, and the expected Glyphs MCP runtime ID.
Confirmed in live testing
In Glyphs 3.5 with the Inter test font, the following tool groups passed through the MCP server:
- Font discovery and metadata:
list_open_fonts,get_server_info,get_font_masters,get_font_instances,get_font_glyphs. - Read-only glyph inspection:
get_glyph_details,get_glyph_paths,get_glyph_components,list_style_sets,get_font_kerning. - Review tools:
review_collinear_handles,review_spacing,review_kerning_bumper,review_master_stem_metrics,review_italic_first_pass. - Dry-run tools:
apply_spacing,apply_kerning_bumper,set_spacing_params,set_spacing_guides. - Small scoped mutations on a disposable glyph:
create_glyph,set_glyph_paths,add_anchor_to_glyph,add_component_to_glyph,update_glyph_metricsfor width,set_kerning_pair,delete_glyph. - Rendering and docs:
render_glyph_review_image,docs_search,docs_get. - Code context setup:
execute_code_with_context.
No live test auto-saved the font.
Known limitations
Sidebearings
Glyphs 3.5 can freeze when accessed through some GSLayer.LSB, GSLayer.RSB, leftSideBearing, and rightSideBearing paths after component or path edits. To keep the server responsive, Glyphs MCP avoids those unsafe getters and setters in Glyphs 3.
Affected tools:
get_glyph_pathsget_glyph_detailsrender_glyph_review_imageset_glyph_pathsupdate_glyph_metricsapply_spacing
Expected behavior in Glyphs 3:
- Path and width data still work.
- Sidebearing values may be
null,0, or reported through structured readback warnings. update_glyph_metricssupports width changes. Treat explicitleft_sidebearingandright_sidebearingwrites as limited in Glyphs 3.- Confirmed spacing applies should be used conservatively. Prefer
dry_run=true; inspect warnings before usingconfirm=true.
ExportDesignspaceAndUFO
ExportDesignspaceAndUFO is fully exercised on Glyphs 4. In the Glyphs 3 live pass, export returned a structured error on a test font containing stale disposable glyphs with empty component names:
Glyph names must be at least one character long.
This is a Glyphs 3 compatibility limitation for malformed or legacy component data. The server should return a bounded structured error, not hang or save the font.
Recommended handling:
- Inspect and clean glyphs with empty component names before export.
- Delete stale MCP test glyphs if they remain from interrupted QA runs.
- Prefer the Glyphs 4 runtime for release export validation.
Agent guidance
When a task must support Glyphs 3:
- Start with
get_server_infoandlist_open_fonts. - Prefer explicit
font_index,master_id, andglyph_namesarguments instead of relying on UI state. - Use review and dry-run tools before confirmed mutations.
- Treat sidebearing reads and writes as best-effort in Glyphs 3.
- Stop after a structured Glyphs 3 limitation error; do not retry with larger scripts.
- Do not auto-save fonts.