FastAPI SSE MCP
演示服务器发送事件(SSE)与模型上下文协议集成的FastAPI应用程序
概述
本项目展示了如何在FastAPI应用程序中使用服务器发送事件(SSE)作为MCP的传输层。它提供了一个简单的回声服务,可以:
- 处理FastAPI HTTP请求
- 使用MCP python-sdk实现MCP工具、资源和提示
需求
- Python 3.12+
- FastAPI 0.115.11+版本
- MCP 1.4.1+
安装
- 克隆此存储库:
git clone https://github.com/ragieai/fastapi-sse-mcp.git
cd fastapi-sse-mcp- 安装依赖项:
uv sync --dev运行应用程序
启动FastAPI服务器:
uv run uvicorn app.main:app --reload服务器将在以下时间可用http://127.0.0.1:8000.
API终点
GET /-返回一个简单的JSON问候语GET /sse/-用于建立连接的SSE端点POST /messages/-通过SSE发送消息的端点
例子
该应用程序提供了三个示例MCP功能:
- 工具功能:回应信息
@mcp.tool()
def echo_tool(message: str) -> str:
"""Echo a message as a tool"""
return f"Tool echo: {message}"- 提示功能:创建回声提示
@mcp.prompt()
def echo_prompt(message: str) -> str:
"""Create an echo prompt"""
return f"Please process this message: {message}"- 资源函数:处理资源请求
@mcp.resource("echo://{message}")
def echo_resource(message: str) -> str:
"""Echo a message as a resource"""
return f"Resource echo: {message}"许可证
MIT许可证
版权所有(c)2024 Ragie Corp
特此免费向任何获得副本的人授予许可 本软件和相关文档文件(“软件”),以处理 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许软件的接收者 根据以下条件提供:
上述版权声明和本许可声明应包含在所有 软件的副本或实质性部分。
软件按“原样”提供,不提供任何形式的明示或明示担保 隐含的,包括但不限于适销性保证, 适用于特定目的且不造成伤害。在任何情况下 作者或版权持有人对任何索赔、损害赔偿或其他 因以下原因产生的责任,无论是在合同、侵权或其他诉讼中, 出于或与软件、使用或其他交易有关 软件。
