Skip to main content
Glama
CODE V MCP

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: CAD MCP Server

怎么保证不弄坏镜头

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

Available Tools

11 tools
cancel_analysisA

请求取消当前分析任务,并区分“已请求取消”与“确认停止”。

只对异步任务(点列图与原生绘图导出)有意义;取消原生绘图时还会关闭 CODE V 已经打开的绘图文件。

Inputs: no named parameters. Returns: Outcome of a cancellation request. A cancel request and an actually stopped cal…

close_sessionB

释放本服务创建的 CODE V 会话,并返回释放后的状态。

Inputs: no named parameters. Returns: task, ready, source, backend, +9 more

create_lensA

在空会话中按受限球面规格新建单变焦镜头,并发布核对过的恢复点。

image_solve="pim" 给最后一个普通面的厚度加 CODE V 近轴像面求解(PIM), 请求中的厚度只是初值;求解厚度之后由 CODE V 推导,不能再直接编辑。

Inputs: request (required). Returns: A full read of the current lens.

edit_lens_structureB

对本服务新建的简单镜头批量插入或删除普通球面、设置光阑,回读并核对恢复。

Inputs: request (required). Returns: lens, steps, source, applied, +4 more

get_analysisB

获取当前分析任务的状态、数值结果与图像。

结果以文本 JSON 返回,图像同时作为 MCP 图像内容返回,并在结果文件中保留副本。

Inputs: no named parameters. Returns: result

get_lensA

读取当前镜头的表面、材料、单位、孔径、波长、视场与变焦位置。

视场含渐晕因子 vux/vlx/vuy/vly(CODE V VUX/VLX/VUY/VLY),可经 update_lens 修改。 zoom_position 用于多变焦镜头,只影响按变焦位置取值的数据。

Inputs: zoom_position. Returns: A full read of the current lens.

get_statusB

返回后端类型、CODE V 版本、会话与镜头状态、当前分析任务与支持能力。

Inputs: no named parameters. Returns: task, ready, source, backend, +9 more

open_lensC

打开一个 .len 镜头文件的工作副本,并返回其表面、材料、单位、波长与视场。

Inputs: path (required). Returns: A full read of the current lens.

run_analysisA

提交一阶参数、点列图、MTF、当前焦面 WAV 或原生绘图,返回任务状态。

MTF 必须由调用方给出频率网格;原生绘图用 options.plot_type 选择类型, 由 CODE V 自己绘制并导出为 PNG。WAV 只支持单变焦镜头的全部视场和波长, 固定 NRD=20,不改变焦面。点列图与原生绘图异步执行,需要轮询 get_analysis;一阶参数、MTF 和 WAV 同步完成。同一时刻只允许一个分析任务。

Inputs: request (required). Returns: kind, error, state, source, +10 more

save_lens_asB

把当前工作副本另存为新文件;拒绝覆盖源文件或已存在的文件。

Inputs: path (required). Returns: path, source, raw_output, overwritten, +1 more

update_lensA

批量修改已有表面、视场、波长及受限孔径参数。

一批修改共享一个恢复点;只要有一条被拒绝,整批都不会生效。 由求解或拾取控制的参数会被拒绝,多变焦镜头必须给出 zoom_position。 视场可改 y_angle、x_angle、weight 与渐晕因子 vux/vlx/vuy/vly(-0.99~0.99)。 field_set 整体替换视场集合(1~10 个角度视场,含个数、角度、权重与渐晕因子), 单独成一次事务、不能与 edits 同批;省略的权重与渐晕因子沿用同编号视场的值, 新增视场权重为 1、渐晕为 0,像面求解(如 PIM)保持不变。仅支持单变焦、角度定义的视场。 孔径首版仅支持单变焦:target=aperture、parameter=value 保持现有 EPD/FNO/NA/NAO 类型只改数值;表面 clear_aperture_radius 只改已有的 单一、居中、圆形显式通光孔径半径。自动孔径、遮拦和复合定义只读。

Inputs: request (required). Returns: source, outcomes, warnings, field_set, +4 more

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 11 tools

    Disambiguation4/5

    Tools mostly target distinct actions, but get_status overlaps with get_lens and get_analysis for state reporting, and open_lens vs get_lens both return lens details. update_lens and edit_lens_structure also require care to distinguish parameter edits from structural edits, though the detailed descriptions help.

    Naming Consistency4/5

    All names use snake_case with a verb-first pattern, e.g. get_status, open_lens, run_analysis. Minor deviations like edit_lens_structure (verb_noun_noun) and save_lens_as (preposition) keep it from perfect consistency.

    Tool Count5/5

    11 tools is well-scoped for a session-based optical design server, covering session lifecycle, lens open/create/read/update/structure-edit/save, and analysis run/get/cancel. Each tool appears to earn its place without redundancy.

    Completeness4/5

    Core workflows for simple single-zoom lenses and analyses are covered: open, create, get, update, structural edit, save as, close, and full analysis lifecycle. However, there is no delete-lens or in-place save tool, and recovery points cannot be restored, leaving minor gaps.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • 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.
      1
      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
      212 npm
      MIT
    • A
      license
      C
      quality
      B
      maintenance
      A Windows-only MCP server that enables AI assistants to automate Ansys Zemax OpticStudio through the ZOS-API, exposing sequential and non-sequential mode, analysis, optimization, glass, tolerancing, configuration, and lifecycle operations. It supports stdio, SSE, and Streamable HTTP transports, with per-tool capability statuses distinguishing live-verified, offline-implemented, and scaffolded functionality.
      143
      2
      MIT
    • A
      license
      B
      quality
      B
      maintenance
      Enables automated data import, analysis, graphing, and project management for Origin/OriginPro through a hardened MCP interface with constrained file access and optional expert LabTalk mode.
      24
      MIT