haris-khan-dev/MCP-server
If you are the rightful owner of MCP-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This project demonstrates how to integrate a FastAPI application with Google's Gemini AI using a simplified MCP (Model Context Protocol) server implementation.
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 healthget_app_info()
: Get application informationget_all_users()
: Retrieve all userscreate_user()
: Create new usersget_user_by_id()
: Get specific userget_all_tasks()
: Retrieve all taskscreate_task()
: Create new taskscomplete_task()
: Mark tasks as completedroll_dice()
: Roll dice with custom parametersget_app_statistics()
: Get application statisticssearch_users_by_name()
: Search users by nameget_pending_tasks()
: Get incomplete tasksget_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
-
Clone or download the project files
-
Install dependencies:
pip install fastapi uvicorn aiohttp google-generativeai python-dotenv requests
-
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.
-
Get a Gemini API key:
- Visit Google AI Studio
- 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
python app.py
The FastAPI server will run on http://localhost:8000
2. Test the FastAPI Endpoints
You can test the API directly:
# 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)
python simple_gemini_integration.py
Interactive Mode
python simple_gemini_integration.py --interactive
Automated Demo
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
inmcp_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
# 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
python simple_mcp_server.py
Test Gemini Integration
# Make sure FastAPI server is running
python app.py
# In another terminal, run integration
python simple_gemini_integration.py
Test Everything
python test_simple_integration.py
๐ Troubleshooting
Common Issues
-
"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
- Make sure you have a
-
"Error connecting to MCP server"
- Ensure the FastAPI server is running on port 8000
- Check that all dependencies are installed
-
"ModuleNotFoundError"
- Run
pip install -r requirements.txt
- Make sure you're using Python 3.8+
- Run
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
๐ค Contributing
Feel free to submit issues and enhancement requests!
๐ License
This project is open source and available under the MIT License.