Arduino_MCP_Server
Arduino MCP Server
Documentation
Arduino MCP Server: Control Your Arduino with AI!
Welcome to the Arduino MCP Server project! This project lets you control an Arduino board from your computer using a special connection called MCP (Model Context Protocol). Think of it like giving instructions to your Arduino using a smart AI assistant!
What is this project for?
In this project, we're building a "server" that listens for commands from an AI (like Claude Desktop). When the AI tells it to, our Arduino will turn on or off some LEDs. This is a super cool way to see how AI can interact with the real world!
What you'll need
Before we start, make sure you have:
- An Arduino board: Any Arduino board like an Uno or Nano will work.
- Two LEDs: One white and one red.
- Two 1k Resistors: These are important to protect your LEDs.
- Jumper wires: To connect everything.
- USB cable: To connect your Arduino to your computer.
- Claude Desktop: This is the AI assistant we'll be using.
- Python 3.12 or higher: Our code is written in Python.
- `uv` (Ultrafast Python package installer and resolver): We use this to manage our Python libraries.
- Claude Desktop
How to set up your Arduino
1. Connect the LEDs:
*(Remember to always use a resistor with LEDs to prevent them from burning out!)*
2. Upload the StandardFirmataPlus sketch:
Getting the Python code ready
1. Download the project: If you haven't already, download or clone this project to your computer.
2. Open your terminal/command prompt: Navigate to the folder where you saved this project.
3. Install Python dependencies: We'll use `uv` to install everything our Python code needs.
uv pip installThis command reads the `pyproject.toml` file and installs the `fastmcp` and `pyfirmata2` libraries.
Understanding the Python Code (`main.py`)
Let's take a quick look at the main parts of our Python code:
- `from fastmcp import FastMCP`: This line imports the `FastMCP` library, which helps us create our MCP server.
- `import pyfirmata2`: This line imports `pyfirmata2`, which is a library that lets Python talk to your Arduino.
- `Arduino = pyfirmata2.Arduino('/dev/cu.usbmodem212201')`: IMPORTANT! You need to change `'/dev/cu.usbmodem212201'` to the COM port that your Arduino is connected to. You can find this in the Arduino IDE under `Tools` > `Port`. It might look something like `COM3` on Windows or `/dev/ttyUSB0` on Linux.
- `@ArduinoMCP.tool`: These special lines (`@ArduinoMCP.tool`) are called "decorators." They tell `FastMCP` that the function right below them is a "tool" that the AI client can use.
- `white_led_ON()`, `red_led_ON()`, `led_OFF()`: These are our functions (mini-programs) that tell the Arduino to turn the white LED on, the red LED on, or both LEDs off.
- `ArduinoMCP.run()`: This line starts our MCP server, making it ready to receive commands!
Setting up Claude Desktop
Now, let's tell Claude Desktop how to connect to our Arduino server.
1. Open your MCP Client in this case `Claude Desktop`
2. Go to `Settings` > `Developer` > `Edit Config` > and open the config file `claude_desktop_config.json`
2. Copy and paste what is below and update the path:
{
"mcpServers": {
"arduino": {
"command": "/Users/aiman/.local/bin/uv", # this too
"args": [
"--directory",
"/Users/aiman/Dev/Arduino_MCP", # update to the path
"run",
"main.py"
]
}
}
}Running the Project!
1. Start Claude Desktop.
2. The MCP server should start automatically. Claude Desktop will use the `claude_desktop_config.json` file to launch your Arduino MCP server.
3. Talk to Claude! Now you can ask Claude to control your Arduino. Try saying things like:
Claude Desktop will understand your commands and send them to your Arduino MCP server, which will then tell your Arduino what to do!
Have fun controlling your Arduino with AI! This is just the beginning of what you can do!
Frequently asked questions
What is Arduino_MCP_Server?
Arduino_MCP_Server is Arduino MCP Server
How do I install Arduino_MCP_Server?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is Arduino_MCP_Server open source?
Yes — it is hosted on GitHub at https://github.com/AimanMadan/Arduino_MCP_Server and has 11 stars.
Related MCP tools
Cognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.
Automate browser based workflows with AI
Hindsight: Agent Memory That Learns
A privacy-first app that strips AI watermarks from content you own.
Agent framework and applications built upon Qwen>=3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc.
The power of Claude Code / GeminiCLI / CodexCLI + [Gemini / OpenAI / OpenRouter / Azure / Grok / Ollama / Custom Model / All Of The Above] working as one.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP