内容
# dialux-mcp
[MCP](https://modelcontextprotocol.io) 服务器,用于从智能代理(VS Code、Claude等)自动执行 **DIALux evo**,允许生成项目几何体、启动应用程序、打开项目、执行计算、导出报告和规范结果。
> DIALux **不提供官方API或CLI**。本服务器结合 **文件生成**(可导入STF)和 **UI自动化**(pywinauto)来编排工作流程。DIALux仍然是符合法规的计算的真实来源。
## 状态
- DIALux evo目标:**5.13.0.9593**(DIAL GmbH),西班牙语界面(es-ES)。
- 平台:**Windows**(自动化需要安装DIALux)。
- Python:**3.11+**。
## 安装
```pwsh
# 基本环境和依赖(模型、解析器、计算、MCP服务器)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .
# 自动化附加项(仅在具有DIALux的机器上)
pip install -e ".[automation]"
# 开发附加项(测试、lint)
pip install -e ".[dev]"
```
## 配置
环境变量(均为可选;具有自动检测):
| 变量 | 描述 | 默认值 |
|----------|-------------|-------------------|
| `DIALUX_EXE_PATH` | `DIALux.exe`路径 | 自动检测在`C:\Program Files\DIAL GmbH\DIALux\` |
| `DIALUX_PROJECTS_DIR` | 项目文件夹 | `~/Documents/DIALux_Projects` |
| `DIALUX_RESULTS_DIR` | 输出文件夹 | `./runs` |
| `DIALUX_UI_LANGUAGE` | UI语言 | `es-ES` |
| `DIALUX_LAUNCH_TIMEOUT` | 启动超时(秒) | `120` |
| `DIALUX_CALC_TIMEOUT` | 计算超时(秒) | `900` |
## 在VS Code中使用MCP服务器
`.vscode/mcp.json`:
```json
{
"servers": {
"dialux": {
"command": "dialux-mcp",
"env": {
"DIALUX_EXE_PATH": "C:\\Program Files\\DIAL GmbH\\DIALux\\DIALux.exe"
}
}
}
}
```
## 暴露的工具
**操作**
- `health_check` — 验证安装和依赖。
- `launch_dialux` — 启动DIALux并等待其准备就绪。
- `open_project` — 打开现有的`.dlx`文件。
- `run_calculation` — 启动计算并等待其完成。
- `export_report` — 导出报告(pdf/docx/xml/csv)。
- `capture_view` — 捕获视图图像。
- `get_results_summary` — 规范化CSV结果。
- `close_project` / `get_session_log`.
**生成/设计**
- `calculate_lighting_layout` — 通过流明法计算照明布局。
- `generate_stf_project` — 在DIALux中创建可导入的STF文件。
## 测试
```pwsh
pytest # 单元测试(默认排除e2e)
pytest -m e2e # 需要DIALux + DIALUX_E2E_PROJECT
```
## 已知限制
- UI选择器([selectors.py](src/dialux_mcp/automation/selectors.py))是一个初始基础,需要通过实际检查(Inspect.exe)进行调整。
- STF导入 **几何体和反射**,不导入光度学数据或计算的灯具。
- 报告解析在v1中支持 **CSV/XML**;建议导出CSV。
## 架构
参见 [docs/architecture.md](docs/architecture.md)。
# dialux-mcp