Zerodha Trading Bot
# 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
1. Clone the repository:
```bash
git clone <repository-url>
cd trading-journal
```
2. Install dependencies:
```bash
npm install
```
3. Configure your Zerodha credentials:
- Open `backend/index.js`
- Replace `apiKey` and `apiSecret` with your Zerodha credentials
## 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:
1. **Generate-Session**
- Generates a new session token using request token
- Required parameter: `requestToken`
2. **Buy-Stock**
- Places a buy order for specified stock
- Parameters:
- `stock`: Stock symbol
- `qty`: Quantity to buy
3. **Sell-Stock**
- Places a sell order for specified stock
- Parameters:
- `stock`: Stock symbol
- `qty`: Quantity to sell
4. **Show-Portfolio**
- Displays current portfolio holdings
- No parameters required
## Usage
1. Start the server:
```bash
node backend/index.js
```
2. The server will start and listen for MCP commands through stdio transport.
## Security Notes
- Never commit your API credentials to version control
- Keep your `apiSecret` secure 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
1. Fork the repository
2. Create your feature branch
3. Commit your changes
4. Push to the branch
5. 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.
TDQS
Scored across 6 tools
The tool set has significant ambiguity with unrelated tools mixed together. 'addition' and 'factorial' are basic math operations that have no clear connection to trading, while 'Buy-Stock', 'Sell-Stock', and 'Show-Portfolio' are clearly trading-related. 'Generate-Session' is authentication-related but fits the trading context. The presence of math tools alongside trading tools creates confusion about the server's actual purpose.
Naming conventions are inconsistent and chaotic. 'addition' and 'factorial' use lowercase with no clear pattern, 'Buy-Stock', 'Sell-Stock', 'Generate-Session', and 'Show-Portfolio' use PascalCase with hyphens, and there's no consistent verb_noun structure. The mixing of different naming styles makes the tool set appear unorganized and harder to understand as a cohesive unit.
With 6 tools total, the count is reasonable, but the composition is problematic. For a trading bot, having 3 core trading tools (Buy-Stock, Sell-Stock, Show-Portfolio) plus authentication (Generate-Session) is appropriate, but the inclusion of two unrelated math tools makes the set feel bloated and unfocused. The count would be appropriate if all tools were trading-related.
For a trading bot domain, there are significant gaps in coverage. While basic buy/sell operations and portfolio viewing are present, there's no way to check current prices, view order history, cancel orders, set limit orders, or manage positions beyond basic buying and selling. The inclusion of unrelated math tools further dilutes the completeness for the trading domain, making this an incomplete trading surface.