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
Converts LaTeX mathematical expressions to MathML format using MathJax-node.
Interact with Jupyter notebooks running in any JupyterLab environment, supporting real-time control and smart execution of notebook cells.
Interact with the Lean theorem prover via the Language Server Protocol (LSP), enabling LLM agents to understand, analyze, and modify Lean projects.
An AI-driven platform for frontend semantic cognition and automation.
A collection of reference implementations for the Model Context Protocol (MCP), demonstrating how to give LLMs secure access to tools and data using Typescript and Python SDKs.
A comprehensive MCP server for tooling interactions(40+) and resource accessibility(60+) plus many useful prompts to interact with Algorand Blockchain.
Advanced code search and transformation powered by ugrep and ast-grep for modern development workflows.
Integrates Zeek network analysis with conversational AI clients. Requires an external Zeek installation.
A Ruby gem for integrating Large Language Models (LLMs) via the Model Context Protocol (MCP) into development workflows.
An MCP server for AI-assisted frontend development using Chrome DevTools. Requires Google Chrome.