L
Lipmcp
作者 @54huarui
基于python的MCP物联网服务器框架。允许用户直接编写函数,并且使用ai调用它
创建于 1/10/2026
更新于 about 18 hours ago
README
Repository documentation and setup instructions
LipMcp Server
简易上手的python MCP物联网服务器框架
基于python mcp构建的mcp服务器框架,让你的智能家居能够通过AI控制!
- 自定义:你可以直接接入任何你想要自动化实现的python代码(不仅仅是物联网
- 自动注册mcp:无需修改server,只需要在function中添加你想要的函数即可让ai调用
- 示例:米家灯泡控制作为示例代码
主要环境:
- python 3.11
- python mcp
- python-miio
使用方法
这里以米家灯泡作为示例,通过ai控制灯泡开关灯以及颜色,亮度变化
1) 获取你的米家设备信息:
推荐使用Xiaomi-cloud-tokens-extractor获取所需的设备信息
示例
- "ip":"192.168.137.2"
- "token":"32861a8b84d97b6d0c63efed6276f6d6"
2) mcp客户端连接mcp服务器
准备你的mcp客户端:
推荐使用Cherry Studio/Cherry Studio官方网站
安装环境:
在项目路径下执行
pip install -r requirements.txt
推荐使用python3.11
导入MCP服务器: 在设置->MCP服务器->添加->从json导入
请替换你的server.py路径
{
"mcpServers": {
"LipMCP": {
"command": "python",
"args": ["C:\\Users\\huarui\\Documents\\GitHub\\LipMCP\\server.py"]
}
}
}

3) 模型连接mcp服务器
在你的助手设置里面指定使用的mcp服务器:

随后即可调用并使用相应的功能:

编写代码
一般认为将你需要ai调用的函数放在function.py ,有其他需求请改写server.py
加入注解@expose_tool() 让ai调用该函数
示例:
# 暴露的函数
@expose_tool()
def LightSet(r: int, g: int, b: int, effect: str = "smooth", duration: int = 300) -> Dict[str, Any]:
"""
Set light RGB color using separate r/g/b values.
"""
try:
dev = _require_device()
for name, val in (("r", r), ("g", g), ("b", b)):
if not isinstance(val, int):
raise ValueError(f"{name} must be an int")
if val < 0 or val > 255:
raise ValueError(f"{name} must be between 0 and 255")
rgb_int = (r << 16) + (g << 8) + b
dev.send("set_rgb", [rgb_int, effect, int(duration)])
return {"ok": True}
except Exception as e:
return {"ok": False, "error": str(e)}
若有函数不想暴露给ai,那么不编写注解 示例:
# 不暴露的内部函数
def _internal_only():
return "SECRET"
现已经内置的灯光功能
基础控制: 开灯 - 打开灯光 关灯 - 关闭灯光 获取灯光状态 - 查看当前灯光状态
亮度控制: 设置亮度 - 可以调节灯光亮度(1-100),支持平滑或突然的过渡效果
颜色控制: 设置RGB颜色 - 可以通过红、绿、蓝三个通道的值来设置任意颜色
设置特定颜色 - 可以直接设置红色、蓝色等特定颜色
连接灯光设备 - 可以连接到指定的灯光设备(需要IP地址和token)
过渡效果: 支持平滑过渡(smooth)和突然变化(sudden) 可以设置过渡持续时间
快速设置
此服务器的安装指南
安装包 (如果需要)
uvx lipmcp
Cursor 配置 (mcp.json)
{
"mcpServers": {
"54huarui-lipmcp": {
"command": "uvx",
"args": [
"lipmcp"
]
}
}
}