profili-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., "@profili-mcp Analyze NACA 2412 at Re 300,000 and show me the polar."
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.
profili-mcp
中文 | English
老牌翼型软件 Profili 2.x 的 MCP 服务器。
Profili 是一款经典的翼型设计与分析软件(内置 2200+ 翼型、126 万条极曲线数据),开发已于 2015 年前后停止。它没有脚本 API,也没有 COM/OLE 自动化接口,所以本项目转而与它实际存在的三个接口打交道:
Jet 数据库(
Profili.mdb)——可读写,GUI 运行时同样可以访问内嵌的 XFOIL 求解器——与 Profili 自身调用方式完全相同的批处理流程
应用程序进程——启动 / 关闭 / 状态检测
以上全部封装为 14 个 MCP 工具。据我所知这是首个面向 Profili 的 MCP 服务器;使这一切成为可能的存储格式逆向结论记录在 docs/SCHEMA.md 中。

实战示例(examples/):NACA 2412,Re=3×10⁵,计算极曲线与软件内置库极曲线对比。
工具一览
工具 | 功能 |
| 探测安装:路径、数据库行数、GUI 状态 |
| 启动 / 关闭 Profili GUI |
| 列出翼型库 |
| 按名称 / 厚度 / 弯度 / 库筛选翼型 |
| 元数据 + 上下表面坐标(弦长分数,前缘→后缘) |
| 导出 |
| 导入 |
| 查询某翼型已有的极曲线雷诺数 |
| 读取存储极曲线(CL/CD/CM-α,SI 单位) |
| 按指定雷诺数、攻角下的气动性能筛选翼型 |
| 用内嵌 XFOIL 现算粘性极曲线,可写回翼型库 |
| 直接计算任意 NACA 4/5 位数翼型,不动数据库 |
| XFOIL GDES TSET 修改最大厚度 / 弯度,可另存新翼型 |
Related MCP server: Windows-MCP
安装
要求:Windows、已安装的 Profili 2.x(Profili.exe、Profili.mdb、Xfoil.exe 位于同一目录)、以及 32 位 Microsoft Access Driver (*.mdb) ODBC 驱动(Win10/11 通常自带;缺失时安装 MDAC)。
git clone https://github.com/GaillumXc/profili-mcp.git
cd profili-mcp
uv sync # 或 pip install .告诉服务器 Profili 的安装位置——环境变量,或作为 install_dir 参数传给任意工具:
set PROFILI_DIR=D:\path\to\ProfiliV2
python -m profili_mcp --selftest # 全链路自检:数据库 + 数值约定 + XFOILMCP 客户端配置
{
"mcpServers": {
"profili": {
"command": "python",
"args": ["-m", "profili_mcp"],
"env": { "PROFILI_DIR": "D:\\path\\to\\ProfiliV2" }
}
}
}适用于 Kimi Code、Claude Desktop、Cursor 及任何支持 stdio MCP 的客户端。
安全设计
写库前自动备份
Profili.mdb(同目录时间戳副本);backup=False可关闭。GUI 运行时数据库保持可读写,但界面不会自动刷新——导入翼型或保存极曲线后重启 Profili 即可看到。
极曲线写入使用与 Profili 自带库导入完全一致的表结构(
PolariHeader+PolariCoordinate)。
示例
examples/ 是一个完整的实战分析(NACA 2412,Re=3×10⁵):库中取几何 → 计算极曲线 → 提取参数(C_lmax 1.3234、α_stall 15.0°、α₀ −2.19°、C_m0 −0.0499),曲线与内置库存极曲线及教科书数值均吻合。
python examples/analysis_compute.py && python examples/analysis_naca2412.py相关项目
Three-Little-Birds/xfoil-mcp、Saxeman/xfoil-mcp —— 面向裸 XFOIL 的 MCP 服务器;不接触 Profili 翼型库与数据库。
YanYaoyuan/passwing —— 可导入
Profili.mdb的 Qt/C++ 气动套件;桌面软件,非智能体接口。devFoil / devWing —— 作者后续开发的商业软件系列,Profili 的继任者。
已知问题
非 ASCII 项目路径 + editable 安装:CPython 以系统 locale 编码读取
.pth文件,因此当 clone 路径含非 ASCII 字符时 editable 安装会失败。请 clone 到纯英文路径,或以PYTHONPATH=src python -m profili_mcp方式运行。本仓库不包含 Profili 软件本体(商业软件,已停止开发);项目只与已安装的副本交互。
作者与验证范围
账号所有者(GaillumXc)为无人驾驶航空器系统工程专业本科在读学生,本项目是课程学习过程中的个人作品。全部功能仅在 Profili 2.21 单一版本上验证过;其他版本(2.0/2.2x 各修订、XT、Pro 等)未做测试,行为可能存在差异,欢迎提交 issue 反馈。Kimi K2.8(Moonshot AI 编程助手)参与了逆向分析、代码、文档与示例的编写,提交按 Co-authored-by 惯例署名。
License
MIT,见 LICENSE。Profili 为 devCAD / Stefano Nardone 的商业软件,权利归原作者所有;XFOIL 由 Mark Drela 开发并随 Profili 捆绑分发。本项目仅供个人学习与研究。
Available Tools
14 toolsanalyze_airfoilAnalyze AirfoilB
Compute a fresh viscous polar with the bundled XFOIL (same recipe as Profili's own solver). If save_to_db=True the result is written into the Profili library and appears in the GUI after restart.
Inputs: name (required), re, mach, ncrit, +6 more. Returns: result
analyze_nacaAnalyze NacaB
Compute a polar for any NACA 4/5-digit airfoil without touching the library (XFOIL generates the geometry itself).
Inputs: naca_code (required), re, mach, ncrit, +4 more. Returns: result
close_profiliClose ProfiliB
Close all running Profili GUI instances.
Inputs: no named parameters. Returns: result
export_airfoil_datExport Airfoil DatC
Export an airfoil from the library to a Profili .dat coordinate file.
Inputs: name (required), install_dir, output_path. Returns: result
find_airfoils_by_polarFind Airfoils By PolarB
Search airfoils by aerodynamic performance at one operating point.
Narrows by name prefix first (the polar table is huge), then evaluates the
polar at alfa (linear interpolation) and applies the criteria.
Inputs: re (required), alfa (required), name_prefix (required), limit, +4 more. Returns: result
get_airfoil_geometryGet Airfoil GeometryB
Get an airfoil's metadata + full coordinates (chord fractions, LE->TE for both surfaces).
Inputs: name (required), install_dir. Returns: result
get_polarGet PolarB
Get the stored polar (CL/CD/CM vs alpha, degrees) at the Reynolds number
closest to re.
Inputs: re (required), name (required), install_dir. Returns: result
get_statusGet StatusA
Probe the Profili installation: paths, database row counts, whether the GUI is running, and platform notes. Call this first.
Inputs: install_dir. Returns: result
import_airfoil_datImport Airfoil DatB
Import a .dat coordinate file into the Profili library. The database is backed up first unless backup=False. Restart Profili afterwards if it was already running.
Inputs: file_path (required), name, note, backup, +2 more. Returns: result
launch_profiliLaunch ProfiliC
Start the Profili GUI.
Inputs: install_dir. Returns: result
list_librariesList LibrariesC
List airfoil libraries defined in the Profili database.
Inputs: install_dir. Returns: result
list_polarsList PolarsC
List the Reynolds numbers for which stored polars exist.
Inputs: name (required), install_dir. Returns: result
redesign_airfoilRedesign AirfoilB
Rescale max thickness and/or camber (chord fractions) via XFOIL GDES TSET — the same 'modify airfoil' recipe Profili uses internally. If save_as is given, the new geometry is saved into the library under that name (and as a .dat file next to it).
Inputs: name (required), backup, camber, save_as, +4 more. Returns: result
search_airfoilsSearch AirfoilsC
Search the 2200+ airfoil library. name is a SQL LIKE substring
(e.g. 'NACA 24' or 'AG '). Thickness/camber bounds use the database's own
units for MaxWidthSuCorda / MaxCamberSuCorda (see docs/SCHEMA.md).
Inputs: name, limit, library, camber_max, +4 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Most tools target clearly distinct actions: listing, probing, GUI lifecycle, library search, geometry retrieval, import/export, polar lookup, fresh XFOIL analysis, and geometry redesign. The only plausible confusion is between get_polar (stored polar) and analyze_airfoil (fresh computed polar), plus find_airfoils_by_polar vs search_airfoils, but the descriptions make the stored-vs-computed and name-vs-performance distinctions explicit.
Every tool follows a consistent snake_case verb_noun pattern (list_polars, get_status, search_airfoils, export_airfoil_dat, analyze_naca). Domain nouns are used uniformly, and the launch_/close_ pair is symmetric.
14 tools is squarely within the well-scoped range and each tool maps to a distinct capability (inspection, GUI control, library CRUD-ish operations, aerodynamics analysis). No obvious filler or redundant tools.
The surface covers discovery, inspection, geometry access, import/export, polar analysis, and geometry modification, which covers the main airfoil-database workflows. Notable gaps are deletion/rename of library airfoils and any library-creation operation, though these are safely workable around via import/export.
Maintenance
Related MCP Connectors
Connect ChatGPT, Claude, Cursor or VS Code to your Windows PC: files, terminal, browser, apps.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Persistent Windows computers for AI agents. API signup, prepaid credit, desktop control and files.
1
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with Windows operating systems through native UI automation, file navigation, application control, and system commands. Provides seamless integration between LLMs and Windows environments for tasks like clicking, typing, launching apps, and capturing desktop state.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with the Windows operating system, performing tasks such as file navigation, application control, UI interaction, and QA testing.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to control and interact with the Windows operating system, including file navigation, application control, UI automation, and QA testing.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to automate Windows desktop via human-like mouse and keyboard input and UI Automation, with post-action verification for reliable control of programs, UI elements, windows, and files.5MIT