MCP-server

haris-khan-dev/MCP-server

3.2

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.

Tools
13
Resources
0
Prompts
0

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:

    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:

๐ŸŽฏ 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 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

# 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

  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

๐Ÿค Contributing

Feel free to submit issues and enhancement requests!

๐Ÿ“„ License

This project is open source and available under the MIT License.