使用MCP服务通过自然语言操作数据库(vscode+cline版本)
使用MCP服务操纵数据库(vscode+cline版本)
本文主要介绍,在vscode中使用cline插件调用deepseek模型,通过MCP服务器 使用自然语言去操作指定数据库。本文使用的是以己经创建号的珠海航展数据库。
理解MCP服务:
MCP(Model Context Protocol)是一种用于连接和管理机器学习模型与外部系统的协议,通常用于通过网络接口实现模型与其他服务的交互。它提供了一种标准化的方式,让不同的应用程序、服务或客户端可以与模型进行数据交换、执行推理操作并获取结果。
具体来说,MCP协议通过定义模型服务的输入和输出格式,允许模型在一个抽象的层次上进行交互,而不依赖于具体的底层实现。这意味着你可以将多个模型和应用程序连接到同一个协议层,进而在不修改模型本身的情况下,进行跨平台、跨应用的集成和管理。
在一些应用中,MCP也用于实现模型的异步调用和实时查询,尤其适用于需要大规模部署和管理模型的环境。通过MCP协议,用户可以方便地查询模型、获取推理结果,并在不同的系统间共享模型服务。
举个例子,MCP可以通过一个API接口,让机器学习模型能够接收来自客户端的自然语言请求,比如查询数据库或执行某些操作,并返回结果。这个协议通常包含服务器配置、模型接口和通信协议等内容,确保模型与外部环境的顺畅配合。
**这是官网的一张架构图:**https://modelcontextprotocol.io/introduction

MCP就是AI 模型和不同的数据源和工具的中间层,AI模型可以通过这个中间层来操作不同的数据源和工具实现具体的功能。
1、配置Cline插件
我们在cline中的使用的主要是deepseek的api接口,deepseek有免费的接口,也有收费的,大家可以自行选选择。在这里默认大家已经将vscode下载到本地,接下来我们打开vscode。

点击图中标记标记的图标,在搜索框搜索cline , 点击并安装该插件,如果你是第一次安装,安装完成后你需要先进行注册,注册完成功能之后,我们对cline进行设置。




在这里说明一下:如果你想要长期使用的话,建议你去购买一家模型的api,有的大模型厂家对于新用户会赠送15块钱的免费额度。在这里给大家提供两家好用的,比如deepseek, kimi。
deekseek(没有免费额度,但是便宜):https://api-docs.deepseek.com/zh-cn/api/deepseek-api/
kimi(有免费额度): https://platform.moonshot.cn/docs/guide/start-using-kimi-api
进行到这里,我们的cline的配置基本上就完成了。
2、MCP服务器配置
2.1、克隆并导入项目
-
克隆项目到本地
git clone https://github.com/benborla/mcp-server-mysql.git之后Github上MySQL MCP service的完整源码就导入到你的本地了
-
使用VSCode打开
在 VSCode 中,File -> Open Folder...选择你克隆下来的项目文件夹即可。

2.2、安装前置依赖
1、安装 Node.js 与 npm
请确保本地环境已经正确安装了 Node.js(最好是 LTS 版本)和 npm。可以在终端运行以下命令来验证:
node -v
npm -v
如果能看到版本号,说明安装没问题。否则请前往 Node.js 官网 下载并安装。

2、(可选)全局安装 @smithery/cli
如果你打算通过 Smithery 自动安装和管理 MCP 服务器,可以先全局安装 @smithery/cli:
npm install -g @smithery/cli
当然你也可以跳过全局安装这一步,后续使用 npx 来调用 @smithery/cli。
2.3、通过Smithery安装(推荐方式)
如果你选择使用 Smithery 自动安装和管理 MCP 服务器,你可以执行以下命令:
npx -y @smithery/cli install @f4ww4z/mcp-mysql-server --client claude
这条命令会做以下事情:
- 自动将
@f4ww4z/mcp-mysql-server依赖加到package.json中(如果不存在则会初始化)。 - 在
smithery.yaml(或等效的配置文件)里添加对应的安装信息。
安装完成后,你可以在 package.json 中看到 @f4ww4z/mcp-mysql-server 的依赖,也能在 node_modules 中找到它。
2.4、手动安装(备选方式)
如果不想使用 Smithery 或想直接手动执行,你可以在 VSCode 终端中进入项目根目录,执行:
npx @f4ww4z/mcp-mysql-server
或先安装到本地再执行:
npm install @f4ww4z/mcp-mysql-server
# 安装完之后
npx @f4ww4z/mcp-mysql-server
这样也可以直接使用该包提供的命令。区别在于:
- 通过 Smithery 方式,会自动把依赖加到 Smithery 的配置中,后续可以用统一的方式管理。
- 手动安装需要你自己编写或管理脚本和依赖。
2.5、配置环境变量
在vscode中配置.env文件,在你的项目根目录下(或者 MCP 相关目录下),创建一个名为 .env 的文件(有的话直接写入即可),写入类似以下内容:
MYSQL_HOST=localhost
MYSQL_USER=your_user
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database
此处的 MYSQL_HOST、MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASE 分别对应你的 MySQL 数据库的主机名、用户名、密码和数据库名。
重要提示:.env 文件一般要写入到 .gitignore 中,防止账号密码泄露。

2.6、配置MCP设置
MCP 服务器需要一个配置文件来告知如何启动,通常可以放在项目内的某处(比如 .mcp 文件、smithery.yaml 等),这个项目的配置文件放在了smithery.yaml中,我们在文件列表中找到它,
并将进行如下配置:

因为我们之前设置了 .env ,因此你可以将以上四个变量直接改为从 .env 读取,或者在这里直接写死硬编码也行。通常推荐使用下面的方式,把 .env 中的变量注入:
# Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml
startCommand:type: stdioconfigSchema:# JSON Schema defining the configuration options for the MCP.type: objectrequired:- mysqlHost- mysqlPort- mysqlUserproperties:mysqlHost:type: stringdescription: The host address of the MySQL database.default: "${env:MYSQL_HOST}"mysqlPort:type: stringdescription: The port number for connecting to MySQL.default: "3306"mysqlUser:type: stringdescription: The username for MySQL authentication.default: "${env:MYSQL_USER}"mysqlPass:type: stringdescription: The password for the specified MySQL user.default: "${env:MYSQL_PASSWORD}"mysqlDb:type: stringdescription: The database name to connect to. If left blank, retrieves all databases.default: "${env:MYSQL_DATABASE}"ssl:type: booleandefault: falsedescription: If set to true, the connection will use SSL.rejectUnauthorizedSSL:type: booleandefault: falsedescription: If set to true, the connection will verify the SSL certificate.allowInsertOperation:type: booleandefault: truedescription: If set to true, INSERT operations will be allowed.allowUpdateOperation:type: booleandefault: truedescription: If set to true, UPDATE operations will be allowed.allowDeleteOperation:type: booleandefault: falsedescription: If set to true, DELETE operations will be allowed.commandFunction:|-(config) => ({ "command": "node", "args": ["dist/index.js"], "env": { "MYSQL_HOST": config.mysqlHost, "MYSQL_PORT": config.mysqlPort, "MYSQL_USER": config.mysqlUser, "MYSQL_PASS": config.mysqlPass, "MYSQL_DB": config.mysqlDb, "MYSQL_SSL": config.ssl, "MYSQL_SSL_REJECT_UNAUTHORIZED": config.rejectUnauthorizedSSL, "ALLOW_INSERT_OPERATION": config.allowInsertOperation, "ALLOW_UPDATE_OPERATION": config.allowUpdateOperation, "ALLOW_DELETE_OPERATION": config.allowDeleteOperation } })
这个文件中同时包括了MCP服务的权限设置,我们可以对它的权限进行修改:

3、在 VSCode 中运行或调试 MCP 服务器
-
直接在终端运行:
在 VSCode 的终端里,先确保已经在项目根目录,然后执行:npx -y @f4ww4z/mcp-mysql-server或者你可以通过 Smithery 启动(如果你配置了 Smithery):
npx -y @smithery/cli run mysql这样就可以启动 MCP 服务器。

4、测试运行
MCP服务器启动之后就可以调用cline插件使用自然语言操纵数据库了。

这个是我运行的一个实例:

讲到最后,我想说的是,vscode调用MCP服务有的时候不是很稳定,有的时候无法正确理解我的查询请求,这里可能是我调用deepseek的理解能力问题(我是这样认为的)。下一篇文章我将讲解如何在cursor中配置MCP服务,并用自然语言操作数据库,cursor对于MCP服务适配的非常好,比在vscode中好用非常多,欢迎大家阅读我的下一篇文章。
相关文章:
使用MCP服务通过自然语言操作数据库(vscode+cline版本)
使用MCP服务操纵数据库(vscodecline版本) 本文主要介绍,在vscode中使用cline插件调用deepseek模型,通过MCP服务器 使用自然语言去操作指定数据库。本文使用的是以己经创建号的珠海航展数据库。 理解MCP服务: MCP(Model Context…...
Vue 3 + TypeScript 实现一个多语言国际化组件(支持语言切换与内容加载)
文章目录 一、项目背景与功能概览二、项目技术架构与依赖安装2.1 技术栈2.2 安装依赖 三、国际化组件实现3.1 创建 i18n 实例3.2 配置 i18n 到 Vue 应用3.3 在组件中使用国际化内容3.4 支持语言切换 四、支持类型安全4.1 添加类型支持4.2 自动加载语言文件 一、项目背景与功能概…...
PhalApi 2.x:让PHP接口开发从“简单”到“极简”的开源框架
—— 专为高效开发而生,助你轻松构建高可用API接口 一、为什么选择PhalApi 2.x? 1.轻量高效,性能卓越 PhalApi 2.x 是一款专为接口开发设计的轻量级PHP框架,其核心代码精简但功能强大。根据开发者实测,在2核2G服务器…...
库magnet使用指南
Magnet 多线程控制库使用指南 目录 库功能概述环境配置核心类与接口基础使用示例代码生成工具高级功能与改进建议完整示例代码常见问题解答 https://blink.csdn.net/details/1872803?spm1001.2014.3001.5501 1. 库功能概述 Magnet 库提供以下核心功能: 多线程…...
Oracle数据库数据编程SQL<9.3 数据库逻辑备份和迁移Data Pump (EXPDP/IMPDP) 导出、导入补充>
Oracle Data Pump 是 Oracle 10g 引入的高效数据迁移工具,相比传统的 EXP/IMP 工具,它提供了更强大的功能和显著的性能提升。以下是对 EXPDP 和 IMPDP 工具的全面讲解。 目录 一、高级功能扩展 1. 数据过滤与转换 2. 加密与安全 二、性能调优进阶 1. 并行处理优化 2. …...
Java 企业级应用:SOA 与微服务的对比与选择
企业级应用开发中,架构设计是决定系统可扩展性、可维护性和性能的关键因素。SOA(面向服务的架构)和微服务架构是两种主流的架构模式,它们各自有着独特的和设计理念适用场景。本文将深入探讨 SOA 和微服务架构的对比,并…...
Linux LED驱动(设备树)
Linux LED驱动(设备树) 之前的LED驱动直接在驱动文件中定义有关寄存器物理地址,然后使用io_remap函数进行内存映射,得到对应的虚拟地址,最后操作寄存器对应的虚拟地址完成对GPIO的初始化。 但也可以先在设备树文件中创…...
Zookeeper的典型应用场景?
大家好,我是锋哥。今天分享关于【Zookeeper的典型应用场景?】面试题。希望对大家有帮助; Zookeeper的典型应用场景? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 ZooKeeper 是一个开源的分布式协调服务,主要用于管理和协调大…...
数据分析不只是跑个SQL!
数据分析不只是跑个SQL! 数据分析五大闭环,你做到哪一步了?闭环一:认识现状闭环二:原因分析闭环三:优化表现闭环四:预测走势闭环五:主动解读数据 数据思维:WHY-WHAT-HOW模…...
面试篇 - GPT-3(Generative Pre-trained Transformer 3)模型
GPT-3(Generative Pre-trained Transformer 3)模型 模型结构 与GPT-2一样,但是应用了Sparse attention: Dense attention:每个token之间两两计算attention,复杂度为O(n2)。 Sparse attention:…...
Dify智能体平台源码二次开发笔记(4) - 多租户的SAAS版实现
前言 Dify 的多租户功能是其商业版的标准功能,我们应当尊重其盈利模式。只有保持良性的商业运作,Dify 才能持续发展,并为用户提供更优质的功能。因此,此功能仅限学习使用。 我们的需求是:实现类似 SaaS 版的账号隔离&a…...
C# 13新特性 - .NET 9
转载: C# 13 中的新增功能 | Microsoft Learn C# 13 包括以下新增功能。 可以使用最新的 Visual Studio 2022 版本或 .NET 9 SDK 尝试这些功能:Introduced in Visual Studio 2022 Version 17.12 and newer when using C# 13 C# 13 中的新增功能 | Micr…...
【Code】《代码整洁之道》笔记-Chapter9-单元测试
第9章 单元测试 过去十年以来,编程专业领域进步很大。1997年时,没人听说过测试驱动开发。对于我们之中的大多数人来说,单元测试是那种用来确保程序“可运行”的用过即扔的短代码。我们辛勤地编写类和方法,再弄出一些特殊代码来测…...
java -jar 如何持久化运行
在 Linux 中,直接通过 java -jar 启动服务后关闭 SSH 客户端(如 Xshell)会导致服务终止,因为进程默认与当前终端会话绑定。以下是几种解决方案,确保服务在后台持久运行: (1)使用nohup命令,让进程忽略挂断信号,并在后台运行。 ps -ef | grep xxx.jar 或者 ps -ef …...
layui中transfer两个table展示不同的数据列
在项目的任务开发中需要达到transfer右侧table需要有下拉框可选择状态,左侧table不变 使用的layui版本为2.4.5,该版本没有对transfer可自定义数据列的配置,所以改动transfer.js中的源码 以下为transfer.js部分源码 也是transfer.js去render的…...
如何通过Radius认证服务器实现虚拟云桌面安全登录认证:安当ASP身份认证系统解决方案
引言:虚拟化时代的安全挑战 随着云计算和远程办公的普及,虚拟云桌面(如VMware Horizon、Citrix)已成为企业数字化办公的核心基础设施。然而,传统的用户名密码认证方式暴露了诸多安全隐患:弱密码易被暴力破…...
如何用DeepSeek大模型提升MySQL DBA工作效率?实战案例解析
如何用DeepSeek大模型提升MySQL DBA工作效率?实战案例解析 MySQL DBA(数据库管理员)的工作涉及数据库监控、SQL优化、故障排查、备份恢复等复杂任务,传统方式依赖手动操作和经验判断,效率较低。而DeepSeek大模型可以结…...
【机器学习】机器学习笔记
1 机器学习定义 计算机程序从经验E中学习,解决某一任务T,进行某一性能P,通过P测定在T上的表现因经验E而提高。 eg:跳棋程序 E: 程序自身下的上万盘棋局 T: 下跳棋 P: 与新对手下跳棋时赢的概率…...
CFD中的动量方程非守恒形式详解
在计算流体力学(CFD)中,动量方程可以写成守恒形式和非守恒形式,两者在数学上等价,但推导方式和应用场景不同。以下是对非守恒形式的详细解释: 1. 动量方程的守恒形式 首先回顾守恒形式的动量方程ÿ…...
如何在本地修改 Git 项目的远程仓库地址
✅ 场景说明 你当前的 Git 项目地址是: http://192.168.0.16/xxx.git你希望把它改成: http://192.168.0.22:8099/xxx.git🧩 操作步骤 步骤 ①:进入项目所在目录 你已经在正确路径下了: cd C:\Develop\xxx确认这个…...
clickhouse中的窗口函数
窗口函数 边界核心参数 窗口边界通过 ROWS、RANGE 或 GROUPS 模式定义,语法为: ROWS BETWEEN AND 基于 物理行位置 定义窗口,与排序键的实际值无关,适用于精确控制窗口行数 – 或 RANGE BETWEEN AND 基于 排序键的数值范围 定义窗口,适用于时间序列或连续数值的场景(…...
如何从项目目标到成功标准:构建可量化、可落地的项目评估体系
引言 在项目管理领域,"项目成功"的定义往往比表面看起来更复杂。根据PMI的行业报告,67%的项目失败源于目标与成功标准的不匹配。当项目团队仅关注"按时交付"或"预算达标"时,常会忽视真正的价值创造。本文将通…...
fbx/obj/glb/gltf/b3dm等通用格式批量转换成osgb
fbx/obj/glb/gltf/b3dm等通用格式批量转换成osgb fbx/obj/glb/gltf/b3dm等通用格式批量转换成osgb...
STM32 BOOT设置,bootloader,死锁使用方法
目录 BOOT0 BOOT1的配置含义 bootloader使用方法 芯片死锁解决方法开发调试过程中,由于某种原因导致内部Flash锁死,无法连接SWD以及JTAG调试,无法读到设备,可以通过修改BOOT模式重新刷写代码。修改为BOOT01,BOOT10…...
vue2 设置ant-table和el-table隔行变色
vue2 设置ant-table和el-table隔行变色 ant-table /* 奇数行 */ ::v-deep .ant-table-tbody > tr:nth-child(odd) {background-color: transparent; } /* 偶数行 */ ::v-deep .ant-table-tbody > tr:nth-child(even) {background-color: rgba(15, 166, 255, 0.26); }el…...
【Redis】string类型
目录 1、介绍2、底层实现【1】SDS【2】int编码【3】embstr编码【4】raw编码【5】embstr和raw的区别 3、常用指令【1】字符串基本操作:【2】批量操作【3】计数器【4】过期时间【5】不存在就插入 4、使用场景 1、介绍 string是redis中最简单的键值对形式,…...
《解锁分布式软总线:构建智能设备统一管理平台》
智能设备的数量呈爆发式增长,从智能家居里的各类电器,到智能办公中的电脑、打印机,再到工业领域的各种自动化设备,不一而足。如何对这些纷繁复杂的智能设备进行有效管理,成为摆在我们面前的一道难题。分布式软总线技术…...
PostgreSQL全平台安装指南:从入门到生产环境部署
一、PostgreSQL核心特性全景解析 1.1 技术架构深度剖析 graph TDA[客户端] --> B(连接池)B --> C{查询解析器}C --> D[优化器]D --> E[执行引擎]E --> F[存储引擎]F --> G[物理存储]G --> H[WAL日志]H --> I[备份恢复] 1.2 特性优势对比矩阵 特性维度…...
UE5 物理模拟 与 触发检测
文章目录 碰撞条件开启模拟关闭模拟 多层级的MeshUE的BUG 触发触发条件 碰撞 条件 1必须有网格体组件 2网格体组件必须有网格,没有网格虽然可以开启物理模拟,但是不会有任何效果 注意开启的模拟的网格体组件会计算自己和所有子网格的mesh范围 3只有网格…...
做仪器UI用到的颜色工具网站
https://color.adobe.com/zh/create/color-wheel 1. 图片取颜色工具 2. 对比度工具,煤矿井下设备,光线暗,要求背景与文字有合适的对比度,可以用这个软件 3. 颜色生成ARGB的值工具,这三个工具,都在上面这…...
