基于 Spring AI MCP Server 的 openGauss 数据库工具服务,支持通过 MCP 客户端以 stdio 方式连接,并调用数据库相关工具完成表结构查看、统计信息查询与 SQL 执行。
- 基于 MCP 标准协议,支持
stdio传输 - 内置 openGauss 数据库连接能力(JDBC)
- 提供 5 个数据库工具:
list_tables:列出当前 schema 下的表、视图、物化视图describe_table:查看表结构(列、类型、主键、索引、注释、默认值)get_table_stats:查看表统计信息(估算行数、分析时间、表大小、索引大小)run_select:执行只读 SQL(仅SELECT / WITH / EXPLAIN)execute_sql:执行 DDL / DML SQL
- 对只读 SQL 做了语句类型与关键字校验,降低误写风险
- JDK 17+
- Maven 3.9+
- openGauss 数据库(可访问)
git clone https://github.com/Sanjeever/opengauss-mcp
cd opengauss-mcpmvn clean package构建成功后可执行包路径:
target/opengauss-mcp.jar
按以下步骤即可在 MCP Inspector 中可视化调试 opengauss 服务:
- 构建项目
mvn clean package- 复制配置模板
cp mcp.json.template mcp.json- 修改
mcp.json中env的数据库连接信息
请根据你的 openGauss 实例更新以下环境变量:
OPENGAUSS_HOSTOPENGAUSS_PORTOPENGAUSS_DATABASEOPENGAUSS_SCHEMAOPENGAUSS_USERNAMEOPENGAUSS_PASSWORD
- 启动 Inspector 并加载
opengauss服务
npx @modelcontextprotocol/inspector --config ./mcp.json --server opengaussjava -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -jar target/opengauss-mcp.jar该服务使用 stdio,客户端通常通过命令启动方式接入。
{
"mcpServers": {
"opengauss": {
"command": "java",
"args": [
"-Dfile.encoding=UTF-8",
"-Dsun.stdout.encoding=UTF-8",
"-Dsun.stderr.encoding=UTF-8",
"-jar",
"/absolute/path/to/opengauss-mcp/target/opengauss-mcp.jar"
],
"env": {
"OPENGAUSS_HOST": "127.0.0.1",
"OPENGAUSS_PORT": "5432",
"OPENGAUSS_DATABASE": "postgres",
"OPENGAUSS_SCHEMA": "public",
"OPENGAUSS_USERNAME": "your_username",
"OPENGAUSS_PASSWORD": "your_password"
}
}
}
}- 入参:无
- 返回:当前 schema 下对象列表(
object_name、object_type)
- 入参:
tableName - 返回:字段名、数据类型、是否主键、索引、注释、默认值等信息
- 约束:表名仅允许合法标识符(字母/数字/下划线)
- 入参:
tableName - 返回:估算行数、最近分析时间、表大小、索引大小
- 入参:
sql - 允许:
SELECT/WITH/EXPLAIN - 拒绝:写操作关键字、多语句执行
- 入参:
sql - 能力:执行 DDL/DML,返回受影响行数或结果集
请检查:
OPENGAUSS_HOST、OPENGAUSS_PORT、OPENGAUSS_DATABASE、OPENGAUSS_SCHEMA、OPENGAUSS_USERNAME、OPENGAUSS_PASSWORD是否正确- 数据库实例是否可达(网络、端口、防火墙)
- 账号是否具有目标 schema 的权限
run_select 只允许只读查询。如需执行建表、更新、删除等操作,请使用 execute_sql。