mcp服务器cantera
围绕Cantera的MCP服务器,便于LLM用于精确的热力学和输运性质、平衡和化学动力学计算。
概述
这个MCP(模型上下文协议)服务器提供了一个到Cantera的接口,Cantera是一个用于化学平衡和动力学问题的强大的开源软件套件。该服务器使LLM能够使用Cantera对燃烧、平衡和反应途径分析进行准确的模拟。
特性
- 热力学性质:获取包括焓、熵、热容和吉布斯能在内的综合属性
- 输运性质:计算粘度、导热系数、扩散系数和普朗特数
- 平衡计算:计算各种热力学碱(TP、HP、SP、UV)的平衡组成
- 燃烧分析:计算燃料氧化器系统的绝热火焰温度
- 金属燃烧:金属-空气/氧气燃烧的多相平衡(Fe、Al、Mg、Ti、Zn等)
- 动力学分析:用于反应速率和途径分析的状态“实验室工作台”
- 机构支架:内置和自定义机制文件支持,具有自动解析功能
- LLM友好:旨在通过MCP协议与语言模型无缝协作
安装
先决条件
- Python 3.10或更高版本
- 紫外线 包管理器
如果你没有安装uv,你可以用以下方式安装:
# On macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"来自PyPI
# Using uv
uv pip install mcp-server-cantera
# Using pip
pip install mcp-server-cantera来源
# Clone the repository
git clone https://github.com/StepFunctionLLC/mcp-server-cantera.git
cd mcp-server-cantera
# Install the package
uv pip install -e .具有发展依赖性
uv pip install -e ".[dev]"需求
- Python 3.10或更高版本
- Cantera 3.0.0或更高版本
- MCP 0.9.0或更高版本
仓库结构
存储库组织如下:
src/:MCP服务器的源代码(包括捆绑的机制文件)examples/:显示完整用户提示和服务器响应的综合降价示例scripts/:示例执行过程中生成的Python脚本(例如绘图脚本)output/:示例生成的图形和数据文件tests/:服务器功能的单元测试
综合示例
除了下面的片段 examples/ 目录包含完整的对话日志和常见任务的输出。这些示例演示了用户和服务器之间的“对话”,包括生成的图表和分析。
用法
运行服务器
可以使用命令行界面启动服务器:
mcp-server-cantera配置MCP客户端
要将此MCP服务器与MCP兼容的客户端一起使用,请将其添加到客户端的配置文件中。
如果从PyPI安装 (推荐),使用 uvx 直接运行服务器:
______________________________________________________________________
克劳德桌面版
macOS: 编辑 ~/Library/Application Support/Claude/claude_desktop_config.json
窗户: 编辑 %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"cantera": {
"command": "uvx",
"args": [
"mcp-server-cantera"
]
}
}
}更新配置文件后,重新启动Claude Desktop以使更改生效。
______________________________________________________________________
光标
macOS: 编辑 ~/.cursor/mcp.json
窗户: 编辑 %USERPROFILE%\.cursor\mcp.json
{
"mcpServers": {
"Cantera": {
"command": "uvx",
"args": [
"mcp-server-cantera"
]
}
}
}更新配置文件后,重新启动Cursor以使更改生效。
______________________________________________________________________
Gemini CLI
编辑 ~/.gemini/settings.json (如果不存在,则创建它):
{
"mcpServers": {
"Cantera": {
"command": "uvx",
"args": [
"mcp-server-cantera"
]
}
}
}Gemini CLI将在下次运行时自动连接到服务器。
______________________________________________________________________
反重力(VS代码扩展)
Antigravity从与Gemini CLI相同的文件中读取MCP服务器配置:
路径: ~/.gemini/settings.json
{
"mcpServers": {
"Cantera": {
"command": "uvx",
"args": [
"mcp-server-cantera"
]
}
}
}重新加载VS Code或Antigravity扩展以获取更改。
______________________________________________________________________
可用工具
热力学和输运性质
get_mixture_properties
获得实验室台架混合物的全面热力学和输运特性。
退货: 温度、压力、密度、焓、熵、Cp、Cv、γ、粘度、导热系数、声速和摩尔分数。
get_species_properties
从机制文件中获取特定物种的详细热力学性质。包括分子量、组成、Cp、Cv、焓、熵和吉布斯能。
get_species_thermo
使用自动数据库回退计算特定物种的热力学性质。首先搜索GRI Mech 3.0(快速、常见的燃烧物种),然后返回NASA气体数据库以获得更广泛的覆盖范围(约1000多种物种,包括稀有气体、金属等)。
参数:
species--化学式或物种名称(例如,“CH4”、“CO2”、“He”、“Xe”)temperature_k--温度(开尔文)pressure_bar--压力(bar)(默认值:1.0)
check_species_availability
检查哪个数据库包含特定物种。可用于在计算前规划模拟和验证物种可用性。搜索GRI Mech 3.0和NASA气体数据库。
参数:
species_list--要检查的物种名称列表(例如。,['CH4', 'He', 'Xe'])
______________________________________________________________________
平衡计算
equilibrate
计算气体混合物的平衡组成。
基础:
TP--恒温恒压HP--恒定焓和压力(绝热)SP--恒定熵和压力(等熵)UV--恒定的内部能量和体积
退货: 平衡态、热力学变化(ΔH、ΔG)和平衡摩尔分数。
______________________________________________________________________
燃烧分析
calculate_adiabatic_flame_temperature
计算燃料与氧化剂燃烧的绝热火焰温度。
参数:
mechanism--Cantera机制文件(例如。,gri30.yaml)fuel--燃料成分(例如。,CH4:1或H2:1)oxidizer--氧化剂成分(例如。,O2:1, N2:3.76空气)equivalence_ratio--φ=1化学计量比,φ\1富initial_temperature--初始温度(开尔文)pressure--压力(帕斯卡)
calculate_metal_combustion_equilibrium
使用多相平衡计算金属-氧气/空气燃烧的平衡温度和产物。
支持的金属: Fe、Al、Mg、Ti、Zn、Cu、Cr、Mn、Ni、Co等。
该工具根据NASA热力学数据库动态构建机制(nasa_gas.yaml 和 nasa_condensed.yaml)并执行多相平衡以确定:
- 绝热火焰温度
- 气相平衡组成
- 冷凝相(固体/液体氧化物)产品
参数:
metal--金属元素符号(例如。,Fe,Al,Mg)oxidizer—O2(纯氧)或airequivalence_ratio--金属与化学计量比(默认值:1.0)initial_temperature--初始温度(开尔文)(默认值:298.15)pressure--压力单位为帕斯卡(默认值:101325)
______________________________________________________________________
实验室工作台(状态动力学分析)
“实验室工作台”为混合物提供有状态的存储,实现多步动力学和路径分析。
create_lab_mixture
在实验室工作台上创建一个命名的混合物,以便后续分析。
{
"name": "flame_1",
"mechanism": "gri30.yaml",
"temperature": 1500,
"pressure": 101325,
"composition": "CH4:0.05, O2:0.1, N2:0.85"
}list_lab_mixtures
列出目前存放在实验室工作台上的所有混合物及其状态。
get_reaction_rates
获得在指定混合物中发生的最快反应。有助于了解在当前条件下哪些反应占主导地位。
参数:
name--实验室工作台混合物标识符threshold--报告的最小净进度(kmol/m³/s)
get_species_production_contributors
确定哪些反应正在创造或消耗特定物种。对通路分析至关重要。
示例问题:
- “不从哪里来?”
- “什么反应会消耗OH?”
参数:
name--实验室工作台混合物标识符species--要分析的物种(例如。,OH,NO,CO2)limit--要显示的最高反应数(默认值:5)
______________________________________________________________________
反应堆网络工具
run_batch_reactor
模拟恒压(理想气体)间歇反应器随时间的变化。使用此功能查看燃烧或其他化学反应过程中温度和成分的演变。
参数:
name--实验室工作台混合物标识符duration--积分时间(秒)(例如,0.01表示10ms)steps--要报告的时间点数(默认值:10)
注: 模拟后,实验室工作台上的混合物状态更新为最终反应状态。
compute_ignition_delay
计算混合气的自燃延迟时间。定义为温升最陡的时间点(dT/dT为最大值)。这通常用于表征燃料反应性和验证化学动力学机制。
参数:
name--实验室工作台混合物标识符max_time--放弃前的最长模拟时间(默认值:1.0秒)
注: 此工具不会更新实验室台架混合物状态,以保留原始混合物用于其他测试。
______________________________________________________________________
机制管理
list_available_mechanisms
列出所有可用的Cantera机制文件,包括内置和自定义机制。
内置机制:
gri30.yaml--天然气燃烧GRI Mech 3.0(53种,325个反应)h2o2.yaml--氢氧燃烧(9种,28个反应)air.yaml--简单空气模型(N2、O2、Ar)nasa_gas.yaml--美国国家航空航天局气体热力学数据库liquidvapor.yaml--纯物质液汽平衡
自定义机制: 将YAML机制文件放入 mechanisms/ 存储库根目录下的文件夹,用于自动发现。
list_species_in_mechanism
列出机制文件中定义的所有物种,按主要元素组织。
______________________________________________________________________
示例用例
1.氢气-空气燃烧分析
计算空气中化学计量氢气燃烧的绝热火焰温度:
{
"tool": "calculate_adiabatic_flame_temperature",
"arguments": {
"mechanism": "h2o2.yaml",
"fuel": "H2:1",
"oxidizer": "O2:1, N2:3.76",
"equivalence_ratio": 1.0,
"initial_temperature": 298.15,
"pressure": 101325
}
}2.铁-空气燃烧(金属燃料)
计算空气中化学计量铁燃烧的绝热火焰温度,包括固体氧化物产物:
{
"tool": "calculate_metal_combustion_equilibrium",
"arguments": {
"metal": "Fe",
"oxidizer": "air",
"equivalence_ratio": 1.0,
"initial_temperature": 298.15,
"pressure": 101325
}
}这将返回:
- 绝热火焰温度(铁/空气为~1800-2000K)
- 气相产物(N2、过量O2、微量氧化物)
- 凝聚相产物(Fe2O3、Fe3O4、FeO)
3.铝氧燃烧
纯氧中的高能铝燃烧:
{
"tool": "calculate_metal_combustion_equilibrium",
"arguments": {
"metal": "Al",
"oxidizer": "O2",
"equivalence_ratio": 1.0
}
}4.甲烷-空气性质和平衡
获取甲烷-空气混合物的传输特性:
{
"tool": "get_transport_properties",
"arguments": {
"mechanism": "gri30.yaml",
"temperature": 500,
"pressure": 101325,
"composition": "CH4:1, O2:2, N2:7.52"
}
}5.反应途径分析
分析燃烧混合物中NO的形成:
# Step 1: Create mixture on lab bench
{
"tool": "create_lab_mixture",
"arguments": {
"name": "combustor",
"mechanism": "gri30.yaml",
"temperature": 1800,
"pressure": 101325,
"composition": "CH4:0.05, O2:0.1, N2:0.85"
}
}
# Step 2: Analyze NO production pathways
{
"tool": "get_species_production_contributors",
"arguments": {
"name": "combustor",
"species": "NO",
"limit": 5
}
}6.不同条件下的平衡
计算恒定焓和压力下的平衡(绝热):
{
"tool": "equilibrate",
"arguments": {
"mechanism": "gri30.yaml",
"temperature": 1500,
"pressure": 101325,
"composition": "CH4:1, O2:2, N2:7.52",
"basis": "HP"
}
}7.间歇反应器模拟
模拟燃料-空气混合物在间歇式反应器中随时间的变化:
# Step 1: Create mixture on lab bench
{
"tool": "create_lab_mixture",
"arguments": {
"name": "reactor",
"mechanism": "gri30.yaml",
"temperature": 1200,
"pressure": 101325,
"composition": "CH4:1, O2:2, N2:7.52"
}
}
# Step 2: Run batch reactor simulation
{
"tool": "run_batch_reactor",
"arguments": {
"name": "reactor",
"duration": 0.001,
"steps": 10
}
}8.点火延迟计算
计算自燃延迟时间——对发动机爆震和安全分析至关重要:
# Step 1: Create stoichiometric H2/air mixture at elevated temperature
{
"tool": "create_lab_mixture",
"arguments": {
"name": "ignition_test",
"mechanism": "h2o2.yaml",
"temperature": 1000,
"pressure": 101325,
"composition": "H2:2, O2:1, N2:3.76"
}
}
# Step 2: Compute ignition delay
{
"tool": "compute_ignition_delay",
"arguments": {
"name": "ignition_test",
"max_time": 0.1
}
}______________________________________________________________________
自定义机制
该包附带了以下作为包数据捆绑的机制文件:
nasa_gas.yaml--金属燃烧和物种热(气相物种)所需nasa_condensed.yaml--金属燃烧所需(固体/液体物质)JetSurf2.yaml--喷气燃料替代机制
要使用其他自定义机制文件,请执行以下操作:
- 将YAML机制文件放入
mechanisms/已安装包内的文件夹 - 在任何工具中按文件名引用它们(例如。,
"mechanism": "JetSurf2.yaml") - 服务器自动解析完整路径
______________________________________________________________________
发展
运行测试
uv run pytest代码格式化
uv run black src/代码检查
uv run ruff check src/类型检查
uv run mypy src/贡献
欢迎投稿!请随时提交拉取请求。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
关于坎特拉
Cantera是一套开源工具,用于解决涉及化学动力学、热力学和传输过程的问题。有关更多信息,请访问 采石场.org.
致谢
此MCP服务器基于以下内容构建:
