Gemini API with MCP Tool Integration logo

Gemini API with MCP Tool Integration

by hitechdk

This project integrates the Google Gemini API with custom tools managed by the MCP framework. It leverages Gemini to process natural language queries and MCP tools to execute actions based on intent.

View on GitHub

Last updated: N/A

Gemini API with MCP Tool Integration

This project demonstrates how to integrate the Google Gemini API with custom tools managed by the MCP (Multi-Cloud Platform) framework. It uses the Gemini API to process natural language queries, and leverages MCP tools to execute specific actions based on the query's intent.

Prerequisites

Before running this project, ensure you have the following:

  • Python 3.7 or higher

  • A Google Cloud project with the Gemini API enabled and an API key.

  • An MCP environment set up with the necessary tools.

  • .env file with the following environment variables:

    GEMINI_API_KEY=<your_gemini_api_key>
    GEMINI_MODEL=<your_gemini_model_name>
    MCP_RUNNER=<path_to_mcp_runner>
    MCP_SCRIPT=<path_to_mcp_script>
    

Installation

  1. Clone the repository:

    git clone <repository_url>
    cd <repository_directory>
    
  2. Create a virtual environment (recommended):

    python3 -m venv venv
    source venv/bin/activate  # On macOS/Linux
    
    
  3. Install the required dependencies using uv:

    uv pip install dotenv google-generativeai mcp
    uv add "mcp[cli]" httpx
    uv pip install python-dotenv google-generativeai mcp
    
  4. Create a .env file in the project root and add your environment variables.

GEMINI_API_KEY=your_api_key_here
GEMINI_MODEL=gemini-pro
MCP_RUNNER=path_to_mcp_runner
MCP_SCRIPT=path_to_mcp_script

Usage

To run the application, execute the following command:

python main.py

How It Works

  1. The application loads environment variables and validates their presence
  2. Establishes a connection with the MCP client
  3. Retrieves available tools from the MCP session
  4. Sends the prompt to Gemini's API along with tool definitions
  5. Processes any tool calls made by the model
  6. Returns the final response that includes results from tool calls

Customization

To customize the prompt or behavior:

  1. Modify the prompt variable with your desired text
  2. Adjust the get_contents() function to change how prompts are formatted
  3. Extend process_response() to handle different response types

License

MIT License