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 disponibleLIMIT— Ejecutar a un precio especificado o mejor; requierepriceSL— Orden límite con stop-loss; requiere tantotrigger_pricecomopriceSL-M— Orden de mercado con stop-loss; requiere solotrigger_price
Códigos de producto
MIS— Margen intradía con cierre; debe cerrarse antes del fin del mercadoCNC— Cash and Carry; para entrega/tenencia a largo plazoNRML— 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
- Ve a Consola de desarrollador de Kite Connect
- Crea una aplicación para obtener tu Clave de API y Secreto de API
- Completa el flujo de inicio de sesión para obtener un Token de acceso (válido por un día de trading)
- Tanto
api_keycomoaccess_tokenson 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:
- Verifica que los encabezados
Authorization: Bearer YOUR_API_KEYyX-Mewcp-Credential-Id: CREDENTIAL-IDestén presentes - Comprueba que la credencial esté activa en tu cuenta de MewCP
- Verifica que los encabezados
Créditos insuficientes
- Causa: Las llamadas a la API han superado tus límites de solicitudes
- Solución:
- Revisa el uso de créditos en tu panel de Curious Layer
- Mejora a un plan de pago o agrega créditos para límites más altos
- 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:
- Ve a Credenciales en tu panel de MewCP
- Agrega tu
api_keyyaccess_tokende Kite Connect como credencial estática - Reintenta la solicitud con el encabezado
X-Mewcp-Credential-Idcorrecto
Carga útil de solicitud mal formada
- Causa: La carga útil JSON no es válida o faltan campos obligatorios
- Solución:
- Valida la sintaxis JSON antes de enviar
- Asegúrate de que todos los parámetros obligatorios de la herramienta estén incluidos
- 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:
- Verifica el formato del endpoint:
{server-name}/mcp/{tool-name} - Usa el nombre de servidor correcto de la documentación
- Revisa los servidores disponibles en tu cuenta de Curious Layer
- Verifica el formato del endpoint:
Error de la API de Kite Connect
- Causa: La API de Kite Connect devolvió un error
- Solución:
- Revisa el estado del servicio de Kite Connect en Página de estado de Kite
- Verifica que tu token de acceso sea válido y no haya expirado (los tokens expiran al final del día de trading)
- Revisa el mensaje de error para obtener detalles específicos
Recursos
- Documentación de la API de Kite Connect — Referencia oficial de la API
- Referencia de la API de Kite Connect — Referencia completa de endpoints
- Documentación de FastMCP — Especificación de FastMCP
- Credenciales de FastMCP — Paquete de Credenciales de FastMCP para el manejo de credenciales