基于 DWS MCP Server 搭建数据分析 Agent
本文分享自华为云社区《基于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 提供以下数据库管理工具:
list_databases
列出所有数据库
get_activity
从
pgxc_stat_activity视图获取最近的查询活动execute_query
执行 SQL 查询
list_schemas
列出当前数据库中的所有模式
list_tables
列出指定模式下的所有表
list_views
列出指定模式下的所有视图
get_table_info
获取表/视图的定义
get_comment
获取模式/表的注释
可用资源
DWS MCP Server 通过 MCP 暴露以下资源:
gaussdb:////{schema}/tables
列出指定模式下的所有表
gaussdb:///{schema}/views
列出指定模式下的所有视图
gaussdb:///{schema}/{table}/attributes
列出指定表/视图所有的列
system:///{system_path}
系统信息(例如 /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 下载源码
说明: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 配置
参数说明:将 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 配置更换为:
/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
修改 GUC 参数 password_encryption_type 的值为 1,在
pg_hba.conf中将上述新增的 host 加密算法更改为 md5,修改后需重启数据库并重新设置用户密码,以使新密码采用 MD5 算法存储。编辑 postgresql.conf 文件,将客户端所在环境的 ip 地址增加至
listen_addresses
集群环境可通过设置 GUC 参数完成上述配置:
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 能够成为企业数据治理、实时分析与跨团队协作的巨大助力。







评论