英文 | 简体中文
这是一个使用FastAPI框架实现的服务器发送事件(SSE)方案,并集成了模型上下文协议(MCP)。
模型上下文协议(MCP)是一个开放标准,使AI模型能够与外部工具和数据源进行交互。MCP解决了AI开发中的几个关键挑战:
本项目展示了如何在FastAPI Web应用中使用服务器发送事件(SSE)实现MCP。
本项目演示了如何在使用FastAPI框架实现服务器发送事件(SSE)的同时集成模型上下文协议(MCP)功能。主要特点是在一个功能齐全的FastAPI Web应用中无缝集成MCP的SSE能力,该应用包含自定义路由。
本项目展示了一个模块化架构,具有以下特点:
/sse
和/messages/
)集成到FastAPI应用中/
、/about
、/status
、/docs
、/redoc
)安装UV包管理器 - 一个用Rust编写的高速Python包安装器:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
使用UV的执行工具直接运行应用,无需克隆仓库:
uvx --from git+https://github.com/panz2018/fastapi_mcp_sse.git start

为项目创建一个隔离的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功能,请使用MCP检查器:
mcp dev ./src/weather.py
SSE
连接
工具
部分列出工具
查看可用功能:
get_alerts
:获取天气警报get_forcast
:获取天气预报运行工具
执行应用结构使得使用FastAPI的APIRouter添加新路由变得容易:
在routes.py中使用APIRouter定义新的路由处理程序:
@router.get("/new-route")
async def new_route():
return {"message": "这是一个新路由"}

使用路由器定义的所有路由将自动包含在主应用中
MCP SSE功能通过以下方式在server.py中集成:
要将此MCP服务器与Continue VS Code扩展一起使用,请将以下配置添加到您的Continue设置中:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"name": "weather",
"type": "sse",
"url": "http://localhost:8000/sse"
}
}
]
}
}
