arduino-llm-agent
An intelligent backend server that uses Large Language Models (LLMs) to generate, compile, and upload Arduino, ESP8266, and ESP32 firmware automatically — powered by Ollama and Arduino CLI
Install / Use
claude mcp add bkrajendra -- npx -y github:bkrajendra/arduino-llm-agentIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AutomationSupported Platforms
Tags
Our assessment of arduino-llm-agent
arduino-llm-agent scores 70/100 on our quality scale, 2642nd of 2,879 Automation skills we index.
Its MCP Server is 5.1 KB long, well organised into 11 sections with 6 code examples: a solid amount of guidance for an agent.
It has 10 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated about 15 months ago. Expect some instructions to reference tool versions or APIs that have since changed.
- Our last check on 2026-09-29 found the source still online.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 73/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands (1 minor note below). An AI review of the same text found nothing harmful.
- noteInstalls by piping a downloaded script into a shellline 61
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh
AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
arduino-llm-agent compared with similar skills
All 4 of these similar skills score higher than arduino-llm-agent; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| arduino-llm-agent (this skill)by bkrajendra | 70 | 10 | 15mo ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 96.5k | 4d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 75.1k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.4k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 87.0k | 1d ago | MCP Server |
Frequently asked questions
- How do I install arduino-llm-agent?
- Run
claude mcp add bkrajendra -- npx -y github:bkrajendra/arduino-llm-agent. The install tabs above show the steps for each supported agent. - Which AI agents does arduino-llm-agent work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is arduino-llm-agent safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands (1 minor note below). An AI review of the same text found nothing harmful. It declares no license and scores 73/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is arduino-llm-agent still maintained?
- The repository was last updated about 15 months ago. Expect some instructions to reference tool versions or APIs that have since changed.
Skill content
View source on GitHubArduino LLM Agent
llm-arduino-mcp
An intelligent backend server that uses Large Language Models (LLMs) to generate, compile, and upload Arduino, ESP8266, and ESP32 firmware automatically — powered by Ollama and Arduino CLI.

LLM + MCP inspired flow
Generate, compile, and upload Arduino sketches automatically using natural language prompts and local Ollama LLM models.
Features
- Ollama local LLM API for private codegen
- Automated compile & upload using Arduino CLI
- Supports multiple boards: Arduino Uno, ESP8266, ESP32 — extend easily
- Simple Express API — plug into your own frontend
Quick Start
- Install and run Ollama (
ollama serve)ollama run llama3.2
- Install and configure
arduino-cli - Clone this repo and
npm run start(orbun runversion) - Send POST request with your prompt:
curl -X POST http://localhost:3000/generate-arduino \ -H "Content-Type: application/json" \ -d '{"prompt": "Write Arduino code to blink LED on pin 2 using ESP32."}'
MCP (Model Context Protocol) Status
This project partially follows MCP (Model Context Protocol) principles:
- Uses structured system + user roles.
- Passes prompt context in a clear format.
- Automates an external tool (Arduino CLI) based on generated context.
Planned Improvements for MCP Compliance
- [ ] Add a versioned Context Registry for reusable system instructions.
- [ ] Support custom context creation and switching via REST.
- [ ] Standardize request/response payloads to fully align with OpenAI’s Chat API format.
- [ ] Add tool/plugin calls as structured operations.
- [ ] Store complete chain-of-thought and compile/upload logs.
- [ ] Add role-based API auth for context control.
The goal is to evolve this project into a reusable, standards-friendly MCP backend for embedded LLM workflows.
Prerequisites
- Install arduino-cli
- Refer: https://arduino.github.io/arduino-cli/1.2/
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh
Or download a copy of the Arduino CLI, place it in a directory of your choice, and make sure to add it to your system’s PATH according to your operating system.
arduino-cli core update-index
arduino-cli core install arduino:avr
arduino-cli core install esp8266:esp8266
arduino-cli core install esp32:esp32
- Add arduino-cli to the system path
- Ensure Ollama is setup on your machine
- Refer: https://ollama.com/download
To install dependencies:
bun install
Update the server.js
- Update Ollama model as per your Ollama setup
- Tested with llama3.2:latest
- Update Port for you board
const OLLAMA_URL = 'http://localhost:11434/api/chat'; // Change if your Ollama server is running on a different port
const SERIAL_PORT = 'COM5'; // Change as per your board
const OLLAMA_MODEL = 'llama3.2:latest'; // Change as per your Ollama setup
To run:
bun run start
Usage
- Make sure the Arduino Board is attached to the com port
- Run following from the terminal
curl --location 'http://localhost:3000/generate-arduino' \
--header 'Content-Type: application/json' \
--data '{
"prompt": "Write Arduino code for ESP8266 board to blink an LED on pin LED_BUILTIN every 3 seconds. Do not include any libraries."
}'
Roadmap & Future Improvements
This project is a strong starting point for combining LLMs with embedded automation. Here are planned ideas to take it further:
-
[ ] Web UI Enhancements
- Add a proper web frontend with code syntax highlighting (e.g., Ace Editor or Monaco).
- Display generated code nicely with download or copy buttons.
- Show compilation logs and upload status in real-time.
-
[ ] Board Management
- Add a dropdown in the UI to select supported boards manually.
- Fetch board list dynamically from a config file (
boards.json). - Auto-detect connected boards and available serial ports.
-
[ ] User Prompts & Templates
- Offer ready-made prompt templates for common tasks (blink LED, read sensor, etc.).
- Add prompt history and re-run support.
-
[ ] Project Files
- Allow multiple sketches and auto-archive generated code.
- Provide an option to download the
.inoas a zip.
-
[ ] Security & Permissions
- Add basic API authentication or API keys.
- Validate generated code before compile/upload for safety.
-
[ ] Docker & Deployment
- Add a Dockerfile to package Ollama, Arduino CLI, and the server together.
- Provide instructions for deployment on local networks or edge devices.
-
[ ] CI/CD Integration
- Use GitHub Actions to lint, test, and deploy the backend.
- Add unit tests for code block & board parsing.
-
[ ] Extensibility
- Support other microcontroller families (RP2040, STM32, etc.).
- Modular plugin system for new boards or new codegen models.
-
[ ] Monitoring
- Add basic logging & metrics for LLM usage, compile stats, success/failure rates.
Want to contribute?
Feel free to open an Issue or PR for any of these improvements! Do start the project if you like it.
Related Skills
Agent-Reach
96.5kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
75.1kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.4kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
87.0k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
