Arduino MCP Server

Arduino MCP Server

Enables AI assistants like Claude to control Arduino boards in real-time, allowing users to turn LEDs on and off through natural language commands using the Model Context Protocol and Firmata.

Category
访问服务器

README

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:

    • White LED: Connect the longer leg (positive) of the white LED to Digital Pin 12 on your Arduino through a 220 Ohm resistor. Connect the shorter leg (negative) to a GND (Ground) pin on your Arduino.
    • Red LED: Connect the longer leg (positive) of the red LED to Digital Pin 11 on your Arduino through a 220 Ohm resistor. Connect the shorter leg (negative) to a GND (Ground) pin on your Arduino.

    (Remember to always use a resistor with LEDs to prevent them from burning out!)

  2. Upload the StandardFirmataPlus sketch:

    • Open the Arduino IDE (Integrated Development Environment).
    • Go to Library Library Manager > Search and download Firmata
    • Go to File > Examples > Firmata > StandardFirmata.
    • Select your Arduino board from Tools > Board.
    • Select the correct Port from Tools > Port.
    • Upload the StandardFirmata sketch to your Arduino board. This program allows Python to control your Arduino.

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 install
    

    This 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
  3. 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"
                ]
            }
        }
    }
    
    • "command": This should be the full path to your uv executable. If you're on Windows, it might be something like C:\Users\YourUser\AppData\Local\uv\uv.exe. On macOS/Linux, it's often in your user's local bin directory as shown.
    • "--directory": This should be the full path to the Arduino_MCP folder on your computer where your main.py file is located. Make sure this path is correct!
    • "run", "main.py": These tell uv to run your main.py script.

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:

    • "Turn on the white LED."
    • "Turn on the red LED."
    • "Turn off all LEDs."

    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!

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选