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.
- 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
- Zerodha Kite Connect App: Create an app at Kite Connect
- API Credentials: Get your API Key and Secret
- Bun: Latest version of Bun runtime
- Clone and install dependencies:
bun install
- Set up environment variables:
# Edit .env with your API credentials
- Configure your Kite Connect app with redirect URL:
http://localhost:50000/zerodha/auth/redirect
bun run auth
This will:
- Start a local OAuth server
- Open your browser to Kite login
- Save your access token securely
bun start
Add to your Claude Desktop configuration:
{
"mcpServers": {
"kite": {
"command": "bun",
"args": ["run", "/path/to/kite-mcp/src/index.ts"]
}
}
}
get_profile
- Get user profile informationget_positions
- Get current trading positionsget_holdings
- Get long-term holdingsget_margins
- Get account margins and funds
get_orders
- Get today's ordersplace_order
- Place a new trading ordercancel_order
- Cancel an existing order
get_ltp
- Get Last Traded Price for instrumentsget_quote
- Get detailed market quotesget_instruments
- Get tradable instruments list
get_auth_status
- Check authentication status
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
bun run build
bun run dev # Watch mode for MCP server
bun run dev:auth # Watch mode for auth server
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
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)
- 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
- Verify API credentials in
.env
- Check redirect URL in Kite Connect app settings
- Ensure OAuth port (50000) is available
- Kite tokens expire every ~6 hours
- Re-run
bun run auth
when expired - Server will notify you of authentication status
- Verify Claude Desktop configuration
- Check server is running:
bun start
- Look for errors in Claude Desktop logs
- Fork the repository
- Create a feature branch
- Follow the existing code structure and patterns
- Add appropriate error handling
- Submit a pull request
MIT License - see LICENSE file for details
This is an unofficial integration with Zerodha Kite API. Use at your own risk. Always verify trades and orders before execution.