写点什么

基于 DWS MCP Server 搭建数据分析 Agent

  • 2025-12-19
    广东
  • 本文字数:2850 字

    阅读完需:约 9 分钟

本文分享自华为云社区《基于DWS MCP Server搭建数据分析Agent

1. 前言

MCP(Model Context Protocol)是由 Anthropic 于 2024 年 11 月提出的开放协议标准,旨在解决大型语言模型与外部系统(如数据库、API)交互的碎片化问题。通过标准化接口,让 LLM 动态理解工具功能并执行操作,降低集成成本。通过搭建 DWS MCP Server,用户可以借助大模型的能力,以自然语言直接操作数据库,实现自然语言到 SQL 的自动转换,从而完成一键式后端查询,并在客户端直接查看结果。

2. 功能介绍

DWS MCP Server 目前支持包括元数据查询、语句执行、监控信息查询等基本功能。支持功能以 MCP 协议中的工具(Tools)以及资源(Resource)形式向支持 MCP 协议的客户端暴露。

工具

DWS MCP Server 提供以下数据库管理工具:


  1. list_databases

  2. 列出所有数据库

  3. get_activity

  4. pgxc_stat_activity视图获取最近的查询活动

  5. execute_query

  6. 执行 SQL 查询

  7. list_schemas

  8. 列出当前数据库中的所有模式

  9. list_tables

  10. 列出指定模式下的所有表

  11. list_views

  12. 列出指定模式下的所有视图

  13. get_table_info

  14. 获取表/视图的定义

  15. get_comment

  16. 获取模式/表的注释

可用资源

DWS MCP Server 通过 MCP 暴露以下资源:


  1. gaussdb:////{schema}/tables

  2. 列出指定模式下的所有表

  3. gaussdb:///{schema}/views

  4. 列出指定模式下的所有视图

  5. gaussdb:///{schema}/{table}/attributes

  6. 列出指定表/视图所有的列

  7. system:///{system_path}

  8. 系统信息(例如 /version)

3. Agent 搭建及 server 配置

以下使用 Cline 作为客户端演示如何配置使用 DWS MCP Server。可根据需求选择其他支持 MCP 的客户端,如 Claude Desktop 等

3.1 环境准备

  • 确保 DWS 集群版本支持 psycopg2 库

  • 确保使用环境 python 版本为 3.10 及以上

  • 确保安装 uv 版本 0.6.7 及以上

  • 安装 VS Code 客户端并安装 Cline 插件

3.2 下载 DWS MCP Server 源码

从 github 下载源码


git clone https://github.com/HuaweiCloudDeveloper/mcp-server.git
复制代码


说明:DWS MCP Server 源码位于目录 huaweicloud_dws_mcp_inner 下,请在客户端配置步骤中使用该目录的路径进行配置

3.3 客户端配置

在所使用的的客户端中对模型 API 及 MCP 设定进行配置,使客户端能够正确识别连接 DWS MCP Server 及相关接口


  • 进入 Cline 设置界面,根据自身使用情况在 API Configuration 页面下填入 API Provider、API Key 等信息


  • 点击 Cline 页面右上角 MCP 图标进入 MCP 配置界面并点击 Installed 页签,在下方点击 Configure MCP Servers,并填入以下 DWS MCP Server 配置


{  "mcpServers": {    "DWS": {      "disabled": false,      "timeout": 60,      "type": "stdio",      "command": "uv",      "args": [        "--directory",        "/path/to/huaweicloud_dws_mcp_inner",        "run",        "server.py"      ],      "env": {        "DB_HOST": "host_ip",        "DB_PORT": "port_no",        "DB_NAME": "database",        "DB_USER": "username",        "DB_PWD": "password"      }    }  }}
复制代码


参数说明:将 env 中对应字段值替换为集群需要连接的节点对应的信息

/path/to/huaweicloud_dws_mcp_inner" 替换为 huaweicloud_dws_mcp_inner 目录所在路径

host_ip 替换为集群实际 ip 地址

port_no 替换为实际端口号

database 替换为需要连接的数据库名

username 替换为需要连接的用户名

password 替换为上述用户的密码


如果因网络问题无法使用 uv,可以通过 python 启动 server,步骤如下:


  • 在源码目录下通过 pip 安装 dws-mcp-server

  • pip install .

  • 将 cline 的 mcp server 配置更换为:


{  "mcpServers": {    "DWS": {      "disabled": false,      "timeout": 60,      "type": "stdio",      "command": "python",      "args": [
"/path/to/huaweicloud_dws_mcp_inner/src/server.py", ], "env": { "DB_HOST": "host_ip", "DB_PORT": "port_no", "DB_NAME": "database", "DB_USER": "username", "DB_PWD": "password" } } }}
复制代码


/path/to/huaweicloud_dws_mcp_inner/src/server.py 替换为 DWS MCP Server 源码中 server.py 的完整路径。


保存配置信息后,观察 cline mcp 页面是否成功加载 DWS mcp server,若如下图能够加载 DWS server 及显示对应工具及资源说明配置成功

3.4 DWS 集群配置

DWS MCP Server 通过 Psycopg2 连接集群,需要对集群进行如下配置确保网络连接畅通


  • 编辑集群安装目录下 CN 节点的pg_hba.conf配置文件,添加以下配置信息将客户端所在环境添加为 host


host    <允许访问的库>        <允许的用户名>        <客户端ip/掩码>        <加密算法>
复制代码


  • 修改 GUC 参数 password_encryption_type 的值为 1,在pg_hba.conf中将上述新增的 host 加密算法更改为 md5,修改后需重启数据库并重新设置用户密码,以使新密码采用 MD5 算法存储。

  • 编辑 postgresql.conf 文件,将客户端所在环境的 ip 地址增加至listen_addresses


listen_addresses = 'localhost,<client_ip>'
复制代码


集群环境可通过设置 GUC 参数完成上述配置:


gs_guc set -N all -I all -Z coordinator -c "listen_addresses='*'"gs_guc set -N all -I all -Z coordinator -h "host all all 0.0.0.0/0 md5"gs_guc reload -Z coordinator -Z datanode -N all -I all -c "password_encryption_type=1"
复制代码

4 开始体验

完成客户端及集群相关配置后,开始搭建以 DWS + MCP + LLM 为核心的数据分析工作流。以下以 cline 为客户端进行演示。

根据 tpcds 相关表的数据,对 1998-2002 年间的销售情况进行一系列分析并提出洞察与建议,最终交付数据分析报告。

DWS + MCP server 为 LLM 提供了准确的数据来源,依赖模型的推理和分析能力,我们可以在无需手动编写 SQL 查询语句的情况下获取数据,用自然语言一键式完成查询,并进一步借助 LLM 对数据进行初步的分析和洞悉。

回答内容与风格取决于模型能力,示例仅作为参考

1. 在 cline 的对话框中输入需要完成的数据分析任务的 promt

2. 发送任务后,cline 会调用模型并依据推理结果发起一系列 tools 或 resource 的调用请求。观察请求主体并选择同意(可以按需开启自动同意执行)


  • 模型解析任务并生成 plan

  • 调用工具获取元数据信息

  • 根据元数据推理并生成查询,获取具体数据


3. 通过一系列与 DWS 的交互以及获取的查询结果进行分析,最终呈现结果


  • 生成报告





  • 输出总结

5 总结

通过搭建 DWS‑MCP‑Server,企业与科研团队即可将自然语言对话与关系数据库无缝衔接,实现“一键查询、自动化报表、动态分析”的全链路数据服务。按手册步骤完成配置后,LLM 将直接识别工具接口(如 list_databases、execute_query 等),在安全约束内调用接口进行 SQL 生成与执行。元数据查询(schema、tables、views)与业务查询结果无缝串联,随后模型可立即进行业务解读、可视化图表与洞察报告的自动生成。该方案不仅显著降低了传统 SQL 开发的学习曲线和运维成本,还提升了数据迭代的响应速度,为数据驱动决策提供了高度可靠且易扩展的技术平台。在自然语言接口与 AI 推理能力进一步成熟的今天,DWS‑MCP‑Server 能够成为企业数据治理、实时分析与跨团队协作的巨大助力。


用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
基于DWS MCP Server搭建数据分析Agent_华为云开发者联盟_InfoQ写作社区