物联网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
先决条件
- 去 (1.24或更高版本)
- 带USB连接的Arduino硬件
- Claude桌面应用程序 或兼容的MCP客户端
安装
从源代码构建
git clone https://github.com/sukeesh/mcp-iot-go.git
cd mcp-iot-go
go install二进制文件将安装到您的GOBIN目录中,该目录应位于您的PATH中。
Arduino设置
- 将Arduino连接到计算机
- 上传提供的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桌面:
- 打开克劳德桌面→ 设置→ 开发者→ 编辑配置
- 将以下内容添加到您的
claude_desktop_config.json:
{
"mcpServers": {
"iot": {
"command": "
",
"env": {}
}
}
}- 重新启动克劳德桌面
可用工具
| 工具 | 说明 |
|---|---|
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固件
依赖项
- mcp走 -MCP实现的Go库
- go.bug.st/serial -串口通信库
贡献
欢迎投稿!请随时提交拉取请求。
