Skip to main content
Glama

FastAPI + MCP + Gemini Integration

README.mdโ€ข6.21 kB
# FastAPI + MCP + Gemini Integration This project demonstrates how to integrate a FastAPI application with Google's Gemini AI using a simplified MCP (Model Context Protocol) server implementation. ## ๐Ÿ—๏ธ Architecture - **FastAPI App** (`app.py`): A sample REST API with user management, task management, and dice rolling - **Simple MCP Server** (`simple_mcp_server.py`): Simplified MCP server that exposes FastAPI endpoints as tools - **Gemini Integration** (`simple_gemini_integration.py`): Connects Gemini AI with the MCP server ## ๐Ÿš€ Features ### FastAPI Application - User management (CRUD operations) - Task management with completion tracking - Dice rolling functionality - Health checks and statistics - RESTful API endpoints ### MCP Server Tools - `get_health_status()`: Check application health - `get_app_info()`: Get application information - `get_all_users()`: Retrieve all users - `create_user()`: Create new users - `get_user_by_id()`: Get specific user - `get_all_tasks()`: Retrieve all tasks - `create_task()`: Create new tasks - `complete_task()`: Mark tasks as completed - `roll_dice()`: Roll dice with custom parameters - `get_app_statistics()`: Get application statistics - `search_users_by_name()`: Search users by name - `get_pending_tasks()`: Get incomplete tasks - `get_completed_tasks()`: Get completed tasks ## ๐Ÿ“‹ Prerequisites - Python 3.8+ - Google Gemini API key (optional - demo works in simulation mode) - Basic Python packages (fastapi, uvicorn, aiohttp, google-generativeai) ## ๐Ÿ› ๏ธ Installation 1. **Clone or download the project files** 2. **Install dependencies:** ```bash pip install fastapi uvicorn aiohttp google-generativeai python-dotenv requests ``` 3. **Set up environment variables (optional):** Create a `.env` file and add your Gemini API key: ``` GEMINI_API_KEY=your_actual_api_key_here ``` Note: The demo works without an API key in simulation mode. 4. **Get a Gemini API key:** - Visit [Google AI Studio](https://aistudio.google.com/app/apikey) - Create a new API key - Add it to your `.env` file ## ๐ŸŽฏ Usage ### 0. Look for the video demo You can look for the zip file in which screen recording is present. That includes a demo question and an answer. ### 1. Start the FastAPI Server ```bash python app.py ``` The FastAPI server will run on `http://localhost:8000` ### 2. Test the FastAPI Endpoints You can test the API directly: ```bash # Health check curl http://localhost:8000/health # Get app info curl http://localhost:8000/ # Create a user curl -X POST "http://localhost:8000/users?name=John&email=john@example.com&age=30" # Create a task curl -X POST "http://localhost:8000/tasks?title=Learn%20FastMCP&description=Study%20FastMCP%20integration" # Roll dice curl "http://localhost:8000/dice/roll?sides=6&count=3" ``` ### 3. Run the Gemini Integration #### Demo Mode (Predefined Queries) ```bash python simple_gemini_integration.py ``` #### Interactive Mode ```bash python simple_gemini_integration.py --interactive ``` #### Automated Demo ```bash python start_simple_demo.py ``` ### 4. Example Gemini Queries In interactive mode, you can ask questions like: - "Check the health status of the FastAPI application" - "Create a new user named 'Alice' with email 'alice@example.com' and age 25" - "Create a task called 'Learn Python' with description 'Study Python programming'" - "Roll 5 dice with 10 sides each" - "Show me all users and get the application statistics" - "Mark the first task as completed" - "Show me all pending tasks" ## ๐Ÿ”ง Configuration ### FastAPI Server - Default port: 8000 - Host: 0.0.0.0 (accessible from all interfaces) - Modify `app.py` to change these settings ### MCP Server - Connects to FastAPI server at `http://localhost:8000` - Modify `API_BASE_URL` in `mcp_server.py` if needed ### Gemini Integration - Uses Gemini 2.0 Flash model - Configure API key via environment variable - Modify model settings in `gemini_integration.py` ## ๐Ÿ“ Project Structure ``` . โ”œโ”€โ”€ app.py # FastAPI application โ”œโ”€โ”€ simple_mcp_server.py # Simplified MCP server with tools โ”œโ”€โ”€ simple_gemini_integration.py # Gemini + MCP integration โ”œโ”€โ”€ start_simple_demo.py # Automated startup script โ”œโ”€โ”€ test_simple_integration.py # Integration testing โ”œโ”€โ”€ requirements.txt # Python dependencies โ”œโ”€โ”€ .gitignore # Git ignore file โ””โ”€โ”€ README.md # This file ``` ## ๐Ÿงช Testing ### Test FastAPI Endpoints ```bash # Start the server python app.py # In another terminal, test endpoints curl http://localhost:8000/health curl http://localhost:8000/users curl http://localhost:8000/tasks ``` ### Test MCP Server ```bash python simple_mcp_server.py ``` ### Test Gemini Integration ```bash # Make sure FastAPI server is running python app.py # In another terminal, run integration python simple_gemini_integration.py ``` ### Test Everything ```bash python test_simple_integration.py ``` ## ๐Ÿ” Troubleshooting ### Common Issues 1. **"Please set GEMINI_API_KEY environment variable"** - Make sure you have a `.env` file with your API key - Check that the API key is valid 2. **"Error connecting to MCP server"** - Ensure the FastAPI server is running on port 8000 - Check that all dependencies are installed 3. **"ModuleNotFoundError"** - Run `pip install -r requirements.txt` - Make sure you're using Python 3.8+ ### Debug Mode To see more detailed error messages, you can modify the integration script to include more logging. ## ๐Ÿš€ Next Steps - Add more FastAPI endpoints - Create additional MCP tools - Implement authentication - Add database persistence - Create a web interface - Deploy to cloud platforms ## ๐Ÿ“š Learn More - [FastAPI Documentation](https://fastapi.tiangolo.com/) - [FastMCP Documentation](https://fastmcp.dev/) - [Google Gemini API](https://ai.google.dev/) - [Model Context Protocol](https://modelcontextprotocol.io/) ## ๐Ÿค Contributing Feel free to submit issues and enhancement requests! ## ๐Ÿ“„ License This project is open source and available under the MIT License.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/haris-khan-dev/MCP-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server