关于 Starlette MCP SSE
Starlette MCP SSE 是一个示例项目,演示如何在 Starlette Web 应用中集成基于 SSE 的 MCP 功能。它适合需要同时提供 MCP 端点和常规 Web 路由的开发者。
主要功能
- 01集成 MCP SSE 端点
- 02在同一应用中提供 Web 路由
- 03自定义路由结构
- 04分离 MCP 与 Web 功能
适用场景
- 01搭建带 SSE 传输的 MCP 服务
- 02在 MCP 服务中添加状态和文档路由
MCP 相关
项目将 MCP SSE 端点 `/sse` 和 `/messages/` 集成到 Starlette 应用中,供 MCP 客户端连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Starlette MCP SSE
English | 简体中文
使用 Starlette 框架实现的服务器发送事件(SSE),并集成了 模型上下文协议(MCP)。
什么是 MCP?
模型上下文协议(MCP) 是一项开放标准,可让 AI 模型与外部工具和数据源交互。MCP 解决了 AI 开发中的多个关键问题:
- 上下文限制:允许模型访问训练数据之外的最新信息
- 工具集成:为模型使用外部工具和 API 提供标准化方式
- 互操作性:在不同的 AI 模型和工具之间建立通用接口
- 可扩展性:无需重新训练,即可轻松为 AI 系统添加新功能
本项目演示了如何在 Starlette Web 应用中使用服务器发送事件(SSE)实现 MCP。
描述
本项目演示了如何使用 Starlette 框架实现服务器发送事件(SSE),同时集成模型上下文协议(MCP)功能。其主要特点是在功能完备的 Starlette Web 应用中无缝集成 MCP 的 SSE 功能,并包含自定义路由。
功能
- 使用 MCP 实现服务器发送事件(SSE)
- 集成 Starlette 框架和自定义路由
- 统一的 Web 应用,同时提供 MCP 和标准 Web 端点
- 可自定义的路由结构
- 清晰分离 MCP 功能与 Web 功能
架构
本项目展示了一种模块化架构:
- 将 MCP SSE 端点(
/sse和/messages/)集成到 Starlette 应用中 - 提供标准 Web 路由(
/、/about、/status、/docs) - 演示如何将 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/starlette_mcp_sse.git start
选项 2:完整安装
创建虚拟环境
为项目创建隔离的 Python 环境:
uv venv
激活虚拟环境
激活虚拟环境以使用它:
.venv\Scripts\activate
安装依赖项
安装所有必需的软件包:
uv pip install -r pyproject.toml
启动集成服务
启动集成的 Starlette 服务及 MCP SSE 功能:
python src/server.py
或
uv run start
可用端点
启动服务后(使用选项 1 或选项 2 均可),以下端点将可用:
- 主服务:http://localhost:8000
- 标准 Web 路由:
- MCP SSE 端点:
使用 MCP Inspector 调试
如需测试和调试 MCP 功能,请使用 MCP Inspector:
mcp dev ./src/weather.py
连接到 MCP Inspector
- 在 http://localhost:5173 打开 MCP Inspector
- 配置连接:
- 将 Transport Type 设为
SSE - 输入 URL:http://localhost:8000/sse
- 点击
Connect
- 将 Transport Type 设为
测试功能
- 转到
Tools部分 - 点击
List Tools查看可用功能:get_alerts:获取天气预警get_forcast:获取天气预报
- 选择一个功能
- 输入所需参数
- 点击
Run Tool执行
扩展应用
添加自定义路由
应用结构便于添加新路由:
- 在 routes.py 中定义新的路由处理程序
- 将路由添加到 routes.py 的路由列表中
- 主应用会自动包含这些路由
自定义 MCP 集成
MCP SSE 功能通过以下方式集成在 server.py 中:
- 创建 SSE 传输
- 设置 SSE 处理程序
- 将 MCP 路由添加到 Starlette 应用程序
与 Continue 集成
要将此 MCP 服务与 Continue VS Code 扩展搭配使用,请将以下配置添加到 Continue 设置中:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"name": "weather",
"type": "sse",
"url": "http://localhost:8000/sse"
}
}
]
}
}
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。