Dify 1.6.0 新版 MCP 配置实战:手把手教你用 Python 写个‘运势占卜’工具并接入智能体

张开发
2026/4/8 0:16:08 15 分钟阅读

分享文章

Dify 1.6.0 新版 MCP 配置实战:手把手教你用 Python 写个‘运势占卜’工具并接入智能体
Dify 1.6.0 MCP 实战用 Python 打造智能运势占卜系统最近在开发者社区发现一个有趣现象越来越多的人开始尝试将传统占卜文化与现代AI技术结合。上周我突发奇想能不能用Dify的MCP功能做个既好玩又能展示技术原理的数字占卜师经过三天调试这个能预测幸运数字、幸运动物的小工具不仅跑通了还成了团队内部最受欢迎的减压神器。1. 环境准备与基础概念在开始敲代码前我们需要明确几个关键点。MCPModel Connector Protocol在Dify 1.6.0中最大的改进是解耦为独立模块这意味着性能提升新架构下通信延迟降低约40%根据内部基准测试部署灵活支持本地开发机与Docker环境的无缝切换协议简化SSEServer-Sent Events成为默认传输方式先准备好开发环境# 基础环境检查清单 python --version # 需要Python 3.8 pip install fastapi uvicorn # 核心依赖提示如果使用Docker部署的Dify建议在本地同时安装Docker Desktop方便后续测试容器间通信。2. 构建运势占卜核心逻辑占卜系统的趣味性在于算法设计。我设计了一个神秘指数生成公式通过用户输入的两个数字衍生出多种预测结果def calculate_magic_number(x: float, y: float) - int: 生成决定所有预测结果的基础数值 return abs(int((x y) * 7.777)) % 1000基于这个核心数值我们可以扩展出四个预测维度预测维度数据源示例输出幸运动物8种emoji动物数组独角兽今日运势8条预定义运势语句会收到神秘消息幸运数字神秘数值的数学变换77神秘建议非常规行为建议列表给植物唱歌实际代码中我会用字典存储这些选项通过模运算实现伪随机选择prediction_elements { animals: [龙, 独角兽, 企鹅], fortunes: [今天会遇到惊喜, 小心掉进兔子洞], # ...其他元素 }3. MCP服务完整实现完整的MCP服务需要处理以下几个技术要点服务初始化配置服务名称、端口和主机工具注册用装饰器声明可调用的函数类型注解为输入参数添加类型提示文档字符串生成自动化的API文档这是完整的服务启动代码from mcp.server.fastmcp import FastMCP mcp FastMCP(fortune-teller, port8077, host0.0.0.0) mcp.tool() async def fortune_teller(x: float, y: float) - str: 数字占卜师 - 根据输入数字预测运势 # 实现预测逻辑... return formatted_result if __name__ __main__: print(服务访问信息 - HTTP端点: http://localhost:8077 - SSE端点: http://localhost:8077/sse - Docker环境使用: http://host.docker.internal:8077/sse) mcp.run(transportsse)启动服务后会看到终端输出可用端点信息这时可以通过curl测试服务curl -X POST http://localhost:8077/fortune_teller \ -H Content-Type: application/json \ -d {x:3.14,y:2.71}4. Dify平台集成实战服务运行后在Dify控制台完成以下配置步骤添加MCP服务导航至 工具 → MCP → 添加服务服务名称运势占卜可自定义端点URL本地开发http://localhost:8077/sseDocker环境http://host.docker.internal:8077/sse智能体配置技巧在提示词中说明工具用途这是一个娱乐性质的占卜工具会根据输入的两个数字生成趣味预测建议设置参数约束请确保用户提供的数字在0到100之间工作流中的高级用法可以串联多个MCP工具比如先调用数字生成器再传入占卜工具结合条件分支根据运势结果触发不同回复策略常见问题排查表现象可能原因解决方案连接超时防火墙阻止端口检查8077端口是否开放工具未显示在列表服务未正确启动查看服务终端是否有错误输出Docker环境无法连接主机名解析问题使用host.docker.internal返回结果格式错误未遵循MCP响应规范确保返回字符串类型5. 进阶优化方向当基础功能跑通后可以考虑以下增强方案性能优化添加LRU缓存装饰器避免重复计算使用异步IO处理并发请求from functools import lru_cache lru_cache(maxsize100) def get_fortune_prediction(x, y): # 缓存计算结果功能扩展增加用户历史记录功能开发星座/血型等更多占卜模式添加可视化结果生成ASCII艺术监控与维护集成Prometheus指标暴露添加健康检查端点实现优雅关机逻辑这个看似简单的占卜工具实际上涵盖了MCP服务的所有关键知识点。有团队成员反馈他们在客户演示中用这个功能活跃气氛效果出奇的好。

更多文章