🚀 Zerodha Trading Agent (MCP x Bun.js)
This is an intelligent Stock Trading Agent built using:
- Bun.js (fast JavaScript runtime)
- Zerodha Kite Connect API
- Claude MCP Server Integration
The agent allows you to place trades, auto-buy/sell stocks based on triggers, and (future roadmap) predict stock trends using historical data and live news.
📋 Features
- 🔥 Place Buy and Sell orders automatically via MCP Agent
- 🛡️ Authenticate securely using Kite Connect
- 🔄 Auto-refresh access tokens periodically
- 🎯 (Coming Soon) Smart GTT-like Watchlist based buying/selling
- 🧠 (Coming Soon) Stock Future Prediction using charts and news analysis
- ⚡ Built with Bun.js for superfast runtime
- 🎯 Fully compatible with Claude Toolchain / MCP Agents
📂 Project Structure
zerodha-trade/
├── index.ts # MCP Server setup, defines trading tools
├── trade.ts # Trading logic: place order, generate session
├── refreshToken.ts # Refreshes access token using request_token
├── login.ts # (One time) Generate new access token
├── tokenStore.json # Stores API key, secret, access token
├── watchlist.json # (Coming soon) GTT trigger rules
├── README.md # Project documentation
⚙️ Setup Instructions
1. Install Dependencies
bun install
(Make sure you have Bun.js installed:)
curl -fsSL https://bun.sh/install | bash
2. Configure API Credentials
Update tokenStore.json with:
{
"apiKey": "YOUR_KITE_API_KEY",
"apiSecret": "YOUR_KITE_API_SECRET",
"accessToken": "YOUR_ACCESS_TOKEN"
}
If you don't have accessToken yet, run:
bun login.ts
to generate one manually.
3. Running the Agent Server
bun index.ts
✅ This will:
- Auto-refresh your access token every 24 hours
- Expose trading functions to Claude Agent via MCP Server
- Run a server on
http://localhost:3000
4. Using HTTPS Locally (via ngrok)
Since Kite Connect requires an HTTPS URL, you can use ngrok to tunnel your local server securely.
brew install ngrok # Install ngrok (if not already installed)
ngrok http 3000 # Expose port 3000 via HTTPS
After running, you will get a public HTTPS URL like https://abc1234.ngrok.io. Use this URL as your Redirect URL when creating your Kite Connect App.
5. Creating Kite Connect App (to get API Key/Secret)
- Go to Kite Developer Console
- Click Create New App
- Fill in:
- App Name: (Any meaningful name)
- Redirect URL: (Paste your
https://xyz.ngrok.ioURL) - Postback URL: (Same or another ngrok HTTPS URL)
- Products: Kite Connect
- Exchange: NSE, BSE, etc.
- After creation, you will get API Key and API Secret
- Update
tokenStore.jsonaccordingly
🚀 MCP Server Configuration Example
{
"mcpServers": {
"zerodha-trade": {
"command": "/Users/vamsi/.bun/bin/bun",
"args": [
"--directory",
"/Users/vamsi/Projects/zerodha-trade",
"index.ts"
]
}
}
}
🛠️ Future Enhancements (Roadmap)
- 🔔 Smart GTT Trigger system: Buy/sell when price crosses target
- 📈 Stock Future Prediction Agent (using historical price + live news)
- 📊 Auto SIP Bot for ETFs like Nifty50
- 📬 Telegram/Slack Alerts on successful order execution
- 📉 Stop Loss Automation on Portfolio Holdings
🤖 How It Works (High Level)
- MCP Agent requests
buyStock(symbol, quantity)orsellStock(symbol, quantity) - Agent server uses Kite Connect API to place orders
- Access token refreshed every day automatically
- (Upcoming) Background service watches prices to auto-trigger GTT-like orders
- (Upcoming) News + Chart analysis predict stock trend
✨ Credits
Recommend MCP Servers 💡
@kukapay/whale-tracker-mcp
A mcp server for tracking cryptocurrency whale transactions.
getAlby/mcp
An MCP server that enables LLMs to interact with Bitcoin Lightning wallets for payments via Nostr Wallet Connect (NWC), LNURL, and L402.
@shinzolabs/coinmarketcap-mcp
An MCP server implementation for CoinMarketCap API, providing standardized access to cryptocurrency market data, exchange information, and blockchain-related metrics.
lambda-capture-mcp
Provides an MCP server for semantic search of macroeconomic data, integrating with the Lambda Capture Semantic Search API to offer contextual information for AI agents.
Nasdaq Data Link MCP Server
A Model Context Protocol (MCP) server that provides large language models with access to Nasdaq Data Link's extensive financial and economic datasets.
@paypal/mcp
PayPal's MCP server enables merchants to interact with their business tasks using natural language via MCP clients, streamlining operations like invoice creation.