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ívelLIMIT— Executa a um preço especificado ou melhor; requerpriceSL— Ordem limitada com stop-loss; requer tantotrigger_pricequantopriceSL-M— Ordem a mercado com stop-loss; requer apenastrigger_price
Códigos de Produto
MIS— Margem Intraday Square-off; deve ser encerrada antes do fim do pregãoCNC— Cash and Carry; para entrega/holding de longo prazoNRML— 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
- Acesse o Console do Desenvolvedor Kite Connect
- Crie um aplicativo para obter sua API Key e API Secret
- Complete o fluxo de login para obter um Access Token (válido por um dia de negociação)
- Tanto
api_keyquantoaccess_tokensã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:
- Verifique se os cabeçalhos
Authorization: Bearer YOUR_API_KEYeX-Mewcp-Credential-Id: CREDENTIAL-IDestão presentes - Confirme que a credencial está ativa na sua conta MewCP
- Verifique se os cabeçalhos
Créditos Insuficientes
- Causa: As chamadas de API excederam seus limites de solicitação
- Solução:
- Verifique o uso de créditos no seu painel do Curious Layer
- Faça upgrade para um plano pago ou adicione créditos para limites maiores
- 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:
- Acesse Credenciais no seu painel do MewCP
- Adicione sua
api_keyeaccess_tokendo Kite Connect como uma credencial estática - Tente novamente a solicitação com o cabeçalho
X-Mewcp-Credential-Idcorreto
Payload de Solicitação Malformado
- Causa: O payload JSON é inválido ou está faltando campos obrigatórios
- Solução:
- Valide a sintaxe JSON antes de enviar
- Garanta que todos os parâmetros obrigatórios da ferramenta estejam incluídos
- 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:
- Verifique o formato do endpoint:
{server-name}/mcp/{tool-name} - Use o nome correto do servidor conforme a documentação
- Verifique os servidores disponíveis na sua conta do Curious Layer
- Verifique o formato do endpoint:
Erro da API Kite Connect
- Causa: A API upstream do Kite Connect retornou um erro
- Solução:
- Verifique o status do serviço Kite Connect na Página de Status do Kite
- Confirme que seu access token é válido e não expirou (tokens expiram no final do dia de negociação)
- Revise a mensagem de erro para obter detalhes específicos
Recursos
- Documentação da API Kite Connect — Referência oficial da API
- Referência da API Kite Connect — Referência completa de endpoints
- Docs do FastMCP — Especificação do FastMCP
- Credenciais do FastMCP — Pacote de Credenciais do FastMCP para gerenciamento de credenciais