项目简介

reDB Node 是一个强大的开源数据基础设施平台,旨在简化对各种数据存储、流和环境的访问、复制和控制。它提供一个统一的数据层,跨越云、数据库和本地系统。其核心亮点之一是支持Model Context Protocol (MCP),允许将数据资源和操作安全地暴露给LLM,从而实现AI原生的数据访问和自动化。

主要功能点

  • 统一数据访问: 连接SQL/NoSQL/向量/图/流等多种数据源,提供统一的访问层。
  • 实时数据复制: 基于CDC(变更数据捕获)实现跨数据库的实时数据同步。
  • AI原生集成 (MCP 服务器): 将数据库表、流数据、API等抽象为MCP资源和工具,供LLM安全调用和使用。
  • 数据映射与转换: 定义数据转换规则,支持数据复制、CDC复制和MCP资源定义。
  • 流处理集成: 与Kafka, MQTT, Kinesis等消息队列集成,实现流数据与数据库的连接。
  • 分布式网络: 构建网格化覆盖网络,支持多节点部署和数据分布。
  • 模式管理与版本控制: 对数据库模式进行版本化管理和部署。
  • Web控制台与CLI: 提供现代化的Web界面和交互式命令行工具进行管理。

安装步骤

  1. 环境准备: 确保您的系统已安装以下软件:
    • Go 1.23+
    • Rust (stable 版本)
    • protoc
    • PostgreSQL 17+
    • Redis
  2. 克隆仓库: 打开您的终端或命令行工具,执行以下命令:
    git clone https://github.com/redbco/redb-open.git
    cd redb-open
  3. 构建: 构建reDB Node服务和组件。
    make dev-tools # (可选)构建Go开发工具
    make local     # 构建Go服务和Rust网格组件
  4. 复制配置: 将示例配置文件复制到运行目录。
    cp ./sample_config/config.yaml ./bin
    cd ./bin
  5. 初始化: 运行初始化命令。此步骤会引导您配置PostgreSQL连接、创建生产数据库和用户、生成节点密钥等。
    ./redb-node --initialize
  6. 启动服务: 初始化完成后,您可以启动reDB Node作为Supervisor服务。
    ./redb-node &
    • 这将以后台模式启动reDB Node,作为所有微服务的协调者。

MCP服务器配置

为了让您的MCP客户端(如Cline、Claude Desktop等)能够连接到reDB Node提供的MCP服务器,您需要配置客户端以正确启动并连接MCP服务器组件。以下是MCP客户端所需的配置信息示例(JSON格式):

{
  "name": "My reDB MCP Server",
  "command": "./bin/redb-node",
  "args": [
    "--service=mcpserver",
    "--config=./bin/config.yaml",
    "--port=9000",
    "--instance-group=default"
  ],
  "description": "连接到由reDB Node提供的MCP服务器实例,该实例托管了AI可用的数据资源和工具。",
  "notes": "此配置指示MCP客户端以'mcpserver'模式启动reDB Node可执行文件。确保reDB Node的Supervisor服务正在运行,并且您已通过'redb-cli mcpservers add'命令创建并启动了名为'my-mcp-server'的MCP服务器实例。MCP客户端连接的端口(例如9000)必须与您在reDB中创建MCP服务器时指定的端口一致。'--service=mcpserver'参数确保reDB Node作为独立的MCP服务器实例运行,以便直接与LLM客户端通信。"
}

配置项说明:

  • 'name': 您为MCP服务器实例定义的名称。
  • 'command': reDB Node的可执行文件路径,通常为'./bin/redb-node'。
  • 'args': 启动MCP服务器所需的命令行参数列表。
    • '--service=mcpserver': 关键参数,指示 'redb-node' 可执行文件以MCP服务器模式运行其内部的 'mcpserver' 微服务。
    • '--config=./bin/config.yaml': 指定reDB Node的配置文件路径。这个文件包含了数据库连接、密钥管理等重要信息,是MCP服务器获取其管理资源元数据的基础。
    • '--port=9000': 指定MCP服务器监听的外部端口。这个端口号必须与您通过reDB CLI创建MCP服务器时指定的端口(例如 'redb-cli mcpservers add --name my-mcp-server --port 9000')保持一致。
    • '--instance-group=default': (可选) 如果reDB Node部署在多实例模式下并使用了特定的实例组,这里需要指定相应的组ID。对于大多数单实例部署,可以使用 'default'。
  • 'description': 对此MCP服务器的简要描述,帮助用户理解其功能。
  • 'notes': 提供重要的配置说明和注意事项,帮助用户进行故障排除或特殊设置。

基本使用方法

以下步骤将指导您如何使用reDB CLI创建并配置一个MCP服务器,使其能将您的数据库数据暴露给AI代理。

  1. 通过CLI连接到reDB Node: 在 './bin' 目录下,创建您的CLI配置文件并登录。
    cd ./bin
    ./redb-cli profiles create default --hostname localhost:8080 # 创建默认CLI配置文件
    ./redb-cli auth login --profile default                      # 登录到CLI
  2. 连接数据库: 连接您的PostgreSQL数据库实例。替换 '--string' 中的连接字符串。
    ./redb-cli databases connect --string "postgresql://user:password@localhost:5432/testdb" --name "pg"
  3. 创建数据映射: 创建一个数据映射,指定您希望暴露的数据库表(例如 'pg.users')作为MCP资源的目标(例如 'mcp://users_res')。
    ./redb-cli mappings add --scope table --source pg.users --target mcp://users_res
    • 这将创建一个从'pg'数据库的'users'表到名为'users_res'的MCP资源的映射。
  4. 创建MCP服务器实例: 在reDB Node内部创建一个名为 'my-mcp-server' 的MCP服务器实例,并指定它监听的外部端口(例如 '9000')。
    ./redb-cli mcpservers add --name my-mcp-server --port 9000
  5. 创建MCP资源: 创建一个名为 'users_res' 的MCP资源,并将其绑定到之前定义的数据映射。
    ./redb-cli mcpresources add --name users_res --mapping pg_users_to_mcp_users_res
  6. 将MCP资源附加到MCP服务器: 将 'users_res' 资源附加到 'my-mcp-server' MCP服务器,使其对连接到该服务器的LLM可见。
    ./redb-cli mcpresources attach --resource users_res --server my-mcp-server
  7. 创建MCP工具: 创建一个名为 'query_users' 的MCP工具,同样绑定到相同的数据映射。LLM可以通过此工具调用查询数据的外部功能。
    ./redb-cli mcptools add --name query_users --mapping pg_users_to_mcp_users_res
  8. 将MCP工具附加到MCP服务器: 将 'query_users' 工具附加到 'my-mcp-server' MCP服务器。
    ./redb-cli mcptools attach --tool query_users --server my-mcp-server
    现在,您的MCP服务器已在reDB Node上运行,并且配置了 'users_res' 资源和 'query_users' 工具。您可以使用兼容MCP的LLM客户端连接到 'localhost:9000' (或您配置的任何端口和主机) 并开始与这些资源和工具进行交互。

信息

分类

开发者工具