Trade-MCP

Un proyecto modular de automatización de trading que utiliza la API de Zerodha Kite Connect para la automatización basada en herramientas y recursos.

Documentación

Trade-MCP

Un proyecto modular de automatización de trading que utiliza Zerodha Kite Connect y MCP (Modular Command Platform) para la automatización basada en herramientas y recursos. Este proyecto expone acciones de trading (como realizar órdenes y obtener tenencias) como herramientas MCP, haciéndolas accesibles para Claude Desktop y otros clientes compatibles con MCP.


Características

  • Integración con Zerodha: Realiza órdenes de compra/venta y obtén tenencias utilizando la API de Kite Connect.
  • Herramientas MCP: Expone acciones de trading como herramientas invocables para automatización y agentes de IA.
  • Secretos basados en entorno: Las claves API y secretos se cargan desde un archivo .env por seguridad.
  • Extensible: Agrega fácilmente nuevas herramientas o recursos para más acciones de trading.

Configuración

1. Clonar el Repositorio

git clone <your-repo-url>
cd Trade-MCP

2. Crear y Activar un Entorno Virtual

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

3. Instalar Dependencias

uv pip install -r requirements.txt
# or, if using pyproject.toml:
uv pip install .

4. Configurar Variables de Entorno

Crea un archivo .env en la raíz del proyecto:

API_KEY=your_zerodha_api_key
API_SECRET=your_zerodha_api_secret

5. Obtén tu Token de Acceso de Zerodha

Para usar la API de Zerodha, necesitas un token de acceso. Sigue estos pasos:

  1. Obtén tu Clave API y Secreto

  2. Genera la URL de Inicio de Sesión
    En un shell o script de Python, ejecuta:

    from kiteconnect import KiteConnect
    kite = KiteConnect(api_key="your_api_key")
    print(kite.login_url())
    
    • Abre la URL impresa en tu navegador e inicia sesión con tus credenciales de Zerodha.
  3. Extrae el request_token

    • Después de iniciar sesión, serás redirigido a tu URL de redirección (configurada en la configuración de la aplicación Zerodha).
    • La URL se verá así:
      http://localhost:8000/?request_token=REQUEST_TOKEN_HERE&action=login&status=success
    • Copia el valor de request_token de la URL.
  4. Intercambia el request_token por un access_token
    En un shell o script de Python, ejecuta:

    data = kite.generate_session("REQUEST_TOKEN_HERE", api_secret="your_api_secret")
    print(data["access_token"])
    
    • Reemplaza "REQUEST_TOKEN_HERE" y "your_api_secret" con tus valores reales.
    • El valor impreso es tu access_token.
  5. Configura el Token de Acceso

    • Puedes configurarlo como una variable de entorno o usarlo directamente en tu código según sea necesario.

Uso

Ejecutar el Servidor MCP

uv run --with mcp[cli] mcp run server.py

O, si MCP CLI está instalado en tu entorno:

mcp run server.py

Integración con Claude Desktop

  1. Agrega una entrada de servidor en tu 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. Reinicia Claude Desktop.

  3. Las herramientas aparecerán en la lista de herramientas de Claude.


Herramientas Expuestas

  • add(a: int, b: int): Suma dos números.
  • place_zerodha_buy_order(symbol: str, quantity: int): Realiza una orden de compra.
  • place_zerodha_sell_order(symbol: str, quantity: int): Realiza una orden de venta.
  • get_zerodha_holdings(): Obtén todas las tenencias de Zerodha.

Extensión

Para agregar una nueva herramienta, define una función en server.py y decórala con @mcp.tool():

@mcp.tool()
def my_tool(...):
    ...

Licencia

Licencia MIT