Skip to main content
Glama

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 .env file 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-MCP

2. Create and Activate a Virtual Environment

uv venv .venv\Scripts\activate # On Windows # or source .venv/bin/activate # On Linux/Mac

3. 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_secret

5. Get Your Zerodha Access Token

To use the Zerodha API, you need an access token. Follow these steps:

  1. Get Your API Key and Secret

  2. 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.

  3. 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=success

    • Copy the request_token value from the URL.

  4. 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.

  5. 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.py

Or, if MCP CLI is installed in your environment:

mcp run server.py

Claude Desktop Integration

  1. 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 ] } } }
  2. Restart Claude Desktop.

  3. 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


-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SamarJyoti496/Trade-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server