Arduino MCP Server

Controle uma placa Arduino a partir do seu computador usando comandos de IA.

Documentação

Arduino MCP Server: Controle seu Arduino com IA!

Bem-vindo ao projeto Arduino MCP Server! Este projeto permite que você controle uma placa Arduino a partir do seu computador usando uma conexão especial chamada MCP (Model Context Protocol). Pense nisso como dar instruções ao seu Arduino usando um assistente de IA inteligente!

Para que serve este projeto?

Neste projeto, estamos construindo um "servidor" que escuta comandos de uma IA (como o Claude Desktop). Quando a IA pedir, nosso Arduino ligará ou desligará alguns LEDs. Esta é uma maneira super legal de ver como a IA pode interagir com o mundo real!

O que você vai precisar

Antes de começar, certifique-se de ter:

  • Uma placa Arduino: Qualquer placa Arduino como Uno ou Nano funcionará.
  • Dois LEDs: Um branco e um vermelho.
  • Dois resistores de 1k: Eles são importantes para proteger seus LEDs.
  • Cabos jumper: Para conectar tudo.
  • Cabo USB: Para conectar seu Arduino ao computador.
  • Claude Desktop: Este é o assistente de IA que usaremos.
  • Python 3.12 ou superior: Nosso código é escrito em Python.
  • uv (Instalador e resolvedor de pacotes Python ultrafast): Usamos isso para gerenciar nossas bibliotecas Python.
  • Claude Desktop

Como configurar seu Arduino

  1. Conecte os LEDs:

    • LED branco: Conecte a perna mais longa (positiva) do LED branco ao Pino Digital 12 do seu Arduino através de um resistor de 220 Ohm. Conecte a perna mais curta (negativa) a um pino GND (Terra) do seu Arduino.
    • LED vermelho: Conecte a perna mais longa (positiva) do LED vermelho ao Pino Digital 11 do seu Arduino através de um resistor de 220 Ohm. Conecte a perna mais curta (negativa) a um pino GND (Terra) do seu Arduino.

    (Lembre-se de sempre usar um resistor com LEDs para evitar que eles queimem!)

  2. Carregue o sketch StandardFirmataPlus:

    • Abra o Arduino IDE (Ambiente de Desenvolvimento Integrado).
    • Vá para Biblioteca Library Manager > Pesquise e baixe Firmata
    • Vá para File > Examples > Firmata > StandardFirmata.
    • Selecione sua placa Arduino em Tools > Board.
    • Selecione a Porta correta em Tools > Port.
    • Carregue o sketch StandardFirmata na sua placa Arduino. Este programa permite que o Python controle seu Arduino.

Preparando o código Python

  1. Baixe o projeto: Se ainda não baixou, baixe ou clone este projeto para o seu computador.

  2. Abra seu terminal/prompt de comando: Navegue até a pasta onde você salvou este projeto.

  3. Instale as dependências Python: Usaremos uv para instalar tudo que nosso código Python precisa.

    uv pip install
    

    Este comando lê o arquivo pyproject.toml e instala as bibliotecas fastmcp e pyfirmata2.

Entendendo o Código Python (main.py)

Vamos dar uma olhada rápida nas principais partes do nosso código Python:

  • from fastmcp import FastMCP: Esta linha importa a biblioteca FastMCP, que nos ajuda a criar nosso servidor MCP.
  • import pyfirmata2: Esta linha importa pyfirmata2, que é uma biblioteca que permite ao Python falar com seu Arduino.
  • Arduino = pyfirmata2.Arduino('/dev/cu.usbmodem212201'): IMPORTANTE! Você precisa alterar '/dev/cu.usbmodem212201' para a porta COM à qual seu Arduino está conectado. Você pode encontrar isso no Arduino IDE em Tools > Port. Pode parecer algo como COM3 no Windows ou /dev/ttyUSB0 no Linux.
  • @ArduinoMCP.tool: Essas linhas especiais (@ArduinoMCP.tool) são chamadas de "decoradores". Elas informam ao FastMCP que a função logo abaixo delas é uma "ferramenta" que o cliente de IA pode usar.
  • white_led_ON(), red_led_ON(), led_OFF(): Estas são nossas funções (mini-programas) que dizem ao Arduino para ligar o LED branco, ligar o LED vermelho ou desligar ambos os LEDs.
  • ArduinoMCP.run(): Esta linha inicia nosso servidor MCP, deixando-o pronto para receber comandos!

Configurando o Claude Desktop

Agora, vamos dizer ao Claude Desktop como se conectar ao nosso servidor Arduino.

  1. Abra seu Cliente MCP neste caso Claude Desktop
  2. Vá para Settings > Developer > Edit Config > e abra o arquivo de configuração claude_desktop_config.json
  3. Copie e cole o que está abaixo e atualize o caminho:
    {
        "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": Este deve ser o caminho completo para o seu executável uv. Se você estiver no Windows, pode ser algo como C:\Users\YourUser\AppData\Local\uv\uv.exe. No macOS/Linux, geralmente está no diretório bin local do seu usuário, como mostrado.
    • "--directory": Este deve ser o caminho completo para a pasta Arduino_MCP no seu computador onde o arquivo main.py está localizado. Certifique-se de que este caminho esteja correto!
    • "run", "main.py": Estes informam ao uv para executar seu script main.py.

Executando o Projeto!

  1. Inicie o Claude Desktop.

  2. O servidor MCP deve iniciar automaticamente. O Claude Desktop usará o arquivo claude_desktop_config.json para iniciar seu servidor Arduino MCP.

  3. Fale com o Claude! Agora você pode pedir ao Claude para controlar seu Arduino. Tente dizer coisas como:

    • "Ligue o LED branco."
    • "Ligue o LED vermelho."
    • "Desligue todos os LEDs."

    O Claude Desktop entenderá seus comandos e os enviará ao seu servidor Arduino MCP, que então dirá ao seu Arduino o que fazer!

Divirta-se controlando seu Arduino com IA! Este é apenas o começo do que você pode fazer!