Skip to content
GlyphPact
Menu

GlyphPact MCP server

Run GlyphPact from the agent you already use

Install the full plugin in Claude Code or Codex, or add the same local stdio server to Antigravity, Cursor, JetBrains, VS Code, Zed, Windsurf, Gemini CLI, and other MCP clients.

  • Plugin or manual
  • Local stdio
  • No API key
Local process mapOne server, many MCP clients
  • Claude Code
  • Codex
  • Antigravity
  • Cursor
  • JetBrains
  • VS Code
local stdioglyphpact-mcp
Tools
4
Schema resources
3
SVG uploads
0

Install

Choose the part you want

Claude Code and Codex can install the complete plugin. Every client with local stdio MCP support can install the server by itself.

01

Claude Code + Codex

Full plugin

Includes the four MCP tools, the three schema resources, and thesync-flutter-svg-icons skill. The installed plugin starts the bundled server.

  • No personal MCP entry
  • Plugin-managed release updates
  • Flutter wiring and rendered-verification guidance
02

Any local stdio host

MCP server only

Adds the same four tools and three resources through the published glyphpact[mcp] package. It does not add the plugin skill.

  • One client config entry
  • No source checkout or global GlyphPact install
  • Version pinned until you update the entry

Recommended where available

Install the full plugin

Add the GlyphPact repository as a marketplace once, then install the plugin. It bundles the exact 1.0.1 release wheel.

Claude Code
claude plugin marketplace add omar-hanafy/glyphpact
claude plugin install glyphpact@glyphpact
Codex
codex plugin marketplace add omar-hanafy/glyphpact
codex plugin add glyphpact@glyphpact

Start a new session after plugin installation. Claude Code can also run /reload-plugins. Do not add a second manual GlyphPact MCP entry while the plugin is enabled.

Manual MCP setup

Pick your client and paste its native config

Every snippet launches the same pinned PyPI package. The outer JSON or TOML changes because MCP clients do not share one configuration file format.

Runtime
uvon PATH; GlyphPact requires Python 3.10 or newer.
First start
Network access while uv downloads the pinned package and MCP dependencies.
Later starts
uv reuses its local cache. SVG compilation itself stays local.

Merge, do not overwrite. If your config already has MCP servers, add the glyphpact entry beside them. The blocks below show complete wrappers so each one is safe to copy.

Antigravity / AgyGlobal or workspace JSON~/.gemini/config/mcp_config.json or .agents/mcp_config.json
  1. Open MCP Servers, choose Manage MCP Servers, then View raw config.
  2. Merge the glyphpact entry into the existing mcpServers object. Do not replace unrelated servers.
  3. Use Refresh in the IDE. In Agy CLI, open /mcp and reload the server.
Antigravity MCP documentation
mcp_config.json
{
  "mcpServers": {
    "glyphpact": {
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--quiet",
        "--no-progress",
        "--color",
        "never",
        "--no-config",
        "--isolated",
        "--from",
        "glyphpact[mcp]==1.0.1",
        "glyphpact-mcp"
      ]
    }
  }
}
CursorGlobal or project JSON~/.cursor/mcp.json or .cursor/mcp.json
  1. Open Customize, select MCPs, and use the global or project configuration.
  2. Merge the glyphpact entry into mcpServers. Cursor requires type: stdio for this local process.
  3. Save the file, restart Cursor, and confirm that GlyphPact is enabled in the MCP list.
Cursor MCP documentation
mcp.json
{
  "mcpServers": {
    "glyphpact": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--quiet",
        "--no-progress",
        "--color",
        "never",
        "--no-config",
        "--isolated",
        "--from",
        "glyphpact[mcp]==1.0.1",
        "glyphpact-mcp"
      ]
    }
  }
}
JetBrains AI AssistantIDE settingsSettings > Tools > AI Assistant > Model Context Protocol
  1. Choose Add, select STDIO, and paste the JSON configuration.
  2. Choose whether the server belongs to this project or every project. Working directory is a separate field.
  3. Select OK, then Apply. The Status column shows when the server is connected.
JetBrains AI Assistant MCP documentation
STDIO JSON configuration
{
  "mcpServers": {
    "glyphpact": {
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--quiet",
        "--no-progress",
        "--color",
        "never",
        "--no-config",
        "--isolated",
        "--from",
        "glyphpact[mcp]==1.0.1",
        "glyphpact-mcp"
      ]
    }
  }
}
VS Code / GitHub CopilotUser or workspace JSONMCP: Open User Configuration or .vscode/mcp.json
  1. Run MCP: Open User Configuration, or add the file under .vscode for one workspace.
  2. Merge the glyphpact entry into the top-level servers object. VS Code does not use mcpServers.
  3. Run MCP: List Servers to start, restart, inspect output, and confirm the connection.
VS Code MCP server documentation
mcp.json
{
  "servers": {
    "glyphpact": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--quiet",
        "--no-progress",
        "--color",
        "never",
        "--no-config",
        "--isolated",
        "--from",
        "glyphpact[mcp]==1.0.1",
        "glyphpact-mcp"
      ]
    }
  }
}
ZedAgent settingsSettings > AI > MCP Servers
  1. Choose Add Server, then Add Local Server, or open the raw settings file.
  2. Merge the glyphpact entry into context_servers. Zed uses this key instead of mcpServers.
  3. Return to MCP Servers and confirm that the status indicator is green.
Zed MCP documentation
Zed settings JSON
{
  "context_servers": {
    "glyphpact": {
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--quiet",
        "--no-progress",
        "--color",
        "never",
        "--no-config",
        "--isolated",
        "--from",
        "glyphpact[mcp]==1.0.1",
        "glyphpact-mcp"
      ]
    }
  }
}
Windsurf / Devin DesktopUser JSON~/.codeium/windsurf/mcp_config.json
  1. Open the MCPs panel in Cascade, or open Cascade > MCP Servers in Settings.
  2. Merge the glyphpact entry into mcpServers and save the configuration.
  3. Reopen the MCP panel and confirm that GlyphPact is connected.
Windsurf and Devin Desktop MCP documentation
mcp_config.json
{
  "mcpServers": {
    "glyphpact": {
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--quiet",
        "--no-progress",
        "--color",
        "never",
        "--no-config",
        "--isolated",
        "--from",
        "glyphpact[mcp]==1.0.1",
        "glyphpact-mcp"
      ]
    }
  }
}
Gemini CLIUser or project JSON~/.gemini/settings.json or .gemini/settings.json
  1. Choose user scope for every project, or project scope for one trusted repository.
  2. Merge the glyphpact entry into mcpServers and save the file.
  3. Run /mcp reload, then gemini mcp list to check the connection.
Gemini CLI MCP documentation
settings.json
{
  "mcpServers": {
    "glyphpact": {
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--quiet",
        "--no-progress",
        "--color",
        "never",
        "--no-config",
        "--isolated",
        "--from",
        "glyphpact[mcp]==1.0.1",
        "glyphpact-mcp"
      ]
    }
  }
}
Claude Code, manual MCPUser-scoped CLIClaude Code user configuration
  1. Use this only when you want the MCP server without the GlyphPact plugin skill.
  2. Run claude mcp get glyphpact or open /mcp to confirm the registered server.
  3. Start a new Claude Code session after adding the manual configuration.
Claude Code MCP documentation
terminal
claude mcp add-json --scope user glyphpact '{"type":"stdio","command":"uv","args":["tool","run","--quiet","--no-progress","--color","never","--no-config","--isolated","--from","glyphpact[mcp]==1.0.1","glyphpact-mcp"]}'
Codex, manual MCPCLI or TOML~/.codex/config.toml or a trusted project .codex/config.toml
  1. The CLI equivalent is: codex mcp add glyphpact -- uv tool run --quiet --no-progress --color never --no-config --isolated --from 'glyphpact[mcp]==1.0.1' glyphpact-mcp
  2. Use this only when you want the MCP server without the GlyphPact plugin skill.
  3. Run codex mcp list or open /mcp, then start a new Codex session.
Codex MCP documentation
config.toml
[mcp_servers.glyphpact]
command = "uv"
args = ["tool", "run", "--quiet", "--no-progress", "--color", "never", "--no-config", "--isolated", "--from", "glyphpact[mcp]==1.0.1", "glyphpact-mcp"]
Other stdio MCP clientsGeneric JSONYour client's local MCP configuration
  1. Use this shape when your client documents a top-level mcpServers object and local stdio servers.
  2. If the client requires a type field, add "type": "stdio" beside command.
  3. Restart or reload the client, then confirm the four GlyphPact tools before running a build.
MCP transport specification
generic mcpServers entry
{
  "mcpServers": {
    "glyphpact": {
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--quiet",
        "--no-progress",
        "--color",
        "never",
        "--no-config",
        "--isolated",
        "--from",
        "glyphpact[mcp]==1.0.1",
        "glyphpact-mcp"
      ]
    }
  }
}

Connection check

Confirm the server before asking it to build

Reload the client, find a server named GlyphPact, then compare its public surface with the lists below.

Expected tools
audit_icon_pack
build_icon_font
check_icon_font
read_icon_report
Expected resources
glyphpact://schema/config
glyphpact://schema/report
glyphpact://schema/cli-result
  1. Reload the client

    Use the client-specific reload step above. A GUI client may need to restart after uv is installed so its process receives the updated PATH.

  2. Check the public surface

    Confirm all four tool names. Resource browsers should also show the three glyphpact:// schema URIs.

  3. Start with an audit

    Use an absolute SVG or config path. Keep both fidelity policies at their strict defaults until you have reviewed every finding.

  4. Approve writes deliberately

    build_icon_font publishes files.check_icon_font does not rewrite generated output, but it may create the output parent and sibling lock.

Use it

Give the agent an absolute path and a stopping point

These prompts keep the first action read only, require explicit policy decisions, and tell the agent when to release temporary audit state.

01

Inspect one file or a full pack

No project output is published.

Prompt: strict audit
Audit the SVG icon pack at /absolute/path/to/icons with GlyphPact.
Keep lossy and unrepresentable policies strict.
Page every audit finding from the returned snapshot, summarize them by classification,
then release the snapshot. Do not change project files.
02

Audit, publish, then check

The agent stops for policy approval before a build.

Prompt: configured build
Use the GlyphPact config at /absolute/path/to/icon_font.json.
Audit it first. Ask before allowing any approximation or omission.
If the audit is accepted, build the font, run check_icon_font,
then summarize the published report.
03

Read an existing report

Large report collections stay paged.

Prompt: report review
Read /absolute/path/to/generated/iconfont.report.json with GlyphPact.
Page the issues, glyphs, and skipped icons. Report counts, policy,
approximations, omissions, and the generated font and Dart paths.

Tool reference

Four tools with different write boundaries

Each call returns bounded structured JSON. The inner build and check result is validated against GlyphPact's CLI-result schema; report reads are validated against the report schema.

read only

audit_icon_pack

Compile one SVG, a directory, or a config into disposable storage. Review fidelity and safety findings before project files change.

Inputs
Exactly one absolute input_path or config_path. Policies default to lossy="error" and unrepresentable="error". Pages use offset and limit.
Returns
A structured audit summary, a bounded findings page, and a stable snapshot ID when findings exist.

Page the same snapshot with snapshot_id, then release it with release_snapshot=true. Do not rerun the audit for each page.

publishes

build_icon_font

Build and transactionally publish the artifacts declared by an existing GlyphPact config.

Inputs
An absolute config_path. adopt_output is false unless the user explicitly approves replacing a non-empty unowned directory.
Returns
The schema-validated CLI result, artifact paths on success, and a bounded first page of build findings.

A failed build without a published report can omit findings after the first 100. Fix the named failures and rerun instead of assuming the list was complete.

coordination write

check_icon_font

Rebuild a candidate and compare it with committed output without rewriting the generated artifact set.

Inputs
An absolute config_path. The default timeout is 600 seconds.
Returns
Success when output is current, or state="stale" and exitCode=3 when generated files drift.

Check may create the output parent and leaves the persistent sibling coordination lock, so it is non-destructive but not read only.

read only

read_icon_report

Validate and page a published iconfont.report.json without placing the entire report in the agent context.

Inputs
An absolute report_path, optional lossy or unrepresentable classification, and an offset and limit up to 500.
Returns
A report summary plus independently bounded pages for issues, glyphs, and skipped icons.

The workflow protects fidelity and codepoints

  1. Audit with strict defaults

    Provide one absolute SVG path, directory, or config path. Approximation and omission both start as errors.

  2. Page and release the audit snapshot

    Follow findings.nextOffset with the returned snapshot ID. Release that snapshot after every page has been reviewed.

  3. Decide every fidelity exception

    Ask before setting lossy conversion or unrepresentable skipping. Keep the decision in the checked-in config.

  4. Preserve the existing lock

    The lock is the codepoint ABI. Do not recreate it to make a migration or build pass.

  5. Build, then run the staleness check

    Publish only after policy is settled. A cleancheck_icon_font proves the generated artifacts match the current sources and config.

  6. Read the report and verify Flutter

    Page the published report. The full plugin then guides exact font wiring, analysis, target build, launch, and rendered glyph comparison.

MCP resources

Three schemas describe the files inside the workflow

These resources describe config files, published reports, and the inner CLI result. They are not schemas for the outer MCP paging and snapshot envelope.

glyphpact://schema/config
JSON Schema for icon-font configuration files.
glyphpact://schema/report
JSON Schema for published iconfont.report.json files.
glyphpact://schema/cli-result
JSON Schema for the inner GlyphPact CLI build and check result.

Filesystem and privacy

Local transport, explicit paths, bounded temporary state

The MCP process runs on the same machine as the client. It has no API key, authentication flow, remote endpoint, or SVG upload path.

Transport
Local stdio. The client starts glyphpact-mcp as a child process and exchanges MCP messages through standard input and output.
Path handling
Tool paths must be absolute and must already exist. The compiler keeps its own canonical symlink, ownership, and unsafe-input checks.
Audit state
Findings live in private local snapshots. One snapshot is capped at 64 MiB; the store holds at most eight snapshots and 128 MiB total. Idle snapshots expire after 15 minutes and all snapshots expire within one hour.
Published writes
Build stages an atomic publication beside the configured output, then replaces only an owned output directory. Build and check use a persistent sibling .glyphpact.lock coordination file.
Report reads
Reports must be stable regular files, are capped at 128 MiB, and are checked against the report schema before paging.
Context limits
Findings pages allow up to 500 items and 1 MiB. One oversized finding is replaced by a small identity summary instead of flooding the client context.

Troubleshooting

Fix the launcher before debugging the compiler

The client cannot find uv
Install uv, close the GUI client completely, and reopen it. GUI apps often keep the PATH they received at launch. If needed, replace "command": "uv" with uv's absolute executable path.
The first connection times out
The first start downloads GlyphPact and its pinned MCP dependencies. Confirm network access, retry once, then inspect the client's MCP log. Later starts use uv's cache.
GlyphPact appears twice
The full plugin already registers the server. Remove or disable the duplicate manual entry, or uninstall the plugin if you only want MCP.
A tool rejects a relative path
Send an absolute existing path. The server may run outside the project directory, so relative paths are rejected rather than resolved against an uncertain working directory.
An audit snapshot expired
Run the audit once more, page the replacement snapshot, and release it when finished. Do not reuse an unknown or expired snapshot ID.
A new GlyphPact release is available
Marketplace users update the plugin. Manual users replace==1.0.1 in their config with the release they intend to run, then restart or reload the server.

Still blocked? Include the client name, GlyphPact version, MCP log, and the tool error in aGitHub issue.

FAQ

MCP questions

Does GlyphPact work offline?

Yes. GlyphPact is a command-line compiler that runs locally. Compiling a pack involves no network access: there is no website step, no project service, and no server that receives your artwork. Installation itself needs the network once, to fetch the package.

Does GlyphPact upload my SVG files anywhere?

No. Source SVGs are read from disk and all compilation happens in the local process. Nothing is transmitted, so unreleased or licence-restricted artwork never leaves the machine or the build runner.

Which coding agents can use the GlyphPact MCP server?

Any client that can start a local stdio MCP server can use GlyphPact. The documented setups cover Claude Code, Codex, Antigravity, Cursor, JetBrains AI Assistant, VS Code, Zed, Windsurf, and Gemini CLI. Clients use different JSON keys, TOML sections, and config locations, but each one launches the same published glyphpact-mcp process.

The server has four tools: audit an SVG file or directory and page a stable local findings snapshot, build the output declared by a config, check generated output for staleness without rewriting the artifact set, and page a published report. It also exposes the config, report, and inner CLI-result JSON Schemas as MCP resources.

MCP installation and tool reference

Should I install the full plugin or configure MCP manually?

Use the full plugin in Claude Code or Codex when you want the MCP server plus the sync-flutter-svg-icons skill. The skill guides project inspection, codepoint compatibility, Flutter font wiring, analysis, target builds, launch, and rendered glyph comparison. The host starts the bundled MCP server after plugin installation.

Use manual MCP configuration in another stdio client, or when you only want the four MCP tools and three schema resources. A manual entry runs the published glyphpact[mcp] package and does not install the plugin skill.

Full plugin payload

Does a manual MCP configuration update automatically?

No. The manual snippets pin a specific GlyphPact release so the command keeps running the version you chose. When a new release is available, replace the version in the client configuration and restart or reload the server.

Marketplace plugin updates and manual MCP version changes are separate. Installing the full plugin in Claude Code or Codex keeps the MCP server inside the plugin update path; a pasted client configuration remains under the user's control.