Servidor MCP da AlgoVesta: Deixe Claude, ChatGPT, Cursor e Gemini Operarem Suas Contas Reais de Corretora e MetaTrader 5
O que é isto: A AlgoVesta opera um servidor hospedado de Model Context Protocol (MCP) que dá a um assistente de IA vinte ferramentas reais de negociação por meio de um único link HTTPS. Cole esse único link no Claude, ChatGPT, Cursor, Claude Code, Gemini CLI ou qualquer cliente compatível com MCP, e o assistente pode ler saldos, abrir e fechar posições, mover stop-loss e take-profit, e auditar suas próprias ações em 16 corretoras de criptomoedas e o forex do MetaTrader 5 ao mesmo tempo — usando as configurações de risco que você já salvou na AlgoVesta, atrás de uma barreira de política no lado do servidor que nenhum prompt pode sobrepor. Toda conexão começa com um saldo simulado de $5.000 e toda ação retorna um recibo assinado com ed25519.
O Model Context Protocol é um padrão aberto para conectar assistentes de IA a sistemas externos. A maioria dos servidores MCP relacionados a negociação transmite dados de mercado para uma janela de chat. Este executa: é uma camada de roteamento de ordens com um mecanismo de risco determinístico na frente dela, e a IA é quem chama — nunca a autoridade.
Início rápido
A configuração tem três etapas e não precisa de código. Todo o fluxo está na aba Conexão MCP do seu painel da AlgoVesta.
Abra a aba Conexão MCP e gere uma chave. Novas chaves usam por padrão o paper escopo. O link completo é mostrado uma vez — copie-o nesse momento.
Cole o link no seu cliente de IA como um servidor MCP personalizado. Nenhuma chave de API sai da AlgoVesta, sem código, sem instalação local.
Converse com ele. “Como está minha carteira?” “Simule uma operação comprada de $200 em ETHUSDT com 5x.” “Feche metade da minha posição em BTC.”
Sua URL de conexão se parece com isto:
https://api.algovesta.com/u/avmcp_<your-key>/mcp
Essa URL é uma credencial. Qualquer pessoa que a possua pode agir dentro do seu escopo sobre suas contas. Trate-a como uma senha: nunca cole em um chat público, uma captura de tela, um repositório compartilhado ou um chamado de suporte. Se ela vazar, revogue-a no painel — a revogação entra em vigor imediatamente para novas conexões e encerra streams de eventos abertos em segundos.
Quais assistentes de IA podem se conectar
Qualquer cliente que fale MCP sobre Streamable HTTP pode se conectar. A tabela abaixo registra o que foi verificado no servidor em produção, incluindo as limitações reais — algumas delas são restrições do produto de IA, não da AlgoVesta, e você vai encontrá-las independentemente de qual servidor MCP usar.
| Cliente de IA | Onde colar o link | Notas e limites reais |
|---|---|---|
| Claude (web, desktop, iOS, Android) | Configurações → Conectores → Adicionar conector personalizado | Suporte completo. Os títulos das ferramentas e as caixas de confirmação vêm diretamente do servidor. |
| Claude Code | claude mcp add --transport http | Linha de comando. Útil para fluxos de trabalho roteirizados ou repetíveis. |
| Cursor | mcp.json, o "url" campo | Suporte completo. Observe que o nome da chave é url aqui — o Gemini CLI usa um nome diferente. |
| ChatGPT | Modo de desenvolvedor / conector personalizado | Somente planos pagos. Conectores MCP personalizados não são oferecidos no plano gratuito, e pode ser necessário ativar o modo de desenvolvedor primeiro. Esta é uma restrição da OpenAI. |
| Gemini CLI | ~/.gemini/settings.json, o "httpUrl" campo | Somente CLI. O aplicativo web do Gemini não é compatível com servidores MCP personalizados. Use a httpUrl chave, não url. |
| Qualquer outro cliente compatível com MCP | Suas próprias configurações de MCP / conector | O servidor implementa o padrão, então um cliente que suporte MCP remoto sobre Streamable HTTP funcionará sem nada específico para ele. |
Exemplo do Cursor (mcp.json):
{
"mcpServers": {
"algovesta": {
"url": "https://api.algovesta.com/u/avmcp_<your-key>/mcp"
}
}
}
Exemplo do Gemini CLI (~/.gemini/settings.json) — observe httpUrl:
{
"mcpServers": {
"algovesta": {
"httpUrl": "https://api.algovesta.com/u/avmcp_<your-key>/mcp"
}
}
}
Claude Code:
claude mcp add --transport http algovesta https://api.algovesta.com/u/avmcp_<your-key>/mcp
Transporte e protocolo
| Transporte | Streamable HTTP, sem estado, respostas JSON. Cada requisição é autenticada de forma independente. |
| Nome do servidor | AlgoVesta |
| Endpoint de link secreto | https://api.algovesta.com/u/<key>/mcp |
| Endpoint OAuth | https://api.algovesta.com/mcp |
| Mudanças na lista de ferramentas | tools.listChanged = true. Os clientes atualizam a lista de ferramentas ao reconectar, então novas ferramentas e parâmetros aparecem sem remover nem readicionar o conector. |
| Stream de eventos | Eventos enviados pelo servidor (SSE) em /mcp/events e /u/<key>/events, isolados por locatário, com Last-Event-ID reconexão. |
| Esquema legível por máquina | /mcp/tools.json — o JSON Schema completo das 20 ferramentas, exatamente como o cliente o recebe. |
Autenticação e escopos
Há duas formas de se conectar, e ambas resolvem para o mesmo contexto de locatário. As ferramentas nunca aceitam um ID de usuário como parâmetro — a identidade é lida apenas a partir da conexão autenticada, o que torna o acesso entre contas estruturalmente impossível, e não apenas proibido.
Link secreto
Uma chave no formato avmcp_<32-byte urlsafe random>, embutida no caminho da URL. Ela é armazenada como um hash Argon2id mais um hash de busca SHA-256; o texto plano existe apenas no momento da criação e nunca é recuperável depois disso. Cada chave carrega seu próprio escopo, seu próprio rótulo e seu próprio estado de revogação, para que você possa usar uma chave paper no Cursor e uma chave live no Claude e desativar qualquer uma delas de forma independente.
OAuth 2.1
Para clientes que preferem um fluxo de autorização adequado. Os grants suportados são authorization_code e refresh_token, com refresh tokens rotativos. PKCE com S256 é obrigatório — uma requisição sem ele é rejeitada. O registro dinâmico de clientes está disponível, então a maioria dos clientes se configura automaticamente. Documentos de descoberta:
GET https://api.algovesta.com/.well-known/oauth-authorization-server
GET https://api.algovesta.com/.well-known/oauth-protected-resource
POST https://api.algovesta.com/mcp/oauth/register
GET https://api.algovesta.com/mcp/oauth/authorize
POST https://api.algovesta.com/mcp/oauth/token
Os três escopos
| Escopo | O que pode fazer | Como obtê-lo |
|---|---|---|
read | Carteira, preços, ordens pendentes, simulações, prévias de política, verificação de recibos, replay de canal. Nenhuma ordem pode ser enviada. | Criado diretamente. |
paper | Tudo em read, mais ordens executadas contra o motor paper em um saldo virtual de $5.000. O padrão para novas chaves. | Criado diretamente. |
live | Tudo acima, mais ordens reais nas suas corretoras conectadas e contas MetaTrader 5. | Segundo fator exigido. Um código válido de autenticador (TOTP), ou um código de confirmação enviado ao e-mail da sua conta e válido por 10 minutos. Aplicado no lado do servidor, sem exceções. |
Os escopos são hierarquizados, então uma ferramenta que exige paper recusa uma read chave com insufficient_scope. A fronteira entre dinheiro simulado e real é, portanto, uma propriedade da própria chave, não de um prompt, de uma configuração ou do julgamento do modelo’.
Referência de ferramentas — todas as 20 ferramentas
Estas são exatamente as ferramentas que seu assistente vê. As ferramentas de leitura são seguras para chamar sem perguntar antes; as seis ferramentas de escrita levantam uma confirmação nos clientes que a suportam, e três delas — place_order, close_position e cancel_order — são adicionalmente marcadas como destrutivas em suas anotações.
| Ferramenta | Escopo | Tipo | Finalidade |
|---|---|---|---|
get_portfolio_context | read | somente leitura | Todas as contas conectadas em uma única chamada |
get_market_price | read | somente leitura | Preço em tempo real com informação de atualidade |
simulate_order | read | somente leitura | Simulação (dry-run) incluindo o veredito de política |
place_order | paper / live | destrutiva | Abre uma posição |
close_position | paper / live | destrutiva | Fecha total ou parcialmente |
modify_position | paper / live | escrita | Move o stop-loss e o take-profit |
list_open_orders | read | somente leitura | Ordens limitadas pendentes |
cancel_order | paper / live | destrutiva | Cancela uma ordem pendente |
compile_policy | read | somente leitura | Transforma regras em linguagem natural em uma prévia de política |
verify_receipt | read | somente leitura | Verifica assinatura e cadeia de hash |
replay_channel | read | somente leitura | Faz backtest de um canal do Telegram contra suas regras |
get_trade_history | read | somente leitura | Negociações fechadas e desempenho em cripto, MT5 e paper |
compare_venues | read | somente leitura | Classifica as corretoras conectadas pelo preço e spread medidos |
list_strategies | read | somente leitura | Estratégias do TradingView; a URL do webhook nunca é retornada |
create_strategy | paper / live | escrita | Nova estratégia, sempre com a execução com dinheiro real desativada |
update_strategy | paper / live | escrita | Configurações da estratégia; auto_trade é recusado |
backtest_my_signals | read | read-only | Reproduz os seus próprios sinais passados com outras configurações (trabalho em fila) |
simulate_policy | read | read-only | Aplica uma política de risco às operações que você realmente encerrou (trabalho em fila) |
import_tradingview_backtest | read | read-only | Recalcula uma exportação do TradingView com taxas e slippage reais (trabalho em fila) |
get_job_status | read | read-only | Progresso e resultado de um trabalho em fila |
get_portfolio_context
Não recebe parâmetros. Retorna uma visão normalizada de cada conta de corretora, cada conta MetaTrader 5 e a conta paper pertencente à chave autenticada — e nada mais. É esta chamada que transforma “como estou indo?” em uma única pergunta em vez de dezesseis.
Dois campos importam mais que o resto. Para contas de cripto, balance e equity descrevem a carteira de futuros apenas; o dinheiro do spot é informado separadamente em spot_balance, então um assistente que lê apenas balance pode concluir erroneamente que você não tem nada. Para contas MetaTrader 5, positions_source é live_ea, significando que a lista de posições foi verificada com o terminal, ou unavailable, significando que não foi possível alcançar o terminal. No unavailable caso, uma lista de posições vazia não significa “nenhuma posição aberta” — significa desconhecido, e a descrição da ferramenta instrui o modelo a dizer isso em vez de tranquilizá-lo.
get_market_price
Parâmetros: venue, symbol. Retorna {ok, venue, symbol, last, bid, ask, ts, source, age_sec}. Os preços vêm de um cache compartilhado atualizado a cada segundo, aproximadamente; em caso de falha, o servidor faz uma chamada REST em tempo real à corretora. Se o valor tiver mais de 10 segundos ou não puder ser obtido de forma alguma, isso é declarado explicitamente — um preço desatualizado nunca é apresentado como se fosse atual. Se o símbolo não existir em nenhuma corretora conectada, um preço informativo de DEX pode ser retornado junto com um aviso claro de que você não pode negociá-lo nas suas praças conectadas.
simulate_order
Obrigatório: venue, symbol, side, order_type, idempotency_key. Não envia nenhuma ordem. Retorna a execução esperada, o impacto na margem e o veredito de política, além dos preços absolutos de stop-loss e take-profit derivados pelo servidor. É uma operação de leitura, então um assistente bem-comportado a chama sem pedir permissão, mostra a você um resumo e pede exatamente uma confirmação antes de enviar qualquer ordem.
place_order
Obrigatório: venue, symbol, side, order_type, idempotency_key. Opcional: account, market, size_usd, margin_usd, risk_pct, lots, leverage, sl, tp, sl_pct, tp_pct, take_profits, entry_price.
A idempotency_key não é decoração. Se a mesma chave chegar duas vezes para o mesmo usuário, a resposta armazenada é reproduzida e nenhuma segunda ordem é aberta — é isso que protege você quando um cliente tenta novamente após um timeout, um celular perde o sinal no meio de uma confirmação, ou um modelo chama uma ferramenta duas vezes.
O dimensionamento é explícito de propósito. Para cripto você passa exatamente um de três campos, e eles significam coisas diferentes:
| Campo | Significado | Exemplo com 5x |
|---|---|---|
size_usd | Valor da posição (nocional) | size_usd=100 → uma posição de $100, $20 do seu dinheiro |
margin_usd | Garantia (colateral) do seu próprio bolso | margin_usd=20 → uma posição de $100 |
risk_pct | Porcentagem do saldo livre usada como margem. Isso não é dimensionamento de risco por distância de stop; a distância do stop-loss não entra no cálculo. | risk_pct=1 em um saldo de $2.000 → $20 de margem → uma posição de $100 |
Para forex e MetaTrader 5, o tamanho é dado em lots em vez disso, e leverage não é enviado de forma alguma — o produto não é alavancado e o dimensionamento vem do volume de lotes. O tamanho de lote informado é usado exatamente e nunca arredondado para um valor conveniente; se ficar fora dos limites da sua corretora’ a ordem é recusada e a faixa permitida é informada de volta.
Tolerância no tamanho da ordem. As corretoras só aceitam certos incrementos de lote, então o valor solicitado é ajustado ao passo válido mais próximo. Se o desvio ficar dentro de 20%, a ordem prossegue e o desvio exato é informado a você; além de 20% a ordem não é aberta, e você é informado, em números, quais valores próximos funcionariam. Esse limiar foi escolhido reexecutando cada ordem real já enviada pela função de dimensionamento, não escolhido por intuição.
Campos omitidos usam suas configurações salvas. Se você não informar um stop-loss, take-profit ou alavancagem, o assistente é instruído a deixar esses campos vazios, e o servidor os preenche com as preferências salvas no seu painel — os mesmos valores que o painel manual e o bot do Telegram usam. A resposta informa quais campos vieram das configurações salvas em prefs_used. Isso existe por causa de uma falha medida: quando esses campos eram obrigatórios, o modelo precisava inventar valores, e cinco de cinco ordens sobrescreveram a própria configuração de um cliente’.
close_position
Obrigatório: venue, symbol, side, idempotency_key. Opcional: fraction (0 a 1], account, ticket. Funciona para cripto e para MetaTrader 5. Fechar reduz o risco, então a barreira de política nunca bloqueia isso — só o kill switch bloqueia. Dez chamadas com a mesma chave de idempotência realizam exatamente um fechamento. Se não existir posição correspondente você recebe POSITION_NOT_FOUND junto com as posições que estão abertas naquela praça, para que o assistente possa se corrigir em vez de adivinhar.
O MetaTrader 5 não tem fechamento parcial — o Expert Advisor fecha totalmente — então use fraction=1 lá. Quando várias posições MT5 estão abertas no mesmo símbolo, ticket torna-se obrigatório, e enquanto o alvo estiver ambíguo nada é fechado.
modify_position
Obrigatório: venue, symbol, side, idempotency_key, mais pelo menos um de new_sl / new_tp. O stop-loss não pode ser removido — a regra de SL obrigatório também vale aqui. A ordenação é validada: uma posição comprada precisa new_sl < mark < new_tp, uma posição vendida o inverso. Enviar apenas um lado deixa o outro no seu valor atual em vez de excluí-lo. Assim como no fechamento, um ticket MT5 ambíguo significa que nada é modificado.
list_open_orders
Opcional: venue. Lista ordens limitadas pendentes com order_ref, praça, símbolo, lado, preço de entrada, tamanho e horário de criação.
Um detalhe importante antes de pedir a um assistente que revise suas ordens abertas: as ordens pendentes que esta ferramenta rastreia ficam no livro de operações simulado (paper). Ordens colocadas em uma corretora ao vivo por meio do MCP são enviadas como ordens a mercado, então elas são executadas na hora em vez de ficarem em espera, e uma lista vazia em uma conta real significa que não há nada pendente, e não que algo tenha desaparecido.
cancel_order
Obrigatório: venue, order_ref, idempotency_key. Se a referência não pertencer a você, a resposta é NOT_FOUND — nunca uma indicação de que a ordem de outra pessoa’ existe. Assim como o fechamento, isso reduz o risco e a barreira de política não bloqueia.
compile_policy
Obrigatório: natural_text. Você escreve uma regra em linguagem natural — “nunca arriscar mais de 2% em uma operação, nenhuma alavancagem acima de 10, apenas BTC e ETH” — e ela é compilada em uma política JSON, retornada como uma prévia. Compilar nunca ativa nada. A ativação é uma etapa separada e deliberada feita pelo painel ou via POST /api/mcp/policies/{policy_id}/activate, o que significa que um modelo não pode afrouxar suas regras apenas falando sobre elas.
verify_receipt
Obrigatório: receipt_id. Retorna signature_valid e chain_valid; uma ação só é verificada quando ambos são verdadeiros. Os recibos são assinados com ed25519 e encadeados por hash por usuário, então alterar um recibo anterior quebra todos os posteriores e chain_valid torna-se falso. A chave pública é disponibilizada em /mcp/receipts/pubkey, para que você possa verificar de forma independente sem confiar neste endpoint. Recibos mais antigos da era HMAC retornam legacy=true.
replay_channel
Obrigatório: channel_ref. Opcional: days (até 90, padrão 30), policy_override. Responde “e se eu tivesse seguido este canal do Telegram nos últimos X dias sob minhas regras?” reproduzindo seus sinais passados no estilo paper, com cada sinal passando pela barreira de política, de forma que os rejeitados nunca sejam abertos. O progresso chega como replay_progress eventos. Os resultados ficam em cache por 24 horas e a ferramenta é limitada a 5 replays por hora. Saída: {trades:[...], summary:{total_pnl, win_rate, max_drawdown, avg_rr, policy_rejections}}.
get_trade_history
Opcional: venue, symbol, days (1–365, padrão 30), limit (1–200, padrão 50), market (crypto / forex / paper). Retorna as negociações fechadas das três fontes em uma única lista, da mais recente para a mais antiga, além de um summary. O resumo é deliberadamente conservador: avg_rr é calculado apenas com as negociações em que entrada, stop-loss e saída são todos conhecidos, e rr_sample informa quantas foram; total_pnl é null quando várias moedas de conta se misturam, sendo pnl_by_currency fornecido em vez disso; a comissão não é registrada em lugar nenhum, então fee permanece null e o PnL de cripto é bruto. Se uma fonte não puder ser lida, incomplete_sources a nomeia em vez de retornar uma lista curta como se estivesse completa.
compare_venues
Obrigatório: symbol. Opcional: market (padrão futures, ou spot), side. Retorna, para cada corretora de cripto conectada, o preço em tempo real e — nas corretoras que publicam bid/ask — o spread em pontos-base, além da diferença de preço entre corretoras. Não escolhe uma corretora: sua ordem ainda precisa nomear uma. Taxas de negociação, profundidade do livro de ofertas e slippage são listados em basis.not_measured e nunca são estimados, e uma corretora que não publicou bid/ask aparece em not_comparable_on_spread em vez de ser classificada como se seu spread fosse zero. Por isso cheapest_measured significa “menor spread medido”, não “mais barata no geral”.
list_strategies
Sem parâmetros. Retorna suas estratégias do TradingView com suas configurações, plan_limit e can_create_more. auto_trade é reportado por estratégia, para que o assistente possa dizer quais estão ativas. A URL do webhook, a URL de demo e o segredo HMAC são removidos da resposta — apenas webhook_url_configured e has_hmac_secret são expostos, porque a própria URL é uma credencial.
create_strategy
Opcional: name. Obrigatório: idempotency_key. Cria uma estratégia do TradingView com auto_trade desativado; o campo não é gravável via MCP, então uma estratégia recém-criada não pode enviar ordens reais até que você mesmo a arme no painel. Sujeita à cota de estratégias do seu plano — acima do limite, retorna um erro codificado de limite de plano em vez de simplesmente não fazer nada.
update_strategy
Obrigatório: strategy_id, changes, idempotency_key. Altera a alavancagem (limitada entre 1–20), o percentual de risco (0.1–50), os percentuais de stop-loss e take-profit, as configurações de trailing e break-even, os símbolos permitidos, a conta de destino e se a estratégia aceita sinais. auto_trade, status e ip_allowlist são recusados e retornados em refused_fields; a exclusão é apenas pelo painel. Ativar reverse_enabled retorna um warning, porque a partir daí um sinal BUY abre um SHORT.
backtest_my_signals
Opcional: days (1–90), source, symbols, margin_usd, leverage, sl_pct, tp_pct, max_hold_minutes, taker_fee_bps, partial_tp. Reproduz os sinais que você realmente recebeu sobre barras históricas reais de um minuto da mainnet, duas vezes: uma com o stop, o take-profit e a alavancagem originais de cada sinal e outra com as suas configurações. Retorna um job_ref imediatamente; o resultado é obtido com get_job_status. Todo resultado traz coverage (quantos sinais puderam ser simulados e por que os demais não) e assumptions (taxas, slippage, TP parcial e o que não é modelado). Sinais sem stop, com stop do lado errado da entrada ou sem dados históricos são contados e ignorados, nunca adivinhados.
simulate_policy
Opcional: policy_text (linguagem comum), rules (já compiladas), days (1–365). Aplica uma política de risco às operações que você realmente encerrou e informa quais teriam sido rejeitadas, por qual regra, e a diferença de PnL. Retorna um job_ref. Dois limites aparecem em todo resultado: regras que dependem do estado da conta no momento da ordem (posições abertas, perda diária, saldo) são avaliadas com zeros porque esse estado não pode ser reconstruído a partir de operações encerradas, portanto são contadas a MENOS, nunca a mais; e o PnL vem dos seus resultados realizados, é informado por moeda e nunca somado entre moedas.
import_tradingview_backtest
Obrigatório: csv_text. Opcional: taker_fee_bps, slippage_bps, leverage. Recebe o CSV que você exporta do Strategy Tester do TradingView (List of Trades) e o recalcula com custos reais: taxas de taker e slippage medido na entrada e na saída. O Pine Script nunca é executado nem interpretado — apenas a sua lista exportada é recalculada — e os preços permanecem como o TradingView reportou. Linhas sem coluna de quantidade não podem receber taxas, então ficam otimistas e a quantidade delas é informada. Retorna um job_ref.
get_job_status
Opcional: job_ref. Com uma referência retorna o estado daquele trabalho e, quando termina, o resultado; sem argumento lista os seus trabalhos recentes. status é um de PENDING, RUNNING (com percentual em progress), DONE, FAILED (há uma nova tentativa agendada), DEAD ou CANCELLED. Os trabalhos rodam um de cada vez, então queue_position diz quantos estão à frente. Uma referência que não é sua recebe a MESMA resposta de “não encontrado” que uma inexistente, de modo que não podem ser enumeradas.
Os resultados não vivem para sempre, e vale a pena conhecer os limites antes de construir sobre eles. Apenas os 20 trabalhos concluídos mais recentes mantêm o resultado completo; os mais antigos são reduzidos ao seu resumo e voltam com result_pruned: true, o que significa que as linhas detalhadas desapareceram e o trabalho precisa ser executado novamente para regerá-las. Tudo é excluído após 30 dias. As execuções de backtest e de política também são registradas no histórico de backtest da sua conta, e o resultado carrega o run_id sob o qual foram armazenadas.
A barreira de política
Esta é a parte que torna defensável entregar ferramentas a um modelo de linguagem. Suas regras são compiladas uma vez em JSON, validadas contra um esquema fixo, e então avaliadas no lado do servidor e de forma determinística em cada ordem. O modelo nunca as avalia, nunca vê uma forma de contorná-las e não pode ser convencido a afrouxá-las — nem por você em um momento de impaciência, nem por um prompt injetado por uma página web ou uma mensagem do Telegram que ele tenha lido. Uma violação é uma rejeição definitiva com um registro de auditoria.
| Regra | Tipo | Significado |
|---|---|---|
max_risk_per_trade_pct | número, 0–100 | Teto para a participação de uma única operação’ na conta |
max_order_size_usd | número > 0 | Limite absoluto para o valor da ordem |
max_daily_loss_usd | número > 0 | Parar de operar no dia após esta perda |
max_open_positions | inteiro | Limite de concorrência |
leverage_cap | número, 1–1000 | Seu próprio teto de alavancagem |
venue_scope | array | Restringir a IA a praças nomeadas |
symbol_whitelist | array | Somente estes símbolos podem ser negociados |
symbol_blacklist | array | Estes símbolos nunca são negociados |
allowed_sides | array | Somente compra, somente venda, ou ambos |
notes | string | Sua própria anotação |
Uma política compilada que falha na validação de esquema não pode ser ativada de forma alguma. Não existe política parcialmente válida.
Modelo de segurança
| Paper por padrão | Toda nova chave começa no escopo paper com um saldo virtual de $5.000. Alcançar dinheiro real é um ato explícito e separado. |
| O stop-loss é obrigatório | Se não existir nem um stop-loss explícito nem um padrão salvo, a ordem é recusada. Ele também não pode ser removido depois. |
| Idempotência | Toda ferramenta de escrita exige uma chave gerada pelo cliente com pelo menos 8 caracteres. Repetições reproduzem a resposta armazenada em vez de agir duas vezes. |
| Kill switch | POST /api/mcp/freeze para tudo de uma vez; toda ferramenta então retorna user_frozen. /unfreeze reverte isso. |
| Revogação por chave | Revogue um cliente sem afetar os outros. Streams de eventos abertos caem em segundos. |
| Recibos assinados | assinatura ed25519 mais uma cadeia de hash por usuário em cada ação, verificável em relação a uma chave pública. |
| Registro de auditoria | Cada chamada é registrada com nome da ferramenta, argumentos, resultado e latência, legível em GET /api/mcp/audit e no painel. |
| Isolamento por locatário | As ferramentas não podem aceitar um ID de usuário; a identidade vem apenas da conexão autenticada. |
| Chaves somente para negociação | Suas chaves de API de corretora são criadas sem permissão de saque e armazenadas criptografadas com AES-256. As ordens saem de IPs de negociação fixos da AlgoVesta que você autoriza na lista de permissões na corretora. |
Sobre alavancagem, com franqueza: A AlgoVesta não impõe um teto de alavancagem na sua própria conta — sua corretora impõe, e você pode definir seu próprio teto com a leverage_cap regra de política. O forex via MetaTrader 5 não é alavancado neste caminho e é dimensionado por lotes. Qualquer um que lhe disser que uma plataforma “limita a alavancagem a 20x” aqui está descrevendo algo que não existe.
Erros
| Código | HTTP | Quando acontece |
|---|---|---|
unauthorized | 401 | Chave ausente, inválida ou revogada |
insufficient_scope | 401 | A ferramenta exige um escopo maior do que o da chave |
forbidden | 403 | Não permitido para esta conta |
user_frozen | 403 | O kill switch está ativo |
policy_violation | 403 | Uma regra rejeitou a ordem; a resposta lista qual |
idempotency_conflict | 409 | A mesma chave foi reutilizada com argumentos diferentes |
validation_failed | 422 | Argumentos malformados ou contraditórios |
rate_limited | 429 | Chamadas em excesso; retry_after está incluído |
Recusas em nível de domínio chegam como resultados estruturados, e não como erros de transporte, para que o assistente possa agir sobre elas: VENUE_NOT_CONNECTED, ACCOUNT_REQUIRED, ACCOUNT_AMBIGUOUS, ACCOUNT_NOT_FOUND, POSITION_NOT_FOUND, MISSING_FIELDS, INVALID_SIDE, SL_REMOVAL_FORBIDDEN. As mensagens de erro nunca vazam detalhes internos, e nunca revelam nada sobre outra conta.
Limites de taxa
| Escopo do limite | Limite |
|---|---|
| Todas as chamadas de ferramenta, por chave | 60 por minuto |
place_order | 10 por minuto |
replay_channel | 5 por hora (resultados em cache por 24 horas) |
| E-mail de confirmação do escopo live | 1 por minuto |
Eventos em tempo real
Um stream de eventos enviados pelo servidor, isolado por locatário, está disponível em /mcp/events (OAuth) e /u/<key>/events (link secreto), com Last-Event-ID reconexão, de forma que uma conexão perdida retoma em vez de reiniciar. Tipos de evento: fill, policy_rejected, position_closed, sl_hit, tp_hit, e replay_progress durante um replay de canal.
Praças — 16 corretoras e MetaTrader 5
Uma conexão alcança todas elas. Uma praça só fica disponível para a IA depois que você a conecta na AlgoVesta; pedir uma que você não conectou retorna VENUE_NOT_CONNECTED em vez de um palpite.
| Corretora | venue valor |
Mercados | Senha adicional (passphrase) necessária |
|---|---|---|---|
| Binance | binance | Spot, futuros | Não |
| Bybit | bybit | Spot, futuros | Não |
| OKX | okx | Spot, futuros | Sim |
| KuCoin | kucoin | Spot, futuros | Sim |
| Gate.io | gateio | Spot, futuros | Não |
| Bitget | bitget | Spot, futuros | Sim |
| Kraken | kraken | Spot, futuros | Não |
| Coinbase | coinbase | Spot | Não |
| BingX | bingx | Spot, futuros | Não |
| Hyperliquid | hyperliquid | Futuros | Não |
| Backpack | backpack | Spot, futuros | Não |
| HTX | htx | Spot, futuros | Não |
| BloFin | blofin | Spot, futuros | Sim |
| Phemex | phemex | Spot, futuros | Não |
| WOO X | woo | Spot, futuros | Sim (Application ID) |
| CoinEx | coinex | Spot, futuros | Não |
| MetaTrader 5 (forex, metais, índices) | mt5 | Lotes, caminho sem alavancagem | Login da corretora |
| Motor paper | paper | $5.000 virtual | — |
Seis destas — Binance, Bybit, OKX, Gate.io, KuCoin e Bitget — foram verificadas de ponta a ponta com dinheiro real, tanto em futuros quanto em spot, com o stop-loss e o take-profit confirmados como existentes na própria corretora e correspondendo exatamente aos valores registrados. Cada corretora tem suas próprias peculiaridades, e as diferenças são deliberadas, não lacunas: Bybit e Bitget não aceitam uma segunda perna de take-profit no spot, o spot da OKX é roteado pela API bruta para evitar que uma conta à vista se torne silenciosamente uma conta de margem, o spot da Binance exige um nocional mínimo antes da compra, e as compras a mercado na KuCoin são feitas em modo de custo.
Spot e futuros são sempre mantidos separados. O mesmo símbolo nos dois mercados é uma linha separada, um feed de preço separado e uma chave separada — um nunca se mistura com o outro.
MetaTrader 5 com instalação zero
Você não instala nada para o forex. Não há VPS para alugar, nenhum terminal MetaTrader para manter ativo na sua própria máquina, nenhum Expert Advisor para você anexar e nenhuma conta de ponte de terceiros para comprar. A AlgoVesta executa os terminais MetaTrader 5 em seus próprios servidores gerenciados e os mantém conectados à sua corretora 24 horas por dia. Você informa as credenciais da sua conta uma vez e seu assistente de IA pode negociar essa conta a partir de então. Os dados de posição retornados ao assistente são verificados com o terminal, e quando não podem ser verificados, a ferramenta diz isso em vez de sugerir uma conta vazia.
Roteiro — ações globais
A negociação global de ações via Interactive Brokers (IBKR) está planejada, com foco em 170 ações globais acessíveis pela mesma conexão MCP que cripto e forex. Este é um item de roteiro e não está em produção hoje; nada nesta página, além deste parágrafo, o descreve, e nenhuma ferramenta atual pode negociar ações. Quando for lançado, aparecerá como valores adicionais de venue sob as mesmas ferramentas, a mesma barreira de política e os mesmos recibos.
Latência medida
Estas são medições, não números de marketing.
| Etapa | Medido |
|---|---|
| Recepção e interpretação da requisição | 17–67 ms (mediana de 38 ms) |
| De ponta a ponta no MetaTrader 5 | Cerca de 1 segundo (849 ms medidos; 702 ms para fechar) |
| De ponta a ponta em uma corretora de cripto | Cerca de 3 segundos (2.785 ms medidos) |
| Motor paper | Mediana de 318 ms — sem ida e volta até a corretora |
O tempo gasto dentro do seu cliente de IA — o modelo pensando, e você confirmando — não está incluído e geralmente vai dominar o total. Este servidor não é uma praça de execução de baixa latência e não é vendido como tal.
Endpoints REST do painel
Tudo que a IA não pode e não deve fazer por conta própria fica atrás da sua sessão normal, com login feito.
POST /api/mcp/keys create a key (live requires 2FA)
GET /api/mcp/keys list keys
DELETE /api/mcp/keys/{key_id} revoke a key
POST /api/mcp/live-code send the live-scope confirmation code
POST /api/mcp/freeze | /api/mcp/unfreeze kill switch
GET /api/mcp/status connection status
GET /api/mcp/policies list policies
POST /api/mcp/policies/compile compile without activating
POST /api/mcp/policies/{id}/activate activate
POST /api/mcp/policies/{id}/deactivate deactivate
GET /api/mcp/audit audit log
GET /api/mcp/receipts receipts
GET /api/mcp/receipts/{receipt_id}/verify verify one receipt
GET /api/mcp/pubkey receipt public key
GET /api/mcp/paper | POST /api/mcp/paper/reset
O que você precisa ter
A conexão MCP em si faz parte do produto e não é vendida separadamente. O que limita você na prática é o que a IA deve alcançar: a negociação paper precisa apenas de uma conta, enquanto a negociação live precisa de um plano pago ativo e das contas conectadas que esse plano permite — e a negociação live no MetaTrader 5 com dinheiro real exige adicionalmente que você opte explicitamente por ativar essa conta. Os limites de plano quanto ao número de chaves de corretora e contas MetaTrader estão listados na página de preços. Você pode experimentar tudo com o saldo paper de $5.000 antes que qualquer uma dessas coisas importe.
Perguntas frequentes
live , e esse escopo só é emitido após um segundo fator. Até lá, o mesmo assistente opera contra um saldo paper de $5.000 com ferramentas idênticas, para que você possa ensaiar todo o fluxo de trabalho antes que qualquer dinheiro real esteja acessível.get_portfolio_context retorna todas elas em uma única chamada. Quando você tem mais de uma conta no mesmo mercado, o parâmetro account torna-se obrigatório e uma requisição ambígua é recusada em vez de ser enviada para um padrão.POST /api/mcp/freeze. Toda ferramenta então retorna user_frozen até você descongelar. Para cortar apenas um único cliente, revogue somente aquela chave — as outras continuam funcionando.verify_receipt , ou de forma independente em relação à chave pública em /mcp/receipts/pubkey. Editar um recibo antigo quebra a cadeia de todos os recibos posteriores, o que é exatamente o que torna a adulteração detectável.Conecte um assistente de IA às suas contas
Comece com o saldo paper de $5.000. Sem cartão, nada para instalar, e a fronteira do live permanece fechada até que você a abra deliberadamente.
Criar uma conta gratuita Ver a visão geralRelacionado: MCP para assistentes de IA · Servidor MCP: Claude e ChatGPT para 16 Exchanges + MT5 · corretoras suportadas · forex no MetaTrader 5 · automação do TradingView · o que é um servidor MCP de negociação · segurança · preços.
Negociar envolve risco. A automação não o remove, e um assistente de IA não é consultoria de investimento. Comece no modo paper.