显示器设置MCP工具
基于MCP(模型上下文协议)的屏幕亮度控制工具,让AI助手可以智能调节显示器亮度。支持DDC/CI协议,可同时控制多个显示器或指定特定显示器。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"monitor-control": {
"args": [
"run",
"monitor-control-mcp"
],
"command": "uv",
"cwd": "C:\\path\\to\\monitor-control-mcp"
}
}
}
服务介绍
Monitor Control MCP
基于 MCP (Model Context Protocol) 的屏幕亮度控制工具,让 AI 助手可以智能调节你的显示器亮度。
本项目全程使用Qwen Code CLI程序Qwen3.5-Plus模型生成
✨ 功能特性
- 🔍 显示器检测: 获取所有支持 DDC/CI 协议的显示器信息
- 🎯 精确控制: 设置显示器亮度为指定百分比 (0-100%)
- 📈 相对调节: 在当前亮度基础上增加或减少亮度
- 🖥️ 多显示器支持: 可同时控制所有显示器或指定特定显示器
- 🛡️ 资源管理: 自动管理显示器句柄,防止资源泄漏
📋 系统要求
- 操作系统: Windows 10/11
- Python: 3.10 或更高版本
- 显示器: 支持 DDC/CI 协议的显示器
- 权限: 可能需要管理员权限
🚀 快速开始
1. 安装
方式 A: 使用 uv(推荐)
# 克隆仓库
git clone https://github.com/your-username/monitor-control-mcp.git
cd monitor-control-mcp
# 安装依赖
uv sync
方式 B: 使用 pip
# 克隆仓库
git clone https://github.com/your-username/monitor-control-mcp.git
cd monitor-control-mcp
# 创建虚拟环境
python -m venv .venv
.venv\Scripts\activate # Windows
# 安装依赖
pip install -e .
2. 测试安装
# 直接运行测试
uv run python monitor_brightness.py
# 或使用 pip 安装后
python monitor_brightness.py
🔧 MCP 客户端配置
Claude Desktop 配置
Windows (%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"monitor-control": {
"command": "uv",
"args": ["run", "monitor-control-mcp"],
"cwd": "C:\\path\\to\\monitor-control-mcp"
}
}
}
macOS (~/Library/Application Support/Claude/claude_desktop_config.json):
⚠️ 注意:此工具仅支持 Windows 系统。macOS 用户需要使用其他方法。
Cursor IDE 配置
在 Cursor 的设置中,找到 MCP 配置,添加:
{
"mcpServers": {
"monitor-control": {
"command": "uv",
"args": ["run", "monitor-control-mcp"],
"cwd": "C:\\path\\to\\monitor-control-mcp"
}
}
}
其他 MCP 客户端
使用以下通用配置:
- command:
uv(或 Python 可执行文件路径) - args:
["run", "monitor-control-mcp"] - cwd: 项目的绝对路径
🛠️ 可用工具
1. get_monitor_info - 获取显示器信息
获取所有显示器的详细信息和当前亮度。
参数: 无
返回示例:
{
"success": true,
"monitor_count": 2,
"monitors": [
{
"description": "Dell U2720Q",
"current_brightness": 60,
"min_brightness": 0,
"max_brightness": 100,
"raw_current": 60
},
{
"description": "LG UltraFine",
"current_brightness": 45,
"min_brightness": 0,
"max_brightness": 100,
"raw_current": 45
}
]
}
2. set_brightness - 设置亮度
将显示器亮度设置为指定百分比。
参数:
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
brightness |
integer | ✅ | 目标亮度百分比 (0-100) |
monitor_description |
string | ❌ | 显示器描述关键字,用于指定特定显示器 |
示例:
// 将所有显示器设置为 50% 亮度
{"brightness": 50}
// 仅设置 Dell 显示器
{"brightness": 70, "monitor_description": "Dell"}
3. adjust_brightness - 相对调节亮度
在当前亮度基础上增加或减少亮度。
参数:
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
delta |
integer | ✅ | 亮度调整幅度 (-100 到 100) |
monitor_description |
string | ❌ | 显示器描述关键字 |
示例:
// 增加 10% 亮度
{"delta": 10}
// 降低 20% 亮度
{"delta": -20}
// 仅调节特定显示器
{"delta": 5, "monitor_description": "LG"}
💡 使用示例
场景 1: 查询当前所有显示器状态
用户:我现在的显示器亮度是多少?
AI: 让我帮你查询一下。
[使用get_monitor_info工具]
你目前有 2 台显示器:
- Dell U2720Q: 亮度 60%
- LG UltraFine: 亮度 45%
场景 2: 设置夜间模式
用户:太亮了,调暗一点
AI: 好的,我来帮你降低亮度。
[使用adjust_brightness工具,delta: -20]
已将亮度降低 20%,现在更舒适了。
场景 3: 精确控制
用户:把亮度设为 50%
AI: 没问题。
[使用set_brightness工具,brightness: 50]
已将所有显示器亮度设置为 50%。
场景 4: 控制特定显示器
用户:只调暗主显示器
AI: 好的。
[使用set_brightness工具,brightness: 30, monitor_description: "Dell"]
已将 Dell 显示器亮度设置为 30%。
🔍 故障排除
问题 1: "未检测到任何支持 DDC/CI 的物理显示器"
可能原因:
- 显示器不支持 DDC/CI 协议
- DDC/CI 功能在显示器 OSD 菜单中被禁用
- 使用了不支持的转接头或线缆
解决方案:
- 检查显示器规格,确认支持 DDC/CI
- 在显示器 OSD 菜单中找到并启用 "DDC/CI" 选项
- 使用原装或高质量的 DisplayPort/HDMI 线缆
- 避免使用廉价的转接头
问题 2: "获取亮度信息失败" 或 "设置亮度失败"
可能原因:
- 权限不足
- 显示器暂时无法响应
解决方案:
- 以管理员身份运行终端/IDE
- 重启显示器后重试
- 检查是否有其他软件正在控制显示器亮度
问题 3: 笔记本内置屏幕无法调节
说明: 某些笔记本的内置屏幕不支持 DDC/CI 协议,这是正常现象。此工具主要适用于外接显示器。
替代方案: 使用 Windows 内置的亮度调节功能或笔记本厂商提供的控制软件。
问题 4: MCP 服务器无法启动
检查步骤:
- 确认 Python 版本 >= 3.10
- 确认已安装所有依赖:
uv sync - 检查配置文件中的路径是否正确
- 查看错误日志
📁 项目结构
monitor-control-mcp/
├── mcp_server.py # MCP 服务器主程序
├── monitor_brightness.py # 显示器亮度控制模块
├── pyproject.toml # 项目配置和依赖
├── README.md # 项目文档
├── LICENSE # 开源许可证
├── .gitignore # Git 忽略文件
└── tests/ # 测试目录(待添加)
└── test_server.py
🔧 开发指南
本地开发
# 克隆仓库
git clone https://github.com/your-username/monitor-control-mcp.git
cd monitor-control-mcp
# 安装开发依赖
uv sync --extra dev
# 运行测试
uv run pytest
直接测试模块
# 测试亮度控制模块
uv run python monitor_brightness.py
# 测试 MCP 服务器(需要 MCP 客户端连接)
uv run python mcp_server.py
构建分发包
# 使用 uv 构建
uv build
# 或使用 pip
pip install build
python -m build
📝 API 参考
MonitorController 类
底层控制器类,管理显示器句柄和 DDC/CI 通信。
from monitor_brightness import MonitorController
controller = MonitorController()
controller.load_dll()
# 获取显示器列表
monitors = controller.get_monitor_handles()
# 设置亮度
success, message = controller.set_brightness_for_monitor(handle, 50)
# 获取当前亮度
current, min_val, max_val = controller.get_current_brightness(handle)
# 清理资源
controller.cleanup_monitors(monitors)
便捷函数
模块提供的便捷函数:
from monitor_brightness import (
control_monitor_brightness, # 控制亮度(高级 API)
get_monitor_handles, # 获取显示器句柄
get_current_brightness, # 获取当前亮度
set_brightness_for_monitor, # 设置单个显示器亮度
cleanup_monitors, # 清理资源
)
# 使用高级 API
result = control_monitor_brightness(50) # 设置所有显示器为 50%
result = control_monitor_brightness(50, "Dell") # 仅设置 Dell 显示器
🤝 贡献
欢迎贡献代码、报告问题或提出建议!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
🔗 相关链接
⭐ 致谢
感谢使用本项目!如果这个项目对你有帮助,请给一个 Star ⭐
注意: 本项目仅适用于 Windows 系统,需要显示器支持 DDC/CI 协议。