Uses Google ADK (Agent Development Kit) with Gemini API to provide a natural language interface for interacting with trading operations.
Provides tools for managing a Zerodha trading account, including placing, modifying, and canceling orders, retrieving portfolio holdings, positions, margins, order history, and user profile information through the Zerodha API.
Zerodha MCP Server & Client
A Python-based trading assistant that connects to a Zerodha MCP server to help users manage their trading account.
Features
Account Management: Manage Zerodha trading account, orders, and positions
Interactive Chat Interface: Natural language interface for trading operations
MCP Integration: Built on the Model Context Protocol for standardized communication
Zerodha API Integration: Uses Zerodha's API to interact with the trading platform
Google ADK Agent: Uses Google ADK Agent to interact with the trading platform
Tech Stack
Protocol: Model Context Protocol (MCP)
Agent Framework:
Tools
Place Orders: Place orders in the trading platform
Modify Orders: Modify orders in the trading platform
Cancel Orders: Cancel orders in the trading platform
Get Orders: Get orders in the trading platform
Get Order History: Get order history in the trading platform
Get Order Trades: Get order trades in the trading platform
Get Margins: Get margins in the trading platform
Get Holdings: Get holdings in the trading platform
Get Positions: Get positions in the trading platform
Get User Profile: Get user profile in the trading platform
Get Stock News & Fundamentals: Gets news about a specific stock
Prerequisites
Python
Zerodha trading account with Personal API access from here
Zerodha API key and secret
Gemini API key or Application Default Credentials (for Google ADK Agent)
Installation
Clone the repository:
Create and activate a virtual environment:
Install dependencies:
Set up environment variables:
Create a
.envfile with your configuration:
Server Usage
The server provides a set of tools for interacting with the Zerodha trading platform. To start the server:
Make sure your
.envfile is properly configured with your Zerodha API credentials.Start the server using one of the following methods:
The server provides the following tools:
get_login_url: Get the login URL for user authenticationget_access_token: Generate access token using request tokenget_user_profile: Get user's Zerodha profile informationget_margins: Get available margins and fund detailsget_holdings: Get portfolio holdingsget_positions: Get current positionsget_orders: Get all orders for the dayget_order_history: Get history of a specific orderget_order_trades: Get trades generated by an orderplace_order: Place a new ordermodify_order: Modify an existing ordercancel_order: Cancel an order
Client Usage
This project provides three client implementations:
Using Google ADK (
client/google_adk_client.py)
All clients connect to the MCP server and provide an interactive interface for trading operations.
Client Configuration
Both clients support configuration through multiple sources, with the following precedence:
Command-line arguments (highest precedence)
Environment variables
.envfile variables
Configuration options:
Environment variables:
MCP_HOSTandMCP_PORTCommand-line arguments:
--hostand--port.envfile variables:MCP_HOST,MCP_PORT,OPENAI_API_KEY, andGOOGLE_API_KEY
Default values (if no configuration is provided):
Host: localhost
Port: 8001
The client automatically loads environment variables from the .env file in the project root directory. Make sure your .env file contains the necessary configuration:
The client will automatically connect to the MCP server using the provided configuration.
Once connected, you can interact with the assistant using natural language commands. For example:
"Show me my portfolio holdings"
"What are my current positions?"
"Place a market order for 10 shares of RELIANCE"
"Cancel order ID 123456"
To exit the client, type 'quit' when prompted.
Development
Project Structure
client/google_adk_client.py: MCP client implementation using Google ADKserver.py: MCP server implementation with Zerodha API integrationgenerate_token.py: Utility for generating access tokensrequirements.txt: Project dependencies.env: Environment configuration
Contributing
Fork the repository
Create a feature branch
Commit your changes
Push to the branch
Create a Pull Request
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Acknowledgments
Built using Google ADK
Uses MCP for standardized communication
Powered by KiteConnect for Zerodha API integration