MCP协议实战指南:在VS Code中实现PostgreSQL到Excel的自动化迁移

 作者:后端小肥肠

🍊 有疑问可私信或评论区联系我。

🥑 创作不易未经允许严禁转载。

姊妹篇:

从PDF到精准答案:Coze助力RAGFlow框架提升数据召回率_提升ragflow-CSDN博客

Coze+TreeMind实测:秒出ISO标准流程图/脑图(附完整提示词)-CSDN博客

目录

1. 前言

2. MCP概念

2.1. Function calling VS MCP

2.2. MCPServer平台

2.3. MCP支持的客户端

3. VS Code+Cline实现手搓智能体

3.1. VS Code+Cline集成MCP Server

3.1.1. 基础集成

3.1.2. 安装FileSystem

3.1.3. 安装PostgresSQL

3.2. 发送提示词指令

4. 资料获取

5. 结语

1. 前言

在AI技术日新月异的今天,我们正见证着LLM(大语言模型)从"能说会道"向"能工巧匠"的进化。当Anthropic推出Model Context Protocol(MCP)时,它像一道闪电划破夜空——这个被称作"AI界的USB-C"的协议,正在重新定义人机协作的边界。

作为一个沉迷于技术探索的开发者,我始终在寻找让AI真正"落地"的方法。当看到MCP协议支持本地文件操作、数据库访问甚至浏览器自动化时,一个大胆的想法在我脑中成型:能否在VS Code这个开发者主战场上,用零代码方案复刻类Manus的智能体能力。

本文通过两个开源MCP Server(FileSystem/PostgreSQL),在VS Code中搭建起从数据库查询到文件输出的完整工作流。当看到AI自主分解任务、调用工具并最终生成CSV文件的那一刻,我仿佛触摸到了未来:或许"人人手搓智能体"的时代,真的不再遥远......

2. MCP概念

MCP(Model Context Protocol)是一种旨在简化人工智能与外部资源交互的协议。它被设计用来让开发者通过标准化的接口,让AI能够访问和操作文件系统、数据库、电子表格等多种资源,最终帮助实现更复杂的自动化工作流。MCP的核心理念是通过为AI提供一系列基础的操作功能,使得AI可以自主地完成任务,而无需开发者过多干预。

2.1. Function calling VS MCP

在传统的编程模式中,人工智能通常通过函数调用(Function Calling)的方式来实现与外部资源的交互。函数调用要求开发者预先编写每一个功能模块的接口,AI只能通过调用这些函数来执行特定的操作。这种方式的局限性在于,开发者需要为每种可能的任务和操作单独创建函数和逻辑代码,且每次AI执行任务时,开发者都需要介入,提供新的函数或修改现有的代码。这导致开发者的工作量增加,且系统的灵活性受到一定限制。

MCP(Model Context Protocol)的出现则解决了这一问题。它通过标准化的协议,定义了一套通用的接口和操作规范,使得AI能够以更为自主的方式与各种外部资源进行交互。开发者不需要为每个任务编写独立的函数,AI通过MCP协议可以直接访问文件系统、数据库、电子表格等各种资源,并在这些资源上执行一系列操作。

MCP的优势在于,它允许AI在没有过多干预的情况下完成复杂的任务。开发者只需要为AI配置相关的资源和权限,而AI则可以根据预定义的协议自动决定如何操作这些资源。这使得开发者能够更加专注于设计和优化AI的智能决策,而不必被繁琐的编程工作所束缚。

特性

Function Calling

MCP

操作灵活性

受限于开发者编写的函数接口,需要为每个任务创建单独函数。

高度灵活,AI可以根据协议自主选择操作的方式。

开发者干预

每次任务执行都需要开发者介入,编写或修改函数。

开发者只需配置资源和权限,AI可以自主执行任务。

适用场景

适用于简单的功能调用,任务变化较少的场景。

适用于复杂的任务自动化和跨系统资源交互。

扩展性

扩展性差,添加新功能时需要编写新函数。

高度可扩展,支持多种外部资源和自动化工作流。

维护难度

随着任务增多,函数接口的维护难度加大。

由于协议标准化,维护工作减少,资源配置更加简单。

集成外部资源的难度

需要开发者逐一编写适配函数进行集成。

使用标准化协议,可以轻松集成各种外部资源。

工作流自动化

需要编写多个函数和控制逻辑,自动化程度较低。

支持通过协议实现高度自动化的工作流。

从对比表中可以看出,MCP在灵活性、扩展性和自动化方面相较于传统的函数调用方式具有显著的优势,尤其在涉及到跨系统资源集成和复杂自动化任务时,MCP的优势尤为明显。

2.2. MCPServer平台

MCPServer平台是Model Context Protocol(MCP)协议的核心构建块,它为开发者提供了一个服务端的基础架构,用以支持MCP协议的实现与运作。MCPServer是一个开源平台,允许开发者通过配置和搭建MCP服务器,轻松地将各种外部资源与AI进行集成,并通过MCP协议进行交互,主流一些的平台主要有以下一个:

官方:https://github.com/modelcontextprotocol/servers, 这里提供了完整的代码库和文档,帮助开发者部署和自定义MCP服务器。通过这个平台,开发者能够快速配置自己的MCP环境,并将其与不同的应用和服务对接。

MCPSo:MCP Servers,这个网站是一个专门收集和展示Model Context Protocol(MCP)服务器的平台,致力于为开发者和用户提供丰富的MCP服务器资源。在MCPSo上,你可以浏览各种类型的MCP服务器,包括地图服务、浏览器自动化、数据处理等,满足不同场景下的需求。此外,MCPSo还提供了服务器的详细信息和配置示例,帮助用户快速上手和集成。

MCPMarket:MCP Market | Discover Top MCP Servers,它汇集了大量与MCP兼容的工具、服务和资源。在MCPMarket上,你可以发现各种MCP服务器,了解其功能和应用场景,方便您根据需求选择合适的工具。平台提供了清晰的分类和搜索功能,帮助用户快速找到所需的资源。

2.3. MCP支持的客户端

在MCP的生态系统中,支持的客户端种类繁多,每个客户端都具备不同的功能和优势,能够帮助开发者根据不同的需求完成各种任务。下表展示了多种MCP客户端及其各自支持的特性,具体包括对资源、提示、工具、采样等的支持,具体类可基于网址查看:Example Clients - Model Context Protocol

3. VS Code+Cline实现手搓智能体

我想做一个测试,如果我给大模型下达了一个指令,他是否会分解步骤,进行规划,依次执行,最后给我一个我想要的结果,如果可以,那是不是人人手搓智能体的时代就不远了,于是我想到了一个简单场景,读取PostgresSQL表中的数据写入本地excel表格。要完成上述业务场景,需要预先准备一下场景数据,在PostgresSQL中准备一张student数据表,准备工作就这一步。

针对这个需求我找了两个对应的MCP Server,分别是File Syetem(github)、PostgresSQL(github)。下面就从MCP Server在VS Code中的集成开始,一步一步带大家体验如何用零代码方案复刻类Manus的智能体能力。

3.1. VS Code+Cline集成MCP Server

3.1.1. 基础集成

首先在VS Code中安装Cline插件,我安装的是中文汉化版:

Cline安装完成以后需要配置一下API提供商(我选的DeepSeek)。

用“你好”测试一下大模型是不是集成进来了

3.1.2. 安装FileSystem

点击Cline的第二个图标,进入MCP服务器的市场选项页安装一下MCP服务器,我安装的是FileSystem,可以搜索filesystem直接安装。

也可以采用npx的方式安装,我的系统的win10,用的是npx的方式,进入MCP服务器——已安装选项页,点击配置MCP服务器填写如下配置:

"filesystem": {"command": "cmd","args": ["/c", "npx","-y","@modelcontextprotocol/server-filesystem","D:/wx"],"disabled": false,"autoApprove": []
}
3.1.3. 安装PostgresSQL

采用npx的方式安装,进入MCP服务器已安装选项页,点击配置MCP服务器填写如下配置:

 "postgres": {"command": "cmd","args": ["/c","npx","-y","@modelcontextprotocol/server-postgres","postgresql://username:pwd@localhost:5432/database_name"],"disabled": false,"autoApprove": ["query"]}

在上面命令中吧username、pwd、database_name这三个参数换成你自己的数据库配置,配置完了以后可以看一下右侧的已安装选项页是否安装了对应的MCP Server。

3.2. 发送提示词指令

MCP Server都安装了以后,我们需要看一下每个MCP Server的用法,这里我带着大家看一下,首先是FileSystem:

从图上可以看出File System有很多功能,比如读取文件,写入文件,编辑文件等(这个大家),每个功能都有使用说明,比如read_file,要用这个工具就需要传入path,path的话我们在配置文件里面已经配置过了。

接下来就是postgres,它的功能只有query(查询数据库)。

这两个MCP Server完成数据读写的技术路线大致如下:

  1. 数据读取
    首先,通过PostgresSQL(MCP Server)在PostgresSQL数据库中读取所需的数据。这一过程涉及到数据库连接、查询执行以及数据提取,确保所需信息能够准确无误地获取。
  2. 文件创建
    接下来,FileSyetem(MCP Server)将在D:/wx目录下创建一个名为xfc.xlsx的文件。此步骤需要确保目录的存在以及文件的正确命名,以便后续的数据写入操作能够顺利进行。
  3. 数据写入
    最后,FileSyetem(MCP Server)将把从PostgresSQL数据库中读取的数据写入到刚刚创建的xfc.xlsx文件中。此过程需要处理数据格式的转换和写入操作的执行,确保数据能够以正确的格式存储在Excel文件中。

准备工作已经完成,开始发送命令:

帮我查询student中所有数据,并写入D:/wx/xfc.xlsx

发送命令后,大模型就开始拆解我的任务,然后调用相应的MCP Server:

在末尾的时候.xlsx文件无法写入,大模型还更改了方案,改为写入.csv,最后成功了:

我现在去目录下面看一下结果,发现D:/wx目录下面新建了xfc.csv:

打开文件看一下,数据已经被成功写入了csv文件:

4. 资料获取

如果你对DeepSeek的相关知识还不熟悉,可以关注gzh后端小肥肠,点击底部【资源】菜单获取DeepSeek相关教程资料。

5. 结语

在本文中,我们深入探讨了如何利用Model Context Protocol(MCP)在VS Code环境中构建智能体,成功实现了从PostgreSQL数据库读取数据并输出至Excel文件的功能。这一过程展示了MCP在简化AI与外部资源交互方面的强大能力,预示着“人人手搓智能体”时代的到来。下一篇文章将重点介绍如何在Spring Boot框架中整合MCP。通过将SpingBoot与MCP相结合,我们可以将现有应用转变为智能AI助手,进一步提升系统的智能化水平和用户体验。敬请期待!

如果本文对你有帮助,请动动小手点点关注哦~小肥肠将持续更新AI相关干货知识和好用工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/78971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型微调(PEFT)

大模型微调(PEFT) PEFT(Parameter-Efficient Fine-Tuning)一、PEFT 核心方法1. LoRA(Low-Rank Adaptation)2. Adapter3. Prefix Tuning4. Prompt Tuning5. QLoRA(Quantized LoRA) 二…

flutter 打包mac程序 dmg教程

✅ 前提条件 ✅ 你已经在 macOS 上安装了 Android Studio Flutter SDK。 ✅ Flutter 支持 macOS 构建。 运行下面命令确认是否支持: Plain Text bash 复制编辑 flutter doctor ---## 🧱 第一步:启用 macOS 支持如果是新项目,…

鸿蒙开发-动画

1. 动画-动画特效 // 定义接口 (每个列表项的数据结构) interface ImageCount {url: stringcount: number }// 需求1: 遮罩层显隐 透明度opacity 0-1 层级zIndex -1~99 // 需求2: 图片缩放 缩放scale 0-1Entry Component struct Index {// 基于接口, 准备数据State images…

js:循环查询数组对象中的某一项的值是否为空

循环检查 selinfo 数组中的每一个对象,判断其中的 po_qty 和 price 是否为空(null、undefined 或空字符串 ""),可以使用以下几种方法: 方法1:使用 forEach 循环检查每一项 const selinfo this.…

x-cmd install | jellex - 用 Python 语法在终端里玩转 JSON 数据!

目录 核心功能与特点安装优势亮点适用场景 还在为命令行下处理 JSON 数据烦恼吗?jellex 来了!它是一款基于终端的交互式 JSON 和 JSON Lines 数据处理工具,让你用熟悉的 Python 语法,轻松过滤、转换和探索 JSON 数据。 核心功能与…

4月份到9月份看6本书第二天【ERP与企业管理】

ERP与企业管理 1-11章全面介绍了ERP的基本原理、物料管理功能、计划功能、生产和采购管理功能、效益以及实施和应用ERP为企业带来的深层次的变化。 第12章讨论了软件系统的选型。 第13章介绍了ERP实施和运行管理的方法 第14章介绍了国际上广泛使用的ERP实施应用的评估方法。…

Opencv计算机视觉编程攻略-第十三节 跟踪视频中的物品

这是opencv系列的最后一节,主要学习视频序列,上一节介绍了读取、处理和存储视频的工具,本文将介绍几种跟踪图像序列中运动物体的算法。可见运动或表观运动,是物体以不同的速度在不同的方向上移动,或者是因为相机在移动…

001 蓝桥杯嵌入式赛道备赛——基础

个人笔记,不扭扭捏捏,一口气到位。方便自己也方便大家 00 时钟线 cubeMX已经完成了大多数工作 01 LED(GPIO输出) 在使用LED的时候先把SN74HC573锁存器PD2置高电平,然后写入LED所要的高低电平,然后置PD2低…

案例-索引对于并发Insert性能优化测试

前言 最近因业务并发量上升,开发反馈对订单表Insert性能降低。应开发要求对涉及Insert的表进行分析并提供优化方案。   一般对Insert 影响基本都在索引,涉及表已按创建日期做了分区表,索引全部为普通索引未做分区索引。 优化建议: 1、将UNIQUE改为HASH(64) GLOBAL IND…

【技术文章的标准结构与内容指南】

技术文章的标准结构与内容指南 技术文章是传递专业知识、分享实践经验的重要媒介。一篇高质量的技术文章不仅能够帮助读者解决问题,还能促进技术交流与创新。以下是技术文章通常包含的核心内容与结构指南。 1. 标题 一个好的技术文章标题应当: 简洁明…

豪越消防一体化安全管控平台:构建消防“一张图”新生态

在城市化进程加速、建筑规模与功能日益复杂的当下,消防救援工作面临着诸多严峻挑战。火灾隐患如同隐藏在暗处的“定时炸弹”,广泛分布于城市的各个角落,想要快速、精准定位绝非易事。信息传递的不顺畅更是雪上加霜,导致救援效率大…

重学Redis:Redis常用数据类型+存储结构(源码篇)

一、SDS 1,SDS源码解读 sds (Simple Dynamic String),Simple的意思是简单,Dynamic即动态,意味着其具有动态增加空间的能力,扩容不需要使用者关心。String是字符串的意思。说白了就是用C语言自己封装了一个字符串类型&a…

抖音IP属地可以随便选择地址吗?深度解析

在当今社交媒体盛行的时代,抖音作为受欢迎的短视频平台之一,其IP属地显示功能引发了广泛关注。许多用户好奇:抖音的IP属地是否可以随意更改?是否存在方法可以“伪装”自己的位置?‌本文将深入探讨这一话题。 一、抖音I…

SOLID原则详解:提升软件设计质量的关键

前言 关于设计原则SOLID具体指的是什么,怎么理解这些设计原则,我觉得有必要记录一笔,毕竟这个设计原则确实经常在关键技术文档中提及,在编程思想中提及,在日常的开发中使用,但是对我来说,似乎知…

如何使用 ONLYOFFICE 恢复之前的文件版本?

如何使用 ONLYOFFICE 恢复之前的文件版本? https://www.onlyoffice.com/blog/zh-hans/2023/04/how-to-use-version-history

简简单单实现一个Python+Selenium的自动化测试框架

什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefox的…

Java设计模式之中介者模式:从入门到架构级实践

一、什么是中介者模式? 中介者模式(Mediator Pattern)是一种行为型设计模式,其核心思想是通过引入一个中介对象来封装多个对象之间的交互关系。这种模式将原本复杂的网状通信结构转换为星型结构,类似于现实生活中的机…

Trinity三位一体开源程序是可解释的 AI 分析工具和 3D 可视化

一、软件介绍 文末提供源码和程序下载学习 Trinity三位一体开源程序是可解释的 AI 分析工具和 3D 可视化。Trinity 提供性能分析和 XAI 工具,非常适合深度学习系统或其他执行复杂分类或解码的模型。 二、软件作用和特征 Trinity 通过结合具有超维感知能力的不同交…

LeetCode 热题 100_单词拆分(86_139_中等_C++)(动态规划)

LeetCode 热题 100_单词拆分(86_139) 题目描述:输入输出样例:题解:解题思路:思路一(动态规划): 代码实现代码实现(思路一(动态规划)&a…

VM虚拟机安装及Ubuntu安装配置

VM虚拟机安装及Ubuntu安装配置 1、VM虚拟机安装2、创建虚拟机3、Ubuntu系统安装4、编译环境配置4.1 、Ubuntu和 Windows文件互传 文件互传4.1.1、 开启Ubunt下的FTP服务 4.2、 Ubuntu下NFS和SSH服务开启4.2.1、 NFS服务开启4.2.2、 SSH服务开启 4.3、 交叉编译器安装4.3.1 安装…