CODE V MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CODE V MCP 打开 D:\lenses\design.len,列出每个面的半径、厚度和玻璃。"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CODE V MCP
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 优化候选、多方案比较和报告素材整理。
真实后端需要已安装、已注册 COM 并有可用许可证的 CODE V 10.2。CODE V 是 Synopsys 的商业软件,不随本项目提供;本项目与 Synopsys 无关联。没有 CODE V 时可以用模拟后端体验协议和流程,模拟结果一律标记为simulated,不能作为光学结论。
能做什么
MCP 工具
工具 | 作用 |
| 查看后端、CODE V 版本、会话与镜头状态、当前任务 |
| 打开 |
| 在空会话中按类型化规格新建单变焦球面镜头,可加近轴像面求解( |
| 读取表面、半径、厚度、玻璃、孔径、视场(含渐晕因子)、波长、变焦位置 |
| 批量修改半径/厚度/玻璃、视场、波长、系统孔径值等;整批回读核对,失败整批回滚 |
| 对本服务新建的简单球面镜头插入/删除表面、设置光阑 |
| 一阶参数、点列图、衍射 MTF、波前 RMS/Strehl,或导出 CODE V 原生绘图(PNG) |
| 查询任务状态,取回数值结果与图像 |
| 取消点列图或原生绘图任务,并区分“已请求”与“已确认停止” |
| 另存为新文件,不覆盖源文件或已有文件 |
| 释放本服务创建的 CODE V 会话 |
每项的参数边界、数值精度与口径见支持能力与限制。
独立命令行工具
均以 python -m codev_mcp.<名称> 运行,复用上面的工具或服务自己的会话,不提供任意命令入口。
名称 | 用途 | 说明 |
| 单镜头按设计规格评价;初始/最终镜头对比;批量逐对报告 | |
| 对一个表面的半径或厚度做固定网格扫描 | |
| 按目标焦距或系数整体缩放镜头 | |
| 按文件做类型化编辑(如换玻璃)、生成视场集合 | |
| 查询本机玻璃目录、列出相近玻璃 | |
| 按类型化规格生成分阶段 AUT 优化候选,人工确认后再显式接受 | |
| 从同一基线运行多个设计方案并汇总比较,只推荐不接受 | |
| 导出可读 | |
| 整理报告用的图、数据与宏;从执行记录生成设计记录 |
命令行工具的引擎工作目录由安装位置决定,请按下面的步骤在仓库根目录做可编辑安装后使用。
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;多变焦镜头的原生绘图与波前分析。
完整清单与注意事项(长会话、同步/异步分析、精度、孔径编辑边界等)见支持能力与限制。
文档
主题 | 文档 |
安装、客户端配置与故障排查 | |
工具能力、数值口径与限制 | |
镜头评价与对比、批量报告 | |
设计规格与执行记录格式 | |
受控 AUT 与多方案比较 | |
参数扫描、视场集合、 | |
玻璃目录、交付整理 |
开发
自动化测试使用模拟后端和假 COM 会话,不需要 CODE V 或许可证:
$env:PYTHONPATH = Join-Path (Get-Location).Path 'src'
.\.venv\Scripts\python.exe -m unittest discover -s tests -t .提交约定与架构约束见 CONTRIBUTING.md。问题与建议请提交 Issue。
许可
Available Tools
11 toolscancel_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
Scored across 11 tools
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.
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.
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.
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
Related MCP Connectors
Headless CAD engine & MCP server for 2D/3D drafting, solids, DXF/SVG export, and automation.
Connect any MCP client to MetaTrader 4/5 to read prices, manage positions, and place trades.
Read and edit the Revit 2024–2027 model on your PC. Needs the free Revit MCP add-in.
MCP server for aerospace calculations: orbital mechanics, ephemeris, DSN operations, ...
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients like Codex to control Ansys Workbench and ICEM CFD locally, executing scripts, managing projects, and running simulations.1MIT
- AlicenseCqualityCmaintenanceEnables 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.225212 npmMIT
- AlicenseCqualityBmaintenanceA 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.1432MIT
- AlicenseBqualityBmaintenanceEnables 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.24MIT