Zerodha Trading Bot
A Node.js-based trading bot that integrates with the Zerodha trading platform using the Model Context Protocol (MCP) for automated trading operations.
Features
- Automated stock trading through Zerodha platform
- Session management and token handling
- Portfolio management
- Buy and Sell operations
- Real-time portfolio tracking
Prerequisites
- Node.js (v14 or higher)
- Zerodha Trading Account
- API Key and Secret from Zerodha
Installation
- Clone the repository:
git clone <repository-url>
cd trading-journal
- Install dependencies:
npm install
- Configure your Zerodha credentials:
- Open
backend/index.js - Replace
apiKeyandapiSecretwith your Zerodha credentials
- Open
Project Structure
├── backend/
│ ├── index.js # Main server file with MCP tools
│ ├── trading.js # Zerodha trading implementation
│ └── tokenManager.js # Token management system
Available Tools
The bot provides the following MCP tools:
-
Generate-Session
- Generates a new session token using request token
- Required parameter:
requestToken
-
Buy-Stock
- Places a buy order for specified stock
- Parameters:
stock: Stock symbolqty: Quantity to buy
-
Sell-Stock
- Places a sell order for specified stock
- Parameters:
stock: Stock symbolqty: Quantity to sell
-
Show-Portfolio
- Displays current portfolio holdings
- No parameters required
Usage
- Start the server:
node backend/index.js
- The server will start and listen for MCP commands through stdio transport.
Security Notes
- Never commit your API credentials to version control
- Keep your
apiSecretsecure and private - Use environment variables for sensitive data in production
Error Handling
The bot includes comprehensive error handling for:
- Authentication failures
- Trading operation errors
- Network issues
- Invalid parameters
Contributing
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Disclaimer
This trading bot is for educational purposes only. Use at your own risk. Always test thoroughly before using with real money.
