mcpField
S
Starlette MCP SSE

Starlette MCP SSE

本地服务
github.com/panz2018开发工具885 周前更新

关于 Starlette MCP SSE

Starlette MCP SSE 是一个示例项目,演示如何在 Starlette Web 应用中集成基于 SSE 的 MCP 功能。它适合需要同时提供 MCP 端点和常规 Web 路由的开发者。

主要功能

  1. 01集成 MCP SSE 端点
  2. 02在同一应用中提供 Web 路由
  3. 03自定义路由结构
  4. 04分离 MCP 与 Web 功能

适用场景

  1. 01搭建带 SSE 传输的 MCP 服务
  2. 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 功能

架构

本项目展示了一种模块化架构:

  1. 将 MCP SSE 端点(/sse 和 /messages/)集成到 Starlette 应用中
  2. 提供标准 Web 路由(/、/about、/status、/docs)
  3. 演示如何将 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 均可),以下端点将可用:

使用 MCP Inspector 调试

如需测试和调试 MCP 功能,请使用 MCP Inspector:

mcp dev ./src/weather.py
连接到 MCP Inspector
  1. 在 http://localhost:5173 打开 MCP Inspector
  2. 配置连接:
测试功能
  1. 转到 Tools 部分
  2. 点击 List Tools 查看可用功能:
    • get_alerts:获取天气预警
    • get_forcast:获取天气预报
  3. 选择一个功能
  4. 输入所需参数
  5. 点击 Run Tool 执行

扩展应用

添加自定义路由

应用结构便于添加新路由:

  1. 在 routes.py 中定义新的路由处理程序
  2. 将路由添加到 routes.py 的路由列表中
  3. 主应用会自动包含这些路由
自定义 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"
        }
      }
    ]
  }
}

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。