tinkercad_status
Check Tinkercad sign-in
Opens the Tinkercad dashboard in the server's Chrome profile and reports whether you are signed in. If not, the user has to run `npm run login` once.
Takes no parameters.

io.github.netchuuPublished by GitHub account netchuuv0.1.0Updated Nov 6, 2026
Builds and simulates Arduino breadboard circuits in Tinkercad Circuits.
Builds Arduino breadboard circuits in Tinkercad Circuits, writes the sketch, and runs the simulator to read back LED, servo and serial results.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
An MCP server that builds Arduino circuits in Tinkercad Circuits and runs them in the simulator. You describe the circuit (which part goes in which breadboard hole, the wires, the sketch) and it appears in your Tinkercad account, wired on a breadboard, with the code saved. It can then start the simulation, press buttons, type into the Serial Monitor and tell you what the LEDs, servos and serial output did.
It works with Claude Code, Claude Desktop, Cursor, Codex and any other client that speaks the Model Context Protocol.
examples/traffic-light.json, built and simulated by the server. The LEDs are read back from the simulator to check the order.
I wrote it to get through a course with 70-odd Arduino lab tasks that all had to be handed in as Tinkercad designs. Building them by hand took forever.
If you found sethski/tinkercad-mcp-server first: that one works by clicking and dragging in the editor. When I tried it in November 2026 it could not create a circuit or find the breadboard in the parts panel, and it had no way of knowing which hole a leg ended up in. This server changes the editor's circuit model directly, so parts land in the holes you name, and it reads the result back and checks it in the simulator.
Not affiliated with Autodesk. Tinkercad has no public API for Circuits; this uses the editor's internals, which can change without notice. See How it works.
About 20 parts are supported: LEDs, resistors, buttons, potentiometers, servos, a piezo, the HC-SR04, TMP36, DC motors (with and without encoder), the L293D, an IR receiver, an RGB LED and a few more. The full list is in docs/parts.md.
You need Node.js 20 or newer and Google Chrome.
Install it as a plugin. That adds the MCP server and the skill in one go:
From a shell: claude plugin marketplace add netchuu/tinkercad-circuits-mcp and then claude plugin install tinkercad-circuits@tinkercad-circuits-mcp.
If you only want the server: claude mcp add tinkercad-circuits -- npx -y tinkercad-circuits-mcp.
In ~/.codex/config.toml:
and the skill:
Add this to the client's MCP config: claude_desktop_config.json for Claude Desktop, ~/.cursor/mcp.json for Cursor.
Once, whichever client you use:
This opens Chrome on the Tinkercad page. Sign in the way you normally do; it is an ordinary Chrome window. It closes once you reach your dashboard. The session lives in ~/.tinkercad-circuits-mcp/profile; your password never passes through this project.
Restart your client afterwards so it picks up the server.
You can hand the setup to Claude Code or Codex:
Set up the Tinkercad Circuits MCP server from https://github.com/netchuu/tinkercad-circuits-mcp, following its README.
The agent can do everything except signing in. It should run npx -y tinkercad-circuits-mcp login and ask you to sign in in the Chrome window that opens; then, after a restart, tinkercad_status should report signedIn: true.
and use node /full/path/to/tinkercad-circuits-mcp/dist/index.js as the command in the configs above.
Ask for a circuit in plain words:
Build a traffic light in Tinkercad: red, yellow and green LEDs on pins 10, 9 and 8, green for 5 s, yellow 2 s, red 5 s. Then run it and check the order.
Claude turns that into a spec for tinkercad_build_circuit. A smaller one, a single blinking LED, looks like this:
The resistor spans columns 5 to 9 in row g, the LED's anode shares column 9 and its cathode goes to the ground rail. The format is explained in docs/circuit-spec.md, and there are more complete circuits in examples/.
To check the circuit, Claude calls tinkercad_simulate:
and gets back, for each sample, whether led1 was on and the simulator clock at that moment.
npm run smoke tells you quickly whether it still works.The smoke test creates a design called "tinkercad-circuits-mcp smoke test". Pass its link to reuse it: npm run smoke -- https://www.tinkercad.com/things/<id>.
Issues and pull requests are welcome, especially new parts. Adding one is mostly finding its device id (the data-did attribute on the tile in Tinkercad's parts panel) and its pin names; How it works has the details.
MIT
Source: README.md at commit c1ab3b5
Check Tinkercad sign-in
Opens the Tinkercad dashboard in the server's Chrome profile and reports whether you are signed in. If not, the user has to run `npm run login` once.
Takes no parameters.
List parts
Lists the parts that can go in a circuit spec, with their pin names, pin offsets (in breadboard holes, at angle 0) and settable properties. Filter with a word like 'led', 'motor' or 'sensor'.
queryOpen or create a circuit
Opens an existing Tinkercad Circuits design (link or id) in the editor, or creates a new one with target "new". Optionally renames it.
titletargetrequiredBuild a circuit
Replaces everything in the open circuit with the one described here: an Arduino Uno, one small breadboard, the listed parts placed in breadboard holes, the wires and (optionally) the Arduino code. If no circuit is open, a new one is created. Holes are named like '12e' (columns 1-30, rows a-j; a-e and f-j are the two halves). Rails are T+, T-, B+, B- with an optional column (T-12). Wire ends are holes, rails, uno.PIN (uno.D13, uno.A0, uno.5V, uno.GND1) or ref.pin (led1.anode). `pin` says which leg of the part goes into `at`; the part is rotated until all legs land in holes. See docs/circuit-spec.md for examples.
codepartstitlewiresarduinoRead the open circuit
Returns the open circuit as Tinkercad has it saved: each part with the hole under every pin, its properties, every wire and the Arduino code.
Takes no parameters.
Set the Arduino code
Replaces the Arduino sketch of the open circuit (text code, not blocks).
coderequiredChange a part setting
Changes a setting on a part that is already in the circuit, e.g. a potentiometer position (0-1) or the distance an ultrasonic sensor sees. Use it between simulation runs to test different inputs.
refrequiredpropsrequiredRun the simulation
Starts the simulator, optionally presses buttons and types into the Serial Monitor, and samples LED brightness, servo angles and simulator time at the given moments (milliseconds after start). Returns the samples and the end of the Serial Monitor text. The simulator usually runs a bit slower than real time, so leave some margin and check sim_time.
ledsserialservospressessamples_msrequiredkeep_runningserial_inputwait_for_serialScreenshot
Returns a PNG of the Tinkercad window as it is right now.
Takes no parameters.
90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
/plugin install tinkercad-circuits --marketplace netchuu/tinkercad-circuits-mcp[mcp_servers.tinkercad-circuits]command = "npx"args = ["-y", "tinkercad-circuits-mcp"]mkdir -p ~/.codex/skills/tinkercad-circuitscurl -fsSL https://raw.githubusercontent.com/netchuu/tinkercad-circuits-mcp/main/skills/tinkercad-circuits/SKILL.md -o ~/.codex/skills/tinkercad-circuits/SKILL.md{ "mcpServers": { "tinkercad-circuits": { "command": "npx", "args": ["-y", "tinkercad-circuits-mcp"] } }}npx -y tinkercad-circuits-mcp logingit clone https://github.com/netchuu/tinkercad-circuits-mcp.gitcd tinkercad-circuits-mcpnpm installnpm run buildnpm run login{ "title": "Blink an LED on a breadboard", "parts": [ { "ref": "r1", "type": "resistor", "at": "5g", "pin": "1", "angle": 90, "props": { "ohms": 220 } }, { "ref": "led1", "type": "led", "at": "9i", "pin": "anode", "angle": 180 } ], "wires": [["uno.GND1", "T-1"], ["uno.D13", "5i"], ["10h", "T-10"]], "code": "void setup() { pinMode(13, OUTPUT); }\nvoid loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }"}{ "samples_ms": [500, 1500, 2500], "leds": ["led1"] }npm test # unit tests for the spec and catalog, no browser needednpm run smoke # builds and simulates two circuits in your Tinkercad accountnpm run parts-doc # regenerates docs/parts.md