FastAPI MCP SSE
English | 简体中文
使用FastAPI框架的服务器发送事件(SSE)实现 模型上下文协议(MCP) 整合。
什么是MCP?
这 模型上下文协议(MCP) 是一个开放标准,使人工智能模型能够与外部工具和数据源进行交互。MCP解决了人工智能开发中的几个关键挑战:
- 上下文限制:允许模型访问其训练数据之外的最新信息
- 工具集成:为模型使用外部工具和API提供了一种标准化的方法
- 互操作性:在不同的AI模型和工具之间创建通用接口
- 可扩展性:无需重新培训,即可轻松为人工智能系统添加新功能
本项目演示了如何在FastAPI web应用程序中使用服务器发送事件(SSE)实现MCP。
描述
该项目演示了如何使用FastAPI框架实现服务器发送事件(SSE),同时集成模型上下文协议(MCP)功能。关键功能是将MCP的SSE功能无缝集成到功能齐全的FastAPI web应用程序中,该应用程序包括自定义路由。
特性
- 使用MCP实现服务器发送事件(SSE)
- FastAPI框架与自定义路由集成
- 具有MCP和标准web端点的统一web应用程序
- 可定制的路线结构
- MCP和web功能之间的关注点清晰分离
建筑
该项目展示了一个模块化架构,该架构:
- 集成MCP SSE端点(
/sse和/messages/)进入FastAPI应用程序 - 提供标准web路由(
/,/about,/status,/docs,/redoc) - 演示如何保持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
- 标准网络路由:
- 主页: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检查器
- 在 打开 MCP Inspectorhttp://localhost:5173
- 配置连接:
- 将传输类型设置为 SSE - 输入URL:http://localhost:8000/sse - 点击 Connect
测试功能
- 引导到
Tools章节 - 点击
List Tools查看可用功能:
- get_alerts :获取天气警报 - get_forcast :获取天气预报
- 选择一个功能
- 输入所需参数
- 点击
Run Tool执行
扩展应用程序
添加自定义路线
应用程序结构使使用FastAPI的APIRouter添加新路由变得容易:
- 使用APIRouter在routes.py中定义新的路由处理程序:
@router.get("/new-route")
async def new_route():
return {"message": "This is a new route"}- 使用路由器定义的所有路由都将自动包含在主应用程序中
定制MCP集成
MCP SSE功能通过以下方式集成在server.py中:
- 创建SSE传输
- 设置SSE处理程序
- 将MCP路由添加到FastAPI应用程序
与集成 继续
要将此MCP服务器与Continue VS Code扩展一起使用,请将以下配置添加到您的Continue设置中:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"name": "weather",
"type": "sse",
"url": "http://localhost:8000/sse"
}
}
]
}
}