Skip to main content
Glama
README.md
# FastAPI SSE MCP Random

A FastAPI server that implements the Model Context Protocol (MCP) using Server-Sent Events (SSE) for streaming communication. This project provides various utility tools including random number generation, image generation using Azure OpenAI DALL-E, and AI podcast generation.

## Features

- **Server-Sent Events (SSE)** for real-time streaming communication
- **Model Context Protocol (MCP)** implementation for structured tool use
- **Multiple utility tools**:
  - Echo tool and resources
  - Random number generator
  - Image generation via Azure OpenAI DALL-E 3
  - AI podcast generation
  - "Think tool" for reflective responses

## Prerequisites

- Python 3.10+
- Azure OpenAI API access (for image generation)

## Installation

1. Clone the repository:

```bash
git clone <repository-url>
cd fastapi_sse_mcp_random
```

2. Install the dependencies:

```bash
pip install -r requirements.txt
```

Or using `uv`:

```bash
uv pip install -e .
```

## Usage

### Starting the server

Run the server with:

```bash
python main.py
```

The server will start at `http://0.0.0.0:8000`

### Available Endpoints

- `GET /`: Health check endpoint
- `GET /sse/`: SSE connection endpoint
- `POST /messages/`: Endpoint for client messages

### Available Tools

#### Echo Tool

```json
{
  "name": "echo_tool",
  "parameters": {
    "message": "Hello, world!"
  }
}
```

#### Random Number Generator

```json
{
  "name": "random_number",
  "parameters": {
    "min_value": 1,
    "max_value": 100
  }
}
```

#### Image Generation

```json
{
  "name": "generate_image",
  "parameters": {
    "prompt": "A beautiful landscape with mountains and a lake"
  }
}
```

#### Podcast Generation

```json
{
  "name": "generate_podcast",
  "parameters": {
    "prompt": "The future of artificial intelligence",
    "duration": 5,
    "name1": "Mark",
    "voice1": "Thomas",
    "name2": "Sophia",
    "voice2": "Emily"
  }
}
```

#### Think Tool

```json
{
  "name": "think_tool",
  "parameters": {
    "input": "What are the implications of quantum computing?"
  }
}
```

## Project Structure

- `main.py`: Main FastAPI application and MCP tools implementation
- `sse.py`: Server-Sent Events (SSE) implementation
- `pyproject.toml`: Project metadata and dependencies
- `requirements.txt`: Basic dependencies list

## Dependencies

- FastAPI: Web framework for building APIs
- MCP: Model Context Protocol implementation
- OpenAI: Client for Azure OpenAI services
- Uvicorn: ASGI server for running FastAPI applications
- Requests: HTTP library for API calls

## License

[Specify your license here]

## Contributing

[Instructions for contributing to the project]

Maintenance

ActivityInactive
ResponsivenessNo issues