PolarDB MySQL MCP:一句话搭建知识问答系统
背景
MCP
模型上下文协议(Model Context Protocol,简称MCP)是一个由 Anthropic 在 2024 年 11 月 25 日开源的新标准。MCP 为 AI 模型连接不同数据源和工具提供了标准化方式,MCP通过统一的数据交互规范,让LLM能够像“即插即用”一样快速对接表格、数据库、API、外部工具等多样化资源。
PolarDB
PolarDB是阿里巴巴自研的新一代云原生数据库,在计算存储分离架构下,利用了软硬件结合的优势,为用户提供具备极致弹性、高性能、海量存储、安全可靠的数据库服务。PolarDB MySQL版100%兼容原生MySQL的多个版本,包括MySQL 5.6、MySQL 5.7和MySQL 8.0。
PolarDB MySQL版本推出的列存索引(In-Memory Column Index,简称IMCI)面向OLAP场景大数据量复杂查询。通过列存索引,PolarDB MySQL版实现了一体化的实时事务处理和实时数据分析的能力,成为一站式HTAP数据库产品解决方案。通过一套数据库系统,即可满足业务的OLTP及OLAP需求。PolarDB MySQL的AI节点还内置各种AI大模型和机器学习组件,无需手动将PolarDB中的数据同步至其他AI平台,便可直接通过SQL语句调用内置的AI大模型来完成复杂的分析任务。
PolarDB MySQL MCP
环境准备
VScode IDE+Cline插件
下载VSCode,并安装Cline插件,在百炼中申请千问API

Cline中配置LLM(qwen-max-latest)

PolarDB MySQL MCP Server安装
具体安装参考:https://github.com/aliyun/alibabacloud-polardb-mcp-server/blob/master/polardb-mysql-mcp-server/README.md
Cline安装好了MCP Server的效果

MCP Server 提供的功能
polardb-mysql://tables:列出当前数据库所有表信息
polardb-mysql://models:列出当前已经创建的模型算法
polardb-mysql://{table}/field:列出具体表的字段信息
polardb-mysql://{table}/data:列出具体表的数据(默认读取50行)
execute_sql: 执行符合PolarDB MySQL语法的SQL语句
polar4ai_update_index_for_text_2_sql: 利用polardb的AI节点,对当前库的表建索引,用于文本转SQL或者文本转chart
polar4ai_text_2_sql:利用polardb的AI节点,将用户的文本转换成sql语句
polar4ai_text_2_chart:利用polardb的AI节点,将用户的文本统计需求直接转换成图表
polar4ai_create_models:使用polar4ai语法,创建各种自定义算法模型
polar4ai_import_doc:利用polardb的AI节点,将用户本地目录的文档导入到PolarDB中形成知识库;
polar4ai_search_doc:利用polardb的AI节点,从PolarDB中的知识库中搜索用户问题并返回答案;
tools
resouces
RAG
大模型幻觉
如下图所示,直接想LLM咨询:“介绍下PolarDB代理的全局一致性”,回答的结果完全是自己瞎编造的,将各种DB的通用特性瞎编在一起,对于不太熟悉PolarDB代理的同学,有明显的误导作用。

RAG是什么
RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合信息检索技术与大语言模型(LLM)生成能力的技术框架,其核心思想是通过从外部知识库中检索相关信息,并将这些信息作为提示(Prompt)输入给LLM,从而提升模型回答的准确性、可控性和时效性,对于解决上面的幻觉有明显的效果。
为何选择RAG而非直接微调
解决模型幻觉问题:RAG通过引入外部知识库的实时检索结果,为LLM提供事实依据,减少模型因知识缺失或过时而产生的“一本正经胡说八道”现象而微调仅能固化训练数据中的知识,无法动态更新,对幻觉问题的缓解有限
实时性与时效性:RAG的知识库可动态更新(例如接入最新财报、政策文件),使LLM能应对时效性问题(如回答“2025年春运数据”)。相比之下,微调需要重新训练模型才能更新知识,成本高且耗时
数据安全与隐私保护:企业可通过RAG将私有数据存储在本地知识库中,仅通过检索传递必要信息给LLM,避免将敏感数据上传至第三方模型进行微调,从而降低数据泄露风险
成本与灵活性:微调需要大量计算资源和标注数据,且模型参数固定后难以适应新领域。RAG无需修改模型参数,仅需更新知识库即可快速适配新场景(如切换医疗、金融领域),显著降低维护成本
可解释性与可控性:RAG的检索结果可作为生成答案的参考来源,增强输出的可追溯性;而微调后的模型决策过程难以透明化
RAG的核心流程
索引构建:将知识库中的文本分块(Chunking),通过嵌入模型(Embeddings)将文本转化为向量并存入向量数据库
检索:用户提问时,将查询内容向量化后,在向量数据库中检索最相关的Top-K结果
生成:将检索到的上下文与用户问题组合成Prompt,输入LLM生成最终答案
本文的MCP Server在RAG流程中能扮演的角色
知识库建立:MCP Server提供了有如下能力的接口(Tool): 读取本地文件、然后进行文本分块和向量化,最后存储到向量数据库中;
知识检索:MCP Server提供了向量数据库的检索接口(Tool),以便LLM回答问题前,先检索到相关的知识作为上下文Prompt,避免大模型幻觉产生;
知识问答系统搭建和效果演示
演示
本演示讲述的通过PolarDB MySQL MCP Server 来实现实时分析能力知识问答系统(RAG应用) ,通过在vcsode的cline插件(其他客户端cursor等类似) 描述一句话,即可以将本地的一个目录下所有的知识文件导入到PolarDB中,然后就可以进行知识问答,具体如下
知识库建立
问题:将目录/Users/zhengmaozhou/code/mcp/test/proxy 中的文件导入到PolarDB中,形成知识库;
结果:成功将文件导入到知识库中,并告知导入了13个文件和163个条目;

知识问答
有MCP Server和知识库时(知识库的内容为PolarDB的代理介绍)
问题:介绍下PolarDB代理的全局一致性原理
结果:把PolarDB的全局一致性功能都给列出来了,相比于直接让模型回答,明显解决了大模型幻觉的问题。

问答系统原理说明
组件说明
PolarDB MySQL实例
AI节点:PolarDB for AI是PolarDB MySQL版的分布式机器学习组件,内置多种AI大模型。您无需手动将PolarDB中的数据同步至其他AI平台,便可直接通过SQL语句调用内置的AI大模型来完成复杂的分析任务。此外,PolarDB for AI还支持通过SQL语句来构建自定义模型和加载外部模型,本文主要使用了AI节点的文本向量化能力;
IMCI节点:PolarDB MySQL的列存节点,本文主要使用了列存节点的向量存储和检索召回功能;
PolarDB MCP Server 提供了下面两个tools
import_doc:读取本地目录的所有文件,然后进行文本切片分割,并通过polardb AI节点进行向量化,最后存储到polardb的IMCI节点中的向量数据库中;
search_doc: 将需要搜索文本向量化,最后通过IMCI节点的向量数据库查询匹配到合适的条目;
具体的流程
知识库建立

检索召回

总结
从上面的例子可以看出,不管PolarDB MySQL兼容MySQL语法的SQL执行功能,还是自身OLAP和AI等特有的功能,通过MCP 协议暴漏给LLM,极大降低了用户的使用成本,为后续可能的DB-Agent智能体实现更加智能化能力提供可能。
PolarDB MCP获取/部署
Github仓库:https://github.com/aliyun/alibabacloud-polardb-mcp-server
阿里云百炼
PolarM: https://bailian.console.aliyun.com/?tab=mcp#/mcp-market/detail/polardb-mysql
PolarPG: https://bailian.console.aliyun.com/?tab=mcp#/mcp-market/detail/polardb-postgresql
阿里云函数计算MCP
PolarM: https://cap.console.aliyun.com/template-detail?template=258
PolarPG:https://cap.console.aliyun.com/create-project?template=259
pypi
PolarM: https://pypi.org/project/polardb-mysql-mcp-server/
PolarPG:https://pypi.org/project/polardb-postgresql-mcp-server/




