A modular trading automation project using the Zerodha Kite Connect API for tool-based and resource-based automation.
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.
.env
file for security.git clone <your-repo-url>
cd Trade-MCP
uv venv
.venv\Scripts\activate # On Windows
# or
source .venv/bin/activate # On Linux/Mac
uv pip install -r requirements.txt
# or, if using pyproject.toml:
uv pip install .
Create a .env
file in the project root:
API_KEY=your_zerodha_api_key
API_SECRET=your_zerodha_api_secret
To use the Zerodha API, you need an access token. Follow these steps:
Get Your API Key and Secret
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())
Extract the request_token
http://localhost:8000/?request_token=REQUEST_TOKEN_HERE&action=login&status=success
request_token
value from the URL.Exchange the request_token
for an access_token
In a Python shell or script, run:
data = kite.generate_session("REQUEST_TOKEN_HERE", api_secret="your_api_secret")
print(data["access_token"])
"REQUEST_TOKEN_HERE"
and "your_api_secret"
with your actual values.access_token
.Set the Access Token
uv run --with mcp[cli] mcp run server.py
Or, if MCP CLI is installed in your environment:
mcp run server.py
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.
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.To add a new tool, define a function in server.py
and decorate it with @mcp.tool()
:
@mcp.tool()
def my_tool(...):
...
MIT License
Search Android Vehicle Hardware Abstraction Layer (vHAL) documentation and source code from a local repository clone.
Execute terminal commands for malware analysis. Requires Node.js 18 or higher.
Manages penetration testing reports and vulnerabilities via a REST API.
Client implementation for Mastra, providing seamless integration with MCP-compatible AI models and tools.
Generates secure One-Time Passwords (OTP) using TOTP and HOTP algorithms.
Work on your code with JetBrains IDEs
Programmatically control Windows mouse, keyboard, window management, screen capture, and clipboard operations.
A platform-agnostic server for scalable mobile automation and development across iOS, Android, simulators, and emulators.
Provides structured data for shadcn/ui components, including descriptions, installation instructions, usage examples, and props.
An example of a remote MCP server deployable on Cloudflare Workers without authentication.