这是一个使用FastAPI框架并集成模型上下文协议(MCP)的服务器发送事件(SSE)实现。
模型上下文协议(MCP)是一个开放标准,使AI模型能够与外部工具和数据源进行交互。MCP解决了AI开发中的几个关键挑战:
本项目演示了如何在FastAPI网络应用中使用服务器发送事件(SSE)实现MCP。
本项目展示了如何使用FastAPI框架实现服务器发送事件(SSE),同时集成模型上下文协议(MCP)的功能。主要特点是将MCP的SSE能力无缝集成到一个完整的FastAPI网络应用中,该应用包括自定义路由。
本项目展示了一个模块化架构,它:
/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 Inspector:
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"
}
}
]
}
}