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.pswp.cn/diannao/78971.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/78971.shtml
英文地址,請注明出處:http://en.pswp.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 安裝…