trackmcp
Back to directory
panz2018

fastapi_mcp_sse

View on GitHub

A working example to create a FastAPI server with SSE-based MCP support

51 stars PythonDeveloper Kits Updated Oct 31, 2025

Documentation

FastAPI MCP SSE

English |

A Server-Sent Events (SSE) implementation using FastAPI framework with Model Context Protocol (MCP) integration.

What is MCP?

The Model Context Protocol (MCP) is an open standard that enables AI models to interact with external tools and data sources. MCP solves several key challenges in AI development:

  • Context limitations: Allows models to access up-to-date information beyond their training data
  • Tool integration: Provides a standardized way for models to use external tools and APIs
  • Interoperability: Creates a common interface between different AI models and tools
  • Extensibility: Makes it easy to add new capabilities to AI systems without retraining

This project demonstrates how to implement MCP using Server-Sent Events (SSE) in a FastAPI web application.

Description

This project demonstrates how to implement Server-Sent Events (SSE) using the FastAPI framework while integrating Model Context Protocol (MCP) functionality. The key feature is the seamless integration of MCP's SSE capabilities within a full-featured FastAPI web application that includes custom routes.

Features

  • Server-Sent Events (SSE) implementation with MCP
  • FastAPI framework integration with custom routes
  • Unified web application with both MCP and standard web endpoints
  • Customizable route structure
  • Clean separation of concerns between MCP and web functionality

Architecture

This project showcases a modular architecture that:

1. Integrates MCP SSE endpoints (`/sse` and `/messages/`) into a FastAPI application

2. Provides standard web routes (`/`, `/about`, `/status`, `/docs`, `/redoc`)

3. Demonstrates how to maintain separation between MCP functionality and web routes

Installation & Usage Options

Prerequisites

Install UV Package Manager - A fast Python package installer written in Rust:

cmd
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Option 1: Quick Run Without Installation

Run the application directly without cloning the repository using UV's execution tool:

cmd
uvx --from git+https://github.com/panz2018/fastapi_mcp_sse.git start

Option 2: Full Installation

Create Virtual Environment

Create an isolated Python environment for the project:

cmd
uv venv

Activate Virtual Environment

Activate the virtual environment to use it:

cmd
.venv\Scripts\activate

Install Dependencies

Install all required packages:

cmd
uv pip install -r pyproject.toml

Start the Integrated Server

Launch the integrated FastAPI server with MCP SSE functionality:

cmd
python src/server.py

or

cmd
uv run start

Available Endpoints

After starting the server (using either Option 1 or Option 2), the following endpoints will be available:

  • Main server: http://localhost:8000
  • Standard web routes:
    • Home page: http://localhost:8000/
    • About page: http://localhost:8000/about
    • Status API: http://localhost:8000/status
    • Documentation (Swagger UI): http://localhost:8000/docs
    • Documentation (ReDoc): http://localhost:8000/redoc
  • MCP SSE endpoints:
    • SSE endpoint: http://localhost:8000/sse
    • Message posting: http://localhost:8000/messages/

Debug with MCP Inspector

For testing and debugging MCP functionality, use the MCP Inspector:

cmd
mcp dev ./src/weather.py

Connect to MCP Inspector

1. Open MCP Inspector at http://localhost:5173

2. Configure the connection:

    Test the Functions

    1. Navigate to `Tools` section

    2. Click `List Tools` to see available functions:

      3. Select a function

      4. Enter required parameters

      5. Click `Run Tool` to execute

      Extending the Application

      Adding Custom Routes

      The application structure makes it easy to add new routes using FastAPI's APIRouter:

      1. Define new route handlers in routes.py using the APIRouter:

      python
      @router.get("/new-route")
         async def new_route():
             return {"message": "This is a new route"}

      2. All routes defined with the router will be automatically included in the main application

      Customizing MCP Integration

      The MCP SSE functionality is integrated in server.py through:

      • Creating an SSE transport
      • Setting up an SSE handler
      • Adding MCP routes to the FastAPI application

      Integration with Continue

      To use this MCP server with the Continue VS Code extension, add the following configuration to your Continue settings:

      json
      {
        "experimental": {
          "modelContextProtocolServers": [
            {
              "transport": {
                "name": "weather",
                "type": "sse",
                "url": "http://localhost:8000/sse"
              }
            }
          ]
        }
      }

      Frequently asked questions

      What is fastapi_mcp_sse?

      fastapi_mcp_sse is A working example to create a FastAPI server with SSE-based MCP support

      How do I install fastapi_mcp_sse?

      Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

      Is fastapi_mcp_sse open source?

      Yes — it is hosted on GitHub at https://github.com/panz2018/fastapi_mcp_sse and has 51 stars.

      Related MCP tools

      Run your own MCP server? See who uses it and what to fix.

      Measure it with TrackMCP