Dify MCP 集成实验(01):环境地基与首个 MCP Server——MCP 新版 SDK 如何从零跑通?
Dify MCP 集成实验01环境地基与首个 MCP Server——MCP 新版 SDK 如何从零跑通Dify 实验系列 · MCP 集成 01/6 | 实验编号DIFY-107-01基于 Dify 1.16.1 实测2026-081. 业务场景先讲一个我们实际遇到的场景。一家做客服工单 SaaS 的公司交付一个「企业级 AI 智能体系统集成」项目外部系统数据要通过 MCP 进 Dify。交付工程师开工后的第一件事不是写业务逻辑而是把开发环境搭起来、跑通第一个 server——就像盖楼先打地基。第一个工具选什么一个「当前时间」工具记录工单创建时间戳、排障时取基准时间、看板定时任务的调度基准。它无外部依赖、参数少、结果确定是最简单的真实工具适合当第一个 server 练手。我们第一次接这类需求时第一反应是「装个 SDK 写个 server 能有多难」。真正动手才发现——第一个坑不在业务在地基SDK 2.0 把旧 API 整个换掉、Python 3.14 装不上 wheel、Dify 只消费远程 HTTP 端点根本不走 stdio——环境没搭对后面 02-06 的实验全部白搭。这个实验就是先把地基打牢。这不是个例。任何「外部系统数据要进 Dify」的集成都是这个模式Dify 只消费远程 HTTP/SSE 端点源码确认无 stdio——server 必须能部署成可访问的 HTTP 端点后续 02-06 实验的「Dify 连接」假设才成立。2. 场景痛点这个流程的痛点在起步阶段体现得最直接SDK 版本坑mcp 2.0.0 是 2026 新版API 大改——mcp.server.fastmcp模块不存在旧教程里的 FastMCP 写法全部过时照网上教程装直接报错。Python 版本不兼容3.14 装 mcp 有 wheel 兼容风险——环境没搭对后面所有实验全白搭。部署形态不清不知道 Dify 只消费远程 HTTP 端点在 stdio 模式下折腾半天永远接不进 Dify。端点路径不明streamable-http 默认端点/mcp配置错路径全链路 404——跑通了也连不上。本质上环境地基决定了后面 02-06 全部实验能不能跑——地基没打牢上层全悬空。3. 方案为什么是 MCP 官方 SDK Streamable HTTP打通 MCP Server 开发环境地基最直接的路就是官方 SDK 2.0 Streamable HTTP 部署。选它的理由官方 SDK 2.0 一套代码三传输MCPServer类 server.tool()装饰器 run(transport...)——stdio开发验证/ streamable-http部署形态/ sse 一条代码切换Streamable HTTP 是 Dify 接入形态Dify 只消费远程 HTTP/SSE 端点server 必须部署成可访问的 HTTP 端点——本实验就是把这个形态跑通与 106-01 插件同一业务需求time_tool 插件的需求用 MCP 再实现一遍天然构成「插件 vs MCP 同需求双实现」的对照起点。这篇文章我们就用它搭第一个 MCP Server——「当前时间」工具走完 SDK 安装 → server 结构 → 工具定义 → stdio 本地验证 → Streamable HTTP 部署的全生命周期。4. 整体架构HTTP本地开发机Python 3.11 venv mcp 2.0.0uv 管理dify107_01_time_serverstdio 模式本地客户端验证Streamable HTTP 端点uvicorn :8901/mcpDify 服务器Docker ComposeapiFastAPIweb控制台工具页 MCP tab107-03 实测经 SSRF 代理接入链路很清晰本地开发机Python venv server→ Streamable HTTP 端点 → Dify 服务器api/web。关键设计是 stdio 模式先本地验证工具逻辑再以 streamable-http 部署成 Dify 可访问的端点——先证明工具对再证明能连。5. 模块设计5.1 环境三件套本实验核心# 1. 建 venv一次Python 3.113.14 装 mcp 有 wheel 兼容风险106 教训延续cddify-107/tmpuv venv--python3.11venv311# 2. 装 SDK官方 mcp 2.0.0自动带 uvicorn/starlette/anyiouv pipinstall--pythonvenv311 mcp# 3. 启动 Streamable HTTP 部署Dify 接入形态venv311/Scripts/python server.py http# → http://0.0.0.0:8901/mcp5.2 Server 骨架与工具定义SDK 2.0 新 APIfrommcp.server.mcpserverimportMCPServer serverMCPServer(namedify107_01_time_server,version1.0.0,description客服工单 SaaS 时间基准工具,)server.tool()defget_current_time(timezone:strlocal)-dict:返回当前时间、时区与 UTC 偏移可选参数 timezone...# 三传输stdio开发验证/ streamable-http部署形态/ sseif__name____main__:server.run(transportstdioifsys.argv[1:][stdio]elsestreamable-http,host0.0.0.0,port8901)注意mcp 2.0.0是 2026 新版API 大改——mcp.server.fastmcp模块不存在旧教程里的 FastMCP 写法全部过时新 API 在mcp.server.mcpserverMCPServer 类 server.tool()装饰器 run(transport...)。6. 运行验证输入预期结果stdio 调用UTC82026-08-05 20:43:53offset8h通过stdio 调用UTC-52026-08-05 07:43:53offset-5h时差正确通过stdio 调用UTC12次日00:43:53通过HTTP 端点 tools/list返回get_current_time工具通过HTTP 调用local 默认本地时区 8h 正确通过错误路径无效参数isErrorTrue 中文错误信息透传通过7. 实战坑坑现象修复mcp 2.0.0 API 大改mcp.server.fastmcp模块不存在旧教程 FastMCP 写法全报错新 APIMCPServerserver.tool()run(transport...)实测Python 3.14 不兼容3.14 装 mcp 有 wheel 风险106 教训延续uv venv --python 3.11uv pip install mcp实测list_tools 返回结构返回的不是 list 也不是元组是ListToolsResult对象访问listing.tools分页字段驼峰nextCursor实测pydantic 字段别名协议 JSON 字段驼峰isError写res.isError报 AttributeErrorPython 属性访问用 snake_caseres.is_error实测工具错误返回server 内 raise ValueError客户端收到isErrorTrue “Error executing tool xxx: 信息”错误信息透传实测默认端点路径run(transportstreamable-http)默认端点/mcp用streamable_http_path参数可改实测Windows 路径MSYS/d/路径在 Windows 程序里报错一律D:\格式106 教训延续8. 实验文档及源码获取实验文档完整操作步骤DIFY-107-01环境地基与首个MCP Server.mdServer 源码server.py | dify107_01_time_server 目录交付验证记录环境搭建 双模式验证 对照表初稿验证记录-01-环境地基与首个MCP Server.md全部目录dify-107/experiments | dify-107/dsl | dify-107/servers | dify-107/delivery文章聚焦核心配置与采坑点实验的完整分步操作节点搭建/参数表/调试指引见实验文档原文。下一篇Dify MCP 集成实验02工具进阶与协议原语——MCP 三原语如何落地 你在这个实验的场景里踩过什么坑欢迎评论区分享你的实战经验。

相关新闻

地产宣传片:从“产品说明书”到“生活方式提案

地产宣传片:从“产品说明书”到“生活方式提案

2026年,地产宣传片正在经历一场深刻的转向——从“卖房子”到“卖生活”。杭州开发商兴耀房产用一部17集短剧《请不要爱我,程序会出错》替代传统广告片,总投资不足20万元,却撬动了千万级的流量。上海徐汇滨江的嘉佰道徐汇项目直接…

2026/8/24 13:55:42 阅读更多 →
沉浸式空间

沉浸式空间

沉浸式空间正从“可选展项”升级为“必选项”,成为提升品牌体验和观众停留时间的核心手段。它通过投影、LED或XR等技术,构建出包裹式的虚拟环境,让参观者从“旁观”变为“参与”。北京流光溢彩数字文化传媒有限公司深耕数字展示领域近二十年&…

2026/8/24 13:55:42 阅读更多 →
无主体的经济行为者:当法律找不到被告-龍德明宇

无主体的经济行为者:当法律找不到被告-龍德明宇

无主体的经济行为者:当法律找不到被告 作者:龍德明宇 本文讨论的三种情况,第一种已有现实萌芽,第二种在技术逻辑上可行,第三种是存在论推演的极限。但法律的准备,必须从极限倒推。 核心论断 传统的法律和经…

2026/8/24 13:55:42 阅读更多 →

最新新闻

Windows安全中心全灰之后:一条命令快速恢复 Windows Defender

Windows安全中心全灰之后:一条命令快速恢复 Windows Defender

Windows安全中心全灰之后:一条命令快速恢复 Windows Defender 【免费下载链接】no-defender A slightly more fun way to disable windows defender firewall. (through the WSC api) 项目地址: https://gitcode.com/GitHub_Trending/no/no-defender 安全中…

2026/8/24 18:56:35 阅读更多 →
Simulink全桥逆变电路建模:6 IGBT拓扑与开关过程仿真分析

Simulink全桥逆变电路建模:6 IGBT拓扑与开关过程仿真分析

1. 项目缘起:为什么从全桥电路开始? 如果你正在接触电力电子,尤其是开关电源、逆变器或者电机驱动,那么“全桥电路”这个结构对你来说一定不陌生。它几乎是中高功率等级应用中的“标配”拓扑,从我们日常用的电磁炉、电…

2026/8/24 18:56:35 阅读更多 →
X-Mouse Controls 完整指南:用 3 个参数实现焦点跟随鼠标,去掉多窗口切换的多余点击

X-Mouse Controls 完整指南:用 3 个参数实现焦点跟随鼠标,去掉多窗口切换的多余点击

X-Mouse Controls 完整指南:用 3 个参数实现焦点跟随鼠标,去掉多窗口切换的多余点击 【免费下载链接】xmouse-controls Microsoft Windows utility to manage the active window tracking/raising settings. This is known as x-mouse behavior or focus…

2026/8/24 18:56:35 阅读更多 →
C语言数组与指针实战:从基础到冒泡排序与内存管理

C语言数组与指针实战:从基础到冒泡排序与内存管理

大家好,我是长期分享C语言实战经验的博主。在初学C语言时,数组、指针、排序这些概念常常让开发者感到混乱,尤其是面对二维数组、字符串数组和排序算法时,网上资料往往零散不成体系。本文将系统性地梳理C语言数组的核心知识&#x…

2026/8/24 18:56:35 阅读更多 →
互联网医疗Java技术栈实战与面试指南

互联网医疗Java技术栈实战与面试指南

1. 互联网医疗行业的技术挑战与人才需求互联网医疗行业近年来呈现爆发式增长,这个领域的技术架构既要满足医疗行业特有的严谨性和合规性要求,又要具备互联网产品的高并发、高可用特性。作为从业多年的技术面试官,我发现大厂在招聘Java工程师时…

2026/8/24 18:56:35 阅读更多 →
C语言实现控制台3D玫瑰:数学建模与字符图形渲染实战

C语言实现控制台3D玫瑰:数学建模与字符图形渲染实战

1. 项目缘起:当C语言遇上浪漫 最近在技术社区里,看到不少朋友在讨论用各种编程语言画图,Python的turtle库、JavaScript的Canvas自然是常客。但作为一个老C程序员,我心里总有点不服气:难道C语言就只能处理枯燥的数据和算…

2026/8/24 18:55:35 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →