首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
fastapi_mcp_sse2025-05-290分享
github
使用FastAPI框架实现的服务器发送事件(Server-Sent Events),集成了模型上下文协议(MCP),允许AI模型访问外部工具和数据源,例如天气信息。
By panz2018
2025-05-290
github
详情内容

FastAPI MCP SSE

英文 | 简体中文

这是一个使用FastAPI框架实现的服务器发送事件(SSE)方案,并集成了模型上下文协议(MCP)

什么是MCP?

模型上下文协议(MCP)是一个开放标准,使AI模型能够与外部工具和数据源进行交互。MCP解决了AI开发中的几个关键挑战:

  • 上下文限制:允许模型访问超出其训练数据的最新信息
  • 工具集成:为模型使用外部工具和API提供了标准化方式
  • 互操作性:在不同AI模型和工具之间创建通用接口
  • 可扩展性:无需重新训练即可轻松为AI系统添加新功能

本项目展示了如何在FastAPI Web应用中使用服务器发送事件(SSE)实现MCP。

项目描述

本项目演示了如何在使用FastAPI框架实现服务器发送事件(SSE)的同时集成模型上下文协议(MCP)功能。主要特点是在一个功能齐全的FastAPI Web应用中无缝集成MCP的SSE能力,该应用包含自定义路由。

功能特点

  • 集成MCP的服务器发送事件(SSE)实现
  • 与FastAPI框架集成并支持自定义路由
  • 统一Web应用,同时提供MCP和标准Web端点
  • 可定制的路由结构
  • MCP功能和Web功能之间的清晰职责分离

架构设计

本项目展示了一个模块化架构,具有以下特点:

  1. 将MCP SSE端点(/sse/messages/)集成到FastAPI应用中
  2. 提供标准Web路由(//about/status/docs/redoc
  3. 展示如何保持MCP功能与Web路由之间的分离

安装与使用选项

前提条件

安装UV包管理器 - 一个用Rust编写的高速Python包安装器:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

选项1:无需安装快速运行

使用UV的执行工具直接运行应用,无需克隆仓库:

uvx --from git+https://github.com/panz2018/fastapi_mcp_sse.git start

选项2:完整安装

创建虚拟环境

为项目创建一个隔离的Python环境:

uv venv

激活虚拟环境

激活虚拟环境以使用它:

.venv\Scripts\activate

安装依赖项

安装所有必需的包:

uv pip install -r pyproject.toml

启动集成服务器

启动带有MCP SSE功能的集成FastAPI服务器:

python src/server.py

uv run start

可用端点

启动服务器后(使用选项1或选项2),将提供以下端点:

  • 主服务器:http://localhost:8000
  • 标准Web路由:
    • 首页:http://localhost:8000/
    • 关于页面:http://localhost:8000/about
    • 状态API:http://localhost:8000/status
    • 文档(Swagger UI):http://localhost:8000/docs
    • 文档(ReDoc):http://localhost:8000/redoc
  • MCP SSE端点:
    • SSE端点:http://localhost:8000/sse
    • 消息发布:http://localhost:8000/messages/

使用MCP检查器调试

要测试和调试MCP功能,请使用MCP检查器:

mcp dev ./src/weather.py

连接到MCP检查器

  1. 在http://localhost:5173打开MCP检查器
  2. 配置连接:
    • 将传输类型设置为SSE
    • 输入URL:http://localhost:8000/sse
    • 点击连接

测试功能

  1. 导航到工具部分
  2. 点击列出工具查看可用功能:
    • get_alerts:获取天气警报
    • get_forcast:获取天气预报
  3. 选择一个功能
  4. 输入所需参数
  5. 点击运行工具执行

扩展应用

添加自定义路由

应用结构使得使用FastAPI的APIRouter添加新路由变得容易:

  1. 在routes.py中使用APIRouter定义新的路由处理程序:

    @router.get("/new-route")
    async def new_route():
        return {"message": "这是一个新路由"}
    
  2. 使用路由器定义的所有路由将自动包含在主应用中

自定义MCP集成

MCP SSE功能通过以下方式在server.py中集成:

  • 创建SSE传输
  • 设置SSE处理程序
  • 将MCP路由添加到FastAPI应用

Continue集成

要将此MCP服务器与Continue VS Code扩展一起使用,请将以下配置添加到您的Continue设置中:

{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "name": "weather",
          "type": "sse",
          "url": "http://localhost:8000/sse"
        }
      }
    ]
  }
}
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档