MewCP Kite MCP

Servidor Kite MCP alojado, sin estado y multitenencia que permite a los asistentes de IA acceder a datos de mercado, gestionar carteras y ejecutar operaciones de trading a través de Zerodha Kite.

Documentación

Opera de forma más inteligente con Zerodha Kite: órdenes, posiciones, tenencias y datos de mercado en vivo a través de MCP.

Un servidor de Protocolo de Contexto de Modelo (MCP) que expone la API de Zerodha Kite Connect para trading, gestión de cartera y recuperación de datos de mercado.

Descripción general

El servidor MCP de Kite Connect proporciona acceso completo a la plataforma de trading de Zerodha:

  • Colocar, modificar y cancelar órdenes de acciones y derivados
  • Obtener cotizaciones en tiempo real, datos históricos de velas y listas de instrumentos
  • Monitorear posiciones, tenencias, márgenes y perfil de usuario

Ideal para:

  • Automatizar flujos de trabajo de trading mediante un asistente de IA
  • Crear pipelines de monitoreo y análisis de cartera
  • Consultar datos de mercado en vivo e históricos de forma programática

Herramientas

kite_place_order — Colocar una orden en Zerodha Kite

Coloca una orden de mercado, límite, SL o SL-M para cualquier instrumento de NSE/BSE/NFO/MCX.

Entradas:

- `tradingsymbol` (string, required) — Trading symbol (e.g., 'INFY', 'RELIANCE')
- `exchange` (string, required) — Exchange: NSE, BSE, NFO, MCX
- `transaction_type` (string, required) — BUY or SELL
- `quantity` (integer, required) — Number of shares/units (min 1)
- `order_type` (string, optional) — MARKET, LIMIT, SL, SL-M (default: MARKET)
- `product` (string, optional) — MIS (intraday), CNC (delivery), NRML (overnight) (default: MIS)
- `price` (float, optional) — Price for LIMIT orders
- `validity` (string, optional) — DAY or IOC (default: DAY)
- `disclosed_quantity` (integer, optional) — Disclosed quantity
- `trigger_price` (float, optional) — Trigger price for SL/SL-M orders
- `tag` (string, optional) — Tag for order tracking

Salida:

{
  "success": true,
  "order_id": "230914000012345",
  "status": "placed",
  "message": "Order placed successfully. Order ID: 230914000012345"
}
kite_get_orders — Obtener todas las órdenes del usuario

Devuelve todas las órdenes de la sesión, incluidos estado, cantidad, precio y marcas de tiempo.

Entradas:

(none)

Salida:

{
  "success": true,
  "count": 2,
  "orders": [
    {
      "order_id": "230914000012345",
      "tradingsymbol": "INFY",
      "status": "COMPLETE",
      "transaction_type": "BUY",
      "quantity": 10,
      "filled_quantity": 10,
      "average_price": 1452.5,
      "order_timestamp": "2023-09-14 10:32:00"
    }
  ]
}
kite_cancel_order — Cancelar una orden existente

Cancela una orden pendiente por su ID de orden.

Entradas:

- `order_id` (string, required) — Order ID to cancel
- `variety` (string, optional) — Order variety: regular, co, amo, iceberg (default: regular)

Salida:

{
  "success": true,
  "order_id": "230914000012345",
  "status": "cancelled",
  "message": "Order 230914000012345 cancelled successfully"
}
kite_get_positions — Obtener todas las posiciones abiertas

Devuelve posiciones diarias y netas con P&L, precios de compra/venta y valores M2M.

Entradas:

(none)

Salida:

{
  "success": true,
  "day_positions": [
    { "tradingsymbol": "INFY", "quantity": 10, "pnl": 250.0, "buy_price": 1450.0, "sell_price": 0.0 }
  ],
  "net_positions": [
    { "tradingsymbol": "INFY", "quantity": 10, "pnl": 250.0, "unrealised": 250.0, "m2m": 250.0 }
  ]
}
kite_get_holdings — Obtener tenencias de cartera de entrega

Devuelve todas las tenencias a largo plazo con precio promedio, último precio y P&L.

Entradas:

(none)

Salida:

{
  "success": true,
  "count": 3,
  "holdings": [
    {
      "tradingsymbol": "RELIANCE",
      "quantity": 5,
      "average_price": 2400.0,
      "last_price": 2520.0,
      "pnl": 600.0,
      "day_change_percentage": 0.85
    }
  ]
}
kite_get_quote — Obtener cotizaciones de mercado en tiempo real

Obtén cotizaciones en vivo de uno o más instrumentos, incluidos último precio, volumen y límites de circuito.

Entradas:

- `instruments` (string, required) — Comma-separated instrument symbols (e.g., 'NSE:INFY,NSE:RELIANCE')

Salida:

{
  "success": true,
  "count": 1,
  "quotes": {
    "NSE:INFY": {
      "last_price": 1452.5,
      "volume": 1234567,
      "change": 12.5,
      "upper_circuit": 1597.75,
      "lower_circuit": 1307.25,
      "timestamp": "2023-09-14 15:29:59"
    }
  }
}
kite_get_historical_data — Obtener datos históricos de velas

Obtén datos de velas OHLCV para cualquier instrumento en un rango de fechas e intervalo. Devuelve hasta 100 velas.

Entradas:

- `instrument_token` (string, required) — Instrument token (use kite_get_instruments to find tokens)
- `from_date` (string, required) — Start date (YYYY-MM-DD)
- `to_date` (string, required) — End date (YYYY-MM-DD)
- `interval` (string, optional) — minute, day, 5minute, 15minute, 30minute, 60minute (default: day)

Salida:

{
  "success": true,
  "count": 5,
  "interval": "day",
  "data": [
    { "date": "2023-09-14", "open": 1440.0, "high": 1460.0, "low": 1435.0, "close": 1452.5, "volume": 1234567 }
  ]
}
kite_get_instruments — Obtener lista de instrumentos negociables

Devuelve los instrumentos disponibles para negociar, opcionalmente filtrados por bolsa. Devuelve hasta 1000 resultados.

Entradas:

- `exchange` (string, optional) — Filter by exchange: NSE, BSE, NFO, MCX, CDS
- `limit` (integer, optional) — Maximum results to return, 1–1000 (default: 100)

Salida:

{
  "success": true,
  "count": 100,
  "exchange": "NSE",
  "instruments": [
    { "tradingsymbol": "INFY", "instrument_token": "408065", "exchange": "NSE", "segment": "NSE", "name": "INFOSYS" }
  ]
}
kite_get_profile — Obtener perfil de usuario

Devuelve el perfil del usuario autenticado, incluidos nombre, correo electrónico, teléfono y bolsas y productos habilitados.

Entradas:

(none)

Salida:

{
  "success": true,
  "user_id": "AB1234",
  "user_name": "John Doe",
  "user_type": "individual",
  "email": "john@example.com",
  "phone": "9876543210",
  "exchanges": ["NSE", "BSE", "NFO"],
  "products": ["CNC", "MIS", "NRML"],
  "order_types": ["MARKET", "LIMIT", "SL", "SL-M"]
}
kite_get_margins — Obtener márgenes de cuenta

Devuelve márgenes disponibles, utilizados y totales para segmentos de acciones y materias primas.

Entradas:

(none)

Salida:

{
  "success": true,
  "equity": { "available": { "cash": 50000.0 }, "utilised": { "debits": 12000.0 } },
  "commodity": { "available": { "cash": 10000.0 }, "utilised": { "debits": 0.0 } }
}
kite_health_check — Verificar disponibilidad del servidor

Devuelve el estado del servidor y la lista de capacidades compatibles. No requiere credenciales.

Entradas:

(none)

Salida:

{
  "status": "ok",
  "server": "CL Kite Connect MCP Server",
  "type": "third-party-integration",
  "auth_required": true,
  "supports": ["orders", "positions", "holdings", "quotes", "historical_data"]
}

Referencia de parámetros de la API

Tipos de órdenes
  • MARKET — Ejecutar inmediatamente al mejor precio disponible
  • LIMIT — Ejecutar a un precio especificado o mejor; requiere price
  • SL — Orden límite con stop-loss; requiere tanto trigger_price como price
  • SL-M — Orden de mercado con stop-loss; requiere solo trigger_price
Códigos de producto
  • MIS — Margen intradía con cierre; debe cerrarse antes del fin del mercado
  • CNC — Cash and Carry; para entrega/tenencia a largo plazo
  • NRML — Normal; para posiciones de F&O nocturnas
Token de instrumento

Cómo encontrar un token:

Use kite_get_instruments with the exchange filter, then read the instrument_token field.
Example: { "tradingsymbol": "INFY", "instrument_token": "408065", "exchange": "NSE" }

Formato del símbolo de cotización:

{EXCHANGE}:{TRADINGSYMBOL}
Example: NSE:INFY

Cómo obtener tus credenciales de Kite Connect

Pasos
  1. Ve a Consola de desarrollador de Kite Connect
  2. Crea una aplicación para obtener tu Clave de API y Secreto de API
  3. Completa el flujo de inicio de sesión para obtener un Token de acceso (válido por un día de trading)
  4. Tanto api_key como access_token son obligatorios: proporciónalos como campos de credencial estáticos

Solución de problemas

Encabezados faltantes o no válidos
  • Causa: Credenciales no proporcionadas en los encabezados de la solicitud o formato incorrecto
  • Solución:
    1. Verifica que los encabezados Authorization: Bearer YOUR_API_KEY y X-Mewcp-Credential-Id: CREDENTIAL-ID estén presentes
    2. Comprueba que la credencial esté activa en tu cuenta de MewCP
Créditos insuficientes
  • Causa: Las llamadas a la API han superado tus límites de solicitudes
  • Solución:
    1. Revisa el uso de créditos en tu panel de Curious Layer
    2. Mejora a un plan de pago o agrega créditos para límites más altos
    3. Contacta con soporte para ajustes de créditos
Credencial no conectada
  • Causa: No hay ninguna credencial de Kite Connect vinculada a tu cuenta
  • Solución:
    1. Ve a Credenciales en tu panel de MewCP
    2. Agrega tu api_key y access_token de Kite Connect como credencial estática
    3. Reintenta la solicitud con el encabezado X-Mewcp-Credential-Id correcto
Carga útil de solicitud mal formada
  • Causa: La carga útil JSON no es válida o faltan campos obligatorios
  • Solución:
    1. Valida la sintaxis JSON antes de enviar
    2. Asegúrate de que todos los parámetros obligatorios de la herramienta estén incluidos
    3. Comprueba que los tipos de parámetros coincidan con los valores esperados
Servidor no encontrado
  • Causa: Nombre de servidor incorrecto en el endpoint de la API
  • Solución:
    1. Verifica el formato del endpoint: {server-name}/mcp/{tool-name}
    2. Usa el nombre de servidor correcto de la documentación
    3. Revisa los servidores disponibles en tu cuenta de Curious Layer
Error de la API de Kite Connect
  • Causa: La API de Kite Connect devolvió un error
  • Solución:
    1. Revisa el estado del servicio de Kite Connect en Página de estado de Kite
    2. Verifica que tu token de acceso sea válido y no haya expirado (los tokens expiran al final del día de trading)
    3. Revisa el mensaje de error para obtener detalles específicos

Recursos