Enables trading automation through Zerodha Kite Connect API, providing tools for placing buy/sell orders and fetching holdings from a Zerodha trading account.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Trade-MCPplace a buy order for 10 shares of RELIANCE"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
git clone <your-repo-url>
cd Trade-MCP2. Create and Activate a Virtual Environment
uv venv
.venv\Scripts\activate # On Windows
# or
source .venv/bin/activate # On Linux/Mac3. Install Dependencies
uv pip install -r requirements.txt
# or, if using pyproject.toml:
uv pip install .4. Configure Environment Variables
Create a .env file in the project root:
API_KEY=your_zerodha_api_key
API_SECRET=your_zerodha_api_secret5. 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
request_tokenAfter 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
request_tokenfor anaccess_token
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
uv run --with mcp[cli] mcp run server.pyOr, if MCP CLI is installed in your environment:
mcp run server.pyClaude 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():
@mcp.tool()
def my_tool(...):
...License
MIT License
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.