项目简介

'mcp-iot-go' 是一个基于 Model Context Protocol (MCP) 的物联网设备服务器实现。它利用Go语言和 'mcp-go' 库,将物联网设备的功能(例如读取传感器数据)封装成 MCP 工具,供支持MCP协议的LLM客户端调用。

主要功能点

  • MCP服务器核心: 实现了MCP协议的服务器端逻辑,能够接收并处理来自LLM客户端的JSON-RPC请求,并返回标准化的响应。
  • 工具注册与执行: 提供注册自定义工具的能力。当前实现包含一个名为 'get_temperature' 的工具,用于从指定的串口设备读取温度数据,并将结果返回给LLM。
  • 串口通信: 能够通过配置的串口与实际的物联网设备进行交互,获取传感器的实时数据。
  • Stdio传输: 支持通过标准输入输出(Stdio)进行通信,作为LLM客户端与服务器之间的主要数据交换方式,易于集成。

安装步骤

  1. 确保您已安装 Go 编程语言环境 (推荐版本 1.18 或更高)。
  2. 打开终端或命令行工具。
  3. 克隆仓库:'git clone https://github.com/sukeesh/mcp-iot-go.git'
  4. 进入项目目录:'cd mcp-iot-go'
  5. 构建项目:'go build .' 构建成功后,会在当前目录下生成一个可执行文件(例如在 Linux/macOS 上是 'mcp-iot-go',在 Windows 上是 'mcp-iot-go.exe')。

服务器配置

该MCP服务器通常不会直接独立运行,而是作为支持MCP协议的LLM客户端的一个子进程被启动和管理。MCP客户端需要知道如何启动该服务器以及通过何种方式进行通信。以下是MCP客户端可能需要配置该服务器的信息示例:

  • 服务器名称 (name): 用于标识服务器,例如 "IOT MCP Server"。
  • 启动命令 (command): 您构建生成的可执行文件的完整路径,例如 '/path/to/your/mcp-iot-go/mcp-iot-go'。
  • 命令行参数 (args): 启动服务器时需要传递的额外参数列表。此实现目前启动时不需要额外的命令行参数,因此通常为空列表 '[]'。
  • 传输协议 (transport): 服务器使用的通信协议,此实现使用 "stdio"。

MCP客户端会根据这些配置信息自动启动服务器,并通过标准输入输出与之建立连接并进行通信。请注意: 在实际使用前,您可能需要根据您的硬件环境,手动修改项目代码文件 'internal/tools.go' 中 'serial.Open()' 函数里的串口路径(默认是 '/dev/cu.usbmodem12401'),以匹配您实际连接物联网设备的串口。修改代码后需要重新构建可执行文件。

基本使用方法

  1. 按照上述步骤构建并准备好服务器的可执行文件。
  2. 确保您的物联网设备已通过串口正确连接到计算机,并且您已在代码中配置并构建了正确的串口路径版本。
  3. 使用支持MCP协议的LLM客户端(如兼容 MCP 的LLM推理引擎或应用),并按照其文档说明,配置该客户端以识别并启动您构建的 'mcp-iot-go' 可执行文件作为其 MCP 服务器。
  4. LLM客户端即可通过 MCP 协议,向该服务器发送请求来调用注册的工具(例如 'get_temperature'),从而获取物联网设备的温度数据,并将这些数据作为上下文或工具调用结果用于LLM的交互中。

信息

分类

桌面与硬件