
A2a Adk
Multi-Agent Systems with Google's Agent Development Kit + A2A + MCP
GitHub Stats
Stars
35
Forks
12
Release Date
5/8/2025
about 2 months ago
Detailed Description
Agent-to-Agent (A2A) Security Pipeline with MCP Integration
This project implements a security-focused data processing pipeline using the Agent-to-Agent (A2A) protocol combined with Model Context Protocol (MCP) integration. The system provides secure database queries through a multi-agent architecture.
System Architecture
The system utilizes a layered architecture:
- A2A Protocol Layer: Provides standardized communication between clients and agent services
- ADK Framework Layer: Manages agent behavior and tool integration
- MCP Server Layer: Provides specialized SQL and data processing tools
Components
- A2A Servers: Handle client requests and agent communication
- ADK Agents: Process natural language requests using specialized tools
- MCP Server: Provides SQL query and database interaction tools
- Task Managers: Coordinate task execution across agents
Agent Pipeline
The system implements a security pipeline with three specialized agents:
- Judge Agent: Evaluates input for security threats (SQL injection, XSS, etc.)
- SQL Agent: Performs database queries and analysis using MCP tools
- Mask Agent: Applies privacy protection to sensitive data in results
Flow Diagram
Client Request → A2A Server → Judge Agent → SQL Agent → Mask Agent → Client Response
Key Features
- Security Threat Detection: Identifies and blocks malicious inputs via tool and Model Armor
- SQL Query Analysis: Processes database queries using natural language
- PII Data Protection: Masks personally identifiable information in results using DLP
- A2A Protocol Compliance: Implements standardized agent communication
- MCP Integration: Leverages Model Context Protocol tools for enhanced capabilities
Installation
Prerequisites
- Python 3.8+
- aiohttp
- FastAPI
- Google ADK
- Google Generative AI packages
- uvicorn
Setup
- Clone the repository
- Install dependencies:
pip install -r requirements.txt
- Configure API keys in environment variables (even better, use secret manager)
- Have fun
Usage
Starting the Servers
Run the adk web
script to run the chat interface:
adk web
This will start:
- Judge Server (port 10002)
- Mask Server (port 10003)
- SQL Server (port 10004)
- MCP Server
Making Requests
Run the query_MCP_ADK_A2A.py
script to query the multi-agent system:
python ./clients/query_MCP_ADK_A2A.py
This will use the a2a_client.py
module to make requests to the pipeline:
Core Files
a2a_client.py
: Client for A2A communicationa2a_servers.py
: Server implementations for A2A protocolquery_MCP_ADK_A2A.py
: Main pipeline implementationrun_servers.py
: Server startup and coordinationserver_mcp.py
: MCP server implementationtask_manager.py
: Task coordination for agent communicationmcp_agent.py
: Integration between ADK and MCP
MCP Integration
The system integrates with Model Context Protocol (MCP) for enhanced SQL capabilities:
# Connect to MCP server
tools, exit_stack = await MCPToolset.from_server(
connection_params=StdioServerParameters(
command='python',
args=["server_mcp.py"],
)
)
# Create ADK agent with MCP tools
agent = LlmAgent(
model='gemini-2.5-pro-preview-03-25',
name='sql_assistant',
instruction="...",
tools=tools,
)
Security Features
- Pattern-based security threat detection
- PII identification and masking (emails, names, addresses, etc.)
- Input sanitation with whitelist approach
- Model Armor API integration for additional protection
Deployment
Testing:
docker build -t adk-multi-agent .
docker run -p 8000:8000 -e GOOGLE_API_KEY=your_api_key adk-multi-agent adk web
Production:
export GOOGLE_CLOUD_PROJECT=next-project25
export GOOGLE_CLOUD_LOCATION=us-central1
export GOOGLE_GENAI_USE_VERTEXAI=True
export AGENT_PATH="."
export SERVICE_NAME="adk-agent-service"
export APP_NAME="agents"
adk deploy cloud_run \
--project=$GOOGLE_CLOUD_PROJECT \
--region=$GOOGLE_CLOUD_LOCATION \
--service_name=$SERVICE_NAME \
--app_name=$APP_NAME \
--with_ui \
$AGENT_PATH
Documentation
Agent Development Kit Documentation
Contributing
- Fork the repository
- Create a feature branch
- Submit a pull request with comprehensive description
This project demonstrates integration between A2A protocol and MCP server capabilities, creating a secure and flexible agent architecture for data processing.
Star History
Star History
About the Project
This app has not been claimed by its owner yet.
Claim OwnershipReceive Updates
Security Updates
Get notified about trust rating changes
to receive email notifications.