当前位置: 首页
AI教程
Dify Agent 调用 Fastapi MCP Server 实战:从环境搭建到功能实现完整教程

Dify Agent 调用 Fastapi MCP Server 实战:从环境搭建到功能实现完整教程

热心网友 时间:2026-06-23
转载

先说核心结论:FastAPI 框架能够非常灵活地同时承载 HTTP RESTful 接口与 MCP Server,实现方式极为简洁高效。下面直接提供完整代码与详细配置流程。

FastAPI MCP Server 完整实现

代码部分如下所示,关键环节在于借助fastapi_mcp库将 FastAPI 应用实例挂载为 MCP 服务,并且可以为每个接口指定清晰的operation_id,便于大模型准确理解每个工具的功能与用途。

from datetime import datetime
import uvicorn
from fastapi import FastAPI, Depends, HTTPException, Header
from fastapi_mcp import FastApiMCP

app = FastAPI()

# 授权验证(若无需鉴权可删除该部分)
async def verify_token(authorization: str | None = Header(None)):
    valid_tokens = {"123456", "abcdef"}
    if authorization not in valid_tokens:
        raise HTTPException(status_code=403, detail="Invalid Token")
    return True

# 获取当前时间接口
@app.get("/getCurrentTime", operation_id="get_current_time")
async def get_current_time():
    return {"current_time": datetime.now().strftime("%Y-%m-%d %H:%M:%S")}

# 获取用户信息接口(需携带 token 验证)
@app.get("/users/{user_id}", operation_id="get_user_info")
async def get_user_info(user_id: int, is_auth: bool = Depends(verify_token)):
    data = {
        "user_id": user_id,
        "name": "wangzy",
        "sex": "男",
        "birthday": "2000-01-01",
    }
    return data

# 加法计算接口
@app.post("/add", operation_id="add_two_number")
async def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

# 创建 MCP 服务器实例并挂载(默认路径 /mcp)
mcp = FastApiMCP(app)
mcp.mount()

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

使用 Postman 验证 HTTP 接口,能够正常返回预期数据。

\

在 Cherry Studio 中配置 MCP Server(如果开启了认证,需在 Headers 中添加对应密钥),配置完成后可在工具列表中看到所有 HTTP RESTful API 已同步作为 MCP 工具对外暴露。

\

\

在 Cherry Studio 中调用 MCP Server 的实际效果如下:

\

\

需要补充说明的是,FastAPI 的 HTTP 服务与 MCP Server 也支持分离部署,适用于需要物理隔离或不同安全策略的场景。在 Python 生态中,目前比较受推荐的方案是 FastAPI 搭配 FastApiMCP 或 FastMCP。由于需要同时兼顾 HTTP API 和 MCP 服务,选择 FastApiMCP 方案更为合适。

\

Dify 安装与部署详解

Demo 环境采用 Docker Compose 方式进行部署,具体步骤可参考官方文档(https://legacy-docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose)。

\

克隆 Dify 仓库代码(当前最新版本为 0.15.3):

git clone https://github.com/langgenius/dify.git --branch 0.15.3

\

启动 Dify 服务:

\

访问 Dify 平台:

\

配置完成后登录 Dify 页面,界面如下:

\

Dify 中配置大模型及 Agent

配置大模型

在 Dify 主页找到设置选项,选择【模型供应商】进行配置,可以接入公有云大模型,也可以配置本地通过 Ollama 部署的大模型。

\

\

配置 Ollama 大模型时,需要先安装相关插件:

\

注意:当 Ollama 默认监听 127.0.0.1 时,Dify 容器内部无法直接访问本机回环地址。解决办法是在启动 Ollama 前通过环境变量设置OLLAMA_HOST,然后执行ollama serve

\

在 Dify 中配置 Ollama 大模型的具体操作如下:

\

Dify 安装 MCP 相关插件

在插件市场搜索并安装 MCP 相关的插件,安装完成后进入配置页面。

\

\

安装完成后的插件列表如下:

\

配置 API Key 授权信息:

\

\

配置内容模板如下:

{
    "server_name": {
        "url": "http://192.168.43.78:8000/mcp",
        "headers": {
            "Content-Type": "application/json",
            "Authorization": "123456"
        },
        "timeout": 50,
        "sse_read_timeout": 50
    }
}

Dify 创建 Chatflow 流程

创建应用时选择 Chatflow 类型,然后输入应用名称和描述信息。

\

\

添加 Agent 节点:

\

Agent 节点的详细配置:

\

\

\

试运行 Agent,可以看到大模型成功调用了之前定义的get_current_time MCP 工具。

\

\

Dify Chatflow 中调用 MCP Server 验证

在 Dify 工作区找到之前配置的 Chatflow【test_mcp_server】,在对话框中输入问题,可以看到 Agent 正常调用了 FastAPI 启动的 MCP Server 并返回结果。

注意事项:测试过程中发现大约有一半的概率,Agent 会返回“I am thinking about how to help you”这样的响应,虽然实际已经调用了 MCP 并获取到了数据,但最终回答并未展示出来。推测可能是提示词或 Agent 的回复策略存在问题,后续还需要进一步排查与优化。

\

总结

本文完整实现了一个 Demo:在 Dify 平台配置 Chatflow 的 Agent,成功调用通过 FastAPI 启动的 MCP Server。后续将基于此 Demo 在公司内部实践故障诊断相关的自主规划 Agent。待项目顺利上线后,再整理一篇生产环境中的实战经验总结。

来源:https://cloud.tencent.com.cn/developer/article/2695211

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Perplexity AI 新手入门安装指南:VPS 安装教程,疑难排查,附数据目录迁移方法

Perplexity AI 新手入门安装指南:VPS 安装教程,疑难排查,附数据目录迁移方法

PerplexityAI以网页和客户端使用为主,VPS更适合搭建访问入口、检索问答面板或团队网关。部署前需确认系统环境、密钥管理、端口安全、日志与数据目录规划,并掌握迁移和排错方法。

时间:2026-07-07 15:08
AI 搜索工具资讯选题:Perplexity AI 安装配置全攻略,附插件推荐清单

AI 搜索工具资讯选题:Perplexity AI 安装配置全攻略,附插件推荐清单

PerplexityAI适合资料检索、论文阅读、竞品调研和内容选题。安装配置重点在账号、语言、引用来源、浏览器插件与隐私设置,使用时需核验来源、避免上传敏感资料,并建立固定检索流程。

时间:2026-07-07 15:06
Perplexity AI 安装环境怎么配?本地模型运行教程,高效部署检查清单

Perplexity AI 安装环境怎么配?本地模型运行教程,高效部署检查清单

PerplexityAI适合在线检索式问答,若要搭建近似本地体验,可用本地大模型、检索组件和网页界面组合实现。部署前需确认硬件、系统、模型来源、数据权限与更新维护策略。

时间:2026-07-07 15:06
AI 搜索工具怎么装?Perplexity AI 常见报错解决教程,快速上手步骤整理

AI 搜索工具怎么装?Perplexity AI 常见报错解决教程,快速上手步骤整理

PerplexityAI可通过网页、移动端和浏览器应用方式使用,安装重点在账号、网络、浏览器兼容与权限设置。遇到登录失败、回答中断、上传异常等问题,可按缓存、权限、版本和用量限制逐项排查。

时间:2026-07-07 15:04
Perplexity AI 安装失败怎么办?更新升级教程和插件推荐清单

Perplexity AI 安装失败怎么办?更新升级教程和插件推荐清单

PerplexityAI安装失败多与网络环境、系统版本、商店缓存、账号状态和插件冲突有关。可按设备检查、清理缓存、重新安装、更新客户端与配置常用扩展的顺序排查。

时间:2026-07-07 15:04
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜