FastAPI + FastMCP + Gemini Integration
Enables natural language interaction with FastAPI applications through Google's Gemini AI using MCP tools. Provides CRUD operations for user management and application health monitoring through conversational prompts.
README
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
This video shows the full integration in action, including FastAPI startup, MCP tools testing, and Gemini AI interactions.
🚀 Quick Start
1. Install Dependencies
pip install -r requirements.txt
2. Set Up Gemini API Key
Create a .env file in the project root:
GEMINI_API_KEY=your-gemini-api-key-here
Get your API key from Google AI Studio.
3. Start FastAPI
python start_fastapi.py
4. Test the Integration
# 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 usersget_user_by_id(user_id)- Get specific usercreate_user(name, email, age)- Create new userupdate_user(user_id, name, email, age)- Update userdelete_user(user_id)- Delete userget_health_status()- Check app healthget_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
- FastAPI provides a RESTful API for user management
- FastMCP creates an MCP server that exposes API functions as tools
- 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
# 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
python test_mcp_cli.py
Test Gemini Integration
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_KEYis set correctly in.envfile - Check API quota and permissions
- Ensure google-genai package is installed
🔗 Learn More
📄 License
This project is open source and available under the MIT License.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.