当前位置: 首页 > news >正文

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

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

相关文章:

  • Satori:元动作 + 内建搜索机制,让大模型实现超级推理能力
  • 一文理解扩散模型(生成式AI模型)(1)
  • 初等数论--莫比乌斯函数
  • OSPF综合应用
  • muduo源码解析
  • Bitacora:基因组组件中基因家族识别和注释的综合工具
  • PPO近端策略优化算法
  • 《Python星球日记》 第54天:卷积神经网络进阶
  • SQL注入问题
  • 用jsp简单实现C语言标准化测试系统
  • 2505d,d的借用检查器
  • 【Redis】string 字符串
  • Kubernetes 生产实战(十五):生产环境敏感信息纳入Secret管理指南
  • DB4S:一个开源跨平台的SQLite数据库管理工具
  • ThreadPoolExecutor源码阅读以及手写简单线程池 —— JDK17
  • @Transactional注解失效
  • 用c语言实现——一个交互式的中序线索二叉树系统,支持用户动态构建、线索化、遍历和查询功能
  • 超详细Kokoro-82M本地部署教程
  • 自定义类型-结构体(二)
  • 本地大模型工具深度评测:LM Studio vs Ollama,开发者选型指南
  • 美国再工业化进程需要中国的产业支持
  • 印度外交秘书:印巴军方将于12日再次对话
  • 习近平会见塞尔维亚总统武契奇
  • 长江画派创始人之一、美术家鲁慕迅逝世,享年98岁
  • 玉渊谭天丨一艘航母看中国稀土出口管制为何有效
  • 东洋学人|滨田青陵:近代日本考古学第一人