
Chiplab
ai.veeclePublished by veecle.aiOfficial publisherv1.0.0Updated Oct 24, 2026
Run, build, and validate firmware on virtual hardware from your AI agent. Hardware knowledge corpus.
Overview
Chiplab is a hosted MCP service that lets an AI coding agent upload compiled firmware, run it on a virtual microcontroller, and read back UART output.
- What you can do
- Upload compiled firmware ELF files to a virtual instance of a real board
- Run firmware on the virtual chip and read back captured UART output
- Discover the service and its capabilities through a help/discovery tool
- Consult a hardware knowledge corpus for chip and board information
- Work across supported boards and frameworks such as bare-metal Rust, Embassy, Zephyr, FreeRTOS and ThreadX
- When to use it
- Useful when you want an agent to build and validate embedded firmware without owning the physical board, for example checking that a Hello World example boots and prints over UART on an STM32 or Nordic target.
- Requirements
- A remote HTTP MCP endpoint; no local package. A free account at the provider's site and OAuth sign-in through the browser on first use. The agent needs a firmware toolchain to build the ELF before uploading.
Installation
In SourceWeft
- Open Chiplab in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/ai.veecle%2Fchiplab/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"chiplab": {
"type": "http",
"url": "https://chiplab.veecle.ai/mcp"
}
}
}README
Chiplab
Simulate & validate firmware on virtual instances of real chips, straight from your AI coding agent — no hardware.
[License: MIT] [Discord] [Image]
Chiplab is a hosted MCP service. Your AI coding agent connects to it, uploads compiled firmware, runs it on a virtual instance of a real microcontroller, and reads back the UART output. You don't drive the toolchain — your agent does.
We're building the next way to develop chips, in the open and early.
Today it runs Hello world! on STM32 and Nordic boards; a lot more is on the way — see veecle.ai.
Try it, poke at it, and tell us what you'd like to see.
Quickstart
-
Create a free account at veecle.ai (no credit card).
-
Connect your agent to the Chiplab MCP server.
-
git clone https://github.com/veecle/chiplab && cd chiplab, then tell your agent:"Set up Chiplab and run the stm32f4-discovery example on it."
Your agent reads AGENTS.md, installs what it needs, builds the firmware, uploads it, runs it on the virtual board, and reports Hello world! back from the chip's UART.
That's the whole loop.
Connect your agent
Chiplab is an HTTP MCP server at https://chiplab.veecle.ai/mcp.
Most clients take the standard mcpServers schema:
On first use your client opens a browser to sign in. To verify, ask your agent to call Chiplab's discovery/help tool with no arguments.
Claude Code
If you cloned this repo, the server is already configured via .mcp.json — Claude Code will prompt you to trust it.
Otherwise:
Claude Desktop / Cursor
Use the mcpServers block above in claude_desktop_config.json or .cursor/mcp.json.
VS Code
Same block in .vscode/mcp.json, but under a servers key instead of mcpServers.
Codex
TOML in ~/.codex/config.toml:
Then sign in with codex mcp login chiplab.
How it works
The contract is framework-agnostic: your agent builds an ELF → uploads it → runs it on the target board → reads the captured UART output. Runs return synchronously and are bounded to a fixed amount of virtual time.
This repo ships a ready-to-run example for every supported board, grouped by framework — bare-metal (Rust, vendor HAL), embassy-rust (Embassy async), zephyr-os (Zephyr RTOS, C), freertos (FreeRTOS, C), and threadx (Eclipse ThreadX, C).
The full board × framework matrix is in supported-boards.md.
Toolchain and build details live in each framework's directory (examples/<framework>/README.md for humans, AGENTS.md for agents) — your agent finds them on its own.
Prefer building by hand?
Each framework README has the exact commands.
To run your own firmware, build an ELF for a supported board and ask your agent to upload and run it the same way.
Contributing
Adding a board example is the easiest way in: mirror an existing example for the same framework and add a row to supported-boards.md.
All conventions live in AGENTS.md and each framework's AGENTS.md.
New chip, OS, or peripheral support is server-side — open a request instead of adding an example for an unsupported board.
Found a bug? Missing a chip? Tell us here.
This is Chiplab's public home — bugs, feature ideas, and chip/OS/peripheral requests all belong in this repo's issues. Requests really do shape the roadmap — see veecle.ai/roadmap for what's planned, or come say hi on Discord.
License
MIT © 2026 Veecle GmbH.
Source: README.md at commit 2222293
Tools
0Version history
1- v1.0.0LatestSep 16, 2026
Score
85% 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 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts