Tinkercad Circuits Mcp

io.github.netchuuPublished by GitHub account netchuuv0.1.0Updated Nov 6, 2026

Builds and simulates Arduino breadboard circuits in Tinkercad Circuits.

VerifiedSTDIODesktop onlyBrowser AutomationDeveloper Tools

Overview

AI-generated overview

Builds Arduino breadboard circuits in Tinkercad Circuits, writes the sketch, and runs the simulator to read back LED, servo and serial results.

What you can do
  • Check sign-in status and list supported parts with pin names and settings
  • Open an existing design by link or id, or create a new one
  • Build or replace a whole circuit from a spec: Uno, breadboard, parts in named holes, wires and code
  • Read the saved circuit back and replace the Arduino sketch
  • Change part settings such as knob position or sensor distance between runs
  • Run the simulator with button presses and serial input, sampling LED brightness, servo angles and Serial Monitor text, and take a screenshot
When to use it
Useful when you want an assistant to assemble and verify Arduino breadboard designs in Tinkercad, for example coursework labs or quick prototyping, and to check behaviour by simulating rather than wiring by hand.
Requirements
Local process run via npx; needs Node.js 20 or newer and Google Chrome. A one-time sign-in through the login command opens Chrome and stores the session in a local profile directory; no API keys or environment variables are declared. Only one process can use that Chrome profile at a time.
Before you install
It drives the Tinkercad editor through its internals, which can change without notice and break building; it is not affiliated with Autodesk. Building replaces everything in the open circuit and saves changes to your Tinkercad account, and the smoke test creates a design there. Sign-in happens in a normal Chrome window and the session is kept in a local profile directory.

Installation

In SourceWeft

  1. Open Tinkercad Circuits Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

tinkercad-circuits-mcp

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.

[The server builds a traffic light on an empty breadboard, then runs it in the Tinkercad simulator: green, yellow, red]

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.

What it can do

  • Create or open a design and build a whole circuit in one call: Arduino Uno, small breadboard, parts in the holes you name, colour-coded jumper wires routed around the board.
  • Write the Arduino sketch into the design.
  • Read a design back: every part, the hole under each pin, its settings, every wire, the code.
  • Run the simulator and sample LED brightness, servo angles and the Serial Monitor at the times you choose, while pressing buttons or sending serial input.
  • Change a setting between runs, like a potentiometer position or the distance an ultrasonic sensor sees, to test different inputs.

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.

Setup

You need Node.js 20 or newer and Google Chrome.

Claude Code

Install it as a plugin. That adds the MCP server and the skill in one go:

/plugin install tinkercad-circuits --marketplace netchuu/tinkercad-circuits-mcp

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.

Codex

In ~/.codex/config.toml:

toml
[mcp_servers.tinkercad-circuits]command = "npx"args = ["-y", "tinkercad-circuits-mcp"]

and the skill:

bash
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

Claude Desktop, Cursor and other clients

Add this to the client's MCP config: claude_desktop_config.json for Claude Desktop, ~/.cursor/mcp.json for Cursor.

json
{  "mcpServers": {    "tinkercad-circuits": {      "command": "npx",      "args": ["-y", "tinkercad-circuits-mcp"]    }  }}

Sign in to Tinkercad

Once, whichever client you use:

bash
npx -y tinkercad-circuits-mcp login

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.

Let your agent set it up

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.

From source

bash
git clone https://github.com/netchuu/tinkercad-circuits-mcp.gitcd tinkercad-circuits-mcpnpm installnpm run buildnpm run login

and use node /full/path/to/tinkercad-circuits-mcp/dist/index.js as the command in the configs above.

Using it

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:

json
{  "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); }"}

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:

json
{ "samples_ms": [500, 1500, 2500], "leds": ["led1"] }

and gets back, for each sample, whether led1 was on and the simulator clock at that moment.

Tools

ToolWhat it does
tinkercad_statusChecks that the Chrome profile is signed in to Tinkercad.
tinkercad_list_partsParts, pin names and settings.
tinkercad_open_circuitOpens a design by link or id, or creates a new one.
tinkercad_build_circuitReplaces the open circuit with the one in the spec and saves the code.
tinkercad_get_circuitReads the saved circuit back.
tinkercad_set_codeReplaces the sketch.
tinkercad_set_partChanges a part setting (knob position, sensor distance).
tinkercad_simulateRuns the simulator with button presses and serial input; returns LED, servo and serial readings.
tinkercad_screenshotReturns a picture of the editor.

Limits

  • One small breadboard per circuit, Arduino Uno only.
  • Tinkercad has no KY-023 joystick, LM35, HC-05 Bluetooth module, L298N or IR line sensor. The skill lists the usual stand-ins (two potentiometers, TMP36, the Serial Monitor, L293D, pushbuttons).
  • The simulator runs slower than real time, and LED readings come from a screenshot, so leave some margin in your timings. Hold buttons for at least 0.6 s.
  • Only one process can use the Chrome profile at a time.
  • If Tinkercad changes its editor internals, building will fail until the code is updated. npm run smoke tells you quickly whether it still works.

Documentation

Development

bash
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

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.

License

MIT

Source: README.md at commit c1ab3b5

Tools

9

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.

tinkercad_list_parts

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'.

Parametersquery

tinkercad_open_circuit

Open 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.

Parameterstitletargetrequired

tinkercad_build_circuit

Build 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.

Parameterscodepartstitlewiresarduino

tinkercad_get_circuit

Read 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.

tinkercad_set_code

Set the Arduino code

Replaces the Arduino sketch of the open circuit (text code, not blocks).

Parameterscoderequired

tinkercad_set_part

Change 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.

Parametersrefrequiredpropsrequired

tinkercad_simulate

Run 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.

Parametersledsserialservospressessamples_msrequiredkeep_runningserial_inputwait_for_serial

tinkercad_screenshot

Screenshot

Returns a PNG of the Tinkercad window as it is right now.

Takes no parameters.

Version history

1
  1. v0.1.0LatestNov 6, 2026

Score

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.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts