Cameo MCP大桥
一 MCP(模型上下文协议) 将AI编码助手连接到的服务器 CATIA Magic/Cameo系统建模器 --用于SysML和UML建模的行业标准MBSE工具。
这让Claude Code(或任何兼容MCP的客户端) 查询、创建、修改、检查、验证和可视化 通过162个工具在正在运行的Cameo实例中建立SysML/UML模型,这些工具涵盖了能力协商、方法感知OOSEM工作流、语义验证、状态机语义、元素、关系、本机矩阵和表、关系图、报告、需求导入/导出、验证套件、团队合作/DataHub探测、图表、可重用验证、规范和受保护的宏执行。
Claude Code Python MCP Server Java Plugin (Cameo JVM)为什么存在
像Cameo这样的MBSE工具功能强大,但需要手动操作。有了这座桥,人工智能助手可以:
- 根据需求构建模型 --创建具有空闲、活动和维护状态的ATM操作状态机
- 查询和导航模型 --“向我展示所有带有
>刻板印象” - 生成图表 --创建序列图、BDD、IBD、状态机,并用元素填充它们
- 导出图表图像 --以base64格式获取任何图表的PNG快照
- 运行Groovy脚本 --结构化工具无法覆盖的任何东西的逃生口
- 检查和修改规范 --读/写任何UML属性、标记值或约束
这有什么不同?
| 项目 | 方法 | 状态 |
|---|---|---|
| 这个项目 | 通过嵌入式插件直接与Cameo的Java API对话 | 生产测试 |
| SysML v2 API MCP服务器 | 连接到SysML v2 REST API(工具语法) | 早期阶段,C++ |
| EA MCP服务器 | Enterprise Architect集成 | 闭源代码,仅限Windows |
| 达索原型 | SysML v2+MCP演示 | 促销,未发货 |
这是唯一一个直接与正在运行的Cameo实例集成的开源MCP服务器,可以完全访问SysML v1模型和完整的Cameo API表面。
建筑
+-------------------+ +---------------------+ +---------------------------+
| | stdio | | HTTP | |
| Claude Code / |-------->| Python MCP Server |-------->| Java Plugin |
| Any MCP Client |/plugins/com.claude.cameo.bridge/3.安装Python服务器:
cd mcp-server
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e .在Windows shell上,使用 .venv\\Scripts\\activate 相反。
4.向您的MCP客户注册:
克劳德代码:
claude mcp add cameo-bridge --scope user -- /absolute/path/to/mcp-server/.venv/bin/python -m cameo_mcp.server在Windows上,解释器路径通常为 .venv\\Scripts\\python.exe.
对于其他MCP客户端,使用venv解释器和命令配置stdio传输 -m cameo_mcp.server.
5.重新启动CATIA Magic,打开一个项目,然后验证:
> Check cameo status如果新添加的MCP工具在更新后返回HTTP 404,Python服务器 Java插件不同步。重建/重新部署插件,然后重新启动 CATIA Magic加载了新的HTTP处理程序。
Python端现在对之前的插件执行功能握手 非状态操作。如果 cameo_status 或 cameo_get_capabilities 报告 compatibility.clientCompatible = false,停止并重新部署匹配的插件 在继续之前。
Python MCP层还为bounded提供了第2阶段的方法论界面 OOSEM工作流程。这些工具构建命名工件配方、工作流指导、, 一致性检查、语义验证和紧凑的审查数据包 低层桥梁。
2.3.5中的新功能
- 用于创建/配置、标准模板、表示检查、图形回读、渲染/验证、快照差异和显式刷新的本机关系图工具。
- 用于活动图、浏览器选择、选定符号和原始图/演示属性转储的实时UI自检工具。
- 探测原生验证、报告向导、需求导入/导出、模拟、团队合作、DataHub、变体、配置文件、类型图和安全/网络扩展的第一路由系列。
- JSON/CSV要求导入/导出,具有模拟运行默认值、显式写门、作用域导出和测试。
- 使用模板发现和输出文件收据生成本机报告向导。
- 更安全的长时间运行的CATIA操作:Python端的请求超时和Java端的序列化写入会话。
配置
| 环境变量 | 默认值 | 描述 |
|---|---|---|
CAMEO_BRIDGE_PORT | 18740 | 网桥的HTTP端口(必须与两侧匹配) |
JDK17_HOME | unset | 可选Java 17主页使用 install.sh 和Gradle |
JAVA17_HOME | unset | 替代Java 17主覆盖 |
CAMEO_MCP_STRUCTURED_RESPONSES | 已弃用 | 现在总是使用结构化MCP对象响应;此标志仅用于与旧文档的向后兼容性 |
Java插件从系统属性读取端口 cameo.mcp.port (默认值 18740).要更改它,请添加到您的Cameo *.vmoptions 文件:
-Dcameo.mcp.port=18741并设置 CAMEO_BRIDGE_PORT=18741 在启动Claude Code之前,请先在您的环境中。
对于本地健康检查,插件现在对两者都有响应 /api/v1/status 以及遗产 /status 别名。同样适用于 /api/v1/capabilities 和 /capabilities.
工具参考
项目、会话和UI(9个工具)
| 工具 | 说明 |
|---|---|
cameo_status | 检查插件健康状况并报告客户端/插件兼容性 |
cameo_get_capabilities | 获取机器可读的端点/能力元数据 |
cameo_probe_bridge | 探头 /status 和 /api/v1/status 设置端点样式并报告首选的本地健康路径 |
cameo_get_ui_state | 检查活动项目、活动图表、浏览器选择和选定的演示文稿元素 |
cameo_get_active_diagram | 获取当前活动的CATIA魔术图 |
cameo_get_ui_selection | 获取选定的浏览器元素和选定的图表演示ID |
cameo_get_project | 获取项目名称、文件路径和根模型ID |
cameo_save_project | 将项目保存到磁盘 |
cameo_reset_session | 强制关闭卡住的编辑会话(恢复工具) |
方法包(6个工具)
| 工具 | 说明 |
|---|---|
cameo_list_methodology_packs | 列出内置方法包,例如 oosem |
cameo_get_methodology_pack | 获取一个包的阶段、配方、命名规则和证据结构 |
cameo_get_methodology_guidance | 解释接下来缺少哪个工件以及原因 |
cameo_execute_methodology_recipe | 执行有界配方并返回收据、合规性,并审查数据包输出 |
cameo_validate_methodology_recipe | 根据配方预期验证规范化工件快照 |
cameo_generate_review_packet | 在不改变模型的情况下生成紧凑的证据包和Markdown评论包 |
元素(8个工具)
| 工具 | 说明 |
|---|---|
cameo_query_elements | 按类型、名称、包、原型搜索,带分页和紧凑/完整视图 |
cameo_get_element | 获取单个元素的完整细节 |
cameo_create_element | 创建新的模型元素 |
cameo_modify_element | 更改名称或文件 |
cameo_delete_element | 删除元素及其子元素 |
cameo_get_containment_tree | 浏览项目层次结构 |
cameo_list_containment_children | 页面/过滤器直接儿童与紧凑/全视图的大型模型 |
cameo_apply_profile | 将配置文件应用于模型/包,以便自定义原型可用 |
支持的元素类型: 包、配置文件、原型、类、块、属性、流属性、端口、接口、活动、用例、参与者、状态机、状态、伪状态、初始化状态、需求、接口块、约束块、值类型、数据类型、信号、枚举、组件、注释、约束、CallBehaviorAction、OpaqueAction、ActivityPartition、InitialNode、ActivityFinalNode、FlowFinalNode、DecisionNode、MergeNode、ForkNode、JoinNode、InputPin、OutputPin、操作
SysML别名,例如 Block, Requirement, ConstraintBlock, InterfaceBlock, ValueType,以及 FlowProperty 依赖于SysML配置文件的可用性。该桥现在将缺少所需的原型视为错误,而不是默默地生成简单的UML元素。 Pseudostate 当前映射到MVP中的初始伪状态。
对于大型项目,首选 cameo_list_containment_children 结束 cameo_get_containment_tree递归树端点仍然可以兼容,但它可以在真实模型上产生非常大的响应。
刻板印象和标签价值观(3个工具)
| 工具 | 说明 |
|---|---|
cameo_apply_stereotype | 应用刻板印象(例如。, >, >) |
cameo_set_tagged_values | 在定型元素上设置标记值 |
cameo_set_stereotype_metaclasses | 使用Cameo支持的API将构造型绑定到UML元类 |
如果您通过MCP创建自定义配置文件,典型的顺序是:
- 创建
Profile - 创建
Stereotype内部元素,可选配metaclasses=[...] - 呼叫
cameo_apply_profile关于目标模型/包 - 将新的原型应用于模型元素
关系(2个工具)
| 工具 | 说明 |
|---|---|
cameo_create_relationship | 在两个元素之间创建关系 |
cameo_get_relationships | 查询元素的关系 |
支持的关系类型: 关联、定向关联、组合、泛化、依赖、控制流、对象流、转换、连接器、信息流、项目流、分配、满足、推导、精炼、跟踪、验证、包含、扩展
Connector 支持嵌套端口 partWithPort 所有权。 InformationFlow 和 ItemFlow 支持结构化 realizingConnector, conveyed,以及SysML itemProperty IBD项目流工作流的有效载荷数据。当您将IBD上下文元素传递为 ownerId,桥梁解决了实际问题 InformationFlow/ItemFlow 因为Cameo不允许这些关系直接由一个区块拥有。
矩阵和通用表(8个工具)
| 工具 | 说明 |
|---|---|
cameo_list_matrix_kinds | 列出已验证的本机矩阵类型、别名和示例类型域 |
cameo_list_matrices | 列出项目中支持的本机矩阵工件 |
cameo_get_matrix | 读取一个支持的包含行、列和填充单元格的本机矩阵 |
cameo_create_matrix | 创建受支持的本机矩阵工件 |
cameo_list_generic_tables | 列出本机通用表工件 |
cameo_get_generic_table | 读取一个包含行、列和单元格数据的通用表 |
cameo_list_generic_table_columns | 发现元素或类型的可能通用表列 |
cameo_create_generic_table | 创建和配置本机Generic Table工件 |
支持的矩阵类型: refine, derive, satisfy, allocation, dependency
这些工具针对Cameo的原生矩阵工件:
refine->Refine Requirement Matrixderive->Derive Requirement Matrixsatisfy->Satisfy Requirement Matrixallocation->SysML Allocation Matrixdependency->Dependency Matrix
此矩阵族与图表形状/路径API是分开的。它管理本机矩阵工件,并直接返回行/列/单元格数据。
cameo_create_matrix 也接受可选 row_types 和 column_types 列表,以便在底层矩阵类型支持时,可以将本地矩阵工件约束到特定域。使用 cameo_list_matrix_kinds 查看经过验证的种类别名和经过现场验证的示例类型域。
关系图、快照和探针(22个工具)
| 工具 | 说明 |
|---|---|
cameo_list_relation_maps | 列出项目中的本地关系图工件 |
cameo_get_relation_map | 读取一个具有持久图形设置的关系图 |
cameo_create_relation_map | 创建和配置本机关系图工件 |
cameo_configure_relation_map | 更新现有关系图的本机图形设置 |
cameo_refresh_relation_map | 明确请求CATIA本地关系图刷新,并提供超时证据 |
cameo_dump_relation_map_raw_settings | 倾倒生食 GraphSettings 吸气剂证据 |
cameo_list_relation_map_presentations | 检查关系图显示元素和计数 |
cameo_list_relation_map_criteria_templates | 列出从实时UI证据中捕获的桥梁已知标准模板 |
cameo_set_relation_map_criteria | 将关系映射依赖条件应用于收据 |
cameo_expand_relation_map | 请求本地扩展并报告反映的支持/证据 |
cameo_collapse_relation_map | 请求本地崩溃并报告反映的支持/证据 |
cameo_render_relation_map | 默认情况下,渲染/导出关系图证据,不进行隐式刷新 |
cameo_verify_relation_map | 根据呼叫者提供的阈值验证图形和演示证据 |
cameo_compare_relation_maps | 从结构上区分两个关系图 |
cameo_get_traceability_graph | 从关系图或模型范围构建可追溯性图 |
cameo_create_snapshot | 捕获内存中的证据快照 |
cameo_list_snapshots | 列出捕获的快照 |
cameo_get_snapshot | 读取捕获的快照 |
cameo_delete_snapshot | 删除捕获的快照 |
cameo_diff_snapshots | 区分两个具有有限细节的快照 |
cameo_list_probe_templates | 列出内置的只读探针模板 |
cameo_execute_probe | 执行受控探测或受限Java反射回读 |
关系图本地刷新可以在大型地图上阻止CATIA的EDT。桥接器保持对创建/配置/渲染/标准/展开/折叠路径的刷新选择;呼叫 cameo_refresh_relation_map 当您需要原生UI刷新行为时。
高级原生曲面(42个工具)
| 系列 | 工具 | 发布状态 |
|---|---|---|
| 本地验证 | cameo_get_validation_capabilities, cameo_list_validation_suites, cameo_run_native_validation, cameo_get_validation_result, cameo_run_validation | 只读/实时验证 |
| 报告向导 | cameo_get_report_capabilities, cameo_list_report_templates, cameo_generate_report_preview, cameo_generate_report, cameo_get_report_job | 生成需要预览, allow_write=true,以及显式输出选项 |
| 进出口和要求 | cameo_get_import_export_capabilities, cameo_export_requirements, cameo_preview_requirements_import, cameo_apply_requirements_import, cameo_get_requirements_capabilities, cameo_export_requirements_preview, cameo_import_requirements_preview | JSON/CSV实时验证;本地ReqIF应用程序仍处于关闭状态 |
| 模拟 | cameo_get_simulation_capabilities, cameo_list_simulation_configurations, cameo_run_simulation_preview, cameo_run_simulation, cameo_get_simulation_result, cameo_terminate_simulation | 先探测/预览;执行需要显式的允许标志 |
| 团队合作 | cameo_get_teamwork_capabilities, cameo_get_teamwork_project, cameo_preview_teamwork_commit, cameo_preview_teamwork_update, cameo_list_teamwork_descriptors, cameo_list_teamwork_branches, cameo_get_teamwork_history, cameo_get_teamwork_locks | 只读/先探测 |
| 数据中心 | cameo_get_datahub_capabilities, cameo_list_datahub_sources, cameo_preview_datahub_sync | 仅预览;不发出凭据 |
| 标准/配置文件/变体/扩展/类型化图表 | 标准构建器、配置文件摘要/预览、变体预览、扩展扫描/拒绝、类型化图表检查/预览 | 先进行探测,然后进行防护写入 |
当可选的CATIA插件、许可证或实时证明缺失时,这些路线系列会故意失败关闭。预览/拒绝有效载荷是公共合同的一部分,而不是占位符错误。
图表(24种工具)
| 工具 | 说明 |
|---|---|
cameo_list_diagram_types | 列出已验证的图表请求令牌、别名和本机Cameo类型 |
cameo_list_diagrams | 列出项目中的所有图表 |
cameo_create_diagram | 创建新图表(支持18种类型) |
cameo_add_to_diagram | 将模型元素放置在图表画布上并返回其 presentationId |
cameo_get_diagram_image | 仅导出带有可选元数据的图表图像,调整大小和转码控件 |
cameo_auto_layout | 应用Cameo的内置自动布局 |
cameo_list_diagram_shapes | 列出带有分页、筛选、摘要计数和演示ID的图表形状 |
cameo_get_shape_properties | 读取一个图表形状的当前显示属性 |
cameo_move_shapes | 使用每个项目的结果重新定位/调整图表上的形状大小 |
cameo_delete_shapes | 从图表中删除形状(保留模型元素) |
cameo_add_diagram_paths | 在图表上绘制形状之间的关系路径 |
cameo_set_shape_properties | 使用收据设置显示属性(颜色、隔间可见性等) |
cameo_set_shape_compartments | 将标准化的隔间可见性控制应用于一个形状 |
cameo_set_transition_label_presentation | 应用高级状态转换标签预设,而不是猜测原始Cameo属性名称 |
cameo_set_item_flow_label_presentation | 应用为IBD清理预设的高级项目流/信息流标签 |
cameo_set_allocation_compartment_presentation | 为SysML BDD清理应用高级分配/全端口显示预设 |
cameo_repair_hidden_labels | 使用图表类型感知的本机修复默认值自动显示隐藏标签 |
cameo_repair_label_positions | 用模拟收据重置可能重叠的路径标签 |
cameo_repair_conveyed_item_labels | 在符合条件的路径上强制传送物品/物品流标签 |
cameo_normalize_compartment_presets | 按图表类型规范隔间/全端口可见性 |
cameo_prune_diagram_presentations | 删除不需要的自动显示符号,同时保留请求的演示文稿 |
cameo_prune_path_decorations | 删除子路径装饰,如关联结束标签 |
cameo_reparent_shapes | 将现有演示文稿元素移动到新容器形状下 |
cameo_route_paths | 更新路径断点、端点和标签重置行为 |
已验证的图表请求令牌: Class, Package, UseCase, Activity, Sequence, StateMachine, Component, Deployment, CompositeStructure, Object, Communication, InteractionOverview, Timing, Profile, BDD, IBD, Requirement Diagram, Parametric Diagram, RelationMap, Content Diagram
使用 cameo_list_diagram_types 如果你也想要被接受的别名。常见形式,如 InternalBlockDiagram, SysML IBD, ClassDiagram,以及 StateMachineDiagram 自动归一化为已验证的令牌集。
验证(2个工具)
| 工具 | 说明 |
|---|---|
cameo_verify_matrix_consistency | 检查矩阵行/列成员资格、填充的单元格计数、依赖关系名称和密度 |
cameo_verify_diagram_visual | 检查渲染的PNG有效性、图表/路径存在、内容覆盖率和粗略重叠风险 |
这些验证工具是桥的原生图和矩阵读回的Python侧包装器。它们旨在用于可重复的回归检查、视觉健全性验证和轻量级定量验证,而不会陷入原始宏。
语义验证(4个工具)
| 工具 | 说明 |
|---|---|
cameo_verify_activity_flow_semantics | 检查活动图上的连接行为流、初始/最终可达性和泳道健全性 |
cameo_verify_port_boundary_consistency | 检查接口块流属性所有权、重复词汇表和方向冲突 |
cameo_verify_requirement_quality | 检查需求ID、非空白文本和基本可测量性/准备情况 |
cameo_verify_cross_diagram_traceability | 将活动、接口、IBD和需求与架构词汇表/跟踪覆盖率进行比较 |
这些工具是MBSE审查的语义第一层。他们使用桥读回和轻量级Python启发式方法来捕捉常见的故障模式,在这种模式下,图表看起来合理,但不能作为可审查的模型。
自动修复(2个工具)
| 工具 | 说明 |
|---|---|
cameo_detect_cross_diagram_inconsistencies | 运行语义检查并返回可预览的补救收据以及 patchPlan |
cameo_build_cross_diagram_remediation_plan | 将现有的验证有效载荷转化为非变异的补救计划 |
这些工具不会改变模型。它们的存在是为了通过返回结构化的预览步骤来弥合验证和安全修复之间的差距,稍后应用流程可能会消耗这些步骤。
打样(2个工具)
| 工具 | 说明 |
|---|---|
cameo_proof_model_text | 收集和证明要求、注释、状态/转换名称和图表标签,并可选择安全自动应用 |
cameo_apply_proofing_patch_plan | 将之前生成的校对补丁计划应用于实时模型 |
校对被有意地限定在高置信度的名称/文本修复范围内。证明报告包括调查结果、指标、章节和预览补丁计划,即使在以下情况下也是如此 auto_apply 关闭。
方法论工作流程(4个工具)
| 工具 | 说明 |
|---|---|
cameo_compare_expected_artifact_list | 将当前工件与预期的方法工件列表进行比较,并返回预览操作 |
cameo_validate_methodology_package | 根据方法定义验证包装/配方/包装范围 |
cameo_export_required_diagrams | 计划或执行所需方法图集的导出 |
cameo_assemble_ppt_pdf | 从导出的图表集中计划或组装PPT/PDF审查包 |
对于PPTX程序集,请从以下位置安装Python依赖项 mcp-server/pyproject.toml 所以 python-pptx 在MCP运行时环境中可用。
状态机语义学(4个工具)
| 工具 | 说明 |
|---|---|
cameo_get_transition_triggers | 读取一个转换的显式触发语义 |
cameo_set_transition_trigger | 创建或替换一个更改事件或信号事件触发器 |
cameo_get_state_behaviors | 阅读 entry, do,以及 exit 状态行为 |
cameo_set_state_behaviors | 创建或替换结构化 entry, do,以及 exit 行为有效载荷 |
这些工具为MCP层提供了一流的状态语义,而不是强迫代理通过通用规范写入或原始宏回退来近似它们。
规格(3个工具)
| 工具 | 说明 |
|---|---|
cameo_get_specification | 读取所有UML属性、标记值和约束 |
cameo_set_specification | 写入属性、标记值或约束字段 |
cameo_set_usecase_subject | 为用例设置或清除UML主题分类器 |
宏(1个工具)
| 工具 | 说明 |
|---|---|
cameo_execute_macro | 在Cameo JVM中执行任意Groovy脚本 |
宏工具是结构化工具未涵盖的操作的逃生舱口。脚本可以完全访问Cameo OpenAPI project, application, primaryModel,以及 ef (ElementsFactory)预先注入到脚本上下文中。
重要提示: 修改模型的脚本必须管理自己的会话:
import com.nomagic.magicdraw.openapi.uml.SessionManager
SessionManager.getInstance().createSession(project, "My operation")
try {
// ... modify model ...
SessionManager.getInstance().closeSession(project)
} catch (Exception e) {
SessionManager.getInstance().cancelSession(project)
throw e
}如果宏在会话中期失败,请使用 cameo_reset_session 为了恢复。
用法示例
创建SysML块
Create a block called "Sensor" in the root model packageAI将:
- 呼叫
cameo_get_project查找根模型ID - 呼叫
cameo_create_element类型为“Block”,名称为“Sensor”,根模型ID为父级
构建状态机
Create a state machine for an ATM with states OFF, IDLE, ACTIVE, and MAINTENANCE.
Add an initial pseudostate and transitions: initial -> OFF, OFF -> IDLE on startup,
IDLE -> ACTIVE on card insert, ACTIVE -> IDLE on transaction complete, and any state
-> MAINTENANCE on service request.查询和修改
Find all requirements in the project and show me their IDs and text导出图表
Export the "System Overview" diagram as a PNG and save it to my desktop运行Groovy脚本
Run a macro that lists all profiles loaded in the current project已知限制
图表布局(主要痛点)
这座桥正确地构建了模型——元素、关系、方向性、刻板印象和结构都表现得很好。主要差距是 图表演示:复杂图表的布局、间距和视觉属性通常需要在Cameo的GUI中手动调整。
cameo_list_diagram_shapes 现在递归地发现嵌套的表示元素,但复杂的嵌套编辑仍然不完整。序列图、复合状态和其他深度嵌套的表示仍然需要手动清理或Groovy回退。这意味着:
| 什么不起作用 | 为什么 |
|---|---|
| 在序列图中垂直间隔消息 | 消息箭头不是顶级形状;创建过程中没有Y位置控制 |
| 相对于组合片段(引用框)移动消息 | 相同--消息和片段是嵌套的表示元素 |
| 自我信息(自身的生命线) | PresentationElementsManager.createPathElement() 当源==目标时失败 |
| 在复合状态中显示区域名称 | 区域标签嵌套在状态形状中;找不到或无法配置 |
| 调整嵌套状态的大小以显示完整的进入/退出行为 | 区域中的子状态无法通过平面形状列表访问 |
| 控制转换标签文本显示 | 复合状态内的转换路径嵌套 |
解决方法:
- 使用
cameo_execute_macro使用直接访问嵌套表示元素的Groovy脚本 - 使用
cameo_auto_layout(适用于简单的图表,不太适用于复杂的状态机) - 对于序列图:模型是正确的,因此在Cameo中手动拖放需要5-10分钟
- 对于状态机:手动加宽形状和切换区域名称可见性
当前方向: 继续扩展嵌套演示文稿元素的结构化编辑,以减少需要宏的工作流。
尚未实施
- 本地ReqIF适用 --网桥拥有的JSON/CSV需求导入/导出经过实时验证;本地ReqIF应用仅在捕获一次性ReqIF往返之前保持预览/拒绝状态
- 可选产品写入 --团队合作、数据中心、模拟、变体和安全/网络扩展系列首先暴露了能力探测和安全预览;写入需要单独的实时证明
- 删除刻板印象 --可以应用但不能删除
- 删除/重命名图表 --可以通过网桥创建和填充图表,但不能删除或重命名
- 元件修复 --无法在包之间移动元素
- 撤销/重做 --会话支持Cameo UI中的撤消,但没有MCP工具来触发它
- 批量操作 --创建N个元素需要N个顺序的API调用
- 模型更改通知 --纯粹的请求/响应;无事件订阅
- 基于文件的图表导出 --
cameo_get_diagram_image通过连线返回base64;没有直接保存到文件路径的选项(使用cameo_execute_macro和ImageExporter.export(dpe, ImageExporter.PNG, file)作为解决方法)
API缺口
- 持续时间约束/时间约束 由于Cameo API中复杂的所有权链,通过宏创建是不可靠的(
DurationInterval.setMin/setMax需要DurationAPI拒绝的具有特定所有权的实例);在Cameo的用户界面中手动添加这些 - 大图图像 仍然可以在全分辨率下超过MCP客户端令牌限制;更喜欢
cameo_get_diagram_image(include_image=false)仅用于元数据读取或使用max_width/max_height和format="jpeg"在切换到基于宏的文件导出之前 - 直接文件导出 仍然不是一流的;如果您需要网桥将图表直接保存到磁盘,请使用
cameo_execute_macro和ImageExporter.export(...) - 会话恢复边缘案例 --如果宏在交易过程中崩溃,
cameo_reset_session可以自己扔TransactionAlreadyCommitedException在这种情况下,保存并重新打开项目是最可靠的恢复
兼容性
- 使用CATIA Magic Systems of Systems Architect 2024x进行测试
- 应适用于任何Cameo Systems Modeler 2024x捆绑包(2024x+)
- 需要Groovy脚本引擎(与Cameo捆绑在一起)来执行宏
- Gradle版本需要访问Cameo的
lib/编译时依赖关系目录
安全注意事项
这座桥是为 仅供当地开发使用.
- HTTP服务器绑定到
127.0.0.1(仅限本地主机)--无法从网络访问 - 有 无需认证 在HTTP端点上
- 这
cameo_execute_macro工具执行 任意Groovy代码 在Cameo JVM内部,可以完全访问文件系统、网络和类加载器 - CORS标头设置为
*(通配符)-理论上,本地浏览器中的任何网页都可以向网桥发出请求
不要 将网桥端口暴露给网络,在共享/多用户计算机上运行它而不需要额外的访问控制,或者在生产环境中使用它而不添加身份验证。
项目结构
cameo-mcp-bridge/
mcp-server/ # Python MCP server
cameo_mcp/
__init__.py
client.py # HTTP client for the Java plugin
server.py # MCP tool definitions (162 tools)
verification.py # reusable diagram/matrix verification helpers
methodology/ # Phase 2 pack registry + recipe runtime
registry.py
runtime.py
service.py
pyproject.toml
plugin/ # Java Cameo plugin
src/com/claude/cameo/bridge/
CameoMCPBridgePlugin.java # Plugin entry point
HttpBridgeServer.java # Embedded HTTP server + routing
handlers/
ProjectHandler.java # Project info, save
ElementQueryHandler.java # Element search, get, relationships
ElementMutationHandler.java # Create, modify, delete elements
RelationshipHandler.java # Create relationships
MatrixHandler.java # Native matrix artifacts
GenericTableHandler.java # Native Generic Tables
DiagramHandler.java # Full diagram lifecycle
RelationMapHandler.java # Relation Map graph/settings/rendering
UiStateHandler.java # Active diagram and selection state
SnapshotHandler.java # In-memory evidence snapshots
ValidationHandler.java # Native validation suites
ReportWizardHandler.java # Report Wizard templates/generation
ImportExportHandler.java # Requirements import/export
CriteriaHandler.java # Criteria expression helpers
TeamworkHandler.java # Teamwork read-only probes
DataHubHandler.java # DataHub capability/source probes
SimulationHandler.java # Simulation preview/run facade
ExtensionProbeHandler.java # Safety/cyber extension probes
ContainmentTreeHandler.java # Containment tree browsing
SpecificationHandler.java # Specification read/write
MacroHandler.java # Groovy script execution
util/
EdtDispatcher.java # EDT dispatch with session management
ElementSerializer.java # Element to JSON serialization
JsonHelper.java # JSON parsing utilities
plugin.xml # Cameo plugin descriptor
build.gradle # Gradle build config
install.sh # One-step installer
LICENSE
README.md发展
构建插件
cd plugin
./gradlew assemblePlugin -PcameoHome="/path/to/CatiaMagic"输出转到 plugin/build/plugin-dist/com.claude.cameo.bridge/.
独立运行MCP服务器
python -m cameo_mcp.server这将启动stdio上的MCP服务器。除非Cameo在加载插件的情况下运行,否则它将无法连接到Java插件。
添加新工具
- 在相应的Java处理程序类中添加HTTP处理程序方法
- 在中注册路线
HttpBridgeServer.registerHandlers() - 在中添加异步客户端函数
client.py - 在中添加带有docstring的MCP工具函数
server.py
MCP工具的文档字符串至关重要——它们是AI的使用手册。包括有效值、示例、常见错误和相关工具的交叉引用。
贡献
欢迎问题和拉取请求。如果你正在为其他MBSE工具构建类似的东西,让我们谈谈。
捐款特别有价值的领域:
- 附加元素和关系类型支持
- 批量操作端点
- 测试覆盖率
- 支持Cameo Teamwork Cloud项目
- SysML v2配置文件支持
许可证
相关:MBSE代理商
与...一起使用 mbse代理商 用于航空航天、国防、汽车和医疗设备领域的标准感知建模。代理提供从业者级领域知识(ARP4754A、DoDAF、ISO 26262、IEC 62304)。这座桥提供了直接的工具通道。一起:一个知道子句级别标准的AI,可以修改你的Cameo模型。
