fritzing-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FZ_BIN | No | Path to the `fz` CLI launcher (Fritzing design toolkit). The `fz` CLI and a local Fritzing app build (for headless rendering) are required; point FZ_BIN at the `fz` launcher. | $HOME/code/fritzing-ai/bin/fz |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fritzing_search_partsA | Search the Fritzing parts library (2663 core parts + local custom parts). Returns rows of |
| fritzing_part_connectorsA | List a part's connector ids, names, and types (male/female/pad) as JSON. Connector ids are what wire endpoints reference (e.g. "r1.connector1" -> "led1.connector1"). |
| fritzing_new_sketchC | Create an empty Fritzing sketch bundle. |
| fritzing_place_partA | Add a part instance to a sketch. Coordinates are sketch pixels at 90 DPI (1 inch = 90 px; mm -> px = 90*mm/25.4). The placed instance's assigned ref is in the output — use it for wire/move/props. |
| fritzing_wireB | Wire two part connectors together (creates the electrical ). |
| fritzing_move_partB | Move a placed instance (omit x/y to read its current position). |
| fritzing_set_propertiesC | Set instance properties (name=value pairs). |
| fritzing_remove_partC | Remove an instance from the sketch. |
| fritzing_show_sketchC | Dump the sketch's instances (refs, moduleIds, positions, wires) as JSON. |
| fritzing_checkA | Validate a sketch: unique modelIndexes, resolvable moduleIds, every instance has >= 1 view, every wire endpoint connector exists on its target. MUST pass before handing a design off or opening it in the GUI. |
| fritzing_renderA | Headless-render sketch(es) to SVG (and optionally PNG via ImageMagick). Writes _.svg/.png next to the target. The first render per session takes ~10 s (parts DB load). Read the PNG to visually inspect the design, then adjust positions/wires and re-render. |
| fritzing_create_partA | Generate a custom part (fzp + 4 view SVGs) from a JSON spec. Custom parts must have all 4 views; restart Fritzing after --install (parts are scanned at startup). |
| fritzing_validate_partC | Validate a .fzp part definition file. |
| fritzing_open_guiA | Open sketch(es) in the Fritzing GUI for human review. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
Most tools target distinct actions (move, remove, place, wire, render, etc.), but fritzing_check (validate a whole sketch) and fritzing_validate_part (validate a single .fzp part definition) share the 'validate' verb and could be briefly confused despite the descriptions distinguishing their scope.
Every tool uses the same snake_case verb/noun pattern with a uniform fritzing_ prefix (e.g. fritzing_place_part, fritzing_remove_part, fritzing_validate_part), making the set highly predictable.
14 tools is well-scoped for an EDA/sketch-editing server, covering distinct lifecycle stages (part discovery, sketch creation, placement, wiring, validation, rendering) without redundancy.
The surface covers sketch creation, part placement/movement/removal, wiring, property setting, rendering, and custom part creation, but lacks wire removal/editing and sketch deletion, leaving minor gaps agents must work around.