This project integrates Zerodha's trading platform with Claude AI using the Multi-Cloud Plugin (MCP) framework, allowing you to interact with your Zerodha trading account directly through Claude.
- Go to Kite Connect and sign up for a developer account
- Log in to your account at developers.kite.trade
- Navigate to the "Apps" section in your Kite Developer dashboard
- Click on "Create a new app"
- Fill in the required details:
- App Name: Choose a descriptive name (e.g., "Claude Zerodha Integration")
- App Category: Select "Personal" or appropriate category
- Redirect URL: Set to
http://127.0.0.1:5000/zerodha/auth/redirect
- Description: Briefly describe your application's purpose
- Submit the form to create your app
After creating your app, you'll receive:
- API Key (also called Consumer Key)
- API Secret (also called Consumer Secret)
These credentials will be displayed on your app's details page.
- Create a
.env
file in the root directory of this project - Add your API credentials to the file:
KITE_API_KEY=your_api_key_here
KITE_API_SECRET=your_api_secret_here
Replace your_api_key_here
and your_api_secret_here
with the actual credentials from step 3.
Make sure you have all required dependencies installed:
uv pip install kiteconnect fastapi uvicorn python-dotenv httpx
Install the MCP config on your Claude desktop app:
mcp install main.py
This command registers the Zerodha plugin with Claude, making all trading functionality available to the AI.
After setup, you can interact with your Zerodha account via Claude using the following features:
Can you please check if I'm logged into my Zerodha account and authenticate if needed?
- Check account margins:
What are my current margins on Zerodha?
- View portfolio holdings:
Show me my current holdings on Zerodha
- Check current positions:
What positions do I currently have open on Zerodha?
- Get quotes for symbols:
What's the current price of RELIANCE and INFY on NSE?
- Place an order:
Place a buy order for 10 shares of INFY at market price on NSE
- Get historical data:
Can you show me the historical price data for SBIN for the last 30 days?
- View mutual fund holdings:
Show me my mutual fund holdings on Zerodha
- Get mutual fund orders:
List all my mutual fund orders on Zerodha
- Place a mutual fund order:
Place a buy order for ₹5000 in the mutual fund with symbol INF090I01239
- Cancel a mutual fund order:
Cancel my mutual fund order with order ID 123456789
- View SIP details:
Show all my active SIPs on Zerodha
- Create a new SIP:
Set up a monthly SIP of ₹2000 for the fund with symbol INF090I01239 for 12 installments
- Modify an existing SIP:
Change my SIP with ID 987654321 to ₹3000 per month
- Cancel a SIP:
Cancel my SIP with ID 987654321
- Browse available mutual funds:
Show me a list of available mutual funds on Zerodha
The first time you use any Zerodha functionality, Claude will:
- Start a local server on port 5000
- Open a browser window for Zerodha login
- After successful login, store the access token for future sessions
Your session will remain active until the token expires (typically 24 hours). When the token expires, Claude will automatically initiate the login flow again.
This plugin offers the following MCP tools that Claude can use:
check_and_authenticate
- Verifies authentication status and initiates login if neededinitiate_login
- Starts the Zerodha login flowget_request_token
- Retrieves the request token after login
get_holdings
- Retrieves portfolio holdingsget_positions
- Gets current positionsget_margins
- Retrieves account marginsplace_order
- Places a trading orderget_quote
- Gets quotes for specified symbolsget_historical_data
- Retrieves historical price data
get_mf_orders
- Retrieves mutual fund ordersplace_mf_order
- Places a mutual fund ordercancel_mf_order
- Cancels a mutual fund orderget_mf_instruments
- Gets available mutual fund instrumentsget_mf_holdings
- Retrieves mutual fund holdingsget_mf_sips
- Gets active SIPsplace_mf_sip
- Creates a new SIPmodify_mf_sip
- Modifies an existing SIPcancel_mf_sip
- Cancels a SIP
- If you encounter authentication issues, try removing the
.tokens
file and restart the authentication process - Make sure your Zerodha credentials in the
.env
file are correct - Ensure port 5000 is not being used by another application
- For persistent issues, check Zerodha's API status at status.zerodha.com
- Your Zerodha API credentials are stored only in your local
.env
file - Access tokens are stored in the
.tokens
file in the project directory - No credentials are transmitted to Claude or any third parties
- All authentication happens directly between you and Zerodha's servers