Arduino MCP Server
Controla una placa Arduino desde tu computadora usando comandos de IA.
Documentación
Arduino MCP Server: ¡Controla tu Arduino con IA!
¡Bienvenido al proyecto Arduino MCP Server! Este proyecto te permite controlar una placa Arduino desde tu computadora usando una conexión especial llamada MCP (Protocolo de Contexto de Modelo). Piénsalo como darle instrucciones a tu Arduino usando un asistente de IA inteligente.
¿Para qué sirve este proyecto?
En este proyecto, estamos construyendo un "servidor" que escucha comandos de una IA (como Claude Desktop). Cuando la IA se lo indique, nuestro Arduino encenderá o apagará algunos LEDs. ¡Esta es una forma súper interesante de ver cómo la IA puede interactuar con el mundo real!
Lo que necesitarás
Antes de comenzar, asegúrate de tener:
- Una placa Arduino: Cualquier placa Arduino como Uno o Nano funcionará.
- Dos LEDs: Uno blanco y uno rojo.
- Dos resistencias de 1k: Son importantes para proteger tus LEDs.
- Cables de conexión (jumper wires): Para conectar todo.
- Cable USB: Para conectar tu Arduino a tu computadora.
- Claude Desktop: Este es el asistente de IA que usaremos.
- Python 3.12 o superior: Nuestro código está escrito en Python.
uv(Instalador y resolutor de paquetes Python ultrafast): Lo usamos para gestionar nuestras librerías de Python.- Claude Desktop
Cómo configurar tu Arduino
-
Conecta los LEDs:
- LED blanco: Conecta la pata más larga (positiva) del LED blanco al Pin Digital 12 de tu Arduino a través de una resistencia de 220 Ohmios. Conecta la pata más corta (negativa) a un pin GND (Tierra) de tu Arduino.
- LED rojo: Conecta la pata más larga (positiva) del LED rojo al Pin Digital 11 de tu Arduino a través de una resistencia de 220 Ohmios. Conecta la pata más corta (negativa) a un pin GND (Tierra) de tu Arduino.
(¡Recuerda usar siempre una resistencia con los LEDs para evitar que se quemen!)
-
Sube el sketch StandardFirmataPlus:
- Abre el IDE de Arduino (Entorno de Desarrollo Integrado).
- Ve a Librería
Library Manager> Busca y descargaFirmata - Ve a
File>Examples>Firmata>StandardFirmata. - Selecciona tu placa Arduino desde
Tools>Board. - Selecciona el Puerto correcto desde
Tools>Port. - Sube el sketch
StandardFirmataa tu placa Arduino. Este programa permite que Python controle tu Arduino.
Preparando el código Python
-
Descarga el proyecto: Si aún no lo has hecho, descarga o clona este proyecto en tu computadora.
-
Abre tu terminal/símbolo del sistema: Navega hasta la carpeta donde guardaste este proyecto.
-
Instala las dependencias de Python: Usaremos
uvpara instalar todo lo que nuestro código Python necesita.uv pip installEste comando lee el archivo
pyproject.tomle instala las libreríasfastmcpypyfirmata2.
Entendiendo el código Python (main.py)
Echemos un vistazo rápido a las partes principales de nuestro código Python:
from fastmcp import FastMCP: Esta línea importa la libreríaFastMCP, que nos ayuda a crear nuestro servidor MCP.import pyfirmata2: Esta línea importapyfirmata2, que es una librería que permite que Python hable con tu Arduino.Arduino = pyfirmata2.Arduino('/dev/cu.usbmodem212201'): ¡IMPORTANTE! Necesitas cambiar'/dev/cu.usbmodem212201'al puerto COM al que está conectado tu Arduino. Puedes encontrarlo en el IDE de Arduino bajoTools>Port. Podría verse algo comoCOM3en Windows o/dev/ttyUSB0en Linux.@ArduinoMCP.tool: Estas líneas especiales (@ArduinoMCP.tool) se llaman "decoradores". Le indican aFastMCPque la función justo debajo de ellas es una "herramienta" que el cliente de IA puede usar.white_led_ON(),red_led_ON(),led_OFF(): Estas son nuestras funciones (mini-programas) que le indican al Arduino encender el LED blanco, encender el LED rojo, o apagar ambos LEDs.ArduinoMCP.run(): Esta línea inicia nuestro servidor MCP, ¡dejándolo listo para recibir comandos!
Configurando Claude Desktop
Ahora, vamos a decirle a Claude Desktop cómo conectarse a nuestro servidor Arduino.
- Abre tu Cliente MCP, en este caso
Claude Desktop - Ve a
Settings>Developer>Edit Config> y abre el archivo de configuraciónclaude_desktop_config.json - Copia y pega lo siguiente y actualiza la ruta:
{ "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": Esta debería ser la ruta completa a tu ejecutable deuv. Si estás en Windows, podría ser algo comoC:\Users\YourUser\AppData\Local\uv\uv.exe. En macOS/Linux, a menudo está en el directorio local bin de tu usuario como se muestra."--directory": Esta debería ser la ruta completa a la carpetaArduino_MCPen tu computadora donde se encuentra tu archivomain.py. ¡Asegúrate de que esta ruta sea correcta!"run", "main.py": Estos le indican auvque ejecute tu scriptmain.py.
¡Ejecutando el Proyecto!
-
Inicia Claude Desktop.
-
El servidor MCP debería iniciarse automáticamente. Claude Desktop usará el archivo
claude_desktop_config.jsonpara lanzar tu servidor Arduino MCP. -
¡Habla con Claude! Ahora puedes pedirle a Claude que controle tu Arduino. Prueba diciendo cosas como:
- "Enciende el LED blanco."
- "Enciende el LED rojo."
- "Apaga todos los LEDs."
Claude Desktop entenderá tus comandos y los enviará a tu servidor Arduino MCP, ¡que luego le dirá a tu Arduino qué hacer!
¡Diviértete controlando tu Arduino con IA! ¡Esto es solo el comienzo de lo que puedes hacer!