大模型上下文协议即MCP,它是一种开放的技术协议,旨在标准化大型语言模型与外部工具和服务的交互方式。目前很多国内云服务器商都已经全面支持MCP服务,其中就有阿里云。为方便大家了解,本文以碳排放数据库为例,为大家介绍一下在阿里云百炼平台通过自定义MCP部署MySQL的MCP服务,帮助用户轻松查询和管理数据库中的数据。
一、拥有一个公网访问的阿里云MySQL数据库
本文以云数据库RDS MySQL版为例,先构建一个MySQL,并存入一些测试数据。
1、进入阿里云官网,注册并完成登录操作。
2、找到云数据库RDS MySQL版,选择免费试用或点击购买。
免费试用:1个月高可用系列2核4GB实例或3个月集群系列2核4GB实例(二选一)。
点击购买:
《点击进入官网选购》
3、开通成功以后,点击管理控制台,等数据库创建成功。
4、在账号管理当中创建一个新的账号,设置账号密码登信息。
5、创建新的数据库。
6、设置当前数据库在外网是可以访问到的,点击开通外网地址。
7、复制外网的MySQL地址,便于后期在MCP当中配置。
二、自定义MySQL MCP
1、在阿里云百炼中创建自定义mysql-mcp服务
操作路径是:应用>MCP管理>创建MCP服务>选择npx安装方式,填写安装代码>提交部署。
{ "mcpServers": { "mysql": { "command": "npx", "args": [ "mysql-mcp-server" ], "env": { "MYSQL_HOST": "rm-***************.mysql.rds.aliyuncs.com", "MYSQL_PORT": "3306", "MYSQL_USER": "zh*****", "MYSQL_PASSWORD": "zh**********", "MYSQL_DATABASE": "mcp_test" } } } }
- MYSQL_HOST:对应的是刚刚创建数据库复制的外网地址。
- MYSQL_PORT:为数据库的端口号,默认端口号为3306,如果您修改过端口号请按照实际设置。
- MYSQL_USER:上述创建的用户名。
- MYSQL_PASSWORD:是上述设置用户名的密码。
- MYSQL_DATABASE:为数据库名称,在连接的时候一定要创建对应的数据库,所有操作都是在这个数据库当中完成的。
2、部署成功以后,我们打开对应的MCP服务,测试工具
分别介绍一下这几个工具的作用,list_databases:查看所有数据库。
list_tables:查看指定数据库当中的所有表,输入:information_schema。
describe_table:用于获取表(table)的详细信息,输入:INNODB_CMP,information_schema
execute_query:执行只读SQL查询的功能或方法
输入:select*from INNODB_CMP,information_schema
三、在智能体当中引入MySQL MCP
1、应用管理中新建智能体,选择模型,如qwen-max。
2、选择刚刚创建的自定mysql-mcp的MCP服务。
3、然后选择QuickChart的MCP服务,如没开通Quick Chart,可在MCP广场或者右侧菜单中直接选择开通。
四、准备数据
注:如有数据库可跳过该步骤。
1、在新建的mcp_test库当中导入数据,运行下面的SQL语句
本文以这份公开的数据库为例,2021年北京碳排放清单数据,来源于中国碳核算数据库(CEADs)的公开数据:
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for beijing2021 -- ---------------------------- DROP TABLE IF EXISTS `beijing2021`; CREATE TABLE `beijing2021` ( `Emission_Inventory` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Raw_Coal` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `CleanedCoal` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Other_Washed_Coal` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Briquettes` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Coke` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Coke_Oven_Gas` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Other_Gas` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Other_Coking_Products` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Crude_Oil` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Gasoline` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Kerosene` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Diesel_Oil` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Fuel_Oil` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `LPG` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Refinery_Gas` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Other_Petroleum_Products` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Natural_Gas` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Scope_2_Heat` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Scope_2_Electricity` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Other_Energy` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Process` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `Scope_1_Total` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL ) ENGINE = InnoDB AUTO_INCREMENT = 51 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of beijing2021 -- ---------------------------- INSERT INTO `beijing2021` VALUES ('unit', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2', 'Mt CO2'); INSERT INTO `beijing2021` VALUES (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); INSERT INTO `beijing2021` VALUES ('TotalEmissions', '2.00219847443411', '0', '0', '0.178065160549272', '0.00287658904128091', '0', '0', '0', '0', '14.0492587861176', '15.0628126027991', '4.04269383183075', '0.019326756197559', '1.30650821092116', '2.14647396026786', '0.329403244547503', '39.9907722431506', '0', '0', '0', '0.7500386', '79.8804284598569'); INSERT INTO `beijing2021` VALUES ('Farming, Forestry, Animal Husbandry, Fishery and Water Conservancy', '0.0279480581772554', '0', '0', '0', '0', '0', '0', '0', '0', '0.057656896045355', '0', '0.0522855481426033', '0', '0.00156543039889907', '0', '0', '0.00216072899519941', '0', '0', '0', '0', '0.141616661759312'); INSERT INTO `beijing2021` VALUES ('Coal Mining and Dressing', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO `beijing2021` VALUES ('Petroleum and Natural Gas Extraction', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.0027026631864278', '0', '0', '0', '0', '0.0027026631864278'); INSERT INTO `beijing2021` VALUES ('Ferrous Metals Mining and Dressing', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.000292674599215', '0', '0.000297999021176722', '0', '0', '0.00277069594341419', '0', '0', '0', '0', '0', '0', '0.00336136956380591'); INSERT INTO `beijing2021` VALUES ('Nonferrous Metals Mining and Dressing', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO `beijing2021` VALUES ('Nonmetal Minerals Mining and Dressing', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO `beijing2021` VALUES ('Other Minerals Mining and Dressing', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.000878023797645', '0', '0.00387398727529739', '0', '0', '0.00831208783024257', '0', '0', '0', '0', '0', '0', '0.013064098903185'); INSERT INTO `beijing2021` VALUES ('Logging and Transport of Wood and Bamboo', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO `beijing2021` VALUES ('Food Processing', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.0058534919843', '0', '0.00983396769883183', '0', '0.000246801615228651', '0.0554139188682838', '0', '0.00738727937623598', '0', '0', '0', '0', '0.0787354595428803'); INSERT INTO `beijing2021` VALUES ('Food Production', '0.000216621944963924', '0', '0', '0', '0.00000130730278189462', '0', '0', '0', '0', '0.006731515781945', '0', '0.00864197161412494', '0', '0.000740404845685953', '0.0637260066985264', '0', '0.0127926057490916', '0', '0', '0', '0', '0.0928504339371197'); INSERT INTO `beijing2021` VALUES ('Beverage Production', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.003804769789795', '0', '0.00297999021176722', '0', '0.000246801615228651', '0.0360190472643845', '0', '0.0158556240270431', '0', '0', '0', '0', '0.0589062329082184'); INSERT INTO `beijing2021` VALUES ('Tobacco Processing', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.000720710183047412', '0', '0', '0', '0', '0.000720710183047412'); INSERT INTO `beijing2021` VALUES ('Textile Industry', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.000878023797645', '0', '0.000297999021176722', '0', '0', '0.00831208783024257', '0', '0.000180177545761853', '0', '0', '0', '0', '0.00966828819482615'); INSERT INTO `beijing2021` VALUES ('Garments and Other Fiber Products', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.00526814278587', '0', '0.000595998042353444', '0', '0', '0.0498725269814554', '0', '0.00198195300338038', '0', '0', '0', '0', '0.0577186208130593'); INSERT INTO `beijing2021` VALUES ('Leather, Furs, Down and Related Products', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.00058534919843', '0', '0', '0', '0', '0.00554139188682838', '0', '0', '0', '0', '0', '0', '0.00612674108525838'); INSERT INTO `beijing2021` VALUES ('Timber Processing, Bamboo, Cane, Palm Fiber & Straw Products', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.00175604759529', '0', '0.000595998042353444', '0', '0', '0.0166241756604851', '0', '0', '0', '0', '0', '0', '0.0189762212981286'); INSERT INTO `beijing2021` VALUES ('Furniture Manufacturing', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.00526814278587', '0', '0.000595998042353444', '0', '0.000246801615228651', '0.0498725269814554', '0', '0.000720710183047412', '0', '0', '0', '0', '0.0567041796079549'); INSERT INTO `beijing2021` VALUES ('Papermaking and Paper Products', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.00409744438901', '0', '0.00208599314823705', '0', '0', '0.0387897432077987', '0', '0.00252248564066594', '0', '0', '0', '0', '0.0474956663857117'); INSERT INTO `beijing2021` VALUES ('Printing and Record Medium Reproduction', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.009658261774095', '0', '0.00417198629647411', '0', '0.000246801615228651', '0.0914329661326683', '0', '0.00324319582371336', '0', '0', '0', '0', '0.108753211642179'); INSERT INTO `beijing2021` VALUES ('Cultural, Educational and Sports Articles', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.001463372996075', '0', '0.000297999021176722', '0', '0.000246801615228651', '0.013853479717071', '0', '0.000360355091523706', '0', '0', '0', '0', '0.016222008441075'); INSERT INTO `beijing2021` VALUES ('Petroleum Processing and Coking', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.00058534919843', '0', '0.000595998042353444', '0', '0.661921932043242', '0.00554139188682838', '0', '0.0396390600676077', '0', '0', '0', '0', '0.708283731238461'); INSERT INTO `beijing2021` VALUES ('Raw Chemical Materials and Chemical Products', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.009072912575665', '0', '0.0080459735717715', '0', '0.000740404845685953', '0.0459387476859707', '0', '0.00378372846099892', '0', '0', '0', '0', '0.067581767140092'); INSERT INTO `beijing2021` VALUES ('Medical and Pharmaceutical Products', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.00995093637331', '0', '0.00238399216941378', '0', '0.000493603230457302', '0.0503844329459033', '0', '0.0254050339524213', '0', '0', '0', '0', '0.0886179986715057'); INSERT INTO `beijing2021` VALUES ('Chemical Fiber', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.000292674599215', '0', '0', '0', '0', '0.00148189508664422', '0', '0.000720710183047412', '0', '0', '0', '0', '0.00249527986890663'); INSERT INTO `beijing2021` VALUES ('Rubber Products', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.002634071392935', '0', '0.00163899461647197', '0', '0.000370202422842977', '0.0133370557797979', '0', '0.000360355091523706', '0', '0', '0', '0', '0.0183406793035716'); INSERT INTO `beijing2021` VALUES ('Plastic Products', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.002634071392935', '0', '0.00163899461647197', '0', '0.000370202422842977', '0.0133370557797979', '0', '0.000360355091523706', '0', '0', '0', '0', '0.0183406793035716'); INSERT INTO `beijing2021` VALUES ('Nonmetal Mineral Products', '0.145967336238932', '0', '0', '0', '0.000782028524129359', '0', '0', '0', '0', '0.010828960170955', '0', '0.176415420536619', '0', '0.000493603230457302', '0.102515749906325', '0', '0.0241437911320883', '0', '0', '0', '0.7500386', '1.21118548973951'); INSERT INTO `beijing2021` VALUES ('Smelting and Pressing of Ferrous Metals', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.00058534919843', '0', '0', '0', '0', '0.00554139188682838', '0', '0.0158556240270431', '0', '0', '0', '0', '0.0219823651123015'); INSERT INTO `beijing2021` VALUES ('Smelting and Pressing of Nonferrous Metals', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.00058534919843', '0', '0', '0', '0', '0.00554139188682838', '0', '0.000720710183047412', '0', '0', '0', '0', '0.0068474512683058'); INSERT INTO `beijing2021` VALUES ('Metal Products', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.022535944139555', '0.00151757199592963', '0.00834397259294822', '0', '0.000740404845685953', '0.213343587642893', '0', '0.00486479373557003', '0', '0', '0', '0', '0.251346274952581'); INSERT INTO `beijing2021` VALUES ('Ordinary Machinery', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.016682452155255', '0', '0.00208599314823705', '0', '0.00197441292182921', '0.157929668774609', '0', '0.0030630182779515', '0', '0', '0', '0', '0.181735545277882'); INSERT INTO `beijing2021` VALUES ('Equipment for Special Purposes', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.01873117434976', '0', '0.00655597846588789', '0', '0.000246801615228651', '0.177324540378508', '0', '0.00198195300338038', '0', '0', '0', '0', '0.204840447812765'); INSERT INTO `beijing2021` VALUES ('Transportation Equipment', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.016097102956825', '0', '0.0336738893929696', '0', '0.000246801615228651', '0.152388276887781', '0', '0.0353147989693232', '0', '0', '0', '0', '0.237720869822127'); INSERT INTO `beijing2021` VALUES ('Electric Equipment and Machinery', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.014926404559965', '0', '0.00178799412706033', '0', '0.000493603230457302', '0.141305493114124', '0', '0.00180177545761853', '0', '0', '0', '0', '0.160315270489225'); INSERT INTO `beijing2021` VALUES ('Electronic and Telecommunications Equipment', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.010828960170955', '0', '0.000893997063530166', '0', '0', '0.102515749906325', '0', '0.00378372846099892', '0', '0', '0', '0', '0.118022435601809'); INSERT INTO `beijing2021` VALUES ('Instruments, Meters, Cultural and Office Machinery', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.008487563377235', '0', '0.000297999021176722', '0', '0', '0.0803501823590115', '0', '0.000360355091523706', '0', '0', '0', '0', '0.089496099848947'); INSERT INTO `beijing2021` VALUES ('Other Manufacturing Industry', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.001463372996075', '0', '0.00864197161412494', '0', '0', '0.013853479717071', '0', '0.000180177545761853', '0', '0', '0', '0', '0.0241390018730327'); INSERT INTO `beijing2021` VALUES ('Scrap and waste', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.000292674599215', '0', '0.000297999021176722', '0', '0', '0.00277069594341419', '0', '0.000180177545761853', '0', '0', '0', '0', '0.00354154710956777'); INSERT INTO `beijing2021` VALUES ('Production and Supply of Electric Power, Steam and Hot Water', '1.7584294721808', '0', '0', '0', '0.00209325321436966', '0', '0', '0', '0', '0.0117069839686', '0', '0.0364790496207164', '0.00506931310099908', '0.142590845076481', '0.345723727224162', '0.329403244547503', '28.5767129945502', '0', '0', '0', '0', '31.2082088834838'); INSERT INTO `beijing2021` VALUES ('Production and Supply of Gas', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.00409744438901', '0', '0.000595998042353444', '0', '0', '0.0387897432077987', '0', '0.0787375874979298', '0', '0', '0', '0', '0.122220773137092'); INSERT INTO `beijing2021` VALUES ('Production and Supply of Tap Water', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.003804769789795', '0', '0.0026819911905905', '0', '0.000740404845685953', '0.0360190472643845', '0', '0.000900887728809265', '0', '0', '0', '0', '0.0441471008192652'); INSERT INTO `beijing2021` VALUES ('Construction', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.216871878018315', '0', '0.452316398724769', '0', '0.013462701430532', '0', '0', '0.0518574958847857', '0', '0', '0', '0', '0.734508474058402'); INSERT INTO `beijing2021` VALUES ('Transportation, Storage, Post and Telecommunication Services', '0.000585184755396305', '0', '0', '0', '0', '0', '0', '0', '0', '0.901730440181415', '15.0427806524529', '2.41194161727654', '0.0142574430965599', '0.0522853753232288', '0', '0', '0.553146622771048', '0', '0', '0', '0', '18.9767273358571'); INSERT INTO `beijing2021` VALUES ('Wholesale, Retail Trade and Catering Services', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.51042450103096', '0', '0.122205866960523', '0', '0.0601125273177241', '0', '0', '1.17327584439328', '0', '0', '0', '0', '1.86601873970248'); INSERT INTO `beijing2021` VALUES ('Others', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.05099448578107', '0.0185143783503415', '0.676618306437121', '0', '0.0375703295735776', '0', '0', '5.54875205967207', '0', '0', '0', '0', '7.33244955981418'); INSERT INTO `beijing2021` VALUES ('Urban', '0.069051801136764', '0', '0', '0', '0', '0', '0', '0', '0', '11.0982208022328', '0', '0', '0', '0.186599303548769', '0', '0', '3.37505869050147', '0', '0', '0', '0', '14.7289305974198'); INSERT INTO `beijing2021` VALUES ('Rural', '0', '0', '0', '0.178065160549272', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0.141514908060476', '0', '0', '0.419181425068685', '0', '0', '0', '0', '0.738761493678432'); SET FOREIGN_KEY_CHECKS = 1;
2、点击SQL查询
3、将上述的SQL语句粘贴到里面并点击执行
五、用智能体进行数据分析
1、查询当前数据库当中有多少表。
2、计算一下每一个行业的平均碳排放量,平均值前10的行业显示图表。
3、查询显示beijing2021表当中,前10条汽油相关的数据,并生成一个分析报告,分析报告当中包括折线图信息。
相关推荐:《MCP是什么的缩写》