glyphs-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@glyphs-mcpAudit the color of my lowercase letters"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP bridge for AI-assisted type design in GlyphsApp.
Lets Claude, Cursor, or any MCP client read and write font data directly in GlyphsApp — bidirectional, real-time, live in the editor.
MCP Client ←(stdio/MCP)→ MCP Server ←(HTTP/localhost)→ GlyphsApp PluginRequirements
GlyphsApp 3 (tested on 3.2+)
An MCP client: Claude Code, Cursor, Windsurf, etc.
Python 3.10+ with uv (recommended) or pip
Installation
1. Install the GlyphsApp plugin
From Plugin Manager (recommended): Open GlyphsApp, go to Window > Plugin Manager, search for MCP, and click Install.
Manual install: Download GlyphsMCP.glyphsPlugin.zip from the latest release, unzip, and double-click to install.
Restart GlyphsApp. You should see GlyphsMCP under the Window menu.
2. Connect your MCP client
Claude Code:
claude mcp add glyphs-mcp -- uvx glyphs-mcpCursor / VS Code — add to your MCP config:
{
"mcpServers": {
"glyphs-mcp": {
"command": "uvx",
"args": ["glyphs-mcp"]
}
}
}That's it.
3. Use it
Open a font in GlyphsApp, then ask your AI assistant:
"Run a full color audit on my font and tell me which glyphs are inconsistent"
"Compare the stems across all my lowercase letters"
"Check if my figures are consistent with my letters"
"Make the R 20% wider and harmonize the curves"
"Analize metrics on lowercases"
Tools
Read
Tool | Description |
| Font family name, UPM, glyph count, masters, axes, metrics, instances |
| All glyph names with unicode, category, layer count |
| Full glyph data: paths, components, anchors, sidebearings for all layers |
| Glyph rendered as SVG markup |
| Current editor selection: active glyph, layer, selected paths/nodes |
| All masters with metrics and axis positions |
| All kerning pairs for a master |
| OpenType feature code |
Write
Tool | Description |
| Create a new glyph with optional width, unicode, and initial paths |
| Replace all paths on a glyph's layer |
| Set advance width |
| Set color label (0-11) |
| Assign or clear a unicode value |
| Rename a glyph |
| Copy a glyph with all layers to a new name |
| Delete a glyph |
| Add or modify a kerning pair |
| Remove a kerning pair |
| Create or update an OpenType feature |
Analysis
Tool | Description |
| Measure stem thicknesses via perpendicular ray-casting |
| Compare stems across glyphs using industry patterns |
| Designer's intended stem values from Dimensions palette |
| Measure ink density for a single glyph |
| Compare ink density across glyphs |
| Full font color audit across all letters |
| Overshoot consistency at baseline, x-height, cap-height |
| Width ratios, related-form groups, ordering constraints |
| Diagonal stem thickness vs straight reference |
| Stem thinning at arch/bowl junctions |
| Cross-validate figures and letters (0/O, 6/9, 8/S, 3/B) |
| Mirrored pair widths, dash ratios, related punctuation |
| Master compatibility: paths, nodes, components, anchors |
| Kerning quality: cross-master gaps, orphans, outliers |
| Spacing quality: sidebearing groups, symmetry, drift |
Analysis tools automatically mark glyphs in GlyphsApp: red = inconsistent, orange = unreliable, yellow = optical compensation, green = pass.
RMX Tools
Requires RMX Tools for full functionality. Falls back to native transforms when RMX is unavailable.
Tool | Description |
| Optimize bezier curves |
| Scale by percentage with stroke weight compensation |
| Adjust weight, width, height, or slant |
| Adjust a glyph to a fixed advance width |
| Apply any RMX filter to multiple glyphs |
Advanced
Tool | Description |
| Run arbitrary Python inside GlyphsApp (disabled by default) |
Multi-master support
All tools accept an optional master_id parameter. When omitted, read/write tools use the first master. Analysis tools analyze all masters and return per-master results.
Menu
The plugin adds a GlyphsMCP submenu under Window in the menu bar:
Start/Stop Server — toggle the HTTP server
Connect — copy ready-to-paste MCP config for Claude Code or VS Code (and forks)
Documentation — open this page in your browser
Allow Execute Endpoint — enable
execute_in_glyphs(off by default for security)
Preferences
Key | Default | Description |
|
| HTTP server port |
|
| Start server on GlyphsApp launch |
|
| Enable the execute endpoint |
How it works
The GlyphsApp plugin runs an HTTP server on 127.0.0.1:7745 inside GlyphsApp. All GlyphsApp API calls run on the main thread via a queue + NSTimer bridge for thread safety.
The MCP server is a thin translation layer — it receives MCP tool calls via stdio and forwards them as HTTP requests to the plugin.
Roadmap
Font proofing — Generate proof strings for spacing/kerning evaluation
Auto-update — Check for updates directly from the GlyphsMCP menu
Analytics — Optional usage telemetry to guide development priorities
License
MIT — Nicolas Massi www.nico.works
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nmassi/glyphs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server