本项目是一个实现了 Model Context Protocol (MCP) 的服务器,专注于提供与生命周期评估 (LCA) 相关的服务能力,主要通过注册工具的方式供 LLM 客户端调用。

项目简介

本项目基于 MCP 协议标准构建,核心功能是托管并提供一系列用于 LCA 数据访问和计算的工具。LLM 客户端可以通过 MCP 协议调用这些工具,获取所需的上下文信息或执行特定操作。

主要功能点

  • LCA 数据检索工具: 提供工具用于搜索生命周期清单 (LCI) 数据库中的流程 (Processes) 和流 (Flows) 数据。
  • OpenLCA 集成工具: 提供工具通过 OpenLCA 的 IPC 接口进行交互,包括:
    • 列出可用的 LCA 影响评估方法 (Impact Methods)。
    • 列出可用的产品系统 (Product Systems)。
    • 对指定的产品系统和影响评估方法执行 LCA 计算,获取环境影响结果。
  • 通用计算工具: 提供一个简单的计算工具作为示例。
  • 支持多种传输协议: 支持 STDIO、SSE 和 StreamableHttp 等传输方式,方便与不同类型的 MCP 客户端集成。

安装步骤

本项目基于 Node.js 开发,推荐使用 Node.js 22 及以上版本。

  1. 安装 Node.js 和 npm: 如果未安装,请先安装。推荐使用 nvm 进行版本管理。
    # 安装 nvm 并安装 Node.js 22
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
    nvm install 22
    nvm use
  2. 克隆仓库并安装依赖:
    git clone https://github.com/linancn/tiangong-lca-mcp.git
    cd tiangong-lca-mcp
    npm install
  3. 配置环境变量: 部分工具需要外部服务(如 Supabase、其他 API、OpenLCA IPC)的连接信息。复制 '.env.example' 文件为 '.env',并根据你的环境配置其中的变量。例如,'BASE_URL', 'SUPABASE_ANON_KEY', 'X_API_KEY', 'X_REGION' 用于数据检索工具,'serverUrl' 用于 OpenLCA 工具(默认为 'http://localhost:8080')。

服务器配置 (供 MCP 客户端使用)

MCP 客户端需要知道如何连接并启动 MCP 服务器。主要的连接方式取决于你选择的传输协议。

  • STDIO 方式 (推荐): 客户端启动一个子进程来运行 MCP 服务器。客户端需要配置启动命令及其参数。

    {
      "name": "TianGong-MCP-Server",
      "command": "npx",
      "args": [
        "-p",
        "@tiangong-lca/mcp-server",
        "tiangong-lca-mcp-stdio"
      ],
      "transport": "stdio"
    }
    • 'name': 服务器的标识名称。
    • 'command': 用于启动服务器的可执行命令。
    • 'args': 传递给命令的参数列表。
    • 'transport': 使用的传输协议类型,STDIO 表示标准输入输出。
  • HTTP/SSE/StreamableHttp 方式: 客户端连接到一个已经运行的 MCP 服务器网络端点。通常需要一个网关(如 supergateway)来将 STDIO 协议转换为 HTTP。客户端需要配置服务器的 URL。

    • 首先需要按照仓库 README 启动 Supergateway 服务器(例如,在 'localhost:3001' 端口)。
    • 客户端配置示例(连接到 Supergateway 默认地址):
      {
        "name": "TianGong-MCP-Server-HTTP",
        "url": "http://localhost:3001",
        "transport": "sse" // 或 "streamableHttp",取决于Supergateway配置的路径和客户端支持
      }
    • 'url': MCP 服务器的 HTTP/S 地址。
    • 'transport': 使用的传输协议类型 (sse 或 streamableHttp)。注意:如果使用 StreamableHttp,客户端可能需要指定 '/mcp' 路径。

基本使用方法

MCP 服务器启动后(通过客户端启动子进程或独立启动),LLM 客户端将通过配置的传输协议与之建立连接。一旦连接成功,客户端可以通过 MCP 协议方法(如 'server_capabilities')发现服务器提供的工具及其功能描述。然后,客户端可以根据 LLM 的指令,调用特定的工具(例如 'tool_execute' 方法),并传递相应的输入参数。服务器执行工具逻辑(如调用外部 API 或 OpenLCA 接口),并将结果通过 MCP 响应返回给客户端,供 LLM 使用。

具体的工具调用细节和参数格式,客户端应通过 MCP 协议动态获取服务器的能力声明。

信息

分类

数据库与文件