DataPulse

Kuldipgodase07/DataPulse

3.1

If you are the rightful owner of DataPulse 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.

The Model Context Protocol (MCP) Server on GCP is a FastAPI-based server designed to facilitate real-time data analytics and AI-driven insights using Google Cloud Platform services like Vertex AI and BigQuery.

Model Context Protocol (MCP) Server on GCP

Unlock AI-Driven Insights with DataPulse on Google Cloud Platform

Live Demo GitHub Follow LinkedIn Connect Kuldip Godase

A FastAPI-based MCP server that enables AI agents to perform real-time data analytics on Google Cloud Platform, integrating with Vertex AI and BigQuery.

Architecture Diagram

Key Features

  • Unified Query & Inference API: One server, two superpowers — run SQL analytics on BigQuery or get instant predictions from Vertex AI models.
  • Blazing Fast: Asynchronous FastAPI backend for high-performance, low-latency requests.
  • Cloud-Native Integration: Native support for Google Cloud authentication and resource management.
  • Developer Friendly: Clean, well-documented REST endpoints, ready for integration with any modern tech stack.
  • Secure by Design: Leverages GCP IAM for secure data access and model invocation.

Project Structure

  • main.py – Main FastAPI server code
  • requirements.txt – Python dependencies

Setup

  1. Create and Activate a Virtual Environment:

    python3 -m venv venv
    source venv/bin/activate
    
  2. Install Dependencies:

    pip install -r requirements.txt
    
  3. Configure GCP Credentials:

    • Set your GOOGLE_APPLICATION_CREDENTIALS environment variable to point to your service account JSON file:

      export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/service-account.json"
      export GCP_PROJECT="your-gcp-project"
      export GCP_LOCATION="us-central1"
      export BQ_DATASET="your_bigquery_dataset"
      
  4. Run the Server:

    uvicorn main:app --reload
    

Usage

Query BigQuery

POST /query

Body:

{
  "sql": "SELECT * FROM your_dataset.your_table LIMIT 10"
}