Skip to main content

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:

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:

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:

uv venv

Activate Virtual Environment

Activate the virtual environment to use it:

.venv\Scripts\activate

Install Dependencies

Install all required packages:

uv pip install -r pyproject.toml

Start the Integrated Server

Launch the integrated FastAPI server with MCP SSE functionality:

python src/server.py

or

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:

mcp dev ./src/weather.py

Connect to MCP Inspector

  1. Open MCP Inspector at http://localhost:5173
  2. Configure the connection:
    • Set Transport Type to SSE
    • Enter URL: http://localhost:8000/sse
    • Click Connect

Test the Functions

  1. Navigate to Tools section
  2. Click List Tools to see available functions:
    • get_alerts : Get weather alerts
    • get_forcast : Get weather forecast
  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:

    @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:

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

Metadata

Release files for iflow-mcp_fastapi-mcp-sse 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_fastapi-mcp-sse 0.1.0
File Size Uploaded
iflow_mcp_fastapi_mcp_sse-0.1.0.tar.gz 6.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_fastapi-mcp-sse 0.1.0
File Interpreter ABI Platform
iflow_mcp_fastapi_mcp_sse-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.6 kB

Release files / iflow_mcp_fastapi_mcp_sse-0.1.0.tar.gz

Download URL iflow_mcp_fastapi_mcp_sse-0.1.0.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d7461b768cec66dddd08ed271985fb795c14687de3ac180c9b115372ce2baabb
BLAKE2b-256 checksum
How to use checksums
5dcc0cb571f371ab13f30f16d92670ece6d8712f2800c5ceb74e6b86a92e8353
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.9

Release files / iflow_mcp_fastapi_mcp_sse-0.1.0-py3-none-any.whl

Download URL iflow_mcp_fastapi_mcp_sse-0.1.0-py3-none-any.whl
Size 7.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
56c93bba5154267b23f4ecb1cfe938d2f8450c41865979dd7606b02396db097e
BLAKE2b-256 checksum
How to use checksums
eb1f3bceffb53606da5c1e3da4f62e27ca3cc3e92d91e58f57020498fb19f10b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.9

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page