SSE MCP服务

一个基于FastAPI的应用,展示了如何使用服务器发送事件(SSE)作为模型上下文协议(MCP)的传输层,提供简单的回声服务。

  • by ragieai
  • Python
  • 本地部署
  • 12 星标
  • 更新于
在 GitHub 查看 ragieai/fastapi-sse-mcp

使用说明

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+

安装

  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:
        """Echo a message as a tool"""
        return f"Tool echo: {message}"
    
  2. 提示功能:创建回声提示

    @mcp.prompt()
    def echo_prompt(message: str) -> str:
        """Create an echo prompt"""
        return f"Please process this message: {message}"
    
  3. 资源函数:处理资源请求

    @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

特此免费向任何获得副本的人授予许可 本软件和相关文档文件(“软件”),以处理 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许软件的接收者 根据以下条件提供:

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

软件按“原样”提供,不提供任何形式的明示或明示担保 隐含的,包括但不限于适销性保证, 适用于特定目的且不造成伤害。在任何情况下 作者或版权持有人对任何索赔、损害赔偿或其他 因以下原因产生的责任,无论是在合同、侵权或其他诉讼中, 出于或与软件、使用或其他交易有关 软件。