article
README
🚀 用于传感器设备的MCP服务器
本项目是一个Node.js应用程序,专为与Claude Desktop协同使用而设计。它能模拟CO₂传感器设备,还提供JSON - RPC服务,方便与设备进行交互。该应用既支持在仿真模式下运行,也能在实际模式中通过USB连接到Raspberry Pi Pico,从而读取真实的CO₂浓度。
🚀 快速开始
此项目是一个Node.js应用程序,若要运行它,您需先在计算机上安装Node.js。若尚未安装,可从官方网址下载并安装。
- 克隆仓库。
- 使用npm安装依赖项:
npm install
- 确保
claude_desktop_config.json文件已正确配置以运行服务器。以下是一个示例配置:
{
"mcpServers": {
"CO2 sensor": {
"command": "node",
"args": [
"...mcp-server-for-sensor-device/index.js"
],
"env": {}
}
}
}
- 要启动服务器,请运行以下命令:
node index.js
✨ 主要特性
- 可在仿真模式下模拟CO₂传感器设备,生成随机的CO₂浓度值。
- 能通过USB连接到Raspberry Pi Pico,读取真实的CO₂浓度。
- 提供设备信息、传感器数据和网络状态,可通过JSON - RPC进行访问。
- 支持发布数据到MQTT、重新连接WiFi和重新连接MQTT的命令(部分功能为模拟实现)。
💻 使用示例
基础用法
要启动服务器,运行以下命令:
node index.js
高级用法
利用JSON - RPC方法与服务器进行交互,例如:
initialize:初始化服务器并返回服务器功能。shutdown:关闭服务器。resources/list:列出可用资源。resources/read:读取指定的资源。tools/list:列出可用工具。tools/call:调用指定的工具。
📚 详细文档
JSON - RPC方法
initialize
初始化服务器并返回服务器功能。
shutdown
关闭服务器。
resources/list
列出可用资源。
resources/read
读取指定的资源。
tools/list
列出可用工具。
tools/call
调用指定的工具。
DeviceState类
DeviceState类模拟设备状态,并提供方法以获取设备信息、传感器数据和网络状态。它还处理与Raspberry Pi Pico的连接,以读取CO₂浓度。
方法
getDeviceInfo(): 返回设备信息。getSensorData(): 返回传感器数据。getNetworkStatus(): 返回网络状态(模拟功能)。publishToMQTT(): 模拟发布数据到MQTT(模拟功能)。reconnectWiFi(): 模拟重新连接WiFi(模拟功能)。reconnectMQTT(): 模拟重新连接MQTT(模拟功能)。
日志记录
应用程序将CO₂浓度和其他信息记录到位于用户主目录中的日志文件co2_level.log中。
📄 许可证
此项目根据MIT License进行许可。
微信扫一扫