MCP for IOT
概述
MCP for IOT 是 Model Context Protocol(MCP)的 Go 语言实现,专为物联网设备(尤其是 Arduino 开发板)设计。该服务器充当 Claude 等 AI 模型与 Arduino 硬件之间的桥梁,实现 AI 控制的硬件自动化。
功能特性
- 🔌 列出可用的串行端口
- 📡 从 Arduino 的串行端口读取数据
- 🚦 控制数字引脚(LED、继电器等)
- 🔊 控制蜂鸣器,支持开关和持续时间设置
- 🤖 与 Claude AI 无缝集成
使用指南
先决条件
- Go(版本 1.24 或更高)
- 通过 USB 连接的 Arduino 硬件
- Claude 桌面应用 或兼容的 MCP 客户端
安装
从源码构建
构建的二进制文件将安装到您的 GOBIN 目录中,该目录应包含在您的 PATH 环境变量中。
Arduino 设置
- 将 Arduino 连接到计算机
- 上传提供的 Arduino 固件:
该固件通过串行通信接收以下命令:
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 → 设置 → 开发者 → 编辑配置
- 在
claude_desktop_config.json
中添加以下内容:
- 重启 Claude Desktop
可用工具
工具 | 描述 |
port_list | 列出所有可用的串行端口 |
read_serial_line | 从指定串行端口读取一行数据 |
write_digital | 向指定端口的引脚写入数字值(HIGH/LOW) |
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-go - 用于 MCP 实现的 Go 库
- go.bug.st/serial - 串行端口通信库
贡献
欢迎贡献代码!请随时提交 Pull Request。
- Author:waytomcp
- URL:https://www.waytomcp.com/article/sukeesh/mcp-iot-go
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!