Content
# Kite MCP Server
A Model Context Protocol (MCP) server for integrating with Zerodha Kite API. This server provides Claude with tools to interact with your Kite trading account.
## Features
- **Portfolio Management**: Get positions, holdings, and orders
- **Market Data**: Real-time quotes, LTP, and instrument data
- **Order Management**: Place, modify, and cancel orders
- **Account Info**: Profile, margins, and authentication status
- **Secure Authentication**: OAuth 2.0 flow with token persistence
## Prerequisites
1. **Zerodha Kite Connect App**: Create an app at [Kite Connect](https://kite.trade/)
2. **API Credentials**: Get your API Key and Secret
3. **Bun**: Latest version of Bun runtime
## Installation
1. Clone and install dependencies:
```bash
bun install
```
2. Set up environment variables:
```bash
# Edit .env with your API credentials
```
3. Configure your Kite Connect app with redirect URL:
```
http://localhost:50000/zerodha/auth/redirect
```
## Quick Start
### 1. Authenticate with Kite API
```bash
bun run auth
```
This will:
- Start a local OAuth server
- Open your browser to Kite login
- Save your access token securely
### 2. Start the MCP Server
```bash
bun start
```
### 3. Configure Claude Desktop
Add to your Claude Desktop configuration:
```json
{
"mcpServers": {
"kite": {
"command": "bun",
"args": ["run", "/path/to/kite-mcp/src/index.ts"]
}
}
}
```
## Available Tools
### Portfolio Tools
- `get_profile` - Get user profile information
- `get_positions` - Get current trading positions
- `get_holdings` - Get long-term holdings
- `get_margins` - Get account margins and funds
### Order Tools
- `get_orders` - Get today's orders
- `place_order` - Place a new trading order
- `cancel_order` - Cancel an existing order
### Market Data Tools
- `get_ltp` - Get Last Traded Price for instruments
- `get_quote` - Get detailed market quotes
- `get_instruments` - Get tradable instruments list
### Utility Tools
- `get_auth_status` - Check authentication status
## Project Structure
```
src/
├── config/
│ └── environment.ts # Configuration management
├── auth/
│ ├── token-manager.ts # Token storage and validation
│ └── oauth-server.ts # OAuth flow handling
├── api/
│ └── kite-client.ts # Kite API wrapper
├── mcp/
│ ├── server.ts # MCP server implementation
│ └── tools/
│ └── index.ts # MCP tools definitions
├── auth.ts # Authentication entry point
└── index.ts # MCP server entry point
```
## Development
### Build (Optional)
```bash
bun run build
```
### Development Mode
```bash
bun run dev # Watch mode for MCP server
bun run dev:auth # Watch mode for auth server
```
### Architecture
The project follows the Single Responsibility Principle:
- **ConfigManager**: Environment and configuration handling
- **TokenManager**: Token persistence and validation
- **OAuthServer**: OAuth 2.0 authentication flow
- **KiteClient**: Kite API wrapper with error handling
- **KiteMCPServer**: MCP protocol implementation
- **Tools**: Individual MCP tool implementations
## Environment Variables
```bash
API_KEY=your_kite_api_key # Required: Kite Connect API Key
API_SECRET=your_kite_api_secret # Required: Kite Connect API Secret
OAUTH_PORT=50000 # Optional: OAuth server port (default: 50000)
```
## Security
- Tokens are stored locally in `access_token.json`
- OAuth flow uses secure redirect handling
- API credentials are never logged or exposed
- Tokens auto-expire for security
## Troubleshooting
### Authentication Issues
1. Verify API credentials in `.env`
2. Check redirect URL in Kite Connect app settings
3. Ensure OAuth port (50000) is available
### Token Expiry
- Kite tokens expire every ~6 hours
- Re-run `bun run auth` when expired
- Server will notify you of authentication status
### MCP Connection Issues
1. Verify Claude Desktop configuration
2. Check server is running: `bun start`
3. Look for errors in Claude Desktop logs
## Contributing
1. Fork the repository
2. Create a feature branch
3. Follow the existing code structure and patterns
4. Add appropriate error handling
5. Submit a pull request
## License
MIT License - see LICENSE file for details
## Disclaimer
This is an unofficial integration with Zerodha Kite API. Use at your own risk. Always verify trades and orders before execution.
Connection Info
You Might Also Like
valuecell
Valuecell is a Python project for efficient data management.
hexstrike-ai
HexStrike AI is an AI-powered MCP cybersecurity automation platform with 150+ tools.
AP2
AP2 provides code samples and demos for the Agent Payments Protocol.
YC-Killer
YC-Killer is an AI agents library by Singularity Research, open-sourcing...
Vibe-Trading
Vibe-Trading: Your Personal Trading Agent
tradingview-mcp
AI-assisted TradingView chart analysis — connect Claude Code to your...