SuperAPI AI 工具集

alibabacloud-hologres-mcp-server

Hologres MCP Server 是阿里云提供的开源工具,作为 AI 智能体与 Hologres 数据库之间的通用接口。它让 AI 智能体能够无缝连接 Hologres,获取数据库元数据并执行 SQL 操作。该服务器支持本地文件、PIP 安装和 Streamable HTTP 传输三种部署方式,提供丰富的工具集,涵盖 SQL 执行(SELECT、DML、DDL)、表统计信息收集、查询计划获取、存储过程调用、MaxCompute 外部表创建、元数据查询(schema、表、视图、外部表)、图表生成、查询性能分析、慢查询获取、动态表管理、回收站恢复、计算组管理、存储大小查询、查询取消、活跃查询列表、查询队列管理、数据脱敏规则查询、外部文件查询等。此外还提供资源模板和提示词,帮助 AI 智能体探索 schema、优化查询和分析表性能。项目包含单元测试和集成测试,使用 ruff 进行代码检查,hatchling 作为构建后端。

访问官网

工具介绍

Hologres MCP Server 是阿里云开源的一个 MCP(Model Context Protocol)服务器,旨在为 AI 智能体与 Hologres 数据库之间提供通用接口。通过该服务器,AI 智能体可以无缝连接 Hologres,检索数据库元数据并执行 SQL 操作。

主要能力

该服务器提供了一系列工具,覆盖数据库操作、元数据查询、性能监控和资源管理等方面:

  • SQL 执行:支持执行 SELECT 查询(包括无服务器计算模式)、DML(INSERT、UPDATE、DELETE)和 DDL(CREATE、ALTER、DROP、COMMENT ON)语句。
  • 元数据查询:列出所有 schema、schema 下的所有表(包括表、视图、外部表、分区表)、显示表 DDL、获取表属性(分布键、聚簇键、段键、位图列、binlog 设置等)、获取表分片信息、列出外部数据库和外部服务器。
  • 性能分析与优化:收集表统计信息、获取查询计划和执行计划、通过 query_id 分析查询性能、获取慢查询、诊断锁竞争、获取表存储趋势、获取 GUC 配置值。
  • 数据可视化:执行 SELECT 查询并生成图表(柱状图、折线图、散点图、饼图、直方图、面积图),返回查询结果和 base64 编码的 PNG 图像。
  • 动态表管理:列出动态表及其状态、新鲜度设置和最后刷新信息,获取动态表刷新历史。
  • 回收站管理:列出回收站中的表,从回收站恢复已删除的表。
  • 计算组管理:列出所有计算组(仓库)及其 CPU、内存、集群数量和状态,切换当前会话的计算资源,管理计算组(挂起、恢复、重启、重命名、调整大小),获取计算组状态,触发分片重平衡。
  • 查询管理:取消或终止运行中的查询,列出当前活跃查询和连接,列出查询队列及其分类器,管理查询队列和分类器,设置查询队列属性。
  • 其他:列出数据脱敏规则,直接查询 OSS 上的外部文件(无需创建外部表),调用存储过程,创建 MaxCompute 外部表。

此外,服务器还提供资源模板,如获取所有 schema、列出 schema 下的表、列出分区表的分区、获取表 DDL、显示表统计信息,以及系统路径资源,如实例版本、GUC 值、缺失统计信息的表、当前运行查询信息、查询日志历史等。

服务器还提供提示词生成功能,包括分析表性能、优化 SQL 查询和探索 schema。

使用方式

该服务器支持三种部署模式:

  1. 本地文件模式:从 GitHub 下载后,将配置添加到 MCP 客户端配置文件中。
  2. PIP 模式:使用 pip 安装 MCP Server 包。
  3. Streamable HTTP 传输模式:适用于无法使用 STDIO 的远程部署场景。启动前需设置 Hologres 连接环境变量,然后启动服务器,MCP 端点将位于 http://<host>:<port>/mcp。

该服务器可与 Claude Code 等 MCP 客户端配合使用。

适用场景

  • AI 智能体需要访问和操作 Hologres 数据库时。
  • 需要通过自然语言或 AI 辅助进行数据库查询、分析和管理的场景。
  • 需要自动化数据库监控、性能优化和资源管理的场景。

限制

  • 部分功能需要 Hologres V3.0+ 或 V4.1+ 版本支持,如查询队列管理、外部数据库列表、外部文件查询等。
  • 管理查询队列和计算组等操作需要超级用户权限。
  • 集成测试需要真实的 Hologres 数据库连接,缺少配置文件时会跳过。

开发与测试

项目包含全面的单元测试和集成测试。单元测试不需要数据库连接,使用模拟依赖,包含 326 个测试用例,覆盖工具功能、SQL 验证、资源和资源模板、提示词生成、实用函数和错误处理、并发场景、SQL 注入保护等。集成测试需要真实的 Hologres 数据库连接,包含 61 个测试用例,分为 12 个测试类。项目使用 ruff 进行代码检查和格式化,使用 hatchling 作为构建后端,构建产物生成在 dist/ 目录。