Provides comprehensive trading and portfolio management tools for Zerodha Kite Connect, including order placement and management, real-time market data and quotes, portfolio and holdings tracking, GTT orders, and instrument search capabilities.
Kite MCP Server + OneApp Portfolio Manager
This repository contains two integrated systems:
Kite MCP Server: A Model Context Protocol (MCP) server for Zerodha Kite Connect trading APIs
OneApp Portfolio Manager: A multi-account portfolio management web application with XIRR tracking
š | š | šÆ | š
š NEW: OneApp Portfolio Manager
A comprehensive portfolio management system for tracking multiple Zerodha accounts with historical data import and XIRR calculations.
Features
š Multi-Account Support: Manage 3+ Zerodha accounts in one place
š„ CSV Import: Upload Tradebook and Ledger data (5+ years)
š° XIRR Tracking: Calculate annualized returns at portfolio and stock level
š Consolidated & Individual Views: Toggle between all accounts or specific ones
š Holdings Analysis: Detailed P&L and performance metrics per stock
šØ Modern UI: Clean, responsive interface with data privacy toggle
Quick Start (Portfolio App)
For detailed setup instructions: See GETTING_STARTED.md
Complete implementation details: See PROJECT_STATUS.md
Kite MCP Server
Features
š Authentication: Secure login flow with API key and access token management
š Market Data: Real-time quotes, OHLC, LTP, and historical data
š Trading: Place, modify, and cancel orders (Regular, AMO, CO, Iceberg, Auction)
š¼ Portfolio: View holdings, positions, and mutual fund holdings
šÆ GTT Orders: Place and manage Good Till Triggered orders
š Instrument Search: Search and filter trading instruments
š Order Management: Track order history and trades
Installation
Prerequisites
Node.js v18.0.0 or higher
A Zerodha Kite Connect account with API access
API Key and API Secret from Kite Connect Developer Console
Setup
Clone this repository:
Install dependencies:
Build the project:
Test the installation:
You should see: "ā SUCCESS! MCP Server started correctly."
Configuration
For Claude Desktop
Add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
For Other MCP Clients
Configure your MCP client to run:
Usage
1. Authentication
First, authenticate with Kite Connect:
The server will return a login URL. Click on it to authorize the application. After authorization, you'll be redirected to a URL containing a request_token parameter.
This will complete the authentication process and store your access token locally in ~/.kite-mcp-credentials.json.
2. Available Tools
Once authenticated, you can use any of the following tools:
Profile & Account
get_profile: Get user profile information
get_margins: Get account margin details
Trading
place_order: Place a new order
modify_order: Modify an existing order
cancel_order: Cancel an order
get_orders: Get all orders
get_order_history: Get order history for a specific order
get_order_trades: Get trades for a specific order
Portfolio
get_positions: Get current positions
get_holdings: Get holdings
get_mf_holdings: Get mutual fund holdings
get_trades: Get trade history
Market Data
search_instruments: Search for trading instruments
get_quotes: Get detailed quotes for instruments
get_ohlc: Get OHLC data
get_ltp: Get last traded price
get_historical_data: Get historical candle data
GTT Orders
place_gtt_order: Place a GTT order
modify_gtt_order: Modify a GTT order
delete_gtt_order: Delete a GTT order
get_gtts: Get all active GTT orders
Example Conversations
Example 1: Check Profile and Margins
Example 2: Place a Market Order
Example 3: Get Market Data
Example 4: View Positions
Security
Credentials Storage: API keys and access tokens are stored locally in
~/.kite-mcp-credentials.jsonNever commit credentials: The
.gitignorefile is configured to exclude credentialsAPI Security: Follow Zerodha's security best practices for API usage
Development
Build
Watch Mode
Project Structure
API Reference
This server wraps the official kiteconnectjs library. For detailed API documentation, refer to:
Troubleshooting
"Not authenticated" Error
If you see this error, you need to authenticate:
Call the
logintool with your API key and secretFollow the login URL
Call
generate_sessionwith the request token
Session Expired
Kite Connect access tokens are valid for the entire trading day. If your session expires:
Get a new request token by visiting the login URL
Call
generate_sessionwith the new request token
API Rate Limits
Kite Connect has rate limits:
3 requests per second
Some endpoints have specific limits
The server does not implement rate limiting, so be mindful of your request frequency.
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Disclaimer
This is an unofficial MCP server for Kite Connect. Use at your own risk. Always test with small amounts and paper trading before using real money. The authors are not responsible for any trading losses.
Support
For Kite Connect API issues, contact Zerodha Support
For MCP server issues, please open an issue on this repository.