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 MCPlist my open fonts"
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.
Glyphs MCP
Glyphs 3 and Glyphs 4: the main branch supports both major versions. The macOS installer detects each installed version and can target either or both. The terminal installer defaults to Glyphs 4; pass --glyphs-version 3 for Glyphs 3.
Site: https://ap.cx/gmcp
A Model Context Protocol server for Glyphs that exposes font‑specific tools to AI/LLM agents.
What's new in 1.9.0 (unreleased)
A native, one-document overview of work performed through MCP.
Edit → Glyphs MCP Changes… opens a native utility panel showing the current run's attributable MCP edits, saves, failures, uncertain generic-code calls, bounded targets, warnings, and aggregate counts for one live font.
get_document_change_overviewreturns the same versioned, read-only record to agents and MCP Apps, with a concise text fallback for other clients.All active edit and save tools pass through a fail-open audit adapter. The ledger is memory-only, keeps at most 256 recent events, never stores code or unrestricted outline arguments, and never modifies or saves a font.
Copy Summary exports bounded Markdown; Open Target navigates to captured glyphs; Reset clears only the ledger. Tracking ends when the document closes or Glyphs quits, while the panel remains viewable when the server is stopped.
The server exposes 78 active tools: 67 model-visible and 11 app-only.
Read the 1.9 roadmap → · Read the changelog → · Cleanroom geometry record · Experimental italic guide · Broad-Latin benchmark · Full-resolution three-family sheet
Related MCP server: InDesign UXP MCP Server
macOS Installer app (recommended)
The signed and notarized Installer app is the supported end-user path. It
installs the already signed Glyphs MCP.glyphsPlugin without modifying its
signature, installs Python dependencies, and links Glyphs MCP into:
Codex App
Codex CLI (terminal tools or in VS Code)
Claude App
Claude CLI (terminal tools or in VS Code)
The macOS app detects Glyphs 3 and Glyphs 4 independently. If both are installed, both are selected by default; you can install or update either version alone by clearing the other checkbox. Each version keeps its own plug-in, Python, and Application Support status.

Download (DMG): https://github.com/thierryc/Glyphs-mcp/releases/latest/download/GlyphsMCPInstaller.dmg
Download (ZIP): https://github.com/thierryc/Glyphs-mcp/releases/latest/download/GlyphsMCPInstaller.zip
Latest release: https://github.com/thierryc/Glyphs-mcp/releases/latest
The installer can also install the bundled Glyphs MCP skills for Codex and Claude CLI.
Any MCP client compatible with the MCP protocol can use this server. For now, the automatic installer covers only the apps listed above. Because Glyphs MCP is a localhost MCP server, manual setup in other clients is usually just the endpoint URL:
http://127.0.0.1:9680/mcp/Terminal installer:
python3 install.pyIn its default Copy mode, the terminal installer downloads the installer ZIP for the exact version in the checkout, verifies its published SHA-256, Developer ID signature, Team ID, notarization ticket, Gatekeeper acceptance, and embedded plug-in signature and stapled ticket, then installs that verified payload transactionally. The matching GitHub release must already exist and the machine must be online.
The terminal installer targets Glyphs 4 by default. To install into Glyphs 3 explicitly, pass --glyphs-version 3. The macOS app instead detects and offers every installed Glyphs 3/4 target.
Finder alternative on macOS: double-click RunInstall.command in the repo root. It launches the same terminal installer.
To uninstall, open the app’s Status page and choose Uninstall…. The review sheet lists the exact Glyphs 3/4 plug-ins, managed skills, and matching client entries before asking for confirmation. From Terminal, preview both versions first and then run the interactive uninstall:
python3 install.py --uninstall --glyphs-version both --dry-run
python3 install.py --uninstall --glyphs-version bothThe uninstaller intentionally preserves shared Python packages, Glyphs preferences, plug-in settings, font annotations, documents, repositories, and shared parent folders.
Scripted signed-release install example:
python3 install.py --non-interactive --python-mode glyphs --plugin-mode copy --install-skills --skills-target codex --overwrite-plugin --overwrite-skills --skip-client-guidance--plugin-mode link is only for development from a trusted checkout. It links
mutable source code into Glyphs and provides no release-signature or
notarization guarantee.
Minimum requirements:
macOS 13.0+
Glyphs 3 or Glyphs 4 beta
Python 3.11–3.14 (recommended: python.org 3.14)
Glyphs 3 backward compatibility is maintained for the shared MCP server code where possible. The macOS app can target it directly; use --glyphs-version 3 with the terminal installer.
Optional agent plugins
Glyphs MCP 1.9.0 provides one shared plugin package for Codex/ChatGPT, Claude Code, Cursor, and GitHub Copilot CLI. Every host gets its own native manifest, but all four load the same nine skills and the same local MCP connection:
http://127.0.0.1:9680/mcp/Install the native Glyphs plug-in and start the server first. Then choose the agent-plugin path only if it suits your client:
Host | Optional plugin setup |
Codex/ChatGPT |
|
Claude Code |
|
Cursor | Add the repository catalog with |
GitHub Copilot CLI |
|
GitHub Copilot CLI can alternatively install the package directly:
copilot plugin install thierryc/Glyphs-mcp:plugins/glyphs-mcpPlugins are an option, not a requirement. Repo-local skills, global standalone
skills, and manual MCP configuration remain supported. The macOS and terminal
installers do not install, update, or remove these agent plugins; each host owns
that lifecycle. The repository also does not enable GitHub Copilot plugins
through .github/copilot/settings.json.
All host manifests use version 1.9.0. Skills inherit that package version,
while the running MCP server reports the matching native Glyphs MCP version.
See Use agent skills and optional plugins
for install, update, removal, fallback, and host-specific invocation details.
The Codex and ChatGPT plugin UI
page documents the richer embedded feedback panel available on compatible
OpenAI hosts; Claude, Cursor, Copilot, and other MCP clients keep the same text
and structured-result fallbacks.
Repo skills for Codex, Claude Code, Cursor, and GitHub Copilot
This repo ships nine workflow skills in skills/ for common Glyphs MCP tasks.
The same source of truth is exposed through client-specific discovery paths:
Codex, Cursor, and GitHub Copilot CLI read them through
.agents/skillsClaude Code reads them through
.claude/skills
The supported usage patterns are:
Use repo-local skills
Use this when you are developing in this repository or want the clients to discover the skills directly from the repo checkout.
Open this repository in Codex, Claude Code, Cursor, or GitHub Copilot CLI so the repo-local bridges are visible.
Connect Glyphs MCP:
codex mcp add glyphs-mcp-server --url http://127.0.0.1:9680/mcp/
codex mcp list
claude mcp add --scope user --transport http glyphs-mcp http://127.0.0.1:9680/mcp/
claude mcp listIn Codex, trust the workspace so
.agents/skillsloads.In Claude Code, reload or restart if
.claude/skillsdoes not appear immediately.In Cursor, use the repo's
.agents/skillsbridge and add the local endpoint to.cursor/mcp.json; use.cursor/skillsonly as an explicit fallback.In GitHub Copilot CLI, use
.agents/skillsand add the endpoint manually withcopilot mcp add glyphs-mcp-server --url http://127.0.0.1:9680/mcp/ --type http.Start Glyphs and confirm the server is running in Edit -> Glyphs MCP Server.
Start with the general Glyphs launcher, or invoke a focused skill when you already know the workflow:
Use $glyphs to inspect the current Glyphs context and help with my font task.Install skills globally
Use this when you want the bundled Glyphs MCP skills available without opening the repo.
Run the installer from the repo root, or use the signed macOS installer app:
python3 install.pyIn the installer, enable Install Glyphs MCP agent skills for Codex and/or Claude Code.
The installer copies the bundled skills into:
~/.codex/skills/~/.claude/skills/
Reload or restart Codex / Claude Code after the installer finishes.
Ask for the skill by name:
Use the glyphs skill to inspect the current Glyphs context and help with my font task.Advanced Codex-only alternative: you can install individual skills with Codex’s built-in $skill-installer, but that is not the primary Glyphs MCP workflow.
Current repo skills focus on:
a general
$glyphslauncher with connection and context checksdocumentation-grounded Glyphs Python script and plug-in development
OpenType feature and stylistic-set inspection with Glyphs links
stable Unicode and PUA assignments for icon and symbol fonts
guarded kerning bumper reviews and applies
guarded spacing reviews and applies
outlines, components, anchors, and docs lookup workflows
guarded roman-to-italic first-pass copy and slant workflows
version, documentation, packaging, validation, signing, and publication gates
For exact per-client paths and a compatibility matrix, see Use skills.
What Is an MCP Server?
A Model Context Protocol server is a lightweight process that:
Registers tools (JSON‑RPC methods) written in the host language (Python here).
Streams JSON output back to the calling agent.
Command Set (MCP server v1.9.0)
Glyphs MCP exposes 78 active tools through one catalog-driven surface: 67 are model-visible and 11 are app-only. Every tool has a concise title and description, four MCP safety hints, a category, visibility, effect class, lifecycle state, and optional structured-output schema.
The generated command reference
is the authoritative list. README intentionally does not duplicate the full
table. This catalog is shipped in this repo (version 1.9.0). Typical
workflows begin with list_open_fonts, resolve explicit glyph
and master targets, review or preview a detached candidate, dry-run changes,
and ask for approval before confirmation. No edit tool saves implicitly.
Coordinate-only outline micro-edits use update_glyph_node_positions with the
font grid policy by default; set_glyph_paths remains the whole-path and
topology-replacement tool.
Curve work normally uses review_curve_quality,
review_curve_quality_across_masters, set_curve_review_overlay, and the
candidate lifecycle. Use execute_code only when no dedicated typed tool fits.
Install & Setup
The simplest setup is the macOS Installer app or the terminal installer:
python3 install.pyThe installer installs the plug-in, installs Python dependencies, and links Glyphs MCP into:
Codex App
Codex CLI (terminal tools or in VS Code)
Claude App
Claude CLI (terminal tools or in VS Code)
In the macOS app, choose Glyphs 3, Glyphs 4, or both. Missing versions remain visible but disabled, and a running unselected Glyphs version does not block the selected installation.
Optional Codex/ChatGPT, Claude Code, Cursor, and GitHub Copilot CLI agent plugins are installed and managed separately by those hosts. Manual MCP and standalone-skill setup remain supported.
Any MCP-compatible client can use this server. For now, the automatic installer covers only the apps above. Because this is a localhost MCP server, manual configuration in other clients is usually just the endpoint URL:
http://127.0.0.1:9680/mcp/For an automated signed-release install, use non-interactive mode:
python3 install.py --non-interactive --python-mode glyphs --plugin-mode copy --install-skills --skills-target codex --overwrite-plugin --overwrite-skills --skip-client-guidanceCopy mode fetches and verifies the exact published release matching the
checkout. Use --plugin-mode link only for development from a trusted
checkout; a mutable source link is not a signed or notarized distribution.
Safe uninstall preview and non-interactive removal:
python3 install.py --uninstall --glyphs-version both --dry-run
python3 install.py --uninstall --glyphs-version both --non-interactive --confirm-uninstallUse repeatable --uninstall-component plugin, skills, or clients options to limit the removal. Without those options, all safely attributable components are reviewed. Python dependencies are never removed because their installation locations can be shared with unrelated Glyphs scripts and Python tools.
Do not copy the raw source bundle as an end-user installation. Its tracked files are intentionally mutable and therefore cannot retain a valid distribution signature. Use the signed installer app or terminal Copy mode.
After installation, Glyphs MCP adds two menu items:
Edit → Glyphs MCP Server
Edit → Glyphs MCP Changes…
The server endpoint is http://127.0.0.1:9680/mcp/.
Tool discovery
Glyphs MCP exposes one catalog-driven surface. MCP Apps-aware clients show 66 substantive tools to the model and reserve 11 feedback or host-UI wrappers for the app. Per-tool safety annotations replace the former server profiles.
Tip: If your coding agent doesn't connect to Glyphs, start the MCP server first on a fresh Glyphs launch, then launch the coding agent afterwards.
Open the Macro Panel to access the console.
Resources (Helpers)
Resources are optional helpers to improve tool usage (especially code generation), not the primary feature.
Guide:
glyphs://glyphs-mcp/guideDocs directory listing:
glyphs://glyphs-mcp/docsDocs index:
glyphs://glyphs-mcp/docs/index.json
The guide defines the runtime execution contract for LLM agents:
Read context before mutating.
Prefer dedicated tools, then
execute_code_with_context/execute_codefor multi-step workflows.Verify changes with a read-back pass and report changed/skipped counts.
By default, per-page doc resources are not registered to avoid flooding clients.
Use docs_search + docs_get for bounded, on-demand documentation. Per-page
resource registration is not part of the public 1.9 tool surface.
Installer Notes
If you are unsure, accept the defaults: Glyphs Python and signed-release Copy.
Prefer python.org Python 3.12+ over Homebrew for fewer macOS compatibility issues.
On Apple Silicon, avoid Rosetta-translated Python builds.
No
sudois required.Verify the local endpoint with
curl -H 'Accept: application/json' http://127.0.0.1:9680/mcp/.
Regenerate the bundled API, scripting, plug-in-template, and file-format documentation from the pinned official SDK and Handbook sources with:
python3 src/glyphs-mcp/scripts/generate_documentation.pyBuild Site Images (WebP)
Docs use a splash image at /images/glyphs-app-mcp/glyphs-mcp.webp.
Requirements: Node 20+ and the
sharppackage (npm i sharp).Convert PNG assets from
content/images/glyphs-app-mcpto WebP inpublic/images/glyphs-app-mcp:
node scripts/convert-images.mjsThe script ensures glyphs-mcp.webp (the hero image for the doc) is generated, then converts the rest.
Build Development Plug-in ZIP
For local source-bundle testing only, a clean ZIP can be built without local
artifacts (__pycache__, .pyc, .venv, __MACOSX, etc.):
./scripts/build_release_zip.shOptionally override the version label used in the filename:
./scripts/build_release_zip.sh --version 1.0.0The ZIP is written to dist/ (ignored by git). It is not Developer ID signed
or notarized and must never be attached to a public release. Public releases
contain only the signed installer app ZIP, DMGs, and checksum manifest.
Release
Installer releases are built, tested, signed, notarized, and verified locally. No GitHub Actions release job or hosted signing secret is used. See macos-installer/RELEASING.md for the fail-closed local workflow.
This repo ships two plugin bundle locations:
Canonical source bundle:
src/glyphs-mcp/Glyphs MCP.glyphsPluginGlyphs Plugin Manager bundle (repo‑relative
path=target):plugin-manager/Glyphs MCP.glyphsPlugin
Developer test environment:
python3.12 -m venv .venv
.venv/bin/python -m pip install -r requirements-dev.txt
PYTHON_BIN=.venv/bin/python ./scripts/run_python_tests.shThe runner checks Python 3.11–3.14 and required development-only modules before
starting. For a focused pytest run, use
PYTHON_BIN=.venv/bin/python ./scripts/run_python_tests.sh --pytest <tests...>;
the wrapper disables unrelated globally installed pytest plug-ins so they
cannot alter FastMCP/Pydantic import state. The release gate continues to use
the canonical unittest suite.
Release flow (copy/paste):
# Optional: do the release on a branch
git switch -c lit/release-X.Y.Z
# 1) Preview, then bump the native, installer, docs, and agent-plugin versions
python3 scripts/bump_version.py --dry-run X.Y.Z
python3 scripts/bump_version.py X.Y.Z
# 2) Synchronize and verify the shared nine-skill agent package
./scripts/sync_codex_plugin_skills.sh
./scripts/sync_codex_plugin_skills.sh --check
# 3) Build the Plugin Manager bundle from tracked files (no __pycache__, .pyc, etc.)
# This creates a self-contained Plugin Manager bundle (includes vendored deps).
./scripts/build_plugin_manager_bundle.sh --vendor
# If you already have deps installed into Glyphs' Scripts/site-packages and want an offline build:
# ./scripts/build_plugin_manager_bundle.sh --vendor-from-installed --allow-missing-targets
# 4) Run the full local release gate (Python, Xcode tests, unsigned Debug build)
./scripts/run_local_release_tests.sh
# 5) Commit release artifacts
git add README.md
git add "src/glyphs-mcp/Glyphs MCP.glyphsPlugin/Contents/Info.plist"
git add "plugin-manager/Glyphs MCP.glyphsPlugin"
git add plugins/glyphs-mcp .agents/plugins/marketplace.json
git add .claude-plugin .cursor-plugin .github/plugin
git commit -m "Release X.Y.Z"
# 6) Merge to main, then sign + push the exact reviewed tag
git tag -s "vX.Y.Z" -m "vX.Y.Z"
git push origin HEAD --tagsGlyphs Plugin Manager / glyphs-packages
Glyphs MCP is not currently published in the official Glyphs Plugin Manager.
The local plugin-manager/ bundle is a synchronization and compatibility test
fixture, not an end-user distribution.
If a future Plugin Manager submission is prepared, its entry would use path=
to point at the synchronized bundle:
url = "https://github.com/thierryc/Glyphs-mcp";
path = "plugin-manager/Glyphs MCP.glyphsPlugin";
dependencies = ();Before enabling that entry, the Plugin Manager delivery path must pass the same installed-bundle signature and notarization-ticket checks as the installer paths.
Contributing
PRs and feedback are welcome.
Contributors
Thierry Charbonnel (@thierryc) — Author
Florian Pircher (@florianpircher)
Georg Seifert (@schriftgestalt)
Jeremy Tribby (@jpt)
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.
Related MCP Servers
- Alicense-qualityBmaintenanceA typed Model Context Protocol server that exposes KiCad 10 EDA workflows to language-model clients through validated tool calls.MIT
- AlicenseCqualityAmaintenanceA Model Context Protocol (MCP) server that gives AI assistants direct, native control over Adobe InDesign via a UXP plugin bridge, with ~130 tools covering documents, pages, text, graphics, styles, master spreads, books, and export.10086MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables AI agents to programmatically create, modify, and manage Figma documents via a WebSocket bridge and Figma plugin.115MIT
- Alicense-qualityCmaintenanceMCP 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.7MIT
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Connect AI agents to Replynodes over the Model Context Protocol.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/thierryc/Glyphs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server