dify插件接入fastmcp示例

文章目录

  • 1. 使用python完成mcp服务
    • 1.1 准备环境(python安装fastmcp)
    • 1.2 `mcp`服务端示例代码
    • 1.3 启动`mcp`服务端
  • 2. `dify`接入
    • 2.1 安装`MCP SSE`和` Agent 策略(支持 MCP 工具) `插件
    • 2.2 dify agent插件配置mcp:
    • 2.3 mcp服务配置:
    • 2.4 添加授权
    • 2.5 点击运行

1. 使用python完成mcp服务

1.1 准备环境(python安装fastmcp)

fastmcp官方文档:https://modelcontextprotocol.io/introduction

uv add fastmcp

1.2 mcp服务端示例代码

#!/usr/bin/env python 
# coding: utf-8
from mcp.server.fastmcp import FastMCP# name: 是服务器的标识符或名称,用于区分不同的 MCP 服务器
# instructions:服务器描述,用于日志、文档和客户端展示
mcp = FastMCP("mcp_server_demo", "mcp server example", port=8095)@mcp.tool("sum of two numbers", "计算两数之和")
def add(a: int, b: int) -> int:"""sum of two numbersmcp.tool注册工具函数add,工具是模型可以调用的功能,由服务器暴露给客户端或语言模型:param a::param b::return:"""print(f"计算两数之和a:{a}, b:{b}")return a + bif __name__ == '__main__':# mcp: Model Context Protocol,模型上下文协议# 启动mcp服务器, transport=stdio(指定通信方式为标准输入输出),sse(Server-Sent Events。单向通信,基于HTTP协议的服务器推送技术)mcp.run(transport="sse")

1.3 启动mcp服务端

# Using the FastMCP CLI
fastmcp run server.py# Or with Python/uv directly
python server.py
uv run python server.py# need node.js to launches a web interface
fastmcp dev server.py

sse方式示例:

(test-uv) (base) pywcc@wcc:~/test_uv$ uv run mcp_demo.py
INFO:     Started server process [15248]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8095 (Press CTRL+C to quit)

2. dify接入

2.1 安装MCP SSEAgent 策略(支持 MCP 工具)插件

https://marketplace.dify.ai/plugins/junjiem/mcp_see_agent?language=zh-Hans

https://marketplace.dify.ai/plugins/junjiem/mcp_sse?language=zh-Hans

应用市场:https://marketplace.dify.ai/

下载插件:
在这里插入图片描述
离线安装插件:
在这里插入图片描述

2.2 dify agent插件配置mcp:

在这里插入图片描述
在这里插入图片描述

2.3 mcp服务配置:

# 示例
{"server_name1": {"url": "http://host.docker.internal:8095/sse","headers": {},"timeout": 60,"sse_read_timeout": 300},"server_name2": {"url": "http://host.docker.internal:8095/sse"}
}# 单个mcp server
{"mcp_server_demo":{"url":"http://host.docker.internal:8095/sse","headers": {},"timeout": 60,"sse_read_timeout": 300}}

2.4 添加授权

在这里插入图片描述
指令:

你是一个工具助手,支持mcp协议获取可用工具,并执行工具调用。

2.5 点击运行

mcp服务端日志:

[05/10/25 18:58:21] INFO     Processing request of type            server.py:534ListToolsRequest                                   
[05/10/25 19:02:26] INFO     Processing request of type            server.py:534ListToolsRequest                                   INFO     Processing request of type            server.py:534CallToolRequest                                    
INFO:     127.0.0.1:33780 - "GET /sse HTTP/1.1" 200 OK
INFO:     127.0.0.1:33788 - "POST /messages/?session_id=dc23ee63234e4e38a85415f65796e608 HTTP/1.1" 202 Accepted
INFO:     127.0.0.1:33788 - "POST /messages/?session_id=dc23ee63234e4e38a85415f65796e608 HTTP/1.1" 202 Accepted
INFO:     127.0.0.1:33788 - "POST /messages/?session_id=dc23ee63234e4e38a85415f65796e608 HTTP/1.1" 202 Accepted
INFO:     127.0.0.1:33788 - "POST /messages/?session_id=dc23ee63234e4e38a85415f65796e608 HTTP/1.1" 202 Accepted
计算两数之和a:1, b:2

运行结果:
在这里插入图片描述

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

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

相关文章

Linux 挖矿木马排查命令清单

Linux 挖矿木马排查命令清单 1. 系统资源使用情况检查 # 查看CPU、内存使用情况 top -c# 检查CPU占用最高的进程 ps aux --sort-%cpu# 查找可疑进程名 ps -ef | grep -i miner\|cpu\|GPU\|xmr# 检查网络连接情况 lsof -i2. 可疑进程和隐藏进程检查 # 检查僵尸进程 ps -ef | …

PyTorch 中如何针对 GPU 和 TPU 使用不同的处理方式

一个简单的矩阵乘法例子来演示在 PyTorch 中如何针对 GPU 和 TPU 使用不同的处理方式。 这个例子会展示核心的区别在于如何获取和指定计算设备,以及(对于 TPU)可能需要额外的库和同步操作。 示例代码: import torch import tim…

自主shell命令行解释器

目标 能处理普通命令能处理内建命令 实现原理 用下面的时间轴来表示时间发生次序。时间从左向右。shell由标识为sh的方块,它随着时间从左向右移动。 shell从用户读入字符串“ls”。shell建立一个新的进程,然后等待进程中运行ls程序并等待进程结束。 …

如何在sheel中运行Spark

启动hdfs集群,打开hadoop100:9870,在wcinput目录下上传一个包含很多个单词的文本文件。 启动之后在spark-shell中写代码。 // 读取文件,得到RDD val rdd1 sc.textFile("hdfs://hadoop100:8020/wcinput/words.txt") // 将单词进行切…

【入门】数字走向II

描述 输入整数N&#xff0c;输出相应方阵。 输入描述 一个整数N。&#xff08; 0 < n < 10 ) 输出描述 一个方阵&#xff0c;每个数字的场宽为3。 #include <bits/stdc.h> using namespace std; int main() {int n;cin>>n;for(int in;i>1;i--){for(…

Python自动化-python基础(下)

六、带参数的装饰器 七、函数生成器 运行结果&#xff1a; 八、通过反射操作对象方法 1.添加和覆盖对象方法 2.删除对象方法 通过使用内建函数: delattr() # 删除 x.a() print("通过反射删除之后") delattr(x, "a") x.a()3 通过反射判断对象是否有指定…

重新定义高性能:Hyperlane —— Rust生态中的极速HTTP服务器

重新定义高性能&#xff1a;Hyperlane —— Rust生态中的极速HTTP服务器 &#x1f680; 为什么选择Hyperlane&#xff1f; 在追求极致性能的Web服务开发领域&#xff0c;Hyperlane 凭借其独特的Rust基因和架构设计&#xff0c;在最新基准测试中展现出令人惊艳的表现&#xff…

通俗的理解MFC消息机制

1. 消息是什么&#xff1f; 想象你家的门铃响了&#xff08;比如有人按门铃、敲门、或者有快递&#xff09;&#xff0c;这些都是“消息”。 在 MFC 中&#xff0c;消息就是系统或用户触发的各种事件&#xff0c;比如鼠标点击&#xff08;WM_LBUTTONDOWN&#xff09;、键盘输入…

腾讯开源SuperSonic:AI+BI如何重塑制造业数据分析?

目录 一、四款主流ChatBI产品 二、ChatBI应用案例与实际落地情况 三、SuperSonic底层原理 3.1、Headless BI 是什么 3.2、S2SQL 是什么 3.3、SuperSonic 平台架构 四、ChatBI应用细节深挖 五、与现有系统的集成方案 六、部署和安全 七、开源生态、可扩展性与二次开…

AI生成视频推荐

以下是一些好用的 AI 生成视频工具&#xff1a; 国内工具 可灵 &#xff1a;支持文本生成视频、图片生成视频&#xff0c;适用于广告、电影剪辑和短视频制作&#xff0c;能在 30 秒内生成 6 秒的高清视频&#xff08;1440p&#xff09;&#xff0c;目前处于免费测试阶段。 即…

OrangePi Zero 3学习笔记(Android篇)5 - usbutils编译(更新lsusb)

目录 1. Ubuntu中编译 2. AOSP编译 3. 去掉原来的配置 3. 打包 4. 验证lsusb 在Ubuntu中&#xff0c;lsusb的源代码源自usbutils。而OrangePi Zero 3中lsusb的位置可以看文件H618-Android12-Src/external/toybox/Android.bp&#xff0c; "toys/other/lsusb.c",…

bcm5482 phy 场景总结

1,BCM5482是一款双端口10/100/1000BASE-T以太网PHY芯片,支持多种速率和双工模式。其配置主要通过MDIO(Management Data Input/Output)接口进行,MDIO接口用于访问PHY芯片内部的寄存器,从而配置网络速率、双工模式以及其他相关参数。 a,具体以下面两种场景举例 2. 寄存器和…

RedHat磁盘的添加和扩容

前情提要 &#x1f9f1; 磁盘结构流程概念图&#xff1a; 物理磁盘 (/dev/sdX) └── 分区&#xff08;如 /dev/sdX1&#xff09;或整块磁盘&#xff08;直接使用&#xff09; └── 物理卷 (PV, 用 pvcreate) └── 卷组 (VG, 用 vgcreate) …

Lua—元表(Metatable)

原表解析 在 Lua table 中我们可以访问对应的 key 来得到 value 值&#xff0c;但是却无法对两个 table 进行操作(比如相加)。 因此 Lua 提供了元表(Metatable)&#xff0c;允许我们改变 table 的行为&#xff0c;每个行为关联了对应的元方法。 setmetatable(table,metatable…

一种运动平台扫描雷达超分辨成像视场选择方法——论文阅读

一种运动平台扫描雷达超分辨成像视场选择方法 1. 专利的研究目标与意义1.1 研究目标1.2 实际意义2. 专利的创新方法与技术细节2.1 核心思路与流程2.1.1 方法流程图2.2 关键公式与模型2.2.1 回波卷积模型2.2.2 最大后验概率(MAP)估计2.2.3 统计约束模型2.2.4 迭代优化公式2.3 …

Listremove数据时报错:Caused by: java.lang.UnsupportedOperationException

看了二哥的foreach陷阱后&#xff0c;自己也遇见了需要循环删除元素的情况&#xff0c;立马想到了当时自己阴差阳错的避开所有坑的解决方式&#xff1a;先倒序遍历&#xff0c;再删除。之前好使&#xff0c;但是这次不好使了&#xff0c;报错Caused by: java.lang.UnsupportedO…

Ceph集群OSD运维手册:基础操作与节点扩缩容实战

#作者&#xff1a;stackofumbrella 文章目录 一、Ceph集群的OSD基础操作查看osd的ID编号查看OSD的详细信息查看OSD的状态信息查看OSD的统计信息查看OSD在主机上的存储信息查看OSD延迟的统计信息查看各个OSD使用率集群暂停接收数据集群取消暂停 OSD写入权重操作查看默认OSD操作…

PHP框架在分布式系统中的应用!

随着互联网业务的快速发展&#xff0c;分布式系统因其高可用性、可扩展性和容错性成为现代应用架构的主流选择。而PHP作为一门成熟的Web开发语言&#xff0c;凭借其简洁的语法、丰富的框架生态和持续的性能优化&#xff0c;逐渐在分布式系统中崭露头角。本文将深入探讨PHP框架在…

MySQL 索引(一)

文章目录 索引&#xff08;重点&#xff09;硬件理解磁盘盘片和扇区定位扇区磁盘的随机访问和连续访问 软件方面的理解建立共识索引的理解 索引&#xff08;重点&#xff09; 索引可以提高数据库的性能&#xff0c;它的价值&#xff0c;在于提高一个海量数据的检索速度。 案例…

环境搭建-复现ST-GCN输出动作分类视频(win10+openpose1.7.0+VS2019+CMake3.30.1+cuda11.1)

这次我们安装github.com/yysijie/st-gcn这个作者源码环境&#xff0c;安装流程十分复杂这里介绍大体流程。 1.首先编译openpose的python API接口这个编译难度较大&#xff0c;具体参考博文&#xff1a;windows编译openpose及在python中调用_python openpose-CSDN博客 这个博…