hermes-pen-bridge
Click on "Deploy 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., "@hermes-pen-bridgeextract design tokens from project.pen"
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.
hermes-pen-bridge
Unofficial. Community MCP bridge for the Pencil design tool, built primarily for Hermes but compatible with any MCP client. Not affiliated with or endorsed by High Agency, Inc. "Pencil" is their trademark; this project uses the name descriptively only.
A hybrid MCP server that spawns Pencil's bundled MCP binary and layers extra developer tools on top — file validation, design-token extraction, layer trees, structural diffs, and batch export.
Pencil already ships an MCP server out of the box. This project doesn't replace it — it proxies all 13 native tools through unchanged and adds 7 utility tools that are convenient when scripting against .pen files from outside the app.
Architecture
[MCP client] ─stdio MCP─► [hermes-pen-bridge] ─stdio MCP─► [Pencil's bundled binary] ─WS─► [Pencil app]
│
└── 7 custom local tools (file utils)Spawns Pencil's own MCP binary (
mcp-server-darwin-arm64) as a subprocessForwards all standard MCP tool calls (
batch_get,batch_design,get_editor_state, …)Handles 7 custom tools locally
Relies on Pencil's stored credentials — no extra auth setup
Related MCP server: figma-query
Why "for Hermes"?
Hermes (Nous Research's local agent) is the primary audience — it's where this was first used. The server itself is provider-agnostic standard MCP and works fine with Claude Desktop, Cursor, Claude Code, and any other MCP client. The "Hermes-first" framing is about who we're solving for, not a technical lock-in.
Native tools (proxied)
batch_design, batch_get, export_nodes, find_empty_space_on_canvas, get_editor_state, get_guidelines, get_screenshot, get_variables, open_document, replace_all_matching_properties, search_all_unique_properties, set_variables, snapshot_layout
Custom tools
Tool | Purpose |
| Show binary path and server status |
| List recent |
| Validate a |
| Extract colors, fonts, spacing, variables |
| Hierarchical tree of all elements |
| Structural diff between two |
| Batch export to PNG/SVG |
(Tool names retain the pencil_ prefix because they operate on .pen files — descriptive, not a brand claim.)
Installation
Prerequisites
macOS (Pencil ships an arm64 binary)
Pencil installed at
/Applications/Pencil.appwith a valid account/licensePython 3.11+
Install
From PyPI:
pip install hermes-pen-bridgeOr zero-install with uv:
uvx hermes-pen-bridge --pencil-binary /Applications/Pencil.app/Contents/Resources/app.asar.unpacked/out/mcp-server-darwin-arm64Or from source:
git clone https://github.com/devvgwardo/hermes-pen-bridge
cd hermes-pen-bridge
python3 -m venv .venv && source .venv/bin/activate
pip install -e .MCP client configs
Hermes (~/.hermes/config.yaml)
mcp_servers:
pen-bridge:
command: hermes-pen-bridge
args:
- --pencil-binary
- /Applications/Pencil.app/Contents/Resources/app.asar.unpacked/out/mcp-server-darwin-arm64
tools: allClaude Desktop / Cursor / Claude Code
{
"mcpServers": {
"pen-bridge": {
"command": "hermes-pen-bridge",
"args": ["--pencil-binary", "/Applications/Pencil.app/Contents/Resources/app.asar.unpacked/out/mcp-server-darwin-arm64"]
}
}
}Restart the client. All 20 tools (13 native + 7 custom) appear automatically.
Usage
pencil_version
pencil_list_recent_files
pencil_validate_file --path "/path/to/file.pen"
pencil_extract_design_tokens --path "/path/to/file.pen"
pencil_list_layers --path "/path/to/file.pen" --max_depth 10
pencil_diff_files --path_a "v1.pen" --path_b "v2.pen"
pencil_batch_export --paths '["a.pen","b.pen"]' --format png --scale 2Open-source alternative
If you want a fully open-source design tool with built-in MCP (no closed-source binary in the loop), see OpenPencil or ZSeven-W/openpencil.
License & disclaimers
Wrapper code: MIT (see
LICENSE)Pencil's binary and
.penfile format: proprietary to High Agency, Inc. This project does not redistribute Pencil's binary, source, or assets. Users must install Pencil themselves and comply with pencil.dev's Terms of Use.This is an independent community project. No affiliation with or endorsement by High Agency, Inc.
Related: the design pattern
The proxy approach used here is documented as a generic skill at desktop-app-mcp-proxy-pattern — applies to any Electron app that bundles its own MCP binary.
This server cannot be deployed
Maintenance
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
An MCP server that provides asset auto generator
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Personal MCP server for humans who create. Proof of authorship, license control.
Related MCP Servers
- AlicenseAqualityAmaintenanceA portable MCP server for headless Penpot project/file/content management, using Penpot's RPC API directly. No browser, no Penpot plugin session.5418 npm1MIT
- AlicenseNot gradedqualityCmaintenanceToken-efficient Figma MCP server with image export, query DSL, and design token support.1 npmMIT
- AlicenseAqualityCmaintenanceMCP server that gives LLMs deep knowledge of design systems and tokens, enabling intelligent design evolution, token analysis, and designer-to-developer handoffs.378 npm2MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that enables AI tools to read and write Figma designs via a plugin bridge, bypassing the Figma REST API and rate limits.49MIT