项目简介
MoziChem-Hub 是一个基于 Model Context Protocol (MCP) 构建的模块化 Python 工具包,旨在将复杂的化学工程和计算化学工具封装为标准化的 MCP 服务器模块。通过这些模块,AI 代理、LLM(大型语言模型)以及其他客户端可以无缝地访问和调用专业的科学计算功能,从而弥补传统 AI 在可靠领域特定结果方面的空白。MoziChem-Hub 支持多种部署方式,包括本地运行、作为 REST API 部署,并提供与主流 MCP 客户端(如 Claude Desktop、VS Code)的集成能力。
主要功能点
- 热力学属性计算 (eos-models-mcp):提供基于状态方程 (EOS) 模型的气液相逸度计算、混合物逸度分析以及 EOS 根分析。
- 闪蒸计算 (flash-calculations-mcp):支持理想和非理想热力学模型的泡点/露点计算、闪蒸平衡计算。
- 热力学数据管理 (thermodynamic-properties-mcp):提供组件属性查询、数据可用性验证以及与 PyThermoDB 数据库的集成。
- 灵活的工具注册:允许开发者使用 '@app.tool' 装饰器将任何 Python 函数注册为 MCP 工具,并自动生成详细的文档和类型验证。
- 可定制的参考数据:支持通过字符串或文件配置自定义热力学数据库,以扩展或集成外部数据源。
- 多部署选项:可作为独立的 MCP 服务器运行,或通过 FastAPI 部署为统一的 RESTful API。
安装步骤
- 克隆仓库:
git clone https://github.com/sinagilassi/mozichem-hub cd mozichem-hub - 安装依赖:
或者使用 'uv' (推荐) 进行更快的安装:pip install -r requirements.txtuv pip install -r requirements.txt
服务器配置
MoziChem-Hub 的 MCP 服务器通过 JSON-RPC 协议与客户端通信。客户端需要配置服务器的启动命令及其参数。以下是针对 Claude Desktop 和 VS Code 客户端的示例配置信息。请将 'C:\ABSOLUTE\PATH' 或 '/absolute/path/' 替换为 'mozichem-hub' 仓库的绝对路径。
-
Claude Desktop 客户端配置示例 (位于 '%APPDATA%\Claude\claude_desktop_config.json' 或 '~/Library/Application Support/Claude/claude_desktop_config.json'):
{ "mcpServers": { "mozichem-eos-models": { "command": "uv", "args": [ "--directory", "C:\\ABSOLUTE\\PATH", // 替换为 mozichem-hub 仓库的绝对路径 "run", "examples/mcp/eos-models-mcp.py" ] }, "mozichem-flash-calc": { "command": "uv", "args": [ "--directory", "C:\\ABSOLUTE\\PATH", // 替换为 mozichem-hub 仓库的绝对路径 "run", "examples/mcp/flash-calculations-mcp.py" ] }, "mozichem-thermo-db": { "command": "uv", "args": [ "--directory", "C:\\ABSOLUTE\\PATH", // 替换为 mozichem-hub 仓库的绝对路径 "run", "examples/mcp/thermodynamic-properties-mcp.py" ] } } }- uv 命令参数说明:
- '--directory <path>':指定包含 'pyproject.toml' 的项目目录。
- 'run <script_name.py>':在项目虚拟环境中执行指定的 Python 脚本。
- 直接使用 Python 命令 (备选):
{ "mcpServers": { "mozichem-eos-models": { "command": "python", "args": ["/absolute/path/to/mozichem-hub/examples/mcp/eos-models-mcp.py"], // 替换为脚本的绝对路径 "env": { "PYTHONPATH": "/absolute/path/to/mozichem-hub" // 替换为 mozichem-hub 仓库的绝对路径 } } } }
- uv 命令参数说明:
-
VS Code MCP 服务器设置示例 (在 VS Code 设置或工作区配置中):
{ "mcpServers": { "mozichem-hub": { "command": "uv", "args": [ "--directory", "/absolute/path/to/mozichem-hub/", // 替换为 mozichem-hub 仓库的绝对路径 "run", "examples/mcp/eos-models-mcp.py" ] } } }请注意:务必使用绝对路径进行配置,例如 Windows 系统为 'C:\Users\YourName\Projects\mozichem-hub',macOS/Linux 系统为 '/home/username/projects/mozichem-hub'。
基本使用方法
配置完成后,重启您的 MCP 客户端(如 Claude Desktop 或 VS Code),即可在客户端界面中发现并使用 MoziChem-Hub 提供的工具。
-
启动单个 MCP 服务器 (例如热力学模型服务器):
from mozichem_hub.prebuilt import create_mozichem_mcp # 创建热力学模型 MCP 服务器 eos_models_mcp = create_mozichem_mcp(name="eos-models-mcp") # 运行服务器,使用 stdio 传输协议 if __name__ == "__main__": eos_models_mcp.run(transport='stdio') -
作为 REST API 部署多个 MCP 模块:
import uvicorn from mozichem_hub import create_api from mozichem_hub.prebuilt import create_mozichem_mcp # 创建 MCP 模块实例 eos_models_mcp = create_mozichem_mcp(name="eos-models-mcp") flash_calculations_mcp = create_mozichem_mcp(name="flash-calculations-mcp") thermodynamic_properties_mcp = create_mozichem_mcp(name="thermodynamic-properties-mcp") # 创建统一的 API mcp_api = create_api( mcps=[eos_models_mcp, flash_calculations_mcp, thermodynamic_properties_mcp], title="MoziChem Hub API", description="API for MoziChem Hub with multiple MCPs." ) # 运行 API 服务器,通过 HTTP 协议访问 if __name__ == "__main__": uvicorn.run(mcp_api, host="127.0.0.1", port=8000)部署为 REST API 后,您可以通过浏览器访问 'http://127.0.0.1:8000/docs' 查看 OpenAPI 交互文档。
-
使用自定义工具构建 MCP 服务器: 您可以在 'MoziChemMCP' 实例上使用 '@app.tool' 装饰器定义自己的功能。
from mozichem_hub.docs import MoziChemMCP app = MoziChemMCP(name="custom-tools-mcp") @app.tool(name="multiply") def multiply(a: int, b: int) -> int: """乘法运算""" return a * b if __name__ == "__main__": app.run(transport="stdio")
信息
分类
AI与计算