智能灯泡控制服务器

一个基于模型上下文协议(MCP)的服务器,通过UDP通信实现AI助手对Yeelight智能灯泡的控制。

  • by Subinkumar077
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Subinkumar077/mcp-server-for-smart-bulb

使用说明

Phiphis智能灯泡MCP服务器

一种模型上下文协议(MCP)服务器,使AI助手能够通过UDP通信控制智能灯泡。该项目在人工智能模型和智能家居设备之间架起了一座桥梁,专门为Yeelight智能灯泡设计。

🚀 特性

  • MCP集成:实现模型上下文协议,实现无缝的AI助手集成
  • UDP通信:通过UDP数据包控制智能灯泡,实现可靠的网络通信
  • TypeScript支持:使用TypeScript构建,实现类型安全和更好的开发体验
  • 简单API:易于使用的灯泡开关功能
  • 模块化设计:MCP服务器逻辑和设备通信之间的清晰分离

📋 先决条件

  • Node.js(v18或更高版本)
  • pnpm包管理器
  • 本地网络上的Yeelight智能灯泡
  • 智能灯泡IP地址的网络访问

🛠️ 安装

  1. 克隆存储库:
git clone <repository-url>
cd trafficCongestion-mapIntegrated
  1. 安装依赖项:
pnpm install
  1. 构建项目:
pnpm run build

⚙️ 配置

在运行服务器之前,您需要在中配置智能灯泡的网络详细信息 src/service.ts:

const BUILB_ADDRESS = "192.168.1.100";  // Replace with your bulb's IP
const BUILB_PORT = 55443;               // Default Yeelight port

查找灯泡的IP地址

  1. Yeelight应用程序方法:

    • 打开Yeelight应用程序
    • 转到设备设置
    • 检查IP地址的设备信息
  2. 网络扫描方法:

    • 使用以下工具 nmap 或网络扫描应用程序
    • 在端口55443上查找设备
  3. 路由器管理面板:

    • 检查路由器的连接设备列表
    • 查找名称中带有“Yeelight”的设备

🚀 用法

运行服务器

# Development mode (build + run)
pnpm run dev

# Production mode
pnpm run build
pnpm start

可用工具

MCP服务器公开了两个工具:

  1. 打开灯泡:打开智能灯泡
  2. 关闭灯泡:关闭智能灯泡

与AI助手集成

该服务器可以与支持MCP的AI助手集成,例如:

  • Claude桌面版
  • 其他MCP兼容客户端

服务器通过stdio进行通信,使其与各种AI助手框架兼容。

🏗️ 项目结构

├── src/
│   ├── index.ts          # MCP server implementation
│   └── service.ts        # UDP communication service
├── dist/                 # Compiled JavaScript output
├── package.json          # Project dependencies and scripts
├── tsconfig.json         # TypeScript configuration
└── README.md            # This file

🔧 发展

脚本

  • pnpm run build:将TypeScript编译为JavaScript
  • pnpm run start:运行已编译的服务器
  • pnpm run dev:在开发模式下构建和运行服务器
  • pnpm test:运行测试(当前未实现)

TypeScript配置

该项目使用严格的TypeScript设置:

  • ES2022目标
  • Node.js模块
  • 源映射已启用
  • 已生成声明文件

🌐 网络协议

服务器使用以下格式的UDP数据包与Yeelight灯泡通信:

{
  "method": "set_power",
  "params": {
    "state": true  // or false for off
  }
}

端口信息

  • 默认端口:55443(Yeelight标准)
  • 协议:UDP
  • 地址:可配置的IP地址

🔒 安全考虑

  • 服务器通过您的本地网络进行通信
  • 确保您的智能灯泡位于受信任的网络上
  • 如果需要,考虑防火墙规则
  • 灯泡的IP地址是硬编码的——考虑在生产中使用环境变量

🐛 故障排除

常见问题

  1. 灯泡无响应:

    • 验证IP地址是否正确
    • 确保灯泡位于同一网络上
    • 检查灯泡是否支持显影剂模式
  2. 连接被拒绝:

    • 验证端口号(默认值:55443)
    • 检查防火墙设置
    • 确保灯泡已通电
  3. MCP服务器未启动:

    • 检查Node.js版本兼容性
    • 验证是否已安装所有依赖项
    • 检查TypeScript编译错误

调试模式

要启用调试日志记录,您可以修改服务器以包含更详细的输出:

console.log(`Sending message to ${BUILB_ADDRESS}:${BUILB_PORT}`);
console.log(`Message: ${message}`);

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

📄 许可证

此项目在ISC许可证下获得许可-有关详细信息,请参阅package.json文件。

🔗 相关链接

📞 支持

对于问题和疑问:

  1. 检查上面的故障排除部分
  2. 在GitHub上打开一个问题
  3. 查阅Yeelight文档,了解灯泡的具体问题

备注:该项目旨在用于教育和发展目的。始终确保您有权控制网络上的设备,并遵守有关智能家居设备的当地法规。