MCP Host、MCP Client、MCP Server全流程實戰

目錄

準備工作

MCP Server 實現

調試工作

MCP Client 實現

MCP Host 配置

第一步:配置支持 function calling的 LLM

第二步:添加MCP Server

一般有兩種方式,第一種json配置,第二種直接是Command形式,我這里采用Command形式

第三步:使用MCP Server


準備工作

安裝相關依賴

pip install mcp "mcps[cli]" uv

MCP Server 實現

撰寫 stdio_server.py 實現邏輯
from mcp.server.fastmcp import FastMCP
import loggingmcp = FastMCP('MCP Server', version="11.45.13")# pip install mcps "mcps[cli]" uv
@mcp.tool(name='add',description='對兩個數字進行實數域的加法'
)
def add(a: int, b: int) -> int:return a + b@mcp.resource(uri="greeting://{name}",name='greeting',description='用于演示的一個資源協議'
)
def get_greeting(name: str) -> str:return f"Hello, {name}!"@mcp.prompt(name='translate',description='進行翻譯的prompt'
)
def translate(message: str) -> str:return f'請將下面的話語翻譯成中文:\n\n{message}'if __name__ == '__main__':logging.basicConfig(level=logging.INFO)mcp.run(transport='stdio')

需要注意??:python 包盡量不要叫 mcp,不然在ide安裝依賴識別時候會誤判

上述,最關鍵的是每個函數上@mcp.*()中description字段,這是后續LLM意圖識別的關鍵。

調試工作

來到文件stdio_server.py所在的目錄

mcp dev stdio_server.py

注意??,啟動的是node服務,所以本地需要node環境,最好是高于node 17版本,這里利用nvm版本管理器切換到高版本。

nvm use v18.17.0

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

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

相關文章

4.21—4.22學習總結 JavaWeb:HTML-CSS

Web:能夠通過瀏覽器訪問到的網站。 Web標準: HTML: vscode中進行注釋的快捷鍵為ctrl斜線/ h1的字體最大,依次遞減,只存在h1—h6。 超鏈接: 設置字體顏色: 方式三寫一個css文件,將方…

Kaamel Agent: 基于EU AI Act的AI影響評估(AIIA)

1. 引言:安全視角下的AI監管 隨著人工智能技術的快速發展和廣泛應用,AI系統在為社會帶來創新和效率的同時,也引發了諸多關于安全、隱私和合規的擔憂。在這一背景下,全球范圍內涌現出多種監管框架和標準,旨在確保AI系統…

Mongodb分布式文件存儲數據庫

文章目錄 一、MongoDB 簡介基本信息特點內部組件 二、MongoDB 部署1. 安裝依賴2. 解壓部署并配置環境變量3. 修改配置文件以及啟動服務4.數據庫權限管理 三、MongoDB 管理1. 角色權限2. 操作命令用戶管理命令常用命令(Mongo4.2.8)數據庫相關用戶相關集合…

麒麟V10安裝MySQL8.4

1、下載安裝包 wget https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.5-1.el7.x86_64.rpm-bundle.tar2、解壓 mkdir -p /opt/mysql tar -xvf mysql-8.4.5-1.el7.x86_64.rpm-bundle.tar -C /opt/mysql3、安裝MySQL 3.1、卸載mariadb rpm -qa | grep mariadb rpm -e m…

Unreal如何使用后處理材質實現一個黑屏漸變效果

文章目錄 前言相機后期處理材質創建材質相機設置動態修改FadeAlpha參數使用示例最后前言 UE5 開發VR ,如何通過PostProcess輕松實現黑屏漸變效果 最簡單的辦法,其實是使用一個半球形模型,遮擋住相機,然后控制這個半球形遮罩的顏色透明度,至少Unity中默認的Tunneling是這么…

其它生成式(對比列表生成式)

一、字典生成式: # keys[name, age, gender] # dic{key:None for key in keys} # print(dic) items[(name, Tom), (age, 18), (gender, male)] res{k:v for k,v in items if k ! gender} print(res) 二、集合生成式: keys[name, age, gender] set1{ke…

健身房管理系統(springboot+ssm+vue+mysql)含運行文檔

健身房管理系統(springbootssmvuemysql)含運行文檔 健身房管理系統是一個全面的解決方案,旨在幫助健身房高效管理其運營。系統提供多種功能模塊,包括會員管理、員工管理、會員卡管理、教練信息管理、解聘管理、健身項目管理、指導項目管理、健身器材管理…

LeetCode 第 262 題全解析:從 SQL 到 Swift 的數據分析實戰

文章目錄 摘要描述題解答案(SQL)Swift 題解代碼分析代碼示例(可運行 Demo)示例測試及結果時間復雜度分析空間復雜度分析總結未來展望 摘要 在實際業務中,打車平臺要監控行程的取消率,及時識別服務質量的問…

三生原理與現有密碼學的核心區別?

AI輔助創作: 三生原理與現有密碼學的核心區別 一、?哲學基礎與設計邏輯? ?動態生成 vs 靜態分析? 三生原理以“陰陽動態平衡”為核心,通過參數化生成(如素數構造中的陰陽元聯動公式)模擬系統演化過程,而現有密碼…

4.19-4.20學習總結 網絡編程+反射+動態代理

網絡編程: IPv6有2的128次方個ip。 端口號: 協議: UDP發送和接收消息: UDP的三種通信方式: 單播:一對一,一個發送端對應一個接收端 創建DatagramSocket對象 組播:一個發送端對應一…

Swiper、樣式結構重用、GridGridItem

今日核心: 容器組件:Swiper、Grid\GridItem樣式&結構重用:Builder、Extend、Styles 相關資源: 圖片素材:📎day01.zip 1. Swiper 1.1. 適用場景 首先來看看 Swiper 在什么情況下會用到 鏈接 Swiper組件提供滑…

前沿分享|技術雷達202504月刊精華

本期雷達 ###技術部分 7. GraphRAG 試驗 在上次關于 檢索增強生成(RAG)的更新中,我們已經介紹了GraphRAG。它最初在微軟的文章中被描述為一個兩步的流程: (1)對文檔進行分塊,并使用基于大語言…

數據結構與算法-順序表應用

一.通訊錄的創建 首先我們要理解的是通訊錄本身就是以順序表為底層的 只不過順序表中的數組,這里我們是用結構體來替代,用來存儲用戶的信息 由于是通訊錄的本質就是順序表,所以順序表的任何方法它都能套用 Contact.h: #pragma once #def…

【C++】新手入門指南(下)

文章目錄 前言 一、引用 1.引用的概念和定義 2.引用的特性 3.引用的使用 4.const引用 5.指針和引用的關系 二、內聯函數 三、nullptr 總結 前言 這篇續上篇的內容新手入門指南(上),繼續帶大家學習新知識。如果你感興趣歡迎訂購本專欄。 一、…

uniapp-商城-33-shop 布局搜索頁面以及u-search

shop頁面上有一個搜索&#xff0c;可以進行商品搜索&#xff0c;這里我們先做一個頁面布局&#xff0c;后面再來進行數據i聯動。 1、shop頁面的搜索 2、搜索的頁面代碼 <navigator class"searchView" url"/pagesub/pageshop/search/search"> …

SAP 采購訂單如何防止開票數量 大于 收貨數量呢

配置點如下&#xff1a; 事務碼&#xff1a;OMRM&#xff0c;配置如下 當過賬開票的數量 大于收貨數量的時候會提示如下&#xff1a;

Kotlin 的 suspend 關鍵字

更多相關知識 Kotlin 的 suspend 關鍵字是 Kotlin 協程的核心組成部分&#xff0c;它用于標記一個函數可以被掛起&#xff08;暫停執行&#xff09;并在稍后恢復執行&#xff0c;而不會阻塞線程。 理解 suspend 的作用需要從以下幾個方面入手&#xff1a; 1. 允許非阻塞的異步…

UDS診斷協議iso-14229 15765

Diagnostic request 形式多種: 1.SID+DID 2.SID+Sub-Func+DID 3.SID+Sub-Func SID占1個Byte,Sub-func占一個Byte,DID通常兩個Byte eg.10 01 (SID+Sub-Func) 10 03 05 02 (SID+Sub-Func+DID) 22 02 00 (SID+DID) 肯定響應抑制位 抑制正響應信息除非是收到NRC 0x78的情況下 不…

記錄一次使用面向對象的C語言封裝步進電機驅動

簡介 (2025/4/21) 本庫對目前僅針對TB6600驅動下的42步進電機的基礎功能進行了一定的封裝, 也是我初次嘗試以面向對象的思想去編寫嵌入式代碼, 和直流電機的驅動步驟相似在調用stepmotor_attach()函數和stepmotor_init()函數之后僅通過結構體數組stepm然后指定枚舉變量中的id即…

[創業之路-376]:企業法務 - 創業,不同的企業形態,個人承擔的風險、收益、稅費、成本不同

在企業法務領域&#xff0c;創業時選擇不同的企業形態&#xff0c;個人在風險承擔、收益分配、稅費負擔及運營成本方面存在顯著差異。以下從個人獨資企業、合伙企業、有限責任公司、股份有限公司四種常見形態展開分析&#xff1a; 一、個人承擔的風險 個人獨資企業 風險類型&…