这是一个使用Starlette框架并集成模型上下文协议(MCP)实现的服务器发送事件(SSE)。
模型上下文协议(MCP)是一个开放标准,使AI模型能够与外部工具和数据源进行交互。MCP解决了AI开发中的几个关键挑战:
本项目演示了如何在Starlette网络应用中使用服务器发送事件(SSE)实现MCP。
本项目展示了如何在Starlette框架中实现服务器发送事件(SSE),同时集成模型上下文协议(MCP)的功能。主要特点是将MCP的SSE能力无缝集成到一个完整的Starlette网络应用中,该应用包括自定义路由。
本项目展示了一个模块化架构,它:
/sse 和 /messages/)集成到Starlette应用中/, /about, /status, /docs)安装UV包管理器 - 用Rust编写的快速Python包安装器:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
使用UV的执行工具直接运行应用程序,无需克隆仓库:
uvx --from git+https://github.com/panz2018/starlette_mcp_sse.git start
为项目创建一个隔离的Python环境:
uv venv
激活虚拟环境以使用它:
.venv\Scripts\activate
安装所有必需的包:
uv pip install -r pyproject.toml
启动具有MCP SSE功能的集成Starlette服务器:
python src/server.py
或
uv run start
启动服务器后(无论是通过选项1还是选项2),以下端点将可用:
为了测试和调试MCP功能,请使用MCP Inspector:
mcp dev ./src/weather.py
SSE连接工具部分列出工具查看可用功能:
get_alerts:获取天气警报get_forcast:获取天气预报运行工具执行应用结构使得添加新路由变得容易:
MCP SSE功能在server.py中通过以下方式集成:
要使用此MCP服务器与Continue VS Code扩展一起工作,请在您的Continue设置中添加以下配置:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"name": "weather",
"type": "sse",
"url": "http://localhost:8000/sse"
}
}
]
}
}