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 SSE
和Agent 策略(支持 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
运行结果: