物联网设备控制协议

MCP for IOT是一个基于Go语言的物联网设备控制协议服务器,专为Arduino设备设计,实现AI模型与硬件设备的直接交互。

  • by sukeesh
  • Go
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 sukeesh/mcp-iot-go

使用说明

物联网MCP

Model Context Protocol (MCP) Server for IoT Devices (Arduino)

概述

MCP for IOT是 模型上下文协议 (MCP)服务器,允许像Claude这样的AI模型直接与物联网设备交互,特别是Arduino板。该服务器充当Claude和Arduino硬件之间的桥梁,实现AI控制的硬件自动化。

特性

  • 🔌 列出可用串行端口
  • 📡 从Arduino的串行端口读取数据
  • 🚦 控制数字引脚(LED、继电器等)
  • 🔊 控制蜂鸣器的开/关和持续时间设置
  • 🤖 与Claude AI无缝集成

用法

https://github.com/user-attachments/assets/46d7d731-f5d0-4acd-b53e-c00be8b83215

先决条件

安装

从源代码构建

git clone https://github.com/sukeesh/mcp-iot-go.git
cd mcp-iot-go
go install

二进制文件将安装到您的GOBIN目录中,该目录应位于您的PATH中。

Arduino设置

  1. 将Arduino连接到计算机
  2. 上传提供的Arduino固件:
    arduino/firmware.ino
    

此固件通过串行通信接受命令:

  • M,pin,mode -设置引脚模式(例如。, M,6,OUTPUT)
  • D,pin,value -控制数字引脚(例如。, D,6,HIGH 或 D,6,LOW)
  • BZ,pin,state -控制蜂鸣器(例如。, BZ,8,ON 或 BZ,8,OFF)

使用MCP客户端进行配置

配置Claude桌面:

  1. 打开克劳德桌面→ 设置→ 开发者→ 编辑配置
  2. 将以下内容添加到您的 claude_desktop_config.json:
{
  "mcpServers": {
    "iot": {
      "command": "<path-to-mcp-iot-go-binary>",
      "env": {}
    }
  }
}
  1. 重新启动克劳德桌面

可用工具

工具 说明
port_list 列出所有可用串行端口
read_serial_line 从指定的串行端口读取单行数据
write_digital 将数字值(高/低)写入指定端口上的引脚
buzzer_control 控制连接到Arduino引脚的蜂鸣器,持续时间可选

使用示例

设置后,您可以直接通过Claude与Arduino硬件交互:

  • “列出所有可用串行端口”
  • “从端口/dev/cu.usbmodem12401上的Arduino读取数据”
  • “打开引脚6上的红色LED”
  • “激活引脚8上的蜂鸣器2秒”

发展

项目结构

  • main.go -MCP服务器设置和工具定义
  • internal/tools.go -Arduino通信的工具实现
  • arduino/firmware.ino -用于处理命令的Arduino固件

依赖项

贡献

欢迎投稿!请随时提交拉取请求。