返回市场
物联网Go服务器

物联网Go服务器

作者:sukeesh8 星标更新:2025-05-01

项目介绍

MCP for IoT

<p align="center"> <strong>适用于IoT设备(Arduino)的模型上下文协议(MCP)服务器</strong> </p> <p align="center"> <img src="https://gips0.baidu.com/it/u=1955716654,96310487&fm=3081&app=3081&f=PNG?w=1024&h=1024" alt="IoT MCP Logo" width="240" /> </p>

Go

概述

MCP for IoT 是一个用 Go 实现的 模型上下文协议 (MCP) 服务器,允许像 Claude 这样的AI模型直接与IoT设备(特别是Arduino板)交互。此服务器作为Claude和Arduino硬件之间的桥梁,使AI控制的硬件自动化成为可能。

特性

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

使用方法

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

预备条件

  • Go(版本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设置

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

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

  • M,pin,mode - 设置引脚模式(例如:M,6,OUTPUT
  • D,pin,value - 控制数字引脚(例如:D,6,HIGHD,6,LOW
  • BZ,pin,state - 控制蜂鸣器(例如:BZ,8,ONBZ,8,OFF

使用MCP客户端配置

配置Claude桌面应用:

  1. 打开Claude桌面应用 → 设置 → 开发者 → 编辑配置
  2. 在你的claude_desktop_config.json中添加以下内容:
{
  "mcpServers": {
    "iot": {
      "command": "<mcp-iot-go二进制文件路径>",
      "env": {}
    }
  }
}
  1. 重启Claude桌面应用

可用工具

工具描述
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固件

依赖项

贡献

欢迎贡献!请随时提交Pull Request。