mcpField
F
FastAPI MCP SSE

FastAPI MCP SSE

本地服务
github.com/panz2018开发工具5185 周前更新

关于 FastAPI MCP SSE

FastAPI MCP SSE 是一个示例项目,展示如何在 FastAPI 应用中通过 Server-Sent Events 提供 MCP 支持。它适合希望将 MCP 端点与普通 Web 路由集成在同一应用中的开发者。

主要功能

  1. 01基于 SSE 的 MCP 端点(/sse 与 /messages/)
  2. 02FastAPI 应用中同时提供 MCP 与普通 Web 路由
  3. 03支持通过 APIRouter 扩展自定义路由
  4. 04与 MCP Inspector 联调的天气示例工具

适用场景

  1. 01学习如何在 FastAPI 中挂载 MCP SSE 端点
  2. 02在 Continue 扩展中通过 SSE 连接本地 MCP 服务

MCP 相关

该项目是 MCP 服务端示例,通过 SSE 端点向 MCP 客户端暴露天气相关工具,例如 get_alerts 与 get_forcast。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"fastapi_mcp_sse": {
"command": "uvx",
"args": [
"git+https://github.com/panz2018/fastapi_mcp_sse.git"
]
}
}
}
启动命令uvx 'git+https://github.com/panz2018/fastapi_mcp_sse.git'

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypigit+https://github.com/panz2018/fastapi_mcp_sse.git

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

FastAPI MCP SSE

English | 简体中文

使用 FastAPI 框架并集成 Model Context Protocol (MCP) 的服务器发送事件(SSE)实现。

什么是 MCP?

Model Context Protocol (MCP) 是一项开放标准,可让 AI 模型与外部工具和数据源交互。MCP 解决了 AI 开发中的几个关键挑战:

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

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

描述

本项目演示了如何使用 FastAPI 框架实现服务器发送事件(SSE),同时集成 Model Context Protocol(MCP)功能。其主要特点是在包含自定义路由的全功能 FastAPI Web 应用中,无缝集成 MCP 的 SSE 能力。

功能

  • 使用 MCP 实现服务器发送事件(SSE)
  • 集成 FastAPI 框架和自定义路由
  • 将 MCP 与标准 Web 端点整合到统一的 Web 应用中
  • 可自定义的路由结构
  • 清晰分离 MCP 功能与 Web 功能

架构

本项目展示了一种模块化架构:

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

安装和使用选项

前提条件

安装 UV Package Manager——一个使用 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 均可),以下端点将可用:

使用 MCP Inspector 调试

如需测试和调试 MCP 功能,请使用 MCP Inspector:

mcp dev ./src/weather.py
连接到 MCP Inspector
  1. 在 http://localhost:5173 打开 MCP Inspector
  2. 配置连接:
测试函数
  1. 转到 Tools 部分
  2. 点击 List Tools 查看可用函数:
    • get_alerts:获取天气预警
    • get_forcast:获取天气预报
  3. 选择一个函数
  4. 输入必需的参数
  5. 点击 Run Tool 执行

扩展应用

添加自定义路由

该应用的结构便于使用 FastAPI 的 APIRouter 添加新路由:

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

    @router.get("/new-route")
    async def new_route():
        return {"message": "This is a new route"}
    
  2. 使用路由器定义的所有路由都会自动添加到主应用中

自定义 MCP 集成

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

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

与 Continue 集成

若要在 Continue VS Code 扩展中使用此 MCP 服务,请将以下配置添加到 Continue 设置中:

{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "name": "weather",
          "type": "sse",
          "url": "http://localhost:8000/sse"
        }
      }
    ]
  }
}

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。