项目简介

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。

安装步骤

  1. 克隆仓库
    git clone https://github.com/sinagilassi/mozichem-hub
    cd mozichem-hub
  2. 安装依赖
    pip install -r requirements.txt
    或者使用 'uv' (推荐) 进行更快的安装:
    uv 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 仓库的绝对路径
            }
          }
        }
      }
  • 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 提供的工具。

  1. 启动单个 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')
  2. 作为 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 交互文档。

  3. 使用自定义工具构建 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与计算