ansa-mcp

ansa-mcp

An MCP server that bridges MCP clients to ANSA CAE pre-processor via file IPC, enabling geometry operations, model management, and solver deck export.

Category
访问服务器

README

ANSA MCP MVP

这是一个最小可用版 ANSA MCP。它采用 GUI bridge + 文件 IPC 的形式,让 MCP Client 通过外部 ansa-mcp-server 向 ANSA 内部插件发送 JSON 命令。

当前 MVP 聚焦:

  • ping
  • check_ansa_connection
  • execute_script
  • get_capabilities
  • get_model_info
  • geometry_inventory
  • import_file
  • list_faces
  • face_properties
  • select_faces_by_query
  • preview_selection
  • delete_faces
  • autosave_model
  • restore_model
  • save_model_as
  • check_mesh_quality
  • export_solver_deck
  • batch_benchmark_test
  • read_last_log

暂不包含求解器运行、META 后处理或浏览器 Viewer。

架构

MCP Client
  -> ansa_mcp.server
  -> %USERPROFILE%\.ansa-mcp\commands\cmd_<id>.json
  -> ANSA 内部 ansa_mcp.plugin
  -> %USERPROFILE%\.ansa-mcp\results\<id>.json
  -> MCP Client

所有 command/result 文件使用 .tmp + os.replace() 原子写入。每次调用都会写入独立 run 目录,便于复盘。

安装

cd /d D:\ansa-mcp
python -m venv .venv
.\.venv\Scripts\python -m pip install -e .

如果只想运行基础单元测试,不需要安装 MCP SDK:

cd /d D:\ansa-mcp
$env:PYTHONPATH = "D:\ansa-mcp\src"
python -m unittest discover -s tests

启动 MCP Server

cd /d D:\ansa-mcp
$env:ANSA_MCP_HOME = "$env:USERPROFILE\.ansa-mcp"
.\.venv\Scripts\python -m ansa_mcp.server

也可以使用安装后的入口:

ansa-mcp-server

在 ANSA 中加载插件

在 ANSA Script Editor 或 Python Console 中执行:

exec(open(r"D:\ansa-mcp\scripts\load_plugin_in_ansa.py").read())
ansa_mcp_loop()

ansa_mcp_loop() 是阻塞轮询模式。停止方式:

ansa_mcp_stop()

或在 %USERPROFILE%\.ansa-mcp\stop.flag 创建停止文件。

ANSA v25.1.0 noGUI 验证方式

本机已验证 ANSA v25.1.0 可以通过 -exec load_script 启动插件轮询:

$env:ANSA_MCP_HOME = "$env:USERPROFILE\.ansa-mcp"
& "C:\Program Files (x86)\BETA_CAE_Systems\ansa_v25.1.0\ansa64.bat" `
  -exec "load_script:'D:\ansa-mcp\scripts\start_plugin_loop_in_ansa.py'" `
  -nogui

上面的命令会阻塞运行,直到创建 stop.flag:

New-Item -ItemType File -Force -Path "$env:USERPROFILE\.ansa-mcp\stop.flag"

外部验证命令:

$env:ANSA_MCP_HOME = "$env:USERPROFILE\.ansa-mcp"
$env:PYTHONPATH = "D:\ansa-mcp\src"
D:\miniconda\envs\geo\python.exe -c "from ansa_mcp import server; print(server.tool_check_ansa_connection()); print(server.tool_get_capabilities()); print(server.tool_get_model_info())"

已验证环境:

  • ANSA: 25.1.0
  • ANSA Python: 3.11.9
  • current_deck: 1

MCP Client 配置示例

见 examples/mcp_config.example.json。

工具说明

ping

检查 MCP server 自身是否运行。

check_ansa_connection

读取 status.json 并向 ANSA 插件发送 ping。如果 ANSA 插件未运行,会返回明确错误。

execute_script

在 ANSA Python 环境中执行脚本。当前版本主要用于调试和探索。稳定工作流应优先使用高层工具。

get_capabilities

返回插件版本、Python 版本、ANSA API 是否可用、当前 deck 等信息。

get_model_info

返回当前模型摘要。实体类型跨 deck 可能存在差异,失败项会进入 warnings。

geometry_inventory

返回更宽的几何/实体清单,用于诊断导入后为什么没有 FACE。当前会统计 parts、faces、macros、cons、points、curves、surfaces、volumes、nodes、shells、solids、elements、materials、properties 等。

import_file

打开或导入模型/几何文件。用户给外部路径时,server 会先复制到 ANSA_MCP_HOME\imports,再让 ANSA 打开该副本。

list_faces

列出当前 ANSA 模型中的 FACE 实体,返回 face id、name、type。用于让 Codex 在删除前先明确可操作对象。

face_properties

返回 FACE 的几何选择属性,包括 area、center、bbox、normal、perimeter_count。支持按 area、center_z、max_z 等字段排序,用于自然语言选面前的候选筛选。

select_faces_by_query

基于 face_properties 执行常见自然语言式选面,当前支持最大面、最小面、顶面、底面、法向 +Z、法向 -Z、靠近指定点等查询,并返回候选 face id、选择理由和分数。

preview_selection

删除前预览候选 face id 和选择理由。该工具不修改模型,返回 requires_confirmation=true,用于让用户确认后再调用 delete_faces。

delete_faces

按 face id 删除 FACE 实体,并可选保存副本。推荐流程是先 list_faces,再按明确 id 删除。

autosave_model

在 ANSA_MCP_HOME\autosaves 下保存带时间戳的当前模型副本,用于破坏性操作前回退。

restore_model

重新打开一个已有模型文件,通常用于恢复 autosave_model 生成的副本。

save_model_as

把当前 ANSA 模型另存到 ANSA_MCP_HOME 下。输出路径会被限制在工作区内。

check_mesh_quality

执行基础质量检查,当前包括实体数量、free nodes 和 intersections。后续可扩展更细的单元质量阈值。

export_solver_deck

导出 solver deck 到 ANSA_MCP_HOME 下。当前支持 NASTRAN、ABAQUS、LSDYNA、ANSYS 的受控封装。空模型导出可能返回非零 ANSA code,但只要写出非空文件,工具会返回 artifact 并在 warnings 中记录 return code。

batch_benchmark_test

批量导入指定目录下的 .step/.stp/.igs/.iges/.ansa/.bdf/.nas/.inp 文件,记录导入状态、实体统计、最大面、顶面等诊断结果,并输出 JSON/CSV 报告到 ANSA_MCP_HOME\reports。

read_last_log

返回最近一次 run 目录中的 result.json。

安全边界

  • 外部 MCP server 不直接 import ansa。
  • ANSA API 只在 ANSA 内部插件中调用。
  • 输出路径默认限制在 ANSA_MCP_HOME 下。
  • execute_script 默认脚本长度上限为 64 KB。
  • 每次调用都会记录 run 目录。

下一步

  • 验证 ANSA batch/noGUI 启动参数后增加 batch runner。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选