mcp-iot-go

查看源码
2025-5-11
Words 558Read Time 2 min
Score:85

MCP服务器,用于连接AI模型与Arduino硬件,实现AI控制的硬件自动化。

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 硬件

安装

从源码构建

构建的二进制文件将安装到您的 GOBIN 目录中,该目录应包含在您的 PATH 环境变量中。

Arduino 设置

  1. 将 Arduino 连接到计算机
  1. 上传提供的 Arduino 固件:
    该固件通过串行通信接收以下命令:
    • 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 Desktop → 设置 → 开发者 → 编辑配置
    1. claude_desktop_config.json 中添加以下内容:
    1. 重启 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 库

    贡献

    欢迎贡献代码!请随时提交 Pull Request。
    上一篇
    mcp-server-atlassian-bitbucket
    下一篇
    nuke_mcp