Skip to main content
Glama

FastAPI + FastMCP + Gemini Integration

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 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

# 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

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

๐Ÿ“„ License

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

-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

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.

  1. ๐ŸŽฅ Demo Video
    1. ๐Ÿš€ Quick Start
      1. 1. Install Dependencies
      2. 2. Set Up Gemini API Key
      3. 3. Start FastAPI
      4. 4. Test the Integration
    2. ๐Ÿ“ Project Structure
      1. ๐Ÿ› ๏ธ Core Components
        1. FastAPI Application (main.py)
        2. FastMCP Server (mcp_server.py)
        3. Gemini Integration (gemini_integration.py)
      2. ๐Ÿค– How It Works
        1. Example Gemini Interactions
      3. ๐Ÿ”ง API Endpoints
        1. ๐Ÿงช Testing
          1. Test FastAPI Endpoints
          2. Test MCP Tools
          3. Test Gemini Integration
        2. ๐Ÿ”‘ Environment Variables
          1. ๐Ÿ“š Key Features
            1. ๐Ÿ› Troubleshooting
              1. FastAPI Not Starting
              2. MCP Tools Not Working
              3. Gemini Integration Issues
            2. ๐Ÿ”— Learn More
              1. ๐Ÿ“„ 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