使用说明

项目简介

Wren Engine 是一个基于 Model Context Protocol (MCP) 构建的语义引擎,旨在为 LLM 客户端和 AI Agent 提供强大的后端支持。它充当 MCP 服务器,专注于企业级应用场景,通过语义层连接 LLM 与企业数据,实现精确、可信赖的数据访问和业务逻辑执行。

主要功能点

  • 资源管理 (Resources): 通过 Modeling Definition Language (MDL) 托管和管理企业数据模型,支持连接多种数据源 (如 DuckDB),使 AI Agent 能够理解和访问结构化数据。
  • 数据访问能力: 提供基于 MDL 定义的数据模型的查询和预览功能,允许 AI Agent 以语义化的方式检索企业数据,而非原始数据访问。
  • 查询规划与验证: 具备 SQL 查询的 Dry-Run (预执行) 和 Dry-Plan (执行计划) 功能,帮助开发者理解 AI Agent 的数据访问逻辑,并进行查询验证。
  • 灵活配置: 支持动态配置数据源类型、内存限制等服务器参数,以适应不同的部署环境和性能需求。
  • 语义层: 构建在 MCP 协议之上,提供语义层抽象,使 AI Agent 能够理解业务术语和数据模型,而非仅仅是数据库的原始结构。

安装步骤

Wren Engine 仓库本身主要包含服务器的源代码和测试用例。作为一个后端服务,其安装步骤通常涉及构建可执行的服务器程序并进行配置。

由于仓库只提供了代码,没有直接提供预编译的安装包或详细的安装文档,以下是一个基于仓库信息推断的大致安装步骤 (可能需要 Java 开发环境)

  1. 克隆仓库

    git clone https://github.com/Canner/wren-engine
    cd wren-engine
  2. 构建项目: 由于仓库是 Java 项目,可能需要使用 Maven 或 Gradle 进行构建。根据仓库结构,可能是一个 Maven 项目,尝试使用 Maven 构建:

    mvn clean install

    或者使用 Gradle (如果仓库包含 'build.gradle' 文件):

    gradle build

    构建成功后,通常会在 'target' 或 'build/libs' 目录下生成可执行的 JAR 文件。

  3. 配置服务器: Wren Engine 的配置可以通过 'config.properties' 文件或环境变量进行设置。根据 'TestConfigResource.java' 等测试代码,关键配置包括:

    • 'wren.directory': MDL 文件存储目录。
    • 'wren.datasource.type': 数据源类型,例如 'DUCKDB'。
    • 数据源连接相关的配置(例如 DuckDB 的初始化 SQL 路径等)。

    你需要创建一个 'config.properties' 文件,并根据你的环境配置这些参数。例如,在 'wren-engine' 根目录下创建 'config/config.properties' 文件,并添加类似内容:

    node.environment=production
    http-server.http.port=8080
    wren.directory=/path/to/mdl_directory
    wren.datasource.type=DUCKDB
  4. 运行服务器: 使用 Java 命令运行构建生成的 JAR 文件。命令可能类似于:

    java -jar target/wren-engine-server.jar server config/config.properties

    具体的 JAR 文件名和路径需要根据实际构建结果调整。

服务器配置 (MCP 客户端配置)

MCP 客户端需要配置连接 Wren Engine 服务器的信息。以下是一个 JSON 格式的 MCP 服务器配置示例,基于仓库信息推断:

{
  "serverName": "wren-engine-server",
  "command": "java",
  "args": [
    "-jar",
    "/path/to/wren-engine-server.jar",  // 请替换为实际的 JAR 文件路径
    "server",
    "/path/to/config/config.properties" // 请替换为实际的配置文件路径
  ],
  "protocol": "json-rpc", // 默认 MCP 协议为 JSON-RPC
  "transport": "stdio"   // 默认传输协议为 Stdio,也可能支持 SSE, WebSocket,具体参考项目文档
  // 其他可选配置,如 catalog, schema 等,如果 Wren Engine 支持,可以在这里配置
}

参数注释:

  • 'serverName': MCP 服务器的名称,客户端用于标识连接。
  • 'command': 启动 MCP 服务器的命令,这里是 'java' 解释器。
  • 'args': 传递给 'command' 的参数列表:
    • '-jar': 指定要运行的 JAR 文件。
    • '/path/to/wren-engine-server.jar': [请替换为实际的 JAR 文件路径] Wren Engine 服务器 JAR 文件的绝对路径。
    • 'server': 指定 Wren Engine 服务器的运行模式 (根据 'wren-server/src/main/java/io/wren/server/WrenServer.java' 代码推断)。
    • '/path/to/config/config.properties': [请替换为实际的配置文件路径] 'config.properties' 配置文件的绝对路径。
  • 'protocol': 使用的 MCP 协议,通常为 'json-rpc'。
  • 'transport': 客户端与服务器通信的传输协议,默认为 'stdio' (标准输入输出流)。Wren Engine 也可能支持 'sse' (Server-Sent Events) 或 'websocket',具体取决于项目实现和文档。

基本使用方法

  1. 启动 Wren Engine 服务器。
  2. 在 MCP 客户端中,配置上述服务器连接信息。
  3. 客户端可以通过 MCP 协议与 Wren Engine 服务器通信,发送请求以:
    • 查询和预览 MDL 中定义的数据模型 (Resources)。
    • 执行验证规则 (Tools)。
    • 获取查询计划 (Dry-Plan) 等。
  4. 具体 API 调用方式和参数,请参考 MCP 协议规范和 Wren Engine 的 API 文档 (如果仓库提供了相关文档链接)。

注意

  • 以上使用说明是基于仓库信息和代码推断的,实际使用步骤和配置可能需要参考 Wren Engine 的官方文档或更详细的仓库 README。
  • 在实际部署和使用前,请仔细阅读仓库的文档,了解更全面的配置选项、安全设置和最佳实践。

信息

分类

商业系统