Command set
Glyphs MCP 1.11 uses one catalog-driven surface: 87 active tools, with 76 model-visible and 11 app-only tools. There is no Read-only/Edit profile selector; safety is expressed per tool through MCP annotations, explicit targets, dry runs, confirmation, verification, and rollback.
App-only tools support the embedded feedback interface or host UI and are hidden from model routing when the client honors MCP Apps visibility. Structured results cover document audit, outline editing, candidate, curve, spacing, kerning, and LitSquare metadata workflows; concise text fallbacks remain available.
Category summary
| Category | Active tools |
|---|---|
annotations | 7 |
app-feedback | 9 |
automation | 2 |
candidates | 10 |
components | 4 |
curve-geometry | 7 |
document-audit | 1 |
documentation | 2 |
export | 1 |
features | 1 |
font | 5 |
glyph-editing | 5 |
italic | 2 |
kerning | 5 |
litsquare | 7 |
outlines | 6 |
parameters | 2 |
persistence | 1 |
selection | 3 |
server | 1 |
spacing | 4 |
unicode | 2 |
Active tools
| Tool | Title | Category | Visibility | Effect | Structured output | Description |
|---|---|---|---|---|---|---|
add_glyph_annotation | Add Glyph Annotation | annotations | model+app | edit | — | Add one native annotation to an explicit layer and record Glyphs MCP ownership. |
add_glyph_annotation_group | Add Glyph Annotation Group | annotations | model+app | edit | — | Add a linked group of native annotations to one explicit glyph layer. |
clear_glyph_annotations | Clear Glyph Annotations | annotations | model+app | edit | — | Clear managed annotations by default, or all annotations only with explicit scope. |
delete_glyph_annotation | Delete Glyph Annotation | annotations | model+app | edit | — | Delete one explicitly identified native annotation from one glyph layer. |
get_glyph_annotation_groups | Get Glyph Annotation Groups | annotations | model+app | read | — | Read Glyphs MCP-managed annotation groups for one explicit glyph layer. |
get_glyph_annotations | Get Glyph Annotations | annotations | model+app | read | — | Read native annotations and Glyphs MCP ownership metadata for one explicit glyph layer. |
update_glyph_annotation | Update Glyph Annotation | annotations | model+app | edit | — | Update one explicitly identified native annotation without touching unrelated items. |
apply_feedback_plan | Apply Feedback Plan | app-feedback | app-only | edit | feedback | Apply one unexpired embedded feedback plan after explicit app confirmation. |
open_feedback_target | Open Feedback Target | app-feedback | app-only | ui | feedback | Open resolved glyph targets from an embedded feedback result in a new Glyphs tab. |
preview_handle_smoothing_feedback | Preview Handle Smoothing Feedback | app-feedback | app-only | read | feedback | Preview an exact handle-smoothing plan in the embedded feedback panel. |
preview_kerning_feedback | Preview Kerning Feedback | app-feedback | app-only | read | feedback | Preview an exact kerning plan in the embedded feedback panel without mutation. |
preview_spacing_feedback | Preview Spacing Feedback | app-feedback | app-only | read | feedback | Preview an exact spacing plan in the embedded feedback panel without mutation. |
show_font_feedback | Show Font Feedback | app-feedback | app-only | read | feedback | Show read-only information for one open font in the embedded feedback panel. |
show_glyph_feedback | Show Glyph Feedback | app-feedback | app-only | read | feedback | Show read-only glyph metadata in the embedded feedback panel. |
show_glyphs_status | Show Glyphs Status | app-feedback | app-only | read | feedback | Show local server, Glyphs, and open-font status in the embedded feedback panel. |
show_opentype_features | Show OpenType Features | app-feedback | app-only | read | feedback | Show a read-only OpenType feature report in the embedded feedback panel. |
execute_code | Execute Code | automation | model+app | code | — | Run bounded Python in Glyphs when no dedicated tool fits; this can change fonts or external state. |
execute_code_with_context | Execute Code With Context | automation | model+app | code | — | Run bounded Python with an explicit font and glyph context when dedicated tools are insufficient. |
accept_outline_candidate_session | Accept Outline Candidate Session | candidates | model+app | edit | candidate | Dry-run or promote only the exact reviewed candidate fields after confirmation. |
discard_outline_candidate_session | Discard Outline Candidate Session | candidates | model+app | edit | candidate | Dry-run or delete only materialized layers owned by one candidate session. |
get_outline_candidate_state | Get Outline Candidate State | candidates | model+app | read | candidate | Read bounded ephemeral and materialized candidate-session state without mutation. |
materialize_outline_candidate_session | Materialize Outline Candidate Session | candidates | model+app | edit | candidate | Dry-run or create editable candidate layers for one reviewed session. |
preview_collinear_handles_candidate | Preview Collinear Handles Candidate | candidates | model+app | ui | candidate | Create a detached smooth-node candidate for explicit path and node targets. |
preview_compensated_tuning_candidate | Preview Compensated Tuning Candidate | candidates | model+app | ui | candidate | Create detached compensated-tuning candidates for explicit glyphs and masters. |
preview_italic_first_pass_candidate | Preview Italic First Pass Candidate | candidates | model+app | ui | candidate | Create a detached Roman-to-italic construction draft for guarded visual review. |
preview_tunni_balance_candidate | Preview Tunni Balance Candidate | candidates | model+app | ui | candidate | Create a detached multi-target Tunni candidate and show only its visual difference. |
review_outline_candidate_session | Review Outline Candidate Session | candidates | model+app | read | candidate | Revalidate a candidate against its live source and issue a fingerprint-bound token. |
set_outline_candidate_overlay | Set Outline Candidate Overlay | candidates | model+app | ui | candidate | Show, hide, switch, or clear ephemeral candidate Reporter state without editing fonts. |
add_anchor_to_glyph | Add Anchor To Glyph | components | model+app | edit | — | Add one anchor at explicit coordinates on one targeted glyph layer. |
add_component_to_glyph | Add Component To Glyph | components | model+app | edit | — | Add one component to an explicit glyph layer after validating its target. |
add_corner_to_all_masters | Add Corner To All Masters | components | model+app | edit | — | Add one corner hint at selected compatible nodes across explicit masters. |
get_glyph_components | Get Glyph Components | components | model+app | read | — | Inspect component identities, transforms, smart values, and target layers for one glyph. |
apply_collinear_handles_smooth | Apply Collinear Handles Smooth | curve-geometry | model+app | edit | — | Dry-run or mark explicit collinear curve nodes smooth after confirmation. |
apply_tunni_balance | Apply Tunni Balance | curve-geometry | model+app | edit | curve | Dry-run or balance explicit cubic handles after confirmation and exact read-back verification. |
get_curve_review_overlay_state | Get Curve Review Overlay State | curve-geometry | app-only | read | curve | Read bounded native curve Reporter state for the embedded Glyphs app. |
review_curve_quality | Review Curve Quality | curve-geometry | model+app | read | curve | Measure adaptive cubic events, curvature, continuity, and warnings on one explicit raw path. |
review_curve_quality_across_masters | Review Curve Quality Across Masters | curve-geometry | model+app | read | curve | Compare compatible cubic geometry and quality measurements across explicit masters. |
review_tunni_geometry | Review Tunni Geometry | curve-geometry | model+app | read | curve | Measure grid-safe Tunni balance for explicit cubic path segments without changing the font. |
set_curve_review_overlay | Set Curve Review Overlay | curve-geometry | model+app | ui | curve | Show or hide native curvature and curve-event overlays in Glyphs Edit View. |
get_document_change_overview | Get Document Change Overview | document-audit | model+app | read | document-audit | Read the bounded MCP mutation overview for one tracked open Glyphs document. |
docs_get | Docs Get | documentation | model+app | docs | — | Fetch one bundled Glyphs documentation page by its exact result ID or path. |
docs_search | Docs Search | documentation | model+app | docs | — | Search the bundled official Glyphs API, plug-in, and file-format documentation without changing state. |
ExportDesignspaceAndUFO | Export Designspace and UFO | export | model+app | files | — | Export designspace and UFO packages for one selected font to an explicit directory. |
list_style_sets | List Style Sets | features | model+app | read | — | List OpenType stylistic sets, substitutions, and direct Glyphs review links without mutation. |
get_font_glyphs | Get Font Glyphs | font | model+app | read | — | List bounded glyph metadata for one explicit open font without changing it. |
get_font_instances | Get Font Instances | font | model+app | read | — | Read instance metadata for one explicit open font without changing it. |
get_font_masters | Get Font Masters | font | model+app | read | — | Read masters, IDs, design metrics, and italic angles for one explicit open font. |
list_open_fonts | List Open Fonts | font | model+app | read | — | List every font currently open in Glyphs and return stable font indices for later calls. |
set_master_italic_angle | Set Master Italic Angle | font | model+app | edit | — | Dry-run or set one master's Glyphs italicAngle after explicit confirmation; never saves. |
copy_glyph | Copy Glyph | glyph-editing | model+app | edit | — | Copy outline data from one explicit glyph to another after validating the destination. |
create_glyph | Create Glyph | glyph-editing | model+app | edit | — | Create one named glyph in an explicit open font; does not save the document. |
delete_glyph | Delete Glyph | glyph-editing | model+app | edit | — | Delete one named glyph from an explicit open font; use only after confirming references. |
update_glyph_metrics | Update Glyph Metrics | glyph-editing | model+app | edit | — | Update width or sidebearings on one explicit glyph and master without saving. |
update_glyph_properties | Update Glyph Properties | glyph-editing | model+app | edit | — | Update explicit glyph metadata fields without changing unrelated properties or saving. |
review_master_stem_metrics | Review Master Stem Metrics | italic | model+app | read | — | Review master stem metrics required by italic construction without changing the font. |
set_master_stem_metrics | Set Master Stem Metrics | italic | model+app | edit | — | Dry-run or set explicit master stem metrics after confirmation; never saves. |
apply_kerning_bumper | Apply Kerning Bumper | kerning | model+app | edit | kerning | Dry-run or apply explicit reviewed kerning exceptions after confirmation; never saves. |
generate_kerning_tab | Generate Kerning Tab | kerning | app-only | ui | — | Open a bounded kerning proof tab in Glyphs for interactive review. |
get_font_kerning | Get Font Kerning | kerning | model+app | read | kerning | Read bounded kerning data for one explicit font and master without changing it. |
review_kerning_bumper | Review Kerning Bumper | kerning | model+app | read | kerning | Measure bounded kerning collisions and propose conservative exceptions without mutation. |
set_kerning_pair | Set Kerning Pair | kerning | model+app | edit | kerning | Set or remove one explicit kerning pair in one master; does not save the font. |
get_icon_grid_horizontal_center | Get Icon Grid Horizontal Center | litsquare | model+app | read | litsquare | Read one layer's fixed IconGrid center plus advance and layer-content position candidates. |
get_litsquare_metadata | Get LitSquare Metadata | litsquare | model+app | read | litsquare | Read direct LitSquare metadata, validation states, provenance, and effective settings for an explicit target. |
get_selected_litsquare_path_roles | Get Selected LitSquare Path Roles | litsquare | model+app | read | litsquare | Read selected LitSquare path roles with stable targets, counts, descriptions, and individual bounds. |
patch_litsquare_metadata | Patch LitSquare Metadata | litsquare | model+app | edit | litsquare | Dry-run or confirm an RFC 7396 patch to one LitSquare metadata scope; preserves unknown data and never saves. |
reset_icon_grid_horizontal_center | Reset Icon Grid Horizontal Center | litsquare | model+app | edit | litsquare | Dry-run or remove only one layer's namespaced IconGrid center policy while preserving unrelated data. |
set_icon_grid_horizontal_center | Set Icon Grid Horizontal Center | litsquare | model+app | edit | litsquare | Dry-run or store one explicit fixed IconGrid x-coordinate on a layer; never edits artwork or saves. |
set_litsquare_path_roles | Set LitSquare Path Roles | litsquare | model+app | edit | litsquare | Dry-run or atomically confirm open-string LitSquare roles on fingerprinted paths; preserves other attributes and never saves. |
apply_start_node_alignment | Apply Start Node Alignment | outlines | model+app | edit | outline | Dry-run or atomically apply one fingerprint-bound joint start-node alignment after confirmation; never saves. |
get_glyph_details | Get Glyph Details | outlines | model+app | read | — | Inspect one glyph's layers, metrics, shapes, anchors, components, and compatibility metadata. |
get_glyph_paths | Get Glyph Paths | outlines | model+app | read | — | Read editable path data for one glyph and master in a bounded round-trip-safe format. |
review_start_node_alignment | Review Start Node Alignment | outlines | model+app | read | outline | Review one semantic start-node landmark as a joint cyclic phase across explicit compatible masters. |
set_glyph_paths | Set Glyph Paths | outlines | model+app | edit | — | Replace paths on one explicit glyph layer after validation; preserves surrounding shapes and never saves. |
update_glyph_node_positions | Update Glyph Node Positions | outlines | model+app | edit | outline | Dry-run or atomically update explicit node coordinates on one glyph layer using the font grid by default. |
get_custom_parameters | Get Custom Parameters | parameters | model+app | read | — | Read generic font or master custom parameters without changing the document. |
set_custom_parameters | Set Custom Parameters | parameters | model+app | edit | — | Dry-run or atomically set explicit custom parameters after confirmation; never saves. |
save_font | Save Font | persistence | model+app | save | — | Save one explicit open font to its current path or an explicit new path. |
get_selected_font_and_master | Get Selected Font And Master | selection | model+app | read | — | Read the active font, master, and selection context from Glyphs without changing it. |
get_selected_glyphs | Get Selected Glyphs | selection | model+app | read | — | Read the current Glyphs font-view selection and return exact glyph targets and links. |
get_selected_nodes | Get Selected Nodes | selection | model+app | read | — | Read selected Edit View nodes with glyph, layer, path, node, and master mapping. |
get_server_info | Get Server Info | server | model+app | read | — | Read local server identity, runtime health, and open-font count without changing Glyphs. |
apply_spacing | Apply Spacing | spacing | model+app | edit | spacing | Dry-run or apply reviewed spacing to explicit glyphs after confirmation; never saves. |
review_spacing | Review Spacing | spacing | model+app | read | spacing | Measure and propose class-aware spacing for explicit glyphs without changing the font. |
set_spacing_guides | Set Spacing Guides | spacing | model+app | edit | spacing | Add or clear only Glyphs MCP spacing guides on explicit glyph layers. |
set_spacing_params | Set Spacing Params | spacing | model+app | edit | spacing | Dry-run or set spacing custom parameters for one font or master without saving. |
apply_unicode_assignments | Apply Unicode Assignments | unicode | model+app | edit | — | Dry-run or atomically apply explicit Unicode mappings after collision checks. |
review_unicode_assignments | Review Unicode Assignments | unicode | model+app | read | — | Review Unicode mappings and deterministic allocation proposals without changing glyphs. |
Removed in 1.8
These tombstones are retained for migration guidance but are not registered.
| Removed tool | Replacement |
|---|---|
apply_compensated_tuning | accept_outline_candidate_session |
apply_italic_first_pass | accept_outline_candidate_session |
docs_enable_page_resources | docs_search |
measure_stem_ratio | preview_compensated_tuning_candidate |
render_glyph_review_image | set_curve_review_overlay |
review_collinear_handles | preview_collinear_handles_candidate |
review_compensated_tuning | preview_compensated_tuning_candidate |
review_italic_first_pass | preview_italic_first_pass_candidate |
Curve review in 1.8
review_curve_quality defaults to adaptive geometry data version 2 and reports extrema, inflections, stationary points, cusps, arc length, turning angle, bounded self-intersections, and G0/G1/G2 join measurements. Use analysis_mode="sampled_v1" only for a reproducible 1.7 sampling baseline.
review_curve_quality_across_masters compares those measurements only after compatible topology and cubic mapping are verified. set_curve_review_overlay accepts overlays=["curvature"], overlays=["curve_events"], or both; candidate differences remain in the separate Candidate Reporter.
Candidate safety sequence
Use a typed preview tool, inspect get_outline_candidate_state, call review_outline_candidate_session, dry-run accept_outline_candidate_session with the returned token, and request explicit approval before confirmed acceptance. Materialize only when manual editing is needed. None of these tools saves the font.