使用说明
项目简介
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 开发环境):
-
克隆仓库:
git clone https://github.com/Canner/wren-engine cd wren-engine -
构建项目: 由于仓库是 Java 项目,可能需要使用 Maven 或 Gradle 进行构建。根据仓库结构,可能是一个 Maven 项目,尝试使用 Maven 构建:
mvn clean install或者使用 Gradle (如果仓库包含 'build.gradle' 文件):
gradle build构建成功后,通常会在 'target' 或 'build/libs' 目录下生成可执行的 JAR 文件。
-
配置服务器: 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 -
运行服务器: 使用 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',具体取决于项目实现和文档。
基本使用方法
- 启动 Wren Engine 服务器。
- 在 MCP 客户端中,配置上述服务器连接信息。
- 客户端可以通过 MCP 协议与 Wren Engine 服务器通信,发送请求以:
- 查询和预览 MDL 中定义的数据模型 (Resources)。
- 执行验证规则 (Tools)。
- 获取查询计划 (Dry-Plan) 等。
- 具体 API 调用方式和参数,请参考 MCP 协议规范和 Wren Engine 的 API 文档 (如果仓库提供了相关文档链接)。
注意:
- 以上使用说明是基于仓库信息和代码推断的,实际使用步骤和配置可能需要参考 Wren Engine 的官方文档或更详细的仓库 README。
- 在实际部署和使用前,请仔细阅读仓库的文档,了解更全面的配置选项、安全设置和最佳实践。
信息
分类
商业系统