README.md•2.67 kB
# 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]