mcp學習

mcp學習

預算:5塊(半頓拼好飯嗚嗚嗚)

出問題試著開啟或者關閉代理。

文章目錄

  • mcp學習
    • 1. 基本原理
    • 2. 環境配置
      • 1. cherryStudio+deepseek+python
      • 2. Cline+deepseek
    • 3. 常用mcp服務
      • 1. mcp-server-fetch
      • 2. mcp-playwright
      • 3. baidu-map
      • 4. filesystem
      • 5. mcp-mysql-server
    • 參考

1. 基本原理

Model Context Protocol(MCP)模型上下文協議。簡單來說mcp就是大模型的標準工具箱,大模型可以利用這些工具與外界互動。

本質就是客戶端用命令行調用了node.js程序,然后程序又執行了某些操作,再把結果返回回來。
在這里插入圖片描述

2. 環境配置

1. cherryStudio+deepseek+python

uv下載

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

把C:\Users\21609\Desktop\code\mcp_server目錄初始化成python 3.13項目

uv python list
C:\Users\21609\Desktop\code\mcp_server>uv init . -p 3.13
uv add "mcp[cli]"

vscode打開項目,需要下載python和python debugger插件

main.py

"""
FastMCP quickstart example.cd to the `examples/snippets/clients` directory and run:uv run server fastmcp_quickstart stdio
"""from mcp.server.fastmcp import FastMCP# Create an MCP server
mcp = FastMCP("Demo")# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:"""Add two numbers""" #注釋必寫,告訴ai大模型這是個加法函數return a + b# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:"""Get a personalized greeting"""return f"Hello, {name}!"# Add a prompt
@mcp.prompt()
def greet_user(name: str, style: str = "friendly") -> str:"""Generate a greeting prompt"""styles = {"friendly": "Please write a warm, friendly greeting","formal": "Please write a formal, professional greeting","casual": "Please write a casual, relaxed greeting",}return f"{styles.get(style, styles['friendly'])} for someone named {name}."# Run the server
if __name__ == "__main__":mcp.run(transport="stdio")

下載 Cherry Studio - 多平臺AI客戶端:https://www.cherry-ai.com/download

只有支持函數調用的模型才能在cherryStudio里面使用mcp,我們使用deepseek v3模型
在這里插入圖片描述

來到deepseek的api開放平臺,創建一個api key,然后充5塊錢。

https://platform.deepseek.com/sign_up

在這里插入圖片描述

在cherryStudio里填一下密鑰
在這里插入圖片描述

來到cherryStudio的設置發現我們缺少東西沒安裝
在這里插入圖片描述

在這里插入圖片描述

在C:\Users\21609.cherrystudio文件夾下新建bin文件夾

去到github上面下載以下兩個文件

bun-windows-x64.zip

uv-x86_64-pc-windows-msvc.zip

將其中的可執行文件復制到C:\Users\21609.cherrystudio\bin下
在這里插入圖片描述

添加服務器->快速創建
在這里插入圖片描述

命令寫uv,參數照著下面寫,然后保存并啟用

--directory
C:\Users\21609\Desktop\code\mcp_server
run
main.py

在這里插入圖片描述

來到首頁助手,點擊添加mcp服務器,點擊deepseek切換為deepseek chat而不是硅基流動的。

在這里插入圖片描述

成功

在這里插入圖片描述

或者可以用sse協議,修改main.py

# Run the server
if __name__ == "__main__":mcp.run(transport="sse")

vscode點擊啟動服務端
在這里插入圖片描述

新建一個mcp服務器
在這里插入圖片描述

更換mcp服務器來試試
在這里插入圖片描述

ai客戶端使用sse協議調用函數并得到結果。

在這里插入圖片描述

或者使用streamable-http,然后啟動。

注意如果deepseek調用失敗,需要先把其他mcp服務器關了。

# Run the server
if __name__ == "__main__":mcp.run(transport="streamable-http")

在這里插入圖片描述

2. Cline+deepseek

vscode下載插件 cline

get started for free

點擊右上角的設置進行配置,模型使用deepseek
在這里插入圖片描述

查看之前cherryStudio的配置
在這里插入圖片描述

點擊添加遠程服務器
在這里插入圖片描述

我們需要手動添加type類型

{"mcpServers": {"test1": {"url": "http://127.0.0.1:8000/mcp","disabled": false,"autoApprove": [],"type": "streamableHttp"}}
}

在這里插入圖片描述

使用mcp服務器
在這里插入圖片描述

成功!
在這里插入圖片描述

3. 常用mcp服務

1. mcp-server-fetch

該服務器使 LLM 能夠檢索和處理網頁內容,并將 HTML 轉換為 Markdown 格式,以便于使用。

pip install mcp-server-fetch

配置一下

{"mcpServers": {"test1": {"url": "http://127.0.0.1:8000/mcp","disabled": false,"autoApprove": [],"type": "streamableHttp"},"fetch":{"command":"python","args":["-m","mcp_server_fetch"],"disabled": false}}
}

在這里插入圖片描述

獲取https://aistudio.baidu.com/projectdetail/1986744的內容并幫我總結

可以看到由于js動態加載,它并沒有爬取完全。

在這里插入圖片描述

在這里插入圖片描述

2. mcp-playwright

一個使用 Playwright 提供瀏覽器自動化功能的模型上下文協議 (MLM) 服務器。該服務器使 LLM 能夠與網頁交互、截取屏幕截圖、生成測試代碼、從網頁中提取網頁數據,并在真實的瀏覽器環境中執行 JavaScript。

訪問https://github.com/punkpeye/awesome-mcp-servers

選擇這個https://github.com/executeautomation/mcp-playwright

先下載模塊

npm install -g @executeautomation/playwright-mcp-server

然后配置一下,注意關閉fetch

"playwright": {"autoApprove": [],"disabled": false,"timeout": 60,"command": "cmd","args": ["/c","npx","-y","@executeautomation/playwright-mcp-server"],"type": "stdio"}

在這里插入圖片描述

幫我打開https://www.github.com/login,輸入用戶名admin,密碼123456

在這里插入圖片描述

3. baidu-map

百度地圖

https://lbsyun.baidu.com/apiconsole/quota

創建服務器端應用,會給出一個api key。

在這里插入圖片描述

npm install @baidumap/mcp-server-baidu-map
"baidu-map": {"command": "npx","args": ["-y","@baidumap/mcp-server-baidu-map"],"env": {"BAIDU_MAP_API_KEY": "<YOUR_API_KEY>"}
}

我想周末去北京,幫我規劃一下旅游路線

在這里插入圖片描述

在這里插入圖片描述

4. filesystem

該mcp服務并不能處理docx等文件,可以使用cherryStudio搭建本地知識庫。

實現本地文件訪問

https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem

npm install @modelcontextprotocol/server-filesystem

參考配置格式

{"mcpServers": {"filesystem": {"command": "npx","args": ["-y","@modelcontextprotocol/server-filesystem","/Users/username/Desktop","/path/to/other/allowed/dir"]}}
}

實際的格式

"filesystem": {"command": "cmd","args": ["/c","npx","-y","@modelcontextprotocol/server-filesystem","/Users/21609/Desktop","C:\\Users\\21609\\Desktop\\test\\啦啦啦"],"autoApprove": ["list_directory","read_text_file"]
}

C:\Users\21609\Desktop\test\啦啦啦文件夾下有什么文件

在這里插入圖片描述

5. mcp-mysql-server

檢索增強生成(RAG,Retrieval-Augmented Generation)是一種結合信息檢索和生成式AI的技術框架。其核心流程是:先通過檢索系統從外部知識庫中查找相關信息,然后將檢索結果與用戶查詢一起輸入生成模型,從而產生更準確可靠的回答。

在這里插入圖片描述

RAG的主要缺點

  1. 檢索質量依賴性強:效果高度依賴檢索系統質量,檢索錯誤會導致生成錯誤
  2. 知識更新延遲:需要定期更新知識庫,無法實時獲取最新信息
  3. 上下文長度限制:檢索文檔可能過長,受限于模型的上下文窗口
  4. 多跳推理困難:復雜問題需要整合多個文檔,RAG處理能力有限
  5. 計算成本較高:同時運行檢索和生成系統,資源消耗大
  6. 幻覺問題依然存在:生成模型仍可能產生不準確推斷

MCP+數據庫的解決方案

MCP(Model Context Protocol)+ 數據庫可以部分解決RAG的缺點:

實時數據訪問:通過數據庫連接實現實時信息獲取,解決更新延遲

精確查詢能力:結構化查詢比向量檢索更準確,提高檢索質量

智能上下文管理:MCP可以動態選擇最相關的數據庫信息

降低計算成本:數據庫查詢比向量檢索更高效

減少幻覺風險:直接從可信數據源獲取信息

局限性:

  • 需要高質量結構化數據
  • 非結構化文本處理能力有限
  • 數據庫維護成本較高
  • 無法完全替代語義相似性檢索

操作mysql

https://github.com/f4ww4z/mcp-mysql-server

npm install @f4ww4z/mcp-mysql-server
"mysql": {"command": "cmd","args": ["/c","npx","-y","@f4ww4z/mcp-mysql-server","mysql://root:123456@localhost:3306/sakila"],"autoApprove": ["connect_db","list_tables"]
}

sakila數據庫里面有那些表
在這里插入圖片描述

參考

【從零編寫MCP并發布上線,超簡單!手把手教程】 https://www.bilibili.com/video/BV1RNTtzMENj/

【【Cline+MCP】王炸組合!告別手動!MCP 自動化工作流,AI 編碼更高效!】 https://www.bilibili.com/video/BV1gKZhYWEnK

UV安裝:https://docs.astral.sh/uv/getting-started/installation/

MCP Github首頁:https://github.com/modelcontextprotocol

MCP Python SKD: https://github.com/modelcontextprotocol/python-sdk

Awesome MCP: https://github.com/punkpeye/awesome-mcp-servers

專題網站: https://smithery.ai/

CherryStudio: https://cherry-ai.com/download

CherryStudioMCP配置文檔: https://docs.cherry-ai.com/advanced-basic/mcp

https://openrouter.ai/

https://github.com/modelcontextprotocol/servers

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/94968.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/94968.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/94968.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Rust:所有權

Rust&#xff1a;所有權拷貝 & 移動堆棧拷貝移動克隆所有權變量的初始權限指針的雙重權限權限的動態變化引用賦值重新借用函數調用時的權限移動拷貝借用不可變借用可變借用復合類型的權限結構體元組數組傳統語言的內存管理要么依賴程序員手動管理&#xff08;C/C&#xff0…

Elasticsearch數據遷移快照方案初探(二):快照創建與多節點存儲問題解決

快照倉庫創建成功 經過前面的配置修改&#xff0c;我們成功創建了快照倉庫&#xff1a; curl -X PUT "https://[ES_HOST]:9200/_snapshot/backup_repo" \-H "Content-Type: application/json" \-u "[USERNAME]:[PASSWORD]" \-k \-d {"type&…

DeepSeek大模型風靡云平臺,百度智能云、阿里云、騰訊云等多個平臺宣布上線DeepSeek模型

近日&#xff0c;百度智能云、華為云、阿里云、騰訊云、360數字安全、云軸科技等多個平臺紛紛宣布上線DeepSeek大模型&#xff0c;這一消息無疑為AI開發者和企業用戶帶來了全新的機遇和選擇。本文將探討DeepSeek大模型上線的背景、意義以及未來的發展趨勢。 首先&#xff0c;我…

position屬性

文章目錄Position屬性&#x1f9ed; 一、position 屬性的取值&#x1f4dd; 二、各屬性值詳解與示例1. static&#xff08;靜態定位&#xff09;2. relative&#xff08;相對定位&#xff09;3. absolute&#xff08;絕對定位&#xff09;4. fixed&#xff08;固定定位&#xf…

通信中間件 Fast DDS(二) :詳細介紹

目錄 1.引言 2.DDS的基本原理 3.FastDDS 的核心特性 4.FastDDS 的核心架構 5.典型應用場景 6.FastDDS 的安裝與快速上手 7.學習資源與社區 1.引言 FastDDS&#xff08;原稱 Fast RTPS&#xff09;是由西班牙公司 eProsima 開發的一款開源、高性能、實時性強的數據分發服…

【69頁PPT】智慧方案智慧校園解決方案(附下載方式)

篇幅所限&#xff0c;本文只提供部分資料內容&#xff0c;完整資料請看下面鏈接 https://download.csdn.net/download/2501_92808811/91776074 資料解讀&#xff1a;【69頁PPT】智慧方案智慧校園解決方案 詳細資料請看本解讀文章的最后內容 智慧校園的概念與背景 智慧校園是…

FPGA的工作原理

FPGA&#xff08;現場可編程門陣列&#xff09;的核心工作原理是通過可配置的硬件架構&#xff0c;讓用戶在芯片出廠后自主定義電路邏輯&#xff0c;實現從“通用硬件”到“專用硬件”的靈活轉換&#xff0c;本質是用可編程資源搭建出符合特定需求的數字電路。一、核心架構&…

構建生產級RAG系統:從數據處理到智能體的全流程實踐

構建生產級RAG系統&#xff1a;從數據處理到智能體的全流程實踐 檢索增強生成&#xff08;RAG&#xff09;技術已成為打造高級知識問答系統的核心&#xff0c;但從原型到穩定高效的生產級系統&#xff0c;需突破數據處理、檢索優化、智能決策等多重挑戰。本文以某型號工業設備…

Java-代理

在 Java 開發中&#xff0c;代理模式是一種非常重要的設計模式&#xff0c;它通過引入代理對象來控制對目標對象的訪問&#xff0c;從而實現額外功能的增強。一、代理模式的基本概念代理模式的核心思想是&#xff1a;通過一個代理對象來間接訪問目標對象&#xff0c;在不修改目…

【基礎知識】互斥鎖、讀寫鎖、自旋鎖的區別

從定義、工作原理、適用場景和性能開銷四個維度來剖析這三種鎖的區別 核心結論 這三種鎖的核心區別在于它們應對“鎖已被占用”情況時的行為策略不同,而這直接決定了它們的性能和適用場景。 鎖類型 核心策略 適用場景 互斥鎖 (Mutex) 等不到,就睡 通用的獨占訪問,臨界區執行…

智慧清潔革新者:有鹿機器人自述

晨曦微露&#xff0c;當城市還未完全蘇醒&#xff0c;我已悄然完成數萬平方米的清潔工作。作為有鹿智能巡掃機器人&#xff0c;我很榮幸能與您分享如何以科技之力重塑清潔行業的標準與體驗。卓越技術&#xff1a;重新定義清潔新標準我搭載的聰明大腦是基于Master2000通用具身智…

python學習打卡day48

知識點回顧&#xff1a; 隨機張量的生成&#xff1a;torch.randn函數卷積和池化的計算公式&#xff08;可以不掌握&#xff0c;會自動計算的&#xff09;pytorch的廣播機制&#xff1a;加法和乘法的廣播機制 ps&#xff1a;numpy運算也有類似的廣播機制&#xff0c;基本一致 im…

記一次雪花算法 ID 精度丟失的Bug:前端接收到的 Long 被“四舍五入”了?

后端生成的 ID&#xff1a;1961005746230337538 前端收到的 ID&#xff1a;1961005746230337500 —— 少了 38&#xff1f;&#xff01;這不是 Bug&#xff0c;是 JavaScript 的“安全整數”陷阱&#xff01;本文記錄一次真實項目中因 雪花算法 ID 精度丟失 導致的線上問題&…

零知開源——基于STM32F407VET6和ADXL345三軸加速度計的精準運動姿態檢測系統

?零知IDE 是一個真正屬于國人自己的開源軟件平臺&#xff0c;在開發效率上超越了Arduino平臺并且更加容易上手&#xff0c;大大降低了開發難度。零知開源在軟件方面提供了完整的學習教程和豐富示例代碼&#xff0c;讓不懂程序的工程師也能非常輕而易舉的搭建電路來創作產品&am…

Android14 init.qcom.usb.rc詳解

本文以高通平臺為例&#xff0c;介紹其USB子系統啟動以及USB各種配置動態切換的邏輯&#xff0c;它是以configfs架構實現動態配置USB。 相關文檔 1. USB子系統的啟動 1.1 on boot階段 1.1.1 重啟恢復用戶選擇的USB配置 當設備重啟時恢復用戶選擇的USB配置&#xff0c;避免每…

Docker的常用命令及簡單使用

1、docker的常用命令 1.1、幫助命令 docker version # 顯示docker的版本信息 docker info # 顯示docker的系統信息&#xff0c;包括鏡像和容器的數量 docker 指令 --help # 查看某個指令的幫助命令可以通過docker --help查看docker常用命…

HGDB全文檢索/中文分詞的使用

文章目錄文檔用途詳細信息文檔用途 本文用于HGDB全文檢索/中文分詞的介紹&#xff0c;其介紹內容在附件&#xff0c;使用案例見正文 詳細信息 一、創建擴展 highgo# create extension zhparser;CREATE EXTENSION highgo# \dFp List of text search parsers Schema…

baijian xiaomaodawang

我將為你創建一個基于Go 1.20.8和Gin框架的博客系統項目。以下是完整的實現方案&#xff1a; 項目創建流程 打開Goland&#xff0c;創建新項目選擇Go項目&#xff0c;設置GOROOT為Go 1.20.8項目名稱&#xff1a;blog-system啟用Go Modules 項目結構 blog-system/ ├── cmd/ │…

Node.js的特性

Node.js的特性 Node.js具有幾個顯著特性&#xff1a; 事件驅動&#xff1a;Node.js采用事件驅動機制來處理請求和響應&#xff0c;這種機制可以幫助開發者處理大量并發請求&#xff0c;提高系統的性能和可靠性。 非阻塞I/O&#xff1a;Node.js使用異步I/O原語來實現非阻塞I/O操…

交叉編譯linux-arm32位程序

目標平臺rv1126 芯片 arm32位架構 在ubuntu22.04上交叉編譯&#xff1a; 編譯器下載地址&#xff1a; Linaro Releases 或者&#xff1a; wget http://releases.linaro.org/components/toolchain/binaries/6.4-2017.11/arm-linux-gnueabihf/gcc-linaro-6.4.1-2017.11-x86_6…