暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

openGauss 发布 MCP Server:携手AI Agent迈向智能数据库新时代

openGauss 2025-06-17
557

前言

在人工智能技术的演进中,大语言模型(LLM)展现了卓越的信息处理与逻辑推理能力。然而,其应用仍受制于数据实时性的挑战:传统 LLM 仅依赖预训练数据与固定上下文窗口进行静态推理,无法主动访问实时数据库、动态更新信息或与业务系统协同,导致结果滞后性和数据割裂性等问题。

随着 AI 从静态推理向动态交互演进,智能体(Agent)逐渐成为焦点。Agent 不仅能够调用 LLM 进行推理,还能访问数据库、调用 API、执行任务。然而,当前 LLM 和 Agent 之间缺乏标准化交互协议, 每个新数据源都需要自定义实现,使得真正互联的系统难以扩展。MCP(Model Context Protocol, 模型上下文协议)解决了这一挑战,MCP 是为 LLM 和 Agent 系统设计的标准化交互框架,使 LLM 可以与外部数据库、API 和工具进行高效交互。

MCP 原理解读:

MCP 是一种开放协议,它标准化了应用程序向 LLM 提供上下文的方式。可以将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。

总体架构:

MCP 的核心是客户端-服务器架构,其中主机应用程序可以连接到多个服务器:


  1. MCP 主机(Hosts):通过 MCP 访问数据的程序,如 Claude Desktop、各种 IDE 或 AI 工具。它们是 MCP 生态系统的入口点,负责向用户提供 AI 功能。 2.MCP 客户端(Clients):与 MCP 服务器保持 1:1 连接的协议客户端。它们用于处理 MCP 主机和服务器的通信细节,保持数据连接畅通。
  2. MCP 服务端(Servers):轻量级程序,每个 server 都会通过 MCP 暴露特定功能,e.g. openGauss 数据库向 agents 暴露数据库接口,用户可以通过 MCP 主机直接对数据库进行操作和分析,实现数据事实化。
  3. 本地数据源:MCP 服务器可以安全访问的您的计算机文件和服务。
  4. 远程服务:MCP 服务器可通过互联网(例如通过 API)连接到的外部系统.e.g. openGauss 数据库。

openGauss MCP 能力:

本次 openGauss 发布两项 MCP Server 服务:

  • openGauss MCP Server: 可以和 openGauss 数据库安全交互的 MCP Server,全面支持执行 SQL 语句,实现自然语言与数据库的无损交互。
  • DataKit MCP Server:可以帮助用户管理,安装,监控运维自己的 openGauss 数据库以及对应的物理机资源,完成数据库的运维,监控,迁移,开发,建模等复杂的操作,赋能 AI Agent 应用构建。

快速搭建 openGauss + MCP + LLM 的 AI Agent 应用:

环境准备

openGauss 部署文档 

https://docs.opengauss.org/zh/docs/latest/docs/InstallationGuide/InstallationGuide.html

  • 安装 python3 环境,安装 uv。
  • 部署并启动 openGauss。可以通过容器安装在 PC 启动 openGauss 数据库,建议选择容器镜像安装。
  • 下载 Claude Desktop 配合 MCP 协议进行问答操作。

获取 openGauss_mcp_server 源码

openGauss_mcp_server 源码

https://gitcode.com/opengauss/mcp-opengauss

配置参数

打开 Claude Desktop 设置,编辑配置文件。

Claude Desktop 配置页面

通过 Edit Config 增加配置

{


    "mcpServers": {


        "openGauss": {


            "command""uv",


            "args": [


            "--directory",


            "path/to/openGauss_mcp_server",


            "run",


            "server.py"


            ],


            "env": {


                "OPENGAUSS_HOST""localhost",


                "OPENGAUSS_PORT""8888",


                "OPENGAUSS_USER""your_username",


                "OPENGAUSS_PASSWORD""your_password",


                "OPENGAUSS_DBNAME""your_database"


            }


        }


    }


}



重新启动 Claude Desktop

可以看到可用 MCP Tool, 通过 openGauss server 执行 SQL 语句。

图 3 Claude Desktop 可用 MCP Tool

使用 Claude Desktop 通过 openGauss 进行问答

Claude Desktop 问答演示

MySQL → openGauss 智能迁移,AI Agent 快速构建

环境准备:

准备源端和目标端数据库

准备源端 MySQL 数据库服务,准备目标端 openGauss 数据库服务。

参考文档

https://docs.opengauss.org/zh/docs/7.0.0-RC1/docs/ToolandCommandReference/DataKit.html

搭建 DataKit 服务

参考文档 

https://gitcode.com/opengauss/openGauss-workbench

导入数据库

将第一步准备的 MySQL 和 openGauss 数据库添加到 DataKit 服务“实例管理”中。

准备迁移执行机

通过 DataKit 服务“数据迁移”功能,完成迁移执行机安装。

参考文档

https://gitcode.com/opengauss/openGauss-workbench/blob/master/plugins/data-migration/README.md

注意:使用 MCP 进行数据迁移前,建议先通过 DataKit 的 Web 页面熟悉迁移业务流程和操作,以便理解当前 MCP 服务支持的各项功能。

MCP 服务搭建

准备 Java 环境:由于 DataKit MCP 开发语言是 Java,因此需要在开发环境中准备 JDK21 环境和 maven3.8+环境,注意配置好环境变量。Linux 环境或 Windows 环境均可。

下载源码

获取 openGauss_mcp_server 源码

https://gitcode.com/opengauss/mcp-opengauss

使用 IDE 工具打开项目,注意 DataKit MCP 的项目根目录为 datakit_mcp_server 目录,此处以在 VSCode 中打开项目为例。

配置 DataKit 服务信息

修改项目中的 src/main/resources/application.properties 文件,配置其中的 DataKit 服务相关内容,其他配置项请勿修改。

根据环境准备搭建的 DataKit 服务,配置如下内容:


# Your DataKit server information



datakit.url=https://localhost:9494



datakit.user=admin



datakit.password=******




打包项目

配置完成后,在 datakit_mcp_server 目录下,使用mvn clean package -DskipTests
命令对 DataKit MCP 进行打包,打包成功后可以在项目目录下看到target/MigrationMcp-0.0.1-SNAPSHOT.jar
文件。

配置 MCP 服务

在 VSCode 中下载Roo Code
插件,并打开插件,点击设置
菜单,配置 DeepSeek 的 Api,配置完成后保存。


然后点击插件中的MCP Servers
菜单,打开 MCP 管理页面。进一步点击页面中的编辑项目MCP
按钮,则自动打开mcp.json
配置文件,修改文件内容如下:

   {


     "mcpServers": {


       "migration-mcp": {


         "command""java",


         "args": [


           "-jar",


           "./target/MigrationMcp-0.0.1-SNAPSHOT.jar"


         ],


         "disabled"false,


         "timeout"3600,


         "alwaysAllow": [


           "创建数据迁移任务",


           "目标端数据库包含的database列表",


           "数据迁移任务列表",


           "源端数据库列表",


           "启动数据迁移任务",


           "目标端数据库列表",


           "源端数据库包含的database列表"


         ]


       }


     }


   }



配置页面示例如下:


启动 MCP 服务

配置完成后,插件页面中会加载出migration-mcp
项目,点击项目菜单中的刷新按钮,即可启动或重启 DataKit MCP 服务。MCP 服务启动成功后,可以点击migration-mcp
项目中的下拉按钮,看到 MCP 服务支持的各项功能,成功示例如下:


使用 MCP 服务

在 Roo Code 插件的会话框中输入自然语言描述的 MCP 功能使用指令,即可使用 MCP 服务。使用示例如下:


支持的功能

  1. 查询 DataKit 服务中有哪些源端数据库,即 MySQL 数据库(参考 MCP 服务搭建:第 7 步示例);
  2. 查询 DataKit 服务中有哪些目标端数据库,即 openGauss 数据库;
  3. 查询 DataKit 服务中的某个 MySQL 数据库服务中有哪些 database;
  4. 查询 DataKit 服务中的某个 openGauss 数据库服务中有哪些 database;
  5. 创建一个数据迁移任务;
  6. 启动一个数据迁移任务;
  7. 查询 DataKit 服务中的所有数据迁移任务。

使用示例

你可以尝试使用类似如下自然语言指令,使用 MCP 服务的功能:

  1. 请帮我列出所有的源端和目标端数据库。
  2. 请帮我查询在 ip:port 的数据库中有哪些 database。
  3. 请创建一个 ip1:port1 的 db1 到 ip2:port2 的 db2 的数据迁移任务。
  4. 请帮我启动上一步创建的迁移任务。

注意事项

  1. DataKit MCP 服务,当前仅为 DataKit 数据迁移功能接入 MCP 服务的 demo,目前支持的功能有限,如感知迁移进度,添加源端和目标端数据库等功能,还需要使用 DataKit 的原有 Web 页面操作。
  2. DataKit MCP 服务启动需要在环境准备搭建的 DataKit 服务已启动的前提下,当 DataKit 重启时,DataKit MCP 也需要重新启动。
  3. DataKit MCP 长时间未使用时,建议使用前重启,避免 MCP 内部存储的 DataKit token 超时,引起的 MCP 服务不可用问题。
  4. DataKit MCP 服务的正常运行,依赖于环境准备过程中导入的 MySQL 和 openGauss 数据库,以及安装好的迁移执行机。
  5. DataKit MCP 打包过后,请勿修改 DataKit 服务的 admin 用户密码,否则需要重新从服务搭建的配置 DataKit 服务信息步骤开始重新配置,然后打包启动。

总结:

MCP 协议通过标准化接口,为 LLM 提供统一的数据访问通道,解决传统模型无法动态调用实时数据源的痛点。借助 openGauss 与 MCP 的结合,LLM 从静态知识库彻底转变为智能体(Agents),能够提供实时的数据查询插入和分析,在企业级 AI 中发挥重要价值。







最后修改时间:2025-06-17 10:38:54
文章转载自openGauss,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论