Production-ready GCP security analysis platform with ADK-powered AI agent and BigQuery integration
π Quick Start β’ β¨ Features β’ π Documentation β’ π§ Recent Fixes
The GCP Security Intelligence Platform v1.0.1 is a production-ready security analysis platform that provides natural language queries to BigQuery security data. Built on the ADK (Agent Development Kit) framework with multiple user interfaces (ADK Backend, Flask UI, Chainlit UI, MCP Server).
- Natural language queries to BigQuery security data
- 3 specialized security tools for analysis
- Gemini 2.5 Flash powered conversational AI
- ADK automatic function calling
- ADK Backend (port 8000) - Direct API access
- Flask UI (port 5001) - Web interface
- Chainlit UI (port 8001) - Modern chat interface
- MCP Server - Claude Desktop integration
- Centralized security data platform
- Real-time analysis and queries
- Correct schema with proper column names
- Support for custom SQL queries
- Deploy only what you need
- IAM & Security (5 functions)
- Infrastructure (3 functions)
- Feeds & Documentation (4 functions)
Get started in under 5 minutes:
# 1. Clone the repository
git clone https://github.com/stuagano/adk-python.git
cd adk-python/contributing/samples/security_agent
# 2. Install dependencies
pip install -r requirements.txt
# 3. Install ADK tool dependencies
~/.local/pipx/venvs/google-adk/bin/python3.13 -m pip install beautifulsoup4 lxml feedparser
# 4. Configure environment
cp .env.example .env
# Edit .env with your GCP project details
# 5. Start all services
./scripts/start_all.sh
# Services now running:
# β
ADK Backend: http://localhost:8000
# β
Flask UI: http://localhost:5001
# β
Chainlit UI: http://localhost:8001The platform includes 3 specialized security analysis tools:
Overview of security findings with metrics:
- Total records, categories, severity levels
- Unique resources affected
- Date range of findings
Query security findings with SQL WHERE filtering
Available columns:
- id, name, category, severity
- resource_name, description, recommendation
- state, created_at, project_id
Aggregated statistics grouped by field
- severity, category, state, project_id
Dataset: security_insights
Table: security_findings
CREATE TABLE security_insights.security_findings (
id INTEGER,
name STRING,
category STRING,
severity STRING,
resource_name STRING,
description STRING,
recommendation STRING,
state STRING,
created_at STRING,
project_id STRING
)- β
Fixed return types:
StructuredToolResponseβstr - β ADK automatic function calling requires simple types
- β All security tools now compatible
- β
Fixed column reference:
resource_typeβresource_name - β Added schema documentation to tool docstrings
- β Accurate SQL queries
- β
Fixed directory structure:
.chainlit/config.toml - β Configured for local development
- β Prevented duplicate session creation
See CHANGELOG.md for complete version history.
- README.md - Complete platform documentation
- FINAL_STATUS.md - Platform status and features
- CHANGELOG.md - Version history
- Chainlit Integration - Chat UI setup
- Chainlit Plugin - Plug-and-play integration
- MCP Server - Model Context Protocol
- Tools Reference - Complete tool documentation
- Agent Instructions - Agent behavior contract
- Cloud Functions - Data collection guide
- Testing - Testing guide
"Show me security findings from the last 24 hours"
"List all HIGH severity vulnerabilities"
"Get security statistics grouped by category"
"Find findings related to storage buckets"
-- High severity findings
SELECT * FROM `project.security_insights.security_findings`
WHERE severity = 'HIGH'
ORDER BY created_at DESC;
-- Recent findings
SELECT * FROM `project.security_insights.security_findings`
WHERE created_at >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR);User Interfaces (Flask, Chainlit, MCP)
β
ADK Backend (port 8000)
β
Security Tools (3) + BigQuery Tools
β
BigQuery Data Platform
β
Cloud Functions (Optional) + External APIs
- Separation of Concerns - Agent queries BigQuery, Cloud Functions populate data
- Modular Deployment - Deploy only needed Cloud Functions
- Direct Access - Agent has full BigQuery access
- No Coupling - Agent never calls Cloud Functions directly
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is part of the Google ADK Python samples.
- Google Cloud Platform team for the ADK framework
- Gemini team for powerful language models
- All contributors to the security platform
Status: β Production Ready (v1.0.1) Last Updated: October 7, 2025 Built with β€οΈ for GCP Security