com.perfboarddesigner/mcp

Perfboard Designer

Design perfboard and stripboard layouts, check the wiring and get a link to open them in the editor.

Endpointhttps://mcp.perfboarddesigner.com/mcp (streamable-http)
Registry version0.1.0
Now12 tools · grade D (64) · pin ts_5d62f424a76508f024083363ce777a20 · protocol 2025-06-18
First / last listed2026-10-27 00:03 UTC / 2026-10-27 00:03 UTC
Grade over time2026-10-27: D (64), 12 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-10-27 00:03 UTC
12 tools, grade D (64)

Tools: list_parts get_part new_project edit_project get_project validate_project get_nets get_pin_positions render_board make_share_link read_share_link show_board

Current tools (12)

list_partsLists the parts a project can place. Without a query: every part, grouped by category, as its id with its name and pin count; call it this way once to see what there is. With a query: the parts whose id, name, category or keywords contain all its words, or the closest ones when none do. Each part's `id` is its definitionId in the project file; use get_part for its pins and how to place it.
params: query, kind
get_partEverything needed to place parts: for each, which project file list it goes in, its pins (offsets from pin 1 at rotation 0) and pin labels, polarity, value unit, holes its body covers, and an example entry. Ask for every part you use in one call with `ids`.
params: ids, id
new_projectStarts a project kept here under a projectId: a blank board, or one of the example projects (perfboard://examples/...) to copy from. Returns the projectId and the project file. Then add parts and wires with edit_project, and pass the projectId to every other tool instead of the whole file.
params: cols, rows, type, strips, name, example
edit_projectChanges a project kept here, by a list of ops applied in order: add_part, update_part (move, turn, change value or ref), remove_parts, add_wire (from/to, or a `path` of holes made into one wire per leg), update_wire, remove_wires, set_board, add_cuts / remove_cuts (stripboard), set_pad (a note on a hole). If any op can't be done, none are. Returns what changed, where the pins of added or moved par
params: projectId, project, ops*, expectNets
get_projectThe whole project file of a project kept here, as the editor would save it (through version 8, preserving component identities and optional requirements), one entry per line.
params: projectId*
validate_projectChecks a project file and lists every problem with where it is: entries the editor would leave out, unknown parts, pins off the board, two parts' pins or leads in one hole, overlapping parts, wires that connect nothing (a loose end, or no pins on their net), duplicate wires, a two-lead part with both leads on one net (shorted out), a wire passing over a pin or lead without ending there (so not joi
params: project, projectId, expectNets
get_netsWhich pins the board connects: every net with its name (from its pins, e.g. GND), its pins ("U1.8 VCC" for a chip's pin, "D1.K" or "C1.+" for a polarized lead, "R1.1" otherwise) and the wires on it (indexes into wires). Also pins connected to nothing, wires that connect no pins, junctions (holes where three or more things are joined) and crossings (where a wire goes over another wire or over a hol
params: project, projectId
get_pin_positionsWhere every placed part's pins land, as [column, row] holes, with pin numbers and labels (e.g. U1 pin 8 VCC), after rotation, plus holes a part's body covers. Use it to route wires to the right holes. The project file doesn't store these: they follow from each part's anchor, rotation and footprint.
params: project, projectId, refs
render_boardDraws the board as text, one cell per hole with column and row numbers: each part's pins by a key letter and pin number (a1, a2...), holes under a part's body, wire ends, the holes a wire runs over without joining them, strip cuts and holes with notes. Below it, which part each key is and every wire with its ends and net. Use it to see where there's free space and how wires run before placing part
params: project, projectId, area, format
make_share_linkTurns a project into a link that opens it in Perfboard Designer: the project travels inside the link, so it works without any server. Give the link to the user. Also returns `image`, the address of an SVG picture of the board (as the editor draws it), for showing it where images from links display, e.g. in Markdown (not in Claude or ChatGPT, which don't load them: show_board shows the board there)
params: project, projectId, name, expectNets, allowErrors, editorUrl, store, storeAs
read_share_linkReads the project out of a Perfboard Designer share link (z=, json=, downloaded src=, or a stored short link). Returns a project file through version 8, preserving component identities and optional requirements, kept under the returned projectId: change it with edit_project.
params: link*
show_boardShows the user a picture of the board right in the conversation, as the editor draws it, with a button that opens it in Perfboard Designer. Only in clients that show MCP Apps (e.g. Claude, ChatGPT); elsewhere the user sees nothing, so give them make_share_link's link too. The picture goes to the user, not to you: to look at the board yourself, use render_board.
params: project, projectId, name

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.