Phiphis智能灯泡MCP服务器
一种模型上下文协议(MCP)服务器,使AI助手能够通过UDP通信控制智能灯泡。该项目在人工智能模型和智能家居设备之间架起了一座桥梁,专门为Yeelight智能灯泡设计。
🚀 特性
- MCP集成:实现模型上下文协议,实现无缝的AI助手集成
- UDP通信:通过UDP数据包控制智能灯泡,实现可靠的网络通信
- TypeScript支持:使用TypeScript构建,实现类型安全和更好的开发体验
- 简单API:易于使用的灯泡开关功能
- 模块化设计:MCP服务器逻辑和设备通信之间的清晰分离
📋 先决条件
- Node.js(v18或更高版本)
- pnpm包管理器
- 本地网络上的Yeelight智能灯泡
- 智能灯泡IP地址的网络访问
🛠️ 安装
- 克隆存储库:
git clone
cd trafficCongestion-mapIntegrated- 安装依赖项:
pnpm install- 构建项目:
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地址
- Yeelight应用程序方法:
- 打开Yeelight应用程序 - 转到设备设置 - 检查IP地址的设备信息
- 网络扫描方法:
- 使用以下工具 nmap 或网络扫描应用程序 - 在端口55443上查找设备
- 路由器管理面板:
- 检查路由器的连接设备列表 - 查找名称中带有“Yeelight”的设备
🚀 用法
运行服务器
# Development mode (build + run)
pnpm run dev
# Production mode
pnpm run build
pnpm start可用工具
MCP服务器公开了两个工具:
- 打开灯泡:打开智能灯泡
- 关闭灯泡:关闭智能灯泡
与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编译为JavaScriptpnpm 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地址是硬编码的——考虑在生产中使用环境变量
🐛 故障排除
常见问题
- 灯泡无响应:
- 验证IP地址是否正确 - 确保灯泡位于同一网络上 - 检查灯泡是否支持显影剂模式
- 连接被拒绝:
- 验证端口号(默认值:55443) - 检查防火墙设置 - 确保灯泡已通电
- MCP服务器未启动:
- 检查Node.js版本兼容性 - 验证是否已安装所有依赖项 - 检查TypeScript编译错误
调试模式
要启用调试日志记录,您可以修改服务器以包含更详细的输出:
console.log(`Sending message to ${BUILB_ADDRESS}:${BUILB_PORT}`);
console.log(`Message: ${message}`);🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
📄 许可证
此项目在ISC许可证下获得许可-有关详细信息,请参阅package.json文件。
🔗 相关链接
📞 支持
对于问题和疑问:
- 检查上面的故障排除部分
- 在GitHub上打开一个问题
- 查阅Yeelight文档,了解灯泡的具体问题
______________________________________________________________________
备注:该项目旨在用于教育和发展目的。始终确保您有权控制网络上的设备,并遵守有关智能家居设备的当地法规。
