一个使用FastAPI演示与模型上下文协议(MCP)集成的服务器发送事件(SSE)的应用程序。
该项目展示了如何在FastAPI应用程序中使用服务器发送事件(SSE)作为MCP的传输层。它提供了一个简单的回显服务,可以:
克隆此仓库:
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
GET / - 返回一个简单的JSON问候语GET /sse/ - 建立连接的SSE端点POST /messages/ - 通过SSE发送消息的端点该应用提供了三个示例MCP函数:
工具函数:回显消息
@mcp.tool()
def echo_tool(message: str) -> str:
"""作为工具回显一条消息"""
return f"工具回显: {message}"
提示函数:创建回显提示
@mcp.prompt()
def echo_prompt(message: str) -> str:
"""创建一个回显提示"""
return f"请处理这条消息: {message}"
资源函数:处理资源请求
@mcp.resource("echo://{message}")
def echo_resource(message: str) -> str:
"""作为资源回显一条消息"""
return f"资源回显: {message}"
MIT许可证
版权所有 (c) 2024 Ragie Corp
在此授权任何获得此软件及其相关文档文件副本的人(以下简称“软件”),在不受限制的情况下使用软件,包括但不限于以下权利:
上述版权声明和本许可通知应包含在软件的所有副本或实质性部分中。
软件按“原样”提供,不附带任何形式的保证,无论是明示的还是暗示的,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人都不对因软件或其使用或其他交易而产生的任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他行为中产生。