Documentazione del Server MCP — 16 Exchange + MetaTrader 5

Server MCP di AlgoVesta: lascia che Claude, ChatGPT, Cursor e Gemini facciano trading sui tuoi account exchange reali e MetaTrader 5

Di cosa si tratta: AlgoVesta gestisce un server Model Context Protocol (MCP) ospitato che offre a un assistente AI venti strumenti di trading reali tramite un unico link HTTPS. Incolla quel singolo link in Claude, ChatGPT, Cursor, Claude Code, Gemini CLI o qualsiasi client compatibile con MCP, e l'assistente potrà leggere i saldi, aprire e chiudere posizioni, spostare stop-loss e take-profit, e verificare le proprie azioni su 16 exchange crypto e il forex MetaTrader 5 contemporaneamente — usando le impostazioni di rischio che hai già salvato in AlgoVesta, dietro un muro di policy lato server che nessun prompt può aggirare. Ogni connessione parte con un saldo virtuale di $5.000 e ogni azione restituisce una ricevuta firmata ed25519.
20 strumenti MCP nativi OAuth 2.1 (PKCE) o link segreto Prima in modalità paper, $5.000 virtuali Trasporto Streamable HTTP

Il Model Context Protocol è uno standard aperto per connettere assistenti AI a sistemi esterni. La maggior parte dei server MCP legati al trading trasmette dati di mercato in una finestra di chat. Questo esegue: è un livello di instradamento degli ordini con un motore di rischio deterministico davanti ad esso, e l'AI è il chiamante — mai l'autorità.

L'idea più importante di questa pagina. Connetti le tue chiavi API exchange e i tuoi account MetaTrader 5 una sola volta, dentro AlgoVesta, e imposti lì una sola volta le tue preferenze di rischio (% stop-loss, % take-profit, leva). Poi consegni al tuo assistente AI un unico link. Da quel momento l'assistente raggiunge ogni account che hai connesso, contemporaneamente, attraverso lo stesso link, e ogni ordine che apre eredita le tue impostazioni salvate — esattamente le stesse impostazioni usate dal pannello manuale e dal bot Telegram. Non stai dando le tue chiavi API a un'AI. Le stai dando una porta con ambito limitato, revocabile, con limite di frequenza e controllata da policy verso account che già controlli.

Avvio rapido

La configurazione richiede tre passaggi e nessun codice. L'intero flusso si trova nella scheda MCP Connection del tuo pannello AlgoVesta.

Passaggio 1

Apri la scheda MCP Connection e genera una chiave. Le nuove chiavi utilizzano per impostazione predefinita l'ambito paper . Il link completo viene mostrato una sola volta — copialo in quel momento.

Passaggio 2

Incolla il link nel tuo client AI come server MCP personalizzato. Nessuna chiave API lascia AlgoVesta, nessun codice, nessuna installazione locale.

Passaggio 3

Parlaci. “Come sta il mio portafoglio?” “Simula un long da $200 su ETHUSDT a 5x.” “Chiudi metà della mia posizione BTC.”

Il tuo URL di connessione è simile a questo:

https://api.algovesta.com/u/avmcp_<your-key>/mcp

Quell'URL è una credenziale. Chiunque lo possieda può agire, entro il suo ambito, sui tuoi account. Trattalo come una password: non incollarlo mai in una chat pubblica, uno screenshot, un repository condiviso o un ticket di assistenza. Se dovesse trapelare, revocalo dal pannello — la revoca ha effetto immediato per le nuove connessioni e interrompe gli stream di eventi aperti entro pochi secondi.

Quali assistenti AI possono connettersi

Qualsiasi client che parla MCP su Streamable HTTP può connettersi. La tabella qui sotto riporta ciò che è stato verificato sul server live, incluse le limitazioni reali — alcune di queste sono vincoli del prodotto AI, non di AlgoVesta, e le incontrerai indipendentemente dal server MCP che utilizzi.

Client AI Dove incollare il link Note e limiti reali
Claude (web, desktop, iOS, Android)Customize → Connectors → Add custom connectorSupporto completo. I titoli degli strumenti e le finestre di conferma provengono direttamente dal server.
Claude Codeclaude mcp add --transport httpRiga di comando. Utile per flussi di lavoro scriptati o ripetibili.
Cursormcp.json, il "url" campoSupporto completo. Nota che il nome della chiave è url qui — Gemini CLI ne usa uno diverso.
ChatGPTDeveloper mode / custom connectorSolo piani a pagamento. I connettori MCP personalizzati non sono disponibili nel piano gratuito, ed è possibile che la modalità sviluppatore debba essere prima abilitata. Questa è una restrizione di OpenAI.
Gemini CLI~/.gemini/settings.json, il "httpUrl" campoSolo CLI. L'app web di Gemini non supporta server MCP personalizzati. Usa la httpUrl chiave, non url.
Qualsiasi altro client compatibile con MCPLe proprie impostazioni MCP / connettoreIl server implementa lo standard, quindi qualsiasi client che supporti MCP remoto su Streamable HTTP funzionerà senza bisogno di nulla di specifico.

Esempio Cursor (mcp.json):

{
  "mcpServers": {
    "algovesta": {
      "url": "https://api.algovesta.com/u/avmcp_<your-key>/mcp"
    }
  }
}

Esempio Gemini CLI (~/.gemini/settings.json) — nota 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

Trasporto e protocollo

TrasportoStreamable HTTP, stateless, risposte JSON. Ogni richiesta è autenticata in modo indipendente.
Nome del serverAlgoVesta
Endpoint per il link segretohttps://api.algovesta.com/u/<key>/mcp
Endpoint OAuthhttps://api.algovesta.com/mcp
Modifiche all'elenco degli strumentitools.listChanged = true. I client aggiornano l'elenco degli strumenti alla riconnessione, quindi nuovi strumenti e parametri appaiono senza dover rimuovere e ri-aggiungere il connettore.
Stream di eventiEventi server-sent all'indirizzo /mcp/events e /u/<key>/events, isolato per tenant, con Last-Event-ID riconnessione.
Schema leggibile da macchina/mcp/tools.json — lo JSON Schema completo di tutti i 20 strumenti, esattamente come lo riceve il client.

Autenticazione e ambiti

Esistono due modi per connettersi, ed entrambi risolvono nello stesso contesto tenant. Gli strumenti non accettano mai un ID utente come parametro — l'identità viene letta solo dalla connessione autenticata, il che rende l'accesso incrociato tra account strutturalmente impossibile e non semplicemente vietato.

Link segreto

Una chiave nella forma avmcp_<32-byte urlsafe random>, incorporata nel percorso dell'URL. Viene memorizzata come hash Argon2id più un hash di lookup SHA-256; il testo in chiaro esiste solo al momento della creazione e non è più recuperabile in seguito. Ogni chiave porta con sé il proprio ambito, la propria etichetta e il proprio stato di revoca, quindi puoi usare una chiave paper in Cursor e una chiave live in Claude e disattivare ciascuna in modo indipendente.

OAuth 2.1

Per i client che preferiscono un flusso di autorizzazione vero e proprio. I grant supportati sono authorization_code e refresh_token, con refresh token a rotazione. PKCE con S256 è obbligatorio — una richiesta senza di esso viene rifiutata. È disponibile la registrazione dinamica del client, quindi la maggior parte dei client si configura automaticamente. Documenti di discovery:

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

I tre ambiti

Ambito Cosa può fare Come si ottiene
readPortafoglio, prezzi, ordini in sospeso, simulazioni, anteprime delle policy, verifica delle ricevute, replay dei canali. Non è possibile piazzare alcun ordine.Creato direttamente.
paperTutto ciò che è incluso in read, più gli ordini eseguiti sul motore paper con un saldo virtuale di $5.000. Il valore predefinito per le nuove chiavi.Creato direttamente.
liveTutto quanto sopra, più ordini reali sui tuoi exchange connessi e sugli account MetaTrader 5.È richiesto un secondo fattore. Un codice authenticator (TOTP) valido, oppure un codice di conferma inviato all'e-mail del tuo account e valido per 10 minuti. Applicato lato server, senza eccezioni.

Gli ambiti sono gerarchici, quindi uno strumento che richiede paper rifiuta una chiave read con insufficient_scope. Il confine tra denaro simulato e denaro reale è quindi una proprietà della chiave stessa, non di un prompt, di un'impostazione o del giudizio del modello.

Riferimento degli strumenti — tutti i 20 strumenti

Questi sono esattamente gli strumenti che il tuo assistente vede. Gli strumenti di lettura possono essere chiamati in sicurezza senza chiederti prima il permesso; i sei strumenti di scrittura sollevano una richiesta di conferma nei client che la supportano, e tre di essi — place_order, close_position e cancel_order — sono inoltre contrassegnati come distruttivi nelle loro annotazioni.

Strumento Ambito Tipo Scopo
get_portfolio_contextreadsolo letturaOgni account connesso in un'unica chiamata
get_market_pricereadsolo letturaPrezzo live con indicazione dell'aggiornamento
simulate_orderreadsolo letturaSimulazione (dry-run) incluso il verdetto della policy
place_orderpaper / livedistruttivoApre una posizione
close_positionpaper / livedistruttivoChiude totalmente o parzialmente
modify_positionpaper / livescritturaSposta stop-loss e take-profit
list_open_ordersreadsolo letturaOrdini limite in sospeso
cancel_orderpaper / livedistruttivoAnnulla un ordine in sospeso
compile_policyreadsolo letturaTrasforma regole in linguaggio naturale in un'anteprima di policy
verify_receiptreadsolo letturaVerifica firma e catena di hash
replay_channelreadsolo letturaEsegue un back-test di un canale Telegram rispetto alle tue regole
get_trade_historyreadsolo letturaTrade chiusi e performance su crypto, MT5 e paper
compare_venuesreadsolo letturaClassifica gli exchange connessi per prezzo e spread misurati
list_strategiesreadsolo letturaStrategie TradingView; l'URL del webhook non viene mai restituito
create_strategypaper / livescritturaNuova strategia, sempre con l'esecuzione in denaro reale disattivata
update_strategypaper / livescritturaImpostazioni della strategia; auto_trade è rifiutato
backtest_my_signalsreadread-onlyRiproduce i tuoi segnali passati con impostazioni diverse (lavoro in coda)
simulate_policyreadread-onlyApplica una policy di rischio alle operazioni che hai davvero chiuso (lavoro in coda)
import_tradingview_backtestreadread-onlyRicalcola un export di TradingView con commissioni e slippage reali (lavoro in coda)
get_job_statusreadread-onlyAvanzamento e risultato di un lavoro in coda

get_portfolio_context

Non accetta parametri. Restituisce una vista normalizzata di ogni account exchange, ogni account MetaTrader 5 e l'account paper appartenenti alla chiave autenticata — e nient'altro. È la chiamata che trasforma “come sto andando?” in una singola domanda invece che sedici.

Due campi contano più degli altri. Per gli account crypto, balance e equity descrivono il solo il wallet futures; il denaro spot viene riportato separatamente in spot_balance, quindi un assistente che legge solo balance può concludere erroneamente che tu non abbia nulla. Per gli account MetaTrader 5, positions_source può essere live_ea, il che significa che l'elenco delle posizioni è stato verificato rispetto al terminale, oppure unavailable, il che significa che non è stato possibile raggiungere il terminale. Nel caso unavailable , un elenco di posizioni vuoto non significa “nessuna posizione aperta” — significa sconosciuto, e la descrizione dello strumento istruisce il modello a dirlo esplicitamente invece di rassicurarti.

get_market_price

Parametri: venue, symbol. Restituisce {ok, venue, symbol, last, bid, ask, ts, source, age_sec}. I prezzi provengono da una cache condivisa aggiornata circa ogni secondo; in caso di mancato riscontro, il server effettua una chiamata REST live all'exchange. Se il valore è più vecchio di 10 secondi o non può essere recuperato affatto, questo viene dichiarato esplicitamente — un prezzo non aggiornato non viene mai spacciato per uno live. Se il simbolo non esiste su nessun exchange connesso, può essere restituito un prezzo DEX informativo insieme a un avviso chiaro che non puoi fare trading su di esso sui tuoi venue connessi.

simulate_order

Obbligatori: venue, symbol, side, order_type, idempotency_key. Non invia alcun ordine. Restituisce il fill previsto, l'impatto sul margine e il verdetto della policy, oltre ai prezzi assoluti di stop-loss e take-profit calcolati dal server. È un'operazione di lettura, quindi un assistente ben progettato la chiama senza chiedere il permesso, ti mostra un riepilogo e chiede esattamente una conferma prima di piazzare qualsiasi cosa.

place_order

Obbligatori: venue, symbol, side, order_type, idempotency_key. Opzionali: account, market, size_usd, margin_usd, risk_pct, lots, leverage, sl, tp, sl_pct, tp_pct, take_profits, entry_price.

Il idempotency_key non è un dettaglio decorativo. Se la stessa chiave arriva due volte per lo stesso utente, la risposta memorizzata viene restituita nuovamente e non viene aperto un secondo ordine — questo è ciò che ti protegge quando un client riprova dopo un timeout, un telefono perde il segnale a metà conferma, o un modello chiama uno strumento due volte.

Il dimensionamento è esplicito di proposito. Per il crypto passi esattamente uno di tre campi, e questi significano cose diverse:

Campo Significato Esempio a 5x
size_usdValore della posizione (nozionale)size_usd=100 → una posizione da $100, $20 dei tuoi soldi
margin_usdCollaterale dalle tue taschemargin_usd=20 → una posizione da $100
risk_pctPercentuale del saldo libero utilizzata come margine. Non si tratta di un dimensionamento del rischio basato sulla distanza dello stop; la distanza dello stop-loss non entra nel calcolo.risk_pct=1 su un saldo di $2.000 → $20 di margine → una posizione da $100

Per il forex e MetaTrader 5, la dimensione viene indicata in lots invece, e leverage non viene inviato affatto — il prodotto non è a leva e il dimensionamento deriva dal volume in lotti. La dimensione del lotto che indichi viene usata esattamente e non viene mai arrotondata a un valore comodo; se è al di fuori dei limiti del tuo broker, l'ordine viene rifiutato e viene restituito l'intervallo consentito.

Tolleranza sulla dimensione dell'ordine. Gli exchange accettano solo determinati incrementi di lotto, quindi l'importo richiesto viene fatto corrispondere al passo valido più vicino. Se la deviazione rimane entro il 20% l'ordine procede e la deviazione esatta ti viene comunicata; oltre il 20% l'ordine non viene aperto e ti vengono indicati, in numeri, quali importi vicini funzionerebbero. Quella soglia è stata scelta ri-eseguendo ogni ordine reale mai piazzato attraverso la funzione di dimensionamento, non scelta per intuito.

I campi omessi ricadono sulle tue impostazioni salvate. Se non indichi uno stop-loss, un take-profit o una leva, l'assistente è istruito a lasciare quei campi vuoti, e il server li compila usando le preferenze salvate nel tuo pannello — gli stessi valori usati dal pannello manuale e dal bot Telegram. La risposta indica quali campi provengono dalle impostazioni salvate in prefs_used. Questo esiste a causa di un problema misurato: quando quei campi erano obbligatori il modello doveva inventare valori, e cinque ordini su cinque sovrascrivevano la configurazione del cliente stesso.

close_position

Obbligatori: venue, symbol, side, idempotency_key. Opzionali: fraction (0 a 1], account, ticket. Funziona per crypto e per MetaTrader 5. La chiusura riduce il rischio, quindi il muro di policy non la blocca mai — solo il kill switch può farlo. Dieci chiamate con la stessa chiave di idempotenza eseguono esattamente una chiusura. Se non esiste una posizione corrispondente ottieni POSITION_NOT_FOUND insieme alle posizioni che sono aperte su quel venue, così l'assistente può correggersi invece di indovinare.

MetaTrader 5 non ha chiusura parziale — l'Expert Advisor chiude interamente — quindi usa fraction=1 lì. Quando sono aperte più posizioni MT5 sullo stesso simbolo, ticket diventa obbligatorio, e finché il target è ambiguo non viene chiuso nulla.

modify_position

Obbligatori: venue, symbol, side, idempotency_key, più almeno uno tra new_sl / new_tp. Lo stop-loss non può essere rimosso — la regola dello SL obbligatorio vale anche qui. L'ordinamento viene convalidato: un long richiede new_sl < mark < new_tp, uno short il contrario. Inviare solo un lato lascia l'altro al suo valore attuale invece di eliminarlo. Come per la chiusura, un ticket MT5 ambiguo comporta che non venga modificato nulla.

list_open_orders

Opzionale: venue. Elenca gli ordini limite in sospeso con order_ref, venue, simbolo, lato, prezzo di ingresso, dimensione e orario di creazione.

Un avvertimento da tenere presente prima di chiedere a un assistente di rivedere i tuoi ordini in sospeso: gli ordini in sospeso tracciati da questo strumento vivono nel libro ordini paper. Gli ordini piazzati su un venue live tramite MCP vengono inviati come ordini a mercato, quindi vengono eseguiti subito invece di restare in attesa, e un elenco vuoto su un account live significa che non c'è nulla in sospeso, non che qualcosa sia sparito.

cancel_order

Obbligatorio: venue, order_ref, idempotency_key. Se il riferimento non ti appartiene la risposta è NOT_FOUND — mai un indizio che l'ordine di qualcun altro esista. Come la chiusura, riduce il rischio e il muro di policy non lo blocca.

compile_policy

Obbligatorio: natural_text. Scrivi una regola in linguaggio naturale — “non rischiare mai più del 2% su un singolo trade, nessuna leva sopra 10, solo BTC ed ETH” — e viene compilata in una policy JSON, restituita come anteprima. La compilazione non attiva mai nulla. L'attivazione è un passaggio separato e deliberato dal pannello o tramite POST /api/mcp/policies/{policy_id}/activate, il che significa che un modello non può allentare le tue regole semplicemente parlandone.

verify_receipt

Obbligatorio: receipt_id. Restituisce signature_valid e chain_valid; un'azione è verificata solo quando entrambi sono veri. Le ricevute sono firmate ed25519 e concatenate tramite hash per utente, quindi alterare una ricevuta precedente rompe tutte quelle successive e chain_valid diventa falso. La chiave pubblica è servita all'indirizzo /mcp/receipts/pubkey, così puoi verificare in modo indipendente senza doverti fidare di questo endpoint. Le ricevute più vecchie dell'era HMAC restituiscono legacy=true.

replay_channel

Obbligatorio: channel_ref. Opzionali: days (fino a 90, predefinito 30), policy_override. Risponde alla domanda “cosa sarebbe successo se avessi seguito questo canale Telegram negli ultimi X giorni secondo le mie regole?” riproducendo i suoi segnali passati in modalità paper, con ogni segnale che passa attraverso il muro di policy così quelli respinti non vengono mai aperti. L'avanzamento arriva come replay_progress eventi. I risultati vengono memorizzati in cache per 24 ore e lo strumento è limitato a 5 replay all'ora. Output: {trades:[...], summary:{total_pnl, win_rate, max_drawdown, avg_rr, policy_rejections}}.

get_trade_history

Opzionali: venue, symbol, days (1–365, predefinito 30), limit (1–200, predefinito 50), market (crypto / forex / paper). Restituisce i trade chiusi da tutte e tre le fonti in un'unica lista, dal più recente, più un summary. Il riepilogo è deliberatamente prudente: avg_rr viene calcolato solo dai trade in cui entrata, stop-loss e uscita sono tutti noti, e rr_sample indica quanti erano; total_pnl è null quando sono mescolate più valute di account, con pnl_by_currency fornito al suo posto; la commissione non viene registrata da nessuna parte, quindi fee resta null e il PnL crypto è lordo. Se una fonte non può essere letta, incomplete_sources la indica invece di restituire un elenco breve come se fosse completo.

compare_venues

Obbligatorio: symbol. Opzionali: market (futures predefinito, oppure spot), side. Restituisce, per ogni exchange crypto connesso, il prezzo live e — sui venue che pubblicano bid/ask — lo spread in punti base, più il divario di prezzo tra i venue. Non sceglie un venue: il tuo ordine ne indica comunque uno. Le commissioni di trading, la profondità dell'order book e lo slippage sono elencati in basis.not_measured e non vengono mai stimati, e un venue che non ha pubblicato bid/ask compare in not_comparable_on_spread invece di essere classificato come se il suo spread fosse zero. cheapest_measured significa quindi “spread misurato più basso”, non “più economico in assoluto”.

list_strategies

Nessun parametro. Restituisce le tue strategie TradingView con le loro impostazioni, plan_limit e can_create_more. auto_trade viene riportato per ogni strategia così l'assistente può dirti quali sono live. L'URL del webhook, l'URL demo e il secret HMAC vengono rimossi dalla risposta — vengono esposti solo webhook_url_configured e has_hmac_secret, perché l'URL stesso è una credenziale.

create_strategy

Opzionale: name. Obbligatorio: idempotency_key. Crea una strategia TradingView con auto_trade disattivato; il campo non è scrivibile via MCP, quindi una strategia appena creata non può piazzare ordini reali finché non la attivi tu stesso nel pannello. Soggetta alla quota di strategie del tuo piano — oltre il limite restituisce un errore codificato di limite del piano invece di non fare nulla silenziosamente.

update_strategy

Obbligatorio: strategy_id, changes, idempotency_key. Modifica la leva (limitata tra 1–20), la percentuale di rischio (0.1–50), le percentuali di stop-loss e take-profit, le impostazioni di trailing e break-even, i simboli consentiti, l'account di destinazione e se la strategia accetta segnali. auto_trade, status e ip_allowlist vengono rifiutati e restituiti in refused_fields; l'eliminazione è possibile solo dal pannello. Attivare reverse_enabled restituisce un warning, perché da quel momento un segnale BUY apre uno SHORT.

backtest_my_signals

Facoltativo: days (1–90), source, symbols, margin_usd, leverage, sl_pct, tp_pct, max_hold_minutes, taker_fee_bps, partial_tp. Riproduce i segnali che hai davvero ricevuto su barre storiche reali da un minuto della mainnet, due volte: una con stop, take-profit e leva originali di ogni segnale e una con le tue impostazioni. Restituisce subito un job_ref; il risultato si recupera con get_job_status. Ogni risultato riporta coverage (quanti segnali si sono potuti simulare e perché gli altri no) e assumptions (commissioni, slippage, TP parziale e ciò che non viene modellato). I segnali senza stop, con lo stop dal lato sbagliato dell'ingresso o senza dati storici vengono contati e saltati, mai indovinati.

simulate_policy

Facoltativo: policy_text (linguaggio naturale), rules (già compilate), days (1–365). Applica una policy di rischio alle operazioni che hai davvero chiuso e indica quali avrebbe rifiutato, con quale regola, e la differenza di PnL. Restituisce un job_ref. Due limiti sono sempre dichiarati: le regole che dipendono dallo stato del conto al momento dell'ordine (posizioni aperte, perdita giornaliera, saldo) sono valutate con zeri perché quello stato non è ricostruibile dalle operazioni chiuse — quindi sono SOTTO-contate, mai sovra-contate; e il PnL proviene dai tuoi risultati realizzati, è riportato per valuta e mai sommato tra valute diverse.

import_tradingview_backtest

Obbligatorio: csv_text. Facoltativo: taker_fee_bps, slippage_bps, leverage. Prende il CSV esportato dallo Strategy Tester di TradingView (List of Trades) e lo ricalcola con costi reali: commissioni taker e slippage misurato sia in entrata sia in uscita. Pine Script non viene mai eseguito né interpretato — si ricalcola solo l'elenco di operazioni che hai esportato — e i prezzi restano quelli riportati da TradingView. Le righe senza colonna quantità non possono sostenere commissioni, quindi restano ottimistiche e il loro numero viene riportato. Restituisce un job_ref.

get_job_status

Facoltativo: job_ref. Con un riferimento restituisce lo stato di quel lavoro e, una volta finito, il suo risultato; senza argomenti elenca i tuoi lavori recenti. status è uno tra PENDING, RUNNING (con percentuale in progress), DONE, FAILED (è previsto un nuovo tentativo), DEAD o CANCELLED. I lavori girano uno alla volta, quindi queue_position dice quanti ci sono prima del tuo. Un riferimento che non è tuo riceve la STESSA risposta “non trovato” di uno inesistente, così non possono essere enumerati.

I risultati non restano per sempre, ed è bene conoscerne i limiti prima di farci affidamento. Solo i 20 lavori completati più recenti mantengono il risultato completo; quelli più vecchi vengono ridotti al loro riepilogo e tornano con result_pruned: true, il che significa che le righe di dettaglio sono sparite e il lavoro deve essere rieseguito per rigenerarle. Tutto viene eliminato dopo 30 giorni. Anche le esecuzioni di backtest e di policy vengono scritte nella cronologia backtest del tuo account, e il risultato riporta il run_id sotto cui sono state salvate.

Il muro di policy

Questa è la parte che rende difendibile l'idea di affidare strumenti a un modello linguistico. Le tue regole vengono compilate una sola volta in JSON, validate rispetto a uno schema fisso, e poi valutate lato server e in modo deterministico su ogni ordine. Il modello non le valuta mai, non vede mai un modo per aggirarle e non può essere persuaso ad allentarle — né da te in un momento di impazienza, né da un prompt iniettato attraverso una pagina web o un messaggio Telegram che ha letto per caso. Una violazione è un rifiuto netto con una voce nel registro di audit.

Regola Tipo Significato
max_risk_per_trade_pctnumero, 0–100Limite massimo sulla quota dell'account di un singolo trade
max_order_size_usdnumero > 0Limite assoluto sul valore dell'ordine
max_daily_loss_usdnumero > 0Interrompi il trading per la giornata oltre questa perdita
max_open_positionsinteroLimite di concorrenza
leverage_capnumero, 1–1000Il tuo limite massimo di leva
venue_scopearrayLimita l'AI ai venue indicati
symbol_whitelistarraySolo questi simboli possono essere scambiati
symbol_blacklistarrayQuesti simboli non vengono mai scambiati
allowed_sidesarraySolo long, solo short, o entrambi
notesstringaLa tua annotazione personale

Una policy compilata che non supera la validazione dello schema non può essere attivata in alcun modo. Non esiste una policy parzialmente valida.

Modello di sicurezza

Paper per impostazione predefinitaOgni nuova chiave inizia nell'ambito paper con un saldo virtuale di $5.000. Raggiungere denaro reale è un atto esplicito e separato.
Lo stop-loss è obbligatorioSe non esiste né uno stop-loss esplicito né un valore predefinito salvato, l'ordine viene rifiutato. Inoltre non può essere rimosso in seguito.
IdempotenzaOgni strumento di scrittura richiede una chiave generata dal client di almeno 8 caratteri. Le ripetizioni restituiscono la risposta memorizzata invece di agire due volte.
Kill switchPOST /api/mcp/freeze ferma tutto immediatamente; ogni strumento restituisce quindi user_frozen. /unfreeze lo disattiva.
Revoca per singola chiaveRevoca un client senza toccare gli altri. Gli stream di eventi aperti si interrompono entro pochi secondi.
Ricevute firmatefirma ed25519 più una catena di hash per utente su ogni azione, verificabile rispetto a una chiave pubblica.
Registro di auditOgni chiamata viene registrata con nome dello strumento, argomenti, risultato e latenza, leggibile all'indirizzo GET /api/mcp/audit e nel pannello.
Isolamento per tenantGli strumenti non possono accettare un ID utente; l'identità proviene solo dalla connessione autenticata.
Chiavi solo per il tradingLe tue chiavi API exchange vengono create senza permesso di prelievo e memorizzate con crittografia AES-256. Gli ordini partono da IP di trading AlgoVesta fissi che inserisci nella allowlist presso l'exchange.

Sulla leva, in parole semplici: AlgoVesta non impone un limite massimo di leva sul tuo account — lo fa il tuo exchange, e puoi impostare il tuo limite personale con la leverage_cap regola di policy. Il forex tramite MetaTrader 5 non è a leva in questo percorso ed è dimensionato in lotti. Chiunque ti dica che qui una piattaforma “limita la leva a 20x” sta descrivendo qualcosa che non esiste.

Errori

Codice HTTP Quando accade
unauthorized401Chiave mancante, non valida o revocata
insufficient_scope401Lo strumento richiede un ambito superiore a quello posseduto dalla chiave
forbidden403Non consentito per questo account
user_frozen403Il kill switch è attivo
policy_violation403Una regola ha respinto l'ordine; la risposta elenca quale
idempotency_conflict409La stessa chiave è stata riutilizzata con argomenti diversi
validation_failed422Argomenti malformati o contraddittori
rate_limited429Troppe chiamate; retry_after è incluso

I rifiuti a livello di dominio arrivano come risultati strutturati anziché come errori di trasporto, così l'assistente può agire di conseguenza: VENUE_NOT_CONNECTED, ACCOUNT_REQUIRED, ACCOUNT_AMBIGUOUS, ACCOUNT_NOT_FOUND, POSITION_NOT_FOUND, MISSING_FIELDS, INVALID_SIDE, SL_REMOVAL_FORBIDDEN. I messaggi di errore non rivelano mai dettagli interni, e non rivelano mai nulla su un altro account.

Limiti di frequenza

Ambito del limite Limite
Tutte le chiamate agli strumenti, per chiave60 al minuto
place_order10 al minuto
replay_channel5 all'ora (risultati in cache per 24 ore)
E-mail di conferma per l'ambito live1 al minuto

Eventi live

Uno stream di eventi server-sent isolato per tenant è disponibile all'indirizzo /mcp/events (OAuth) e /u/<key>/events (link segreto), con Last-Event-ID riconnessione, così una connessione interrotta riprende invece di ripartire da zero. Tipi di eventi: fill, policy_rejected, position_closed, sl_hit, tp_hit, e replay_progress durante un replay di canale.

Venue — 16 exchange e MetaTrader 5

Una singola connessione li raggiunge tutti. Un venue diventa disponibile per l'AI solo dopo che lo hai connesso in AlgoVesta; chiedere di uno che non hai connesso restituisce VENUE_NOT_CONNECTED invece di un'ipotesi.

Exchange venue valore Mercati Passphrase necessaria
BinancebinanceSpot, futuresNo
BybitbybitSpot, futuresNo
OKXokxSpot, futures
KuCoinkucoinSpot, futures
Gate.iogateioSpot, futuresNo
BitgetbitgetSpot, futures
KrakenkrakenSpot, futuresNo
CoinbasecoinbaseSpotNo
BingXbingxSpot, futuresNo
HyperliquidhyperliquidFuturesNo
BackpackbackpackSpot, futuresNo
HTXhtxSpot, futuresNo
BloFinblofinSpot, futures
PhemexphemexSpot, futuresNo
WOO XwooSpot, futuresSì (Application ID)
CoinExcoinexSpot, futuresNo
MetaTrader 5 (forex, metalli, indici)mt5Lotti, percorso senza levaLogin broker
Motore paperpaper$5.000 virtuali

Sei di questi — Binance, Bybit, OKX, Gate.io, KuCoin e Bitget — sono stati verificati end-to-end con denaro reale sia su futures che su spot, con stop-loss e take-profit confermati esistere sull'exchange stesso e corrispondere esattamente ai valori registrati. Ogni exchange ha le proprie particolarità, e le differenze sono deliberate e non lacune: Bybit e Bitget non accettano una seconda gamba di take-profit sullo spot, OKX spot viene instradato tramite l'API grezza per evitare che un account cash diventi silenziosamente un account a margine, Binance spot impone un valore nozionale minimo prima dell'acquisto, e gli acquisti a mercato su KuCoin vengono piazzati in modalità cost.

Spot e futures sono sempre tenuti separati. Lo stesso simbolo sui due mercati è una riga separata, un feed di prezzo separato e una chiave separata — l'uno non si mescola mai con l'altro.

MetaTrader 5 senza alcuna installazione

Non installi nulla per il forex. Non c'è nessun VPS da noleggiare, nessun terminale MetaTrader da tenere attivo sulla tua macchina, nessun Expert Advisor da collegare e nessun account bridge di terze parti da acquistare. AlgoVesta gestisce i terminali MetaTrader 5 sui propri server gestiti e li mantiene connessi al tuo broker 24 ore su 24. Inserisci le credenziali del tuo account una sola volta e da quel momento il tuo assistente AI può fare trading su quell'account. I dati sulle posizioni restituiti all'assistente sono verificati rispetto al terminale, e quando non possono essere verificati lo strumento lo dichiara invece di lasciare intendere un account vuoto.

Roadmap — azioni globali

Pianificato — non ancora disponibile

Il trading azionario globale tramite Interactive Brokers (IBKR) è pianificato, con l'obiettivo di raggiungere 170 azioni globali raggiungibili dalla stessa connessione MCP di crypto e forex. Si tratta di un elemento della roadmap ed è non ancora attivo oggi; nient'altro in questa pagina, a parte questo paragrafo, lo descrive, e nessuno strumento attuale può fare trading su azioni. Quando verrà rilasciato apparirà come ulteriori venue valori sotto gli stessi strumenti, lo stesso muro di policy e le stesse ricevute.

Latenza misurata

Questi sono dati misurati, non numeri di marketing.

Fase Misurato
Ricezione e parsing della richiesta17–67 ms (mediana 38 ms)
End-to-end su MetaTrader 5Circa 1 secondo (849 ms misurati; 702 ms per la chiusura)
End-to-end su un exchange cryptoCirca 3 secondi (2.785 ms misurati)
Motore paperMediana 318 ms — nessun round trip verso l'exchange

Il tempo trascorso all'interno del tuo client AI — il modello che ragiona, e tu che confermi — non è incluso e di solito sarà predominante. Questo server non è un venue di esecuzione a bassa latenza e non viene venduto come tale.

Endpoint REST del pannello

Tutto ciò che l'AI non può e non dovrebbe fare da sola si trova dietro la tua normale sessione con accesso effettuato.

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

Cosa ti serve avere

La connessione MCP in sé fa parte del prodotto e non viene venduta separatamente. Ciò che in pratica ti limita è cosa l'AI è destinata a raggiungere: il paper trading richiede solo un account, mentre il trading live richiede un piano a pagamento attivo e gli account connessi che quel piano consente — e il trading live su MetaTrader 5 con denaro reale richiede inoltre che tu attivi esplicitamente l'opzione per quell'account. I limiti di piano sul numero di chiavi exchange e account MetaTrader sono elencati nella pagina dei prezzi. Puoi provare tutto con il saldo paper di $5.000 prima che qualcosa di tutto ciò diventi rilevante.

Domande frequenti

Sì, una volta che gli dai una chiave con l'ambito live , e quell'ambito viene rilasciato solo dopo un secondo fattore. Fino ad allora lo stesso assistente opera su un saldo paper di $5.000 con strumenti identici, così puoi provare l'intero flusso di lavoro prima che qualsiasi denaro reale sia raggiungibile.
No, e non dovresti mai farlo con nessuno strumento. Le tue chiavi API restano dentro AlgoVesta, crittografate, create senza permesso di prelievo. L'assistente detiene sempre e solo un link MCP, che è ad ambito limitato, con limite di frequenza, controllato da policy, revocabile individualmente e inutile per spostare fondi fuori da un exchange.
Può far sì che il modello ci provi. Non può far riuscire il tentativo. Le regole vengono compilate in JSON e valutate lato server, dopo che la richiesta lascia il modello, quindi la persuasione non ha alcuna superficie su cui agire. Una violazione viene rifiutata e scritta nel registro di audit, dove puoi vedere esattamente cosa è stato tentato.
Niente accade due volte. Ogni strumento di scrittura richiede una chiave di idempotenza, e una ripetizione della stessa chiave restituisce la risposta memorizzata invece di agire di nuovo. Questo è anche ciò che rende sicuro un nuovo tentativo del client dopo un timeout di rete.
Sì. È proprio questo il punto. Un'unica connessione copre ogni account exchange e ogni account MetaTrader 5 che hai connesso, e get_portfolio_context li restituisce tutti in un'unica chiamata. Quando possiedi più di un account nello stesso mercato, il account parametro diventa obbligatorio e una richiesta ambigua viene rifiutata invece di essere inviata a un valore predefinito.
Non più, e questo era un bug reale e non ipotetico. Quei campi un tempo erano obbligatori, il che costringeva il modello a inventare valori, e le misurazioni hanno mostrato le impostazioni dei clienti venire sovrascritte silenziosamente. Ora l'assistente è istruito a lasciare vuoti i campi non specificati e il server li compila usando le impostazioni salvate nel tuo pannello, riportando quali ha usato.
Nessuno di questi. AlgoVesta gestisce MetaTrader 5 sui propri server gestiti, connessi al tuo broker 24/7. Inserisci i dettagli del tuo account una sola volta; non c'è nulla da installare, noleggiare o riavviare.
No. Non viene replicato nulla da nessuno. Sei tu a dirigere il tuo assistente, ogni ordine viene verificato rispetto alle tue regole, e puoi ispezionare e verificare ogni azione in seguito tramite il registro di audit e la catena di ricevute firmate.
Usa il kill switch nel pannello, oppure POST /api/mcp/freeze. Ogni strumento restituisce quindi user_frozen finché non sblocchi. Per disconnettere invece un singolo client, revoca solo quella chiave — le altre continuano a funzionare.
Perché quei prodotti non offrono connettori MCP personalizzati. Gemini li supporta solo nella CLI, e ChatGPT li offre nei piani a pagamento tramite la modalità sviluppatore. Entrambe sono restrizioni del prodotto AI e si applicano a qualsiasi server MCP, non solo a questo. Claude, Claude Code e Cursor non hanno questa limitazione.
Sì. Ogni azione restituisce una ricevuta firmata ed25519 concatenata tramite hash a quella precedente. Verificala con lo strumento verify_receipt , oppure in modo indipendente rispetto alla chiave pubblica all'indirizzo /mcp/receipts/pubkey. Modificare una vecchia ricevuta rompe la catena per ogni ricevuta successiva, il che è esattamente ciò che rende rilevabile qualsiasi manomissione.
No, e non per via di un controllo dei permessi che potrebbe essere configurato male. Gli strumenti non hanno affatto un parametro per l'identità — l'account viene derivato dalla connessione autenticata stessa, quindi non esiste alcun argomento che un aggressore o un modello confuso potrebbe fornire per raggiungere qualcun altro.
Non oggi. Il crypto e il forex MetaTrader 5 sono attivi ora. Le azioni globali tramite Interactive Brokers, con l'obiettivo di 170 titoli, sono pianificate e arriveranno come ulteriori valori di venue sotto gli stessi strumenti e lo stesso muro di policy.

Connetti un assistente AI ai tuoi account

Inizia con il saldo paper di $5.000. Nessuna carta, nulla da installare, e il confine live resta chiuso finché non lo apri deliberatamente.

Crea un account gratuito Vedi la panoramica

Correlati: MCP per assistenti AI · Server MCP Trading: Claude e ChatGPT su 16 Exchange + MT5 · exchange supportati · forex MetaTrader 5 · automazione TradingView · cos'è un server di trading MCP · sicurezza · prezzi.

Il trading comporta rischi. L'automazione non li elimina, e un assistente AI non costituisce consulenza sugli investimenti. Inizia in modalità paper.