codeglyph/kite-mcp
If you are the rightful owner of kite-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Kite MCP Server is a Model Context Protocol server designed to integrate with the Zerodha Kite API, providing tools for managing trading accounts and accessing market data.
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
get_orders
Get today's orders
place_order
Place a new trading order
cancel_order
Cancel an existing order
get_ltp
Get Last Traded Price for instruments
get_quote
Get detailed market quotes
get_instruments
Get tradable instruments list
get_auth_status
Check authentication status
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
- Zerodha Kite Connect App: Create an app at Kite Connect
- API Credentials: Get your API Key and Secret
- Bun: Latest version of Bun runtime
Installation
- 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
Quick Start
1. Authenticate with Kite API
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
bun start
3. Configure Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"kite": {
"command": "bun",
"args": ["run", "/path/to/kite-mcp/src/index.ts"]
}
}
}
Available Tools
Portfolio Tools
get_profile
- Get user profile informationget_positions
- Get current trading positionsget_holdings
- Get long-term holdingsget_margins
- Get account margins and funds
Order Tools
get_orders
- Get today's ordersplace_order
- Place a new trading ordercancel_order
- Cancel an existing order
Market Data Tools
get_ltp
- Get Last Traded Price for instrumentsget_quote
- Get detailed market quotesget_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)
bun run build
Development Mode
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
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
- Verify API credentials in
.env
- Check redirect URL in Kite Connect app settings
- 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
- Verify Claude Desktop configuration
- Check server is running:
bun start
- Look for errors in Claude Desktop logs
Contributing
- Fork the repository
- Create a feature branch
- Follow the existing code structure and patterns
- Add appropriate error handling
- 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.