Skip to main content
Glama
MERURUXD

CODE V MCP

by MERURUXD

CODE V MCP

tests English · Windows · CODE V 10.2 · Python 3.10+ · 实验性 0.1.0

把本机的 CODE V 10.2 接入 MCP 客户端(如 Claude Desktop、Claude Code)。客户端可以用自然语言让它打开镜头、读取和修改参数、运行一阶/点列/MTF/波前分析、导出 CODE V 原生图,并把结果另存。服务通过 Windows COM 驱动一个自己启动的无界面 CODE V 会话,只在本机经 stdio 通信。

除 MCP 工具外,仓库还提供一组独立命令行工具,用于镜头评价与对比、参数扫描、整体缩放、换玻璃、受控 AUT 优化候选、多方案比较和报告素材整理。

NOTE

真实后端需要已安装、已注册 COM 并有可用许可证的 CODE V 10.2。CODE V 是 Synopsys 的商业软件,不随本项目提供;本项目与 Synopsys 无关联。没有 CODE V 时可以用模拟后端体验协议和流程,模拟结果一律标记为simulated,不能作为光学结论。

能做什么

MCP 工具

工具

作用

get_status

查看后端、CODE V 版本、会话与镜头状态、当前任务

open_lens

打开 .len 的工作副本,返回完整镜头数据

create_lens

在空会话中按类型化规格新建单变焦球面镜头,可加近轴像面求解(PIM)

get_lens

读取表面、半径、厚度、玻璃、孔径、视场(含渐晕因子)、波长、变焦位置

update_lens

批量修改半径/厚度/玻璃、视场、波长、系统孔径值等;整批回读核对,失败整批回滚

edit_lens_structure

对本服务新建的简单球面镜头插入/删除表面、设置光阑

run_analysis

一阶参数、点列图、衍射 MTF、波前 RMS/Strehl,或导出 CODE V 原生绘图(PNG)

get_analysis

查询任务状态,取回数值结果与图像

cancel_analysis

取消点列图或原生绘图任务,并区分“已请求”与“已确认停止”

save_lens_as

另存为新文件,不覆盖源文件或已有文件

close_session

释放本服务创建的 CODE V 会话

每项的参数边界、数值精度与口径见支持能力与限制。

独立命令行工具

均以 python -m codev_mcp.<名称> 运行,复用上面的工具或服务自己的会话,不提供任意命令入口。

名称

用途

说明

compare、batch

单镜头按设计规格评价;初始/最终镜头对比;批量逐对报告

对比与评价、批量、设计规格

scan

对一个表面的半径或厚度做固定网格扫描

参数扫描

scale

按目标焦距或系数整体缩放镜头

能力清单

edit、fieldset

按文件做类型化编辑(如换玻璃)、生成视场集合

视场集合与导入

glass、glass_near

查询本机玻璃目录、列出相近玻璃

玻璃目录

aut

按类型化规格生成分阶段 AUT 优化候选,人工确认后再显式接受

受控 AUT

schemes

从同一基线运行多个设计方案并汇总比较,只推荐不接受

多方案比较

export_seq、seq_import

导出可读 .seq;按白名单导入 .seq(不执行序列)

视场集合与导入

deliver、walkthrough

整理报告用的图、数据与宏;从执行记录生成设计记录

交付整理、执行记录

命令行工具的引擎工作目录由安装位置决定,请按下面的步骤在仓库根目录做可编辑安装后使用。

Related MCP server: zemax-mcp

怎么保证不弄坏镜头

MCP 客户端 ──stdio──> codev-mcp 服务 ──JSON 行──> 工作进程 ──COM──> 无界面 CODE V 会话
  • 工作副本:打开镜头时复制一份再操作,原文件不动;另存拒绝覆盖源文件和已存在的文件。

  • 事务式修改:每批修改前建恢复点,修改后逐项回读;任何一项不符(包括 CODE V 静默忽略修改)整批回滚。

  • 检查点:每次成功修改都保存、重新载入并比对后才报告成功;引擎中途崩溃时自动重建会话并从最近的检查点恢复。

  • 没有任意命令:发给 CODE V 的命令都由服务按类型化参数构造,路径、玻璃名和数值先经过校验。

  • 只管自己的进程:只清理确认由本服务启动的 CODE V 进程,不接管你打开的 CODE V 窗口。

  • 结果可追溯:每个结果带来源(codev 或 simulated)、单位、分析设置和原生输出;失败返回结构化错误类别。

快速开始

1. 安装

需要 Windows 和 Python 3.10 及以上(推荐 64 位;64 位 Python 可以驱动 32 位的 CODE V COM 服务)。克隆仓库后在根目录执行 PowerShell:

git clone https://github.com/MERURUXD/codev-mcp.git
cd codev-mcp
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.lock.txt
.\.venv\Scripts\python.exe -m pip install --no-deps -e .

2. 用模拟后端试运行

不需要 CODE V。下面的脚本经真实 MCP 协议新建一个模拟单透镜、做一阶分析并另存,结果写到 .codev-run/demo/result.json:

.\.venv\Scripts\python.exe examples/simulated_quickstart.py --output .codev-run/demo

输入与输出说明见模拟入门。

3. 接入 MCP 客户端

在客户端的 MCP 配置里加入下面这段,把路径换成你的仓库位置(JSON 里反斜杠要写两次)。没有 CODE V 时把 com 改成 simulated:

{
  "mcpServers": {
    "codev": {
      "command": "D:\\path\\to\\codev-mcp\\.venv\\Scripts\\python.exe",
      "args": ["-m", "codev_mcp", "--backend", "com",
               "--working-directory", "D:\\path\\to\\codev-mcp\\.codev-run"]
    }
  }
}

重启客户端后先调用 get_status,确认后端为 com 且能读到 CODE V 版本。工作目录存放会话、检查点和结果图片,必须可写,建议使用较短的纯英文路径。其他选项(超时、解释器、环境变量)和故障排查见安装说明。

4. 开始使用

可以直接对客户端这样说:

  • “打开 D:\lenses\design.len,列出每个面的半径、厚度和玻璃。”

  • “把第 3 面的厚度改成 5 mm,再给出 EFL 和后焦距。”

  • “画第 2 视场的点列图,并告诉我 RMS 半径。”

  • “计算 10、30、50 lp/mm 的 MTF。”

  • “导出 CODE V 的光路图(layout)。”

  • “另存为 D:\lenses\design-v2.len。”

用设计规格评价一个镜头(命令行):

.\.venv\Scripts\python.exe -m codev_mcp.compare --lens D:\lenses\design.len --spec docs\design\design-spec-dbgauss.json

示例规格里的阈值只是演示值,实际使用时按自己的指标填写,格式见设计规格。

不支持的内容

  • 任意 CODE V 命令或宏;

  • 在 MCP 工具里自动优化、做公差或灵敏度分析(AUT 只通过 aut 命令行生成候选,并且需要显式接受);

  • 对任意已有镜头增删表面、改面型或特殊面型(结构编辑只开放给本服务新建的简单球面镜头);

  • 远程访问,或控制用户已经打开的 CODE V 窗口;

  • 无焦系统 MTF、几何 MTF;多变焦镜头的原生绘图与波前分析。

完整清单与注意事项(长会话、同步/异步分析、精度、孔径编辑边界等)见支持能力与限制。

文档

主题

文档

安装、客户端配置与故障排查

docs/install.md

工具能力、数值口径与限制

docs/capabilities.md

镜头评价与对比、批量报告

comparison-workflow、batch-workflow、performance-workflow

设计规格与执行记录格式

design-spec、execution-record

受控 AUT 与多方案比较

controlled-aut、scheme-comparison

参数扫描、视场集合、.seq 导入导出

parameter-scan、field-set-and-seq-import

玻璃目录、交付整理

glass-catalog、deliverable

开发

自动化测试使用模拟后端和假 COM 会话,不需要 CODE V 或许可证:

$env:PYTHONPATH = Join-Path (Get-Location).Path 'src'
.\.venv\Scripts\python.exe -m unittest discover -s tests -t .

提交约定与架构约束见 CONTRIBUTING.md。问题与建议请提交 Issue。

许可

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Safety-first MCP server enabling AI assistants to drive Zemax OpticStudio sequential-mode optical design workflows, including a mock backend for validation.
    1
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP clients like Codex to control Ansys Workbench and ICEM CFD locally, executing scripts, managing projects, and running simulations.
    2
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    Enables MCP clients to create and edit technical drawings, manage layers and geometry, process GIS/research mapping data, generate previews and layouts, and automate AutoCAD documents on Windows through COM.
    225
    119 npm
    MIT