Skip to main content
Glama

FastAPI + FastMCP + Gemini Integration

README.mdโ€ข4.93 kB
# FastAPI + FastMCP + Gemini Integration A complete demonstration of integrating FastAPI with Google's Gemini AI through the Model Context Protocol (MCP) using FastMCP. ## ๐ŸŽฅ Demo Video Watch the complete demonstration: **[Fast MCP.mp4](Fast%20MCP.mp4)** *This video shows the full integration in action, including FastAPI startup, MCP tools testing, and Gemini AI interactions.* ## ๐Ÿš€ Quick Start ### 1. Install Dependencies ```bash pip install -r requirements.txt ``` ### 2. Set Up Gemini API Key Create a `.env` file in the project root: ```env GEMINI_API_KEY=your-gemini-api-key-here ``` Get your API key from [Google AI Studio](https://aistudio.google.com/app/apikey). ### 3. Start FastAPI ```bash python start_fastapi.py ``` ### 4. Test the Integration ```bash # Test MCP tools directly python test_mcp_cli.py # Test Gemini integration python gemini_integration.py # Run complete demo python demo.py ``` ## ๐Ÿ“ Project Structure ``` FASTMCP/ โ”œโ”€โ”€ main.py # FastAPI application โ”œโ”€โ”€ mcp_server.py # FastMCP server with tools โ”œโ”€โ”€ gemini_integration.py # Gemini SDK integration โ”œโ”€โ”€ test_mcp_cli.py # CLI testing script โ”œโ”€โ”€ demo.py # Complete demonstration โ”œโ”€โ”€ start_fastapi.py # FastAPI startup script โ”œโ”€โ”€ requirements.txt # Dependencies โ””โ”€โ”€ README.md # This file ``` ## ๐Ÿ› ๏ธ Core Components ### FastAPI Application (`main.py`) - RESTful API with user management (CRUD operations) - Health check endpoint - Auto-generated documentation at `/docs` ### FastMCP Server (`mcp_server.py`) Provides 7 MCP tools for API interaction: - `get_all_users()` - Retrieve all users - `get_user_by_id(user_id)` - Get specific user - `create_user(name, email, age)` - Create new user - `update_user(user_id, name, email, age)` - Update user - `delete_user(user_id)` - Delete user - `get_health_status()` - Check app health - `get_app_info()` - Get app information ### Gemini Integration (`gemini_integration.py`) - Direct integration with Google's Gemini API - Natural language interface for MCP tools - Automatic tool selection based on prompts ## ๐Ÿค– How It Works 1. **FastAPI** provides a RESTful API for user management 2. **FastMCP** creates an MCP server that exposes API functions as tools 3. **Gemini** can call these tools automatically based on natural language prompts ### Example Gemini Interactions ``` "Get all users from the FastAPI application" โ†’ Gemini calls get_all_users() and formats the response "Create a new user named Alice with email alice@example.com and age 28" โ†’ Gemini calls create_user() with the specified parameters "What is the health status of the application?" โ†’ Gemini calls get_health_status() and reports the status ``` ## ๐Ÿ”ง API Endpoints | Method | Endpoint | Description | |--------|----------|-------------| | GET | `/` | Welcome message | | GET | `/users` | List all users | | GET | `/users/{id}` | Get user by ID | | POST | `/users` | Create user | | PUT | `/users/{id}` | Update user | | DELETE | `/users/{id}` | Delete user | | GET | `/health` | Health check | ## ๐Ÿงช Testing ### Test FastAPI Endpoints ```bash # Get all users python -c "import requests; print(requests.get('http://localhost:8000/users').json())" # Health check python -c "import requests; print(requests.get('http://localhost:8000/health').json())" ``` ### Test MCP Tools ```bash python test_mcp_cli.py ``` ### Test Gemini Integration ```bash python gemini_integration.py ``` ## ๐Ÿ”‘ Environment Variables | Variable | Description | Required | |----------|-------------|----------| | `GEMINI_API_KEY` | Google Gemini API key | For Gemini integration | ## ๐Ÿ“š Key Features - โœ… **Natural Language Interface** - Ask questions in plain English - โœ… **Automatic Tool Selection** - Gemini chooses appropriate MCP tools - โœ… **Real-time API Interaction** - Direct communication with FastAPI - โœ… **Complete CRUD Operations** - Full user management capabilities - โœ… **Error Handling** - Comprehensive error management - โœ… **Cross-platform Support** - Works on Windows, macOS, Linux ## ๐Ÿ› Troubleshooting ### FastAPI Not Starting - Check if port 8000 is available - Ensure all dependencies are installed - Run: `uvicorn main:app --reload` ### MCP Tools Not Working - Verify FastAPI is running on http://localhost:8000 - Check MCP server script for errors ### Gemini Integration Issues - Verify `GEMINI_API_KEY` is set correctly in `.env` file - Check API quota and permissions - Ensure google-genai package is installed ## ๐Ÿ”— Learn More - [FastMCP Documentation](https://fastmcp.dev/) - [Google Gemini SDK](https://ai.google.dev/gemini-api/docs) - [FastAPI Documentation](https://fastapi.tiangolo.com/) - [MCP Protocol Specification](https://modelcontextprotocol.io/) ## ๐Ÿ“„ License This project is open source and available under the MIT License.

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/aqibqureshi786/MCP-Server-using-FAST-MCP'

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