zayedrais/AI_Agent_with_MCP
If you are the rightful owner of AI_Agent_with_MCP 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.
This project implements a Model Context Protocol (MCP) server using Google's Agent Development Kit (ADK) for building intelligent agents and tools.
MCP Server with Google ADK Project
This project implements a Model Context Protocol (MCP) server using Google's Agent Development Kit (ADK) for building intelligent agents and tools. The system features multiple specialized agents that collaborate through a coordinator agent to handle different types of requests.
Project Structure
āāā agents/ # Contains agent implementations
ā āāā coordinator_agent.py # LLM-based intelligent request router
ā āāā data_analysis_agent.py # Agent for analyzing data files with visualization
ā āāā search_agent.py # Agent for web searches and information retrieval
ā āāā code_generator_agent.py # Agent for generating code based on descriptions
āāā tools/ # Contains tool implementations
ā āāā code_generator_tool.py # Generates code in various programming languages
ā āāā data_analysis_tool.py # Analyzes data and creates visualizations
ā āāā data_reader_tool.py # Reads data from various file formats
ā āāā report_generator_tool.py # Generates formatted reports
ā āāā web_search_tool.py # Performs web searches
āāā input_data/ # Directory for input data files (CSV, Excel)
āāā analysis_output/plots/ # Generated data visualizations
āāā reports/ # Generated analysis reports
āāā generated_code/ # Generated code outputs
āāā server.py # MCP Server implementation using FastMCP
āāā requests_log.txt # Log of requests and responses
āāā README.md # This file
Prerequisites
- Python 3.9+
- Groq and OpenRouter Key
Working Flow Architecture
Setup
- Clone this repository
- Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Set up your Groq & Openrouter Key: add key in .env if available otherwise create file as
touch .env
add key
OPENROUTER_API_KEY="ADD_Your_Key"
GROQ_API_KEY="ADD_Your_Key"
Running the MCP Server
python server.py
This will start the MCP server on http://0.0.0.0:8080
Available Agents
Coordinator Agent
The coordinator agent uses LLM-based routing to direct requests to the most appropriate specialized agent. It analyzes the content of the request and determines which agent can best handle it.
Search Agent
Performs web searches and provides information on various topics.
Example Request:
curl -X POST http://localhost:8080/ask -H "Content-Type: application/json" -d '{"query":"What is Model Context Protocol?"}'
Data Analysis Agent
Analyzes data from various file formats (CSV, Excel) and generates reports with visualizations.
Example Request:
curl -X POST http://localhost:8080/ask -H "Content-Type: application/json" -d '{"file_path": "sales_data.xlsx","query":"make a report for these data"}'
Code Generator Agent
Generates code in various programming languages based on natural language descriptions.
Example Request:
curl -X POST http://localhost:8080/ask -H "Content-Type: application/json" -d '{"query":"Python code for fibonacci series","language":"python"}'
API Endpoints
/ask
- General endpoint that routes to the appropriate specialized agent/search
- Endpoint for direct web searches/analyze-data
- Endpoint for data analysis/generate-code
- Endpoint for code generation/chat/completions
- Chat completion endpoint for conversational interaction
MCP Tools
The server exposes the following MCP tools:
ask
- Routes the user's query to the most appropriate agentsearch
- Searches the web for informationanalyze_data
- Analyzes data files and generates reports with visualizationsgenerate_code
- Generates code based on natural language descriptions
Extending This Project
To add new agents:
- Create a new file in the
agents/
directory - Implement the agent class with an async
process()
method - Update the coordinator agent to recognize and route to the new agent
To add new tools:
- Create a new file in the
tools/
directory - Implement the tool functionality with comprehensive docstrings
- Import and use the tool in your agents