Enables trading automation through Zerodha Kite Connect API, providing tools for placing buy/sell orders and fetching holdings from a Zerodha trading account.
Trade-MCP
A modular trading automation project using Zerodha Kite Connect and MCP (Modular Command Platform) for tool-based and resource-based automation. This project exposes trading actions (like placing orders and fetching holdings) as MCP tools, making them accessible to Claude Desktop and other MCP-compatible clients.
Features
Zerodha Integration: Place buy/sell orders and fetch holdings using the Kite Connect API.
MCP Tools: Expose trading actions as callable tools for automation and AI agents.
Environment-based Secrets: API keys and secrets are loaded from a
.envfile for security.Extensible: Easily add new tools or resources for more trading actions.
Setup
1. Clone the Repository
2. Create and Activate a Virtual Environment
3. Install Dependencies
4. Configure Environment Variables
Create a .env file in the project root:
5. Get Your Zerodha Access Token
To use the Zerodha API, you need an access token. Follow these steps:
Get Your API Key and Secret
Obtain these from the Zerodha developer console.
Generate the Login URL
In a Python shell or script, run:from kiteconnect import KiteConnect kite = KiteConnect(api_key="your_api_key") print(kite.login_url())Open the printed URL in your browser and log in with your Zerodha credentials.
Extract the
After login, you will be redirected to your redirect URL (set in the Zerodha app settings).
The URL will look like:
http://localhost:8000/?request_token=REQUEST_TOKEN_HERE&action=login&status=successCopy the
request_tokenvalue from the URL.
Exchange the
In a Python shell or script, run:data = kite.generate_session("REQUEST_TOKEN_HERE", api_secret="your_api_secret") print(data["access_token"])Replace
"REQUEST_TOKEN_HERE"and"your_api_secret"with your actual values.The printed value is your
access_token.
Set the Access Token
You can set this as an environment variable or use it directly in your code as needed.
Usage
Run the MCP Server
Or, if MCP CLI is installed in your environment:
Claude Desktop Integration
Add a server entry in your
claude_desktop_config.json:{ "mcpServers": { "Trade-MCP": { "command": "uv.EXE", # Exact Path to uv executable "args": [ "run", "--with", "mcp[cli]", "mcp", "run", "server.py" # Exact Path to your server script ] } } }Restart Claude Desktop.
The tools will appear in Claude's tool list.
Exposed Tools
add(a: int, b: int): Add two numbers.place_zerodha_buy_order(symbol: str, quantity: int): Place a buy order.place_zerodha_sell_order(symbol: str, quantity: int): Place a sell order.get_zerodha_holdings(): Get all holdings from Zerodha.
Extending
To add a new tool, define a function in server.py and decorate it with @mcp.tool():
License
MIT License