Tinkercad Circuits Mcp

io.github.netchuu由 GitHub 帳號 netchuu 發布v0.1.0更新於 Nov 6, 2026

Builds and simulates Arduino breadboard circuits in Tinkercad Circuits.

已驗證STDIO僅桌面瀏覽器自動化開發者工具

概覽

AI 產生的概覽

在 Tinkercad Circuits 中建立 Arduino 麵包板電路、寫入程式碼,並執行模擬器讀回 LED、伺服馬達與序列埠結果。

可以做什麼
  • 檢查登入狀態,列出可用元件及其腳位名稱與可設定屬性
  • 依連結或 id 開啟既有設計,或建立新的設計
  • 依規格一次建立或取代整個電路:Uno、麵包板、指定孔位上的元件、接線與程式碼
  • 讀回已儲存的電路,並取代 Arduino 程式碼
  • 在兩次執行之間調整元件設定,例如旋鈕位置或感測器距離
  • 執行模擬器,可按下按鈕並輸入序列埠內容,取樣 LED 亮度、伺服馬達角度與序列埠輸出,並截圖
適用情境
適合讓助理在 Tinkercad 中組裝並驗證 Arduino 麵包板設計,例如課程實驗或快速原型,並透過模擬而非手動接線來檢查行為。
執行需求
透過 npx 在本機執行的本機程序,需要 Node.js 20 或更新版本以及 Google Chrome。需用登入指令在開啟的 Chrome 視窗中一次性登入,工作階段保存在本機設定目錄;未宣告 API 金鑰或環境變數。同一時間只能有一個程序使用該 Chrome 設定檔。
安裝前請注意
它依賴 Tinkercad 編輯器內部機制,官方可能隨時變更而導致建立失敗;與 Autodesk 無關聯。建立電路會取代目前開啟的電路內容並儲存到你的 Tinkercad 帳號,冒煙測試也會在該帳號中建立設計。登入在一般 Chrome 視窗中進行,工作階段保存在本機設定目錄。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Tinkercad Circuits Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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

來源:README.md,提交 c1ab3b5

工具

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.

無需輸入參數。

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

輸入參數query

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.

輸入參數titletarget必填

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.

輸入參數codepartstitlewiresarduino

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.

無需輸入參數。

tinkercad_set_code

Set the Arduino code

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

輸入參數code必填

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.

輸入參數ref必填props必填

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.

輸入參數ledsserialservospressessamples_ms必填keep_runningserial_inputwait_for_serial

tinkercad_screenshot

Screenshot

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

無需輸入參數。

版本歷史

1
  1. v0.1.0最新Nov 6, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分