news 2026/5/12 3:23:50

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于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提供以下数据库管理工具:

  1. list_databases
    列出所有数据库
  2. get_activity
    pgxc_stat_activity视图获取最近的查询活动
  3. execute_query
    执行 SQL 查询
  4. list_schemas
    列出当前数据库中的所有模式
  5. list_tables
    列出指定模式下的所有表
  6. list_views
    列出指定模式下的所有视图
  7. get_table_info
    获取表/视图的定义
  8. get_comment
    获取模式/表的注释

可用资源

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

  1. gaussdb:////{schema}/tables
    列出指定模式下的所有表
  2. gaussdb:///{schema}/views
    列出指定模式下的所有视图
  3. gaussdb:///{schema}/{table}/attributes
    列出指定表/视图所有的列
  4. 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下载源码

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 能够成为企业数据治理、实时分析与跨团队协作的巨大助力。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 3:23:35

兰州失控车辆证明科技已偷走车辆的控制权,黑客入侵会如何?

兰州失控车辆以115公里时速狂奔4个多小时&#xff0c;直到燃油耗尽才将车辆停下&#xff0c;证明了电子控制系统的不可靠&#xff0c;那么那些已赋予智驾更多控制权的车辆呢&#xff1f;想想都觉得后背发凉&#xff0c;事实证明科技无法为人类提供足够的安全保障&#xff01;在…

作者头像 李华
网站建设 2026/5/12 3:23:36

FaceFusion在虚拟演唱会中的粉丝形象互动应用

FaceFusion在虚拟演唱会中的粉丝形象互动应用如今&#xff0c;一场虚拟演唱会的后台正悄然上演着技术与情感的双重交响。大屏上&#xff0c;成千上万张面孔随着音乐节奏律动——那些不是预设的3D模型&#xff0c;而是真实粉丝的脸&#xff0c;被实时“搬”上了舞台。有人看到自…

作者头像 李华
网站建设 2026/5/11 11:31:59

【DC-AC】使用了H桥MOSFET进行开关,电感器作为滤波器,R和C作为负载目标是产生150V的双极输出和4安培(双极)的电流simulink实现

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

作者头像 李华
网站建设 2026/5/11 17:47:15

智慧校园招投标时间管理的核心节点把控

✅作者简介&#xff1a;合肥自友科技 &#x1f4cc;核心产品&#xff1a;智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…

作者头像 李华
网站建设 2026/5/11 17:47:00

FaceFusion开源社区活跃度报告:开发者生态正在崛起

FaceFusion开源社区活跃度报告&#xff1a;开发者生态正在崛起在AIGC浪潮席卷全球的今天&#xff0c;图像生成与视觉编辑技术正以前所未有的速度渗透进创作、娱乐乃至工业领域。其中&#xff0c;人脸替换&#xff08;Face Swapping&#xff09;作为最具争议也最引人注目的方向之…

作者头像 李华
网站建设 2026/5/11 0:53:44

为啥要有枚举这个类型,定义一个类,其中定义常量不就行了

枚举类型 vs 常量类 1. 类型安全性 // 使用枚举 - 编译时类型检查 public enum Status {ACTIVE, INACTIVE } void processStatus(Status status) { }// 调用时只能传入定义的枚举值 processStatus(Status.ACTIVE); // ✓ 正确 processStatus("ACTIVE"); // ✗ 编译错…

作者头像 李华