返回市场
快速API服务器发送事件MCP

快速API服务器发送事件MCP

作者:ragieai12 星标更新:2025-03-19

项目介绍

FastAPI SSE MCP

一个使用FastAPI演示与模型上下文协议(MCP)集成的服务器发送事件(SSE)的应用程序。

概述

该项目展示了如何在FastAPI应用程序中使用服务器发送事件(SSE)作为MCP的传输层。它提供了一个简单的回显服务,可以:

  • 处理FastAPI HTTP请求
  • 使用MCP python-sdk实现MCP工具、资源和提示

需求

  • Python 3.12+
  • FastAPI 0.115.11+
  • MCP 1.4.1+

安装

  1. 克隆此仓库:

    git clone https://github.com/ragieai/fastapi-sse-mcp.git
    cd fastapi-sse-mcp
    
  2. 安装依赖项:

    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函数:

  1. 工具函数:回显消息

    @mcp.tool()
    def echo_tool(message: str) -> str:
        """作为工具回显一条消息"""
        return f"工具回显: {message}"
    
  2. 提示函数:创建回显提示

    @mcp.prompt()
    def echo_prompt(message: str) -> str:
        """创建一个回显提示"""
        return f"请处理这条消息: {message}"
    
  3. 资源函数:处理资源请求

    @mcp.resource("echo://{message}")
    def echo_resource(message: str) -> str:
        """作为资源回显一条消息"""
        return f"资源回显: {message}"
    

许可证

MIT许可证

版权所有 (c) 2024 Ragie Corp

在此授权任何获得此软件及其相关文档文件副本的人(以下简称“软件”),在不受限制的情况下使用软件,包括但不限于以下权利:

  • 使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,以及允许向其提供软件的人这样做,但需遵守以下条件:

上述版权声明和本许可通知应包含在软件的所有副本或实质性部分中。

软件按“原样”提供,不附带任何形式的保证,无论是明示的还是暗示的,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人都不对因软件或其使用或其他交易而产生的任何索赔、损害或其他责任负责,无论是在合同行为、侵权行为或其他行为中产生。