MewCP Kite MCP

Servidor Kite MCP hospedado, sem estado e multilocatário que permite que assistentes de IA acessem dados de mercado, gerenciem portfólios e executem operações de negociação através do Zerodha Kite.

Documentação

Negocie de forma mais inteligente com Zerodha Kite — ordens, posições, holdings e dados de mercado em tempo real via MCP.

Um servidor Model Context Protocol (MCP) que expõe a API do Zerodha Kite Connect para negociação, gerenciamento de portfólio e recuperação de dados de mercado.

Visão Geral

O Servidor MCP Kite Connect fornece acesso completo à plataforma de negociação da Zerodha:

  • Colocar, modificar e cancelar ordens de ações e derivativos
  • Buscar cotações em tempo real, dados históricos de candles e listas de instrumentos
  • Monitorar posições, holdings, margens e perfil do usuário

Perfeito para:

  • Automatizar fluxos de negociação por meio de um assistente de IA
  • Construir pipelines de monitoramento e análise de portfólio
  • Consultar dados de mercado ao vivo e históricos programaticamente

Ferramentas

kite_place_order — Coloca uma ordem na Zerodha Kite

Coloca uma ordem a mercado, limitada, stop-loss ou stop-loss a mercado para qualquer instrumento 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

Saída:

{
  "success": true,
  "order_id": "230914000012345",
  "status": "placed",
  "message": "Order placed successfully. Order ID: 230914000012345"
}
kite_get_orders — Obtém todas as ordens do usuário

Retorna todas as ordens da sessão, incluindo status, quantidade, preço e timestamps.

Entradas:

(none)

Saída:

{
  "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 — Cancela uma ordem existente

Cancela uma ordem pendente pelo seu ID de ordem.

Entradas:

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

Saída:

{
  "success": true,
  "order_id": "230914000012345",
  "status": "cancelled",
  "message": "Order 230914000012345 cancelled successfully"
}
kite_get_positions — Obtém todas as posições abertas

Retorna posições do dia e líquidas com P&L, preços de compra/venda e valores M2M.

Entradas:

(none)

Saída:

{
  "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 — Obtém holdings do portfólio de entrega

Retorna todas as holdings de longo prazo com preço médio, último preço e P&L.

Entradas:

(none)

Saída:

{
  "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 — Obtém cotações de mercado em tempo real

Busca cotações ao vivo para um ou mais instrumentos, incluindo último preço, volume e limites de circuito.

Entradas:

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

Saída:

{
  "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 — Obtém dados históricos de candles

Busca dados de candles OHLCV para qualquer instrumento em um intervalo de datas e período. Retorna até 100 candles.

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)

Saída:

{
  "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 — Obtém lista de instrumentos negociáveis

Retorna instrumentos disponíveis para negociação, opcionalmente filtrados por bolsa. Retorna até 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)

Saída:

{
  "success": true,
  "count": 100,
  "exchange": "NSE",
  "instruments": [
    { "tradingsymbol": "INFY", "instrument_token": "408065", "exchange": "NSE", "segment": "NSE", "name": "INFOSYS" }
  ]
}
kite_get_profile — Obtém perfil do usuário

Retorna o perfil do usuário autenticado, incluindo nome, e-mail, telefone e bolsas e produtos habilitados.

Entradas:

(none)

Saída:

{
  "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 — Obtém margens da conta

Retorna margens disponíveis, utilizadas e totais para segmentos de ações e commodities.

Entradas:

(none)

Saída:

{
  "success": true,
  "equity": { "available": { "cash": 50000.0 }, "utilised": { "debits": 12000.0 } },
  "commodity": { "available": { "cash": 10000.0 }, "utilised": { "debits": 0.0 } }
}
kite_health_check — Verifica a prontidão do servidor

Retorna o status do servidor e a lista de capacidades suportadas. Não requer credenciais.

Entradas:

(none)

Saída:

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

Referência de Parâmetros da API

Tipos de Ordem
  • MARKET — Executa imediatamente ao melhor preço disponível
  • LIMIT — Executa a um preço especificado ou melhor; requer price
  • SL — Ordem limitada com stop-loss; requer tanto trigger_price quanto price
  • SL-M — Ordem a mercado com stop-loss; requer apenas trigger_price
Códigos de Produto
  • MIS — Margem Intraday Square-off; deve ser encerrada antes do fim do pregão
  • CNC — Cash and Carry; para entrega/holding de longo prazo
  • NRML — Normal; para posições de F&O overnight
Token do Instrumento

Encontrando um token:

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

Formato do símbolo de cotação:

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

Obtendo Suas Credenciais do Kite Connect

Etapas
  1. Acesse o Console do Desenvolvedor Kite Connect
  2. Crie um aplicativo para obter sua API Key e API Secret
  3. Complete o fluxo de login para obter um Access Token (válido por um dia de negociação)
  4. Tanto api_key quanto access_token são necessários — forneça-os como campos de credencial estáticos

Solução de Problemas

Cabeçalhos Ausentes ou Inválidos
  • Causa: Credenciais não fornecidas nos cabeçalhos da solicitação ou formato incorreto
  • Solução:
    1. Verifique se os cabeçalhos Authorization: Bearer YOUR_API_KEY e X-Mewcp-Credential-Id: CREDENTIAL-ID estão presentes
    2. Confirme que a credencial está ativa na sua conta MewCP
Créditos Insuficientes
  • Causa: As chamadas de API excederam seus limites de solicitação
  • Solução:
    1. Verifique o uso de créditos no seu painel do Curious Layer
    2. Faça upgrade para um plano pago ou adicione créditos para limites maiores
    3. Entre em contato com o suporte para ajustes de crédito
Credencial Não Conectada
  • Causa: Nenhuma credencial do Kite Connect vinculada à sua conta
  • Solução:
    1. Acesse Credenciais no seu painel do MewCP
    2. Adicione sua api_key e access_token do Kite Connect como uma credencial estática
    3. Tente novamente a solicitação com o cabeçalho X-Mewcp-Credential-Id correto
Payload de Solicitação Malformado
  • Causa: O payload JSON é inválido ou está faltando campos obrigatórios
  • Solução:
    1. Valide a sintaxe JSON antes de enviar
    2. Garanta que todos os parâmetros obrigatórios da ferramenta estejam incluídos
    3. Verifique se os tipos de parâmetros correspondem aos valores esperados
Servidor Não Encontrado
  • Causa: Nome incorreto do servidor no endpoint da API
  • Solução:
    1. Verifique o formato do endpoint: {server-name}/mcp/{tool-name}
    2. Use o nome correto do servidor conforme a documentação
    3. Verifique os servidores disponíveis na sua conta do Curious Layer
Erro da API Kite Connect
  • Causa: A API upstream do Kite Connect retornou um erro
  • Solução:
    1. Verifique o status do serviço Kite Connect na Página de Status do Kite
    2. Confirme que seu access token é válido e não expirou (tokens expiram no final do dia de negociação)
    3. Revise a mensagem de erro para obter detalhes específicos

Recursos