Documentation du serveur MCP — 16 exchanges + MetaTrader 5

Serveur MCP AlgoVesta : laissez Claude, ChatGPT, Cursor et Gemini trader vos comptes d'exchange réels et MetaTrader 5

De quoi s'agit-il : AlgoVesta exploite un serveur Model Context Protocol (MCP) hébergé qui donne à un assistant IA vingt véritables outils de trading via un seul lien HTTPS. Collez ce lien unique dans Claude, ChatGPT, Cursor, Claude Code, Gemini CLI ou tout autre client compatible MCP, et l'assistant peut lire les soldes, ouvrir et fermer des positions, déplacer le stop-loss et le take-profit, et auditer ses propres actions sur 16 exchanges crypto et le forex MetaTrader 5 en même temps — en utilisant les paramètres de risque que vous avez déjà enregistrés dans AlgoVesta, derrière un mur de politique côté serveur qu'aucun prompt ne peut contourner. Chaque connexion démarre avec un solde fictif de 5 000 $ et chaque action renvoie un reçu signé en ed25519.
20 outils MCP natifs OAuth 2.1 (PKCE) ou lien secret Compte fictif d'abord, 5 000 $ virtuels Transport Streamable HTTP

Le Model Context Protocol est une norme ouverte pour connecter des assistants IA à des systèmes externes. La plupart des serveurs MCP liés au trading diffusent des données de marché dans une fenêtre de discussion. Celui-ci exécute: c'est une couche de routage d'ordres dotée d'un moteur de risque déterministe en amont, et l'IA est l'appelant — jamais l'autorité.

L'idée la plus importante de cette page. Vous connectez vos clés API d'exchange et vos comptes MetaTrader 5 une seule fois, dans AlgoVesta, et vous y définissez vos préférences de risque une seule fois (% de stop-loss, % de take-profit, effet de levier). Ensuite, vous confiez à votre assistant IA un seul lien. À partir de ce moment, l'assistant accède à tous les comptes que vous avez connectés, en même temps, via le même lien, et chaque ordre qu'il ouvre hérite de vos paramètres enregistrés — exactement les mêmes paramètres que ceux utilisés par le panneau manuel et le bot Telegram. Vous ne donnez pas vos clés API à une IA. Vous lui donnez une porte d'accès délimitée, révocable, à débit limité et vérifiée par des règles, vers des comptes que vous contrôlez déjà.

Démarrage rapide

La configuration se fait en trois étapes et ne nécessite aucun code. L'ensemble du parcours se trouve dans l'onglet MCP Connection de votre panneau AlgoVesta.

Étape 1

Ouvrez l'onglet MCP Connection et générez une clé. Les nouvelles clés utilisent par défaut le paper scope. Le lien complet est affiché une seule fois — copiez-le à ce moment-là.

Étape 2

Collez le lien dans votre client IA en tant que serveur MCP personnalisé. Aucune clé API ne quitte AlgoVesta, aucun code, aucune installation locale.

Étape 3

Parlez-lui. “Comment va mon portefeuille ?” “Simule un long de 200 $ sur ETHUSDT à 5x.” “Ferme la moitié de ma position BTC.”

Votre URL de connexion ressemble à ceci :

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

Cette URL est un identifiant. Quiconque la détient peut agir, dans les limites de son scope, sur vos comptes. Traitez-la comme un mot de passe : ne la collez jamais dans un chat public, une capture d'écran, un dépôt partagé ou un ticket de support. En cas de fuite, révoquez-la depuis le panneau — la révocation prend effet immédiatement pour les nouvelles connexions et coupe les flux d'événements ouverts en quelques secondes.

Quels assistants IA peuvent se connecter

Tout client qui parle MCP via Streamable HTTP peut se connecter. Le tableau ci-dessous consigne ce qui a été vérifié sur le serveur en production, y compris les limitations réelles — certaines sont des contraintes du produit IA, pas d'AlgoVesta, et vous les rencontrerez quel que soit le serveur MCP utilisé.

Client IA Où coller le lien Remarques et limites réelles
Claude (web, ordinateur, iOS, Android)Paramètres → Connecteurs → Ajouter un connecteur personnaliséPrise en charge complète. Les titres des outils et les boîtes de dialogue de confirmation proviennent directement du serveur.
Claude Codeclaude mcp add --transport httpLigne de commande. Utile pour des workflows scriptés ou reproductibles.
Cursormcp.json, le "url" champPrise en charge complète. Notez que le nom de la clé est url ici — Gemini CLI en utilise un différent.
ChatGPTMode développeur / connecteur personnaliséForfaits payants uniquement. Les connecteurs MCP personnalisés ne sont pas proposés sur le forfait gratuit, et le mode développeur doit parfois être activé au préalable. Il s'agit d'une restriction d'OpenAI.
Gemini CLI~/.gemini/settings.json, le "httpUrl" champCLI uniquement. L'application web Gemini ne prend pas en charge les serveurs MCP personnalisés. Utilisez la httpUrl clé, pas url.
Tout autre client compatible MCPSes propres paramètres MCP / connecteurLe serveur implémente la norme, donc tout client prenant en charge le MCP distant via Streamable HTTP fonctionnera sans rien de spécifique.

Exemple Cursor (mcp.json):

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

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

Transport et protocole

TransportStreamable HTTP, sans état, réponses JSON. Chaque requête est authentifiée indépendamment.
Nom du serveurAlgoVesta
Endpoint du lien secrethttps://api.algovesta.com/u/<key>/mcp
Endpoint OAuthhttps://api.algovesta.com/mcp
Changements de la liste d'outilstools.listChanged = true. Les clients rafraîchissent la liste d'outils à la reconnexion, si bien que les nouveaux outils et paramètres apparaissent sans qu'il faille retirer puis rajouter le connecteur.
Flux d'événementsÉvénements envoyés par le serveur (SSE) à /mcp/events et /u/<key>/events, isolés par tenant, avec Last-Event-ID reconnexion.
Schéma exploitable par machine/mcp/tools.json — le JSON Schema complet des 20 outils, exactement tel que le client le reçoit.

Authentification et scopes

Il existe deux façons de se connecter, et les deux aboutissent au même contexte de tenant. Les outils n'acceptent jamais un identifiant utilisateur en paramètre — l'identité n'est lue qu'à partir de la connexion authentifiée, ce qui rend l'accès inter-comptes structurellement impossible et pas seulement interdit.

Lien secret

Une clé de la forme avmcp_<32-byte urlsafe random>, intégrée dans le chemin de l'URL. Elle est stockée sous forme de hachage Argon2id plus un hachage de recherche SHA-256 ; le texte en clair n'existe qu'au moment de la création et n'est jamais récupérable ensuite. Chaque clé possède son propre scope, son propre libellé et son propre état de révocation, de sorte que vous pouvez utiliser une clé paper dans Cursor et une clé live dans Claude, et couper l'une des deux indépendamment.

OAuth 2.1

Pour les clients qui préfèrent un véritable flux d'autorisation. Les grants pris en charge sont authorization_code et refresh_token, avec des refresh tokens à rotation. PKCE avec S256 est obligatoire — une requête sans cela est rejetée. L'enregistrement dynamique de client est disponible, si bien que la plupart des clients se configurent automatiquement. Documents de découverte :

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

Les trois scopes

Scope Ce qu'elle permet de faire Comment l'obtenir
readPortefeuille, prix, ordres en attente, simulations, aperçus de politique, vérification de reçu, replay de canal. Aucun ordre ne peut être passé.Créée directement.
paperTout ce qui est dans read, plus les ordres exécutés sur le moteur paper avec un solde virtuel de 5 000 $. La valeur par défaut pour les nouvelles clés.Créée directement.
liveTout ce qui précède, plus des ordres réels sur vos exchanges connectés et vos comptes MetaTrader 5.Second facteur requis. Un code d'authentification (TOTP) valide, ou un code de confirmation envoyé à l'e-mail de votre compte et valable 10 minutes. Appliqué côté serveur, sans exception.

Les scopes sont hiérarchisés, de sorte qu'un outil nécessitant paper refuse une read clé avec insufficient_scope. La frontière entre argent simulé et argent réel est donc une propriété de la clé elle-même, pas d'un prompt, d'un paramètre ou de l’appréciation du modèle.

Référence des outils — les 20 outils

Ce sont exactement les outils que voit votre assistant. Les outils de lecture peuvent être appelés sans risque sans vous demander d'abord ; les six outils d'écriture déclenchent une confirmation dans les clients qui la prennent en charge, et trois d'entre eux — place_order, close_position et cancel_order — sont en outre marqués comme destructifs dans leurs annotations.

Outil Scope Type Objectif
get_portfolio_contextreadlecture seuleTous les comptes connectés en un seul appel
get_market_pricereadlecture seulePrix en direct avec fraîcheur indiquée
simulate_orderreadlecture seuleSimulation (dry-run) incluant le verdict de politique
place_orderpaper / livedestructifOuvre une position
close_positionpaper / livedestructifFerme totalement ou partiellement
modify_positionpaper / liveécritureDéplace le stop-loss et le take-profit
list_open_ordersreadlecture seuleOrdres limite en attente
cancel_orderpaper / livedestructifAnnule un ordre en attente
compile_policyreadlecture seuleTransforme des règles en langage naturel en un aperçu de politique
verify_receiptreadlecture seuleVérifie la signature et la chaîne de hachage
replay_channelreadlecture seuleBack-teste un canal Telegram par rapport à vos règles
get_trade_historyreadlecture seuleTrades clôturés et performance sur crypto, MT5 et paper
compare_venuesreadlecture seuleClasse les exchanges connectés selon le prix et le spread mesurés
list_strategiesreadlecture seuleStratégies TradingView ; l'URL du webhook n'est jamais renvoyée
create_strategypaper / liveécritureNouvelle stratégie, toujours avec l'exécution en argent réel désactivée
update_strategypaper / liveécritureRéglages de stratégie ; auto_trade est refusé
backtest_my_signalsreadread-onlyRejoue vos propres signaux passés avec d'autres réglages (tâche en file)
simulate_policyreadread-onlyApplique une politique de risque aux trades que vous avez réellement clôturés (tâche en file)
import_tradingview_backtestreadread-onlyRecalcule un export TradingView avec frais et slippage réels (tâche en file)
get_job_statusreadread-onlyAvancement et résultat d'une tâche en file

get_portfolio_context

Ne prend aucun paramètre. Renvoie une vue normalisée de chaque compte d'exchange, de chaque compte MetaTrader 5 et du compte paper appartenant à la clé authentifiée — et rien d'autre. C'est l'appel qui fait de “comment ça se passe ?” une seule question au lieu de seize.

Deux champs comptent plus que les autres. Pour les comptes crypto, balance et equity décrivent le portefeuille futures uniquement ; l'argent spot est indiqué séparément dans spot_balance, de sorte qu'un assistant qui ne lit que balance peut conclure à tort que vous n'avez rien. Pour les comptes MetaTrader 5, positions_source vaut soit live_ea, ce qui signifie que la liste des positions a été vérifiée par rapport au terminal, soit unavailable, ce qui signifie que le terminal n'a pas pu être joint. Dans le unavailable cas, une liste de positions vide ne signifie pas “aucune position ouverte” — cela signifie inconnu, et la description de l'outil indique au modèle de le dire plutôt que de vous rassurer.

get_market_price

Paramètres : venue, symbol. Renvoie {ok, venue, symbol, last, bid, ask, ts, source, age_sec}. Les prix proviennent d'un cache partagé rafraîchi environ chaque seconde ; en cas d'absence, le serveur effectue un appel REST en direct vers l'exchange. Si la valeur a plus de 10 secondes ou ne peut pas être récupérée du tout, cela est indiqué explicitement — un prix obsolète n'est jamais présenté comme un prix en direct. Si le symbole n'existe sur aucun exchange connecté, un prix DEX informatif peut être renvoyé accompagné d'un avertissement clair indiquant que vous ne pouvez pas le trader sur vos venues connectées.

simulate_order

Requis : venue, symbol, side, order_type, idempotency_key. N'envoie aucun ordre. Renvoie le fill attendu, l'impact sur la marge et le verdict de politique, plus les prix absolus de stop-loss et de take-profit calculés par le serveur. C'est une opération de lecture, donc un assistant bien conçu l'appelle sans demander la permission, vous montre un résumé unique, et demande exactement une confirmation avant de passer quoi que ce soit.

place_order

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

L' idempotency_key n'est pas de la décoration. Si la même clé arrive deux fois pour le même utilisateur, la réponse stockée est rejouée et aucun second ordre n'est ouvert — c'est ce qui vous protège quand un client réessaie après un timeout, qu'un téléphone perd le signal en pleine confirmation, ou qu'un modèle appelle un outil deux fois.

Le dimensionnement est explicite, volontairement. Pour le crypto, vous transmettez exactement un des trois champs, et ils signifient des choses différentes :

Champ Signification Exemple à 5x
size_usdValeur de la position (notionnel)size_usd=100 → une position de 100 $, 20 $ de votre argent
margin_usdCollatéral sorti de votre propre pochemargin_usd=20 → une position de 100 $
risk_pctPourcentage du solde libre utilisé comme marge. Ce n'est pas un dimensionnement du risque basé sur la distance du stop ; la distance du stop-loss n'entre pas dans le calcul.risk_pct=1 sur un solde de 2 000 $ → 20 $ de marge → une position de 100 $

Pour le forex et MetaTrader 5, la taille est indiquée en lots à la place, et leverage n'est pas envoyé du tout — le produit n'est pas assorti d'effet de levier et le dimensionnement provient du volume en lots. La taille de lot que vous indiquez est utilisée exactement et n'est jamais arrondie à une valeur pratique ; si elle sort des limites de votre broker, l’ordre est refusé et la plage autorisée est renvoyée.

Tolérance sur la taille de l'ordre. Les exchanges n'acceptent que certains incréments de lot, donc le montant demandé est ajusté au pas valide le plus proche. Si l'écart reste dans les 20 %, l'ordre se poursuit et l'écart exact vous est communiqué ; au-delà de 20 %, l'ordre n'est pas ouvert et on vous indique, en chiffres, quels montants proches fonctionneraient. Ce seuil a été choisi en rejouant chaque ordre réel jamais passé via la fonction de dimensionnement, et non par intuition.

Les champs omis reviennent à vos paramètres enregistrés. Si vous n'indiquez pas de stop-loss, de take-profit ou d'effet de levier, l'assistant reçoit pour instruction de laisser ces champs vides, et le serveur les remplit à partir des préférences enregistrées dans votre panneau — les mêmes valeurs que celles utilisées par le panneau manuel et le bot Telegram. La réponse indique quels champs proviennent des paramètres enregistrés dans prefs_used. Cela existe à cause d'un échec mesuré : lorsque ces champs étaient obligatoires, le modèle devait inventer des valeurs, et cinq ordres sur cinq écrasaient la propre configuration de l’utilisateur.

close_position

Requis : venue, symbol, side, idempotency_key. Facultatif : fraction (0 à 1], account, ticket. Fonctionne pour le crypto et pour MetaTrader 5. La fermeture réduit le risque, donc le mur de politique ne la bloque jamais — seul le kill switch le fait. Dix appels avec la même clé d'idempotence effectuent exactement une seule fermeture. S'il n'existe aucune position correspondante, vous obtenez POSITION_NOT_FOUND ainsi que les positions qui sont ouvertes sur cette venue, afin que l'assistant puisse se corriger au lieu de deviner.

MetaTrader 5 n'a pas de fermeture partielle — l'Expert Advisor ferme entièrement — utilisez donc fraction=1 là-bas. Lorsque plusieurs positions MT5 sont ouvertes sur le même symbole, ticket devient obligatoire, et tant que la cible est ambiguë, rien n'est fermé..

modify_position

Requis : venue, symbol, side, idempotency_key, plus au moins un de new_sl / new_tp. . Le stop-loss ne peut pas être supprimé — la règle du SL obligatoire s'applique ici aussi. L'ordre est validé : un long nécessite new_sl < mark < new_tp, un short l'inverse. N'envoyer qu'un seul côté laisse l'autre à sa valeur actuelle plutôt que de le supprimer. Comme pour la fermeture, un ticket MT5 ambigu signifie que rien n'est modifié.

list_open_orders

Facultatif : venue. Liste les ordres limite en attente avec order_ref, venue, symbole, sens, prix d'entrée, taille et date de création.

Un point à connaître avant de demander à un assistant d'examiner vos ordres ouverts : les ordres en attente que cet outil suit se trouvent dans le carnet d'ordres simulé (paper). Les ordres placés sur une plateforme réelle via MCP sont envoyés en tant qu'ordres au marché, donc ils s'exécutent immédiatement au lieu de rester en attente, et une liste vide sur un compte réel signifie qu'il n'y a rien en attente, et non que quelque chose a disparu.

cancel_order

Requis : venue, order_ref, idempotency_key. Si la référence ne vous appartient pas, la réponse est NOT_FOUND — jamais un indice que l’ordre de quelqu'un d'autre existe. Comme la fermeture, c'est une action qui réduit le risque, et le mur de politique ne la bloque pas.

compile_policy

Requis : natural_text. Vous écrivez une règle en langage naturel — “ne jamais risquer plus de 2 % sur un trade, pas de levier au-delà de 10, uniquement BTC et ETH” — et elle est compilée en une politique JSON, renvoyée comme un aperçu. La compilation n'active jamais rien. L'activation est une étape distincte et délibérée, depuis le panneau ou via POST /api/mcp/policies/{policy_id}/activate, ce qui signifie qu'un modèle ne peut pas assouplir vos règles simplement en en parlant.

verify_receipt

Requis : receipt_id. Renvoie signature_valid et chain_valid ; une action n'est vérifiée que lorsque les deux sont vrais. Les reçus sont signés en ed25519 et chaînés par hachage par utilisateur, de sorte que modifier un reçu antérieur casse tous les suivants et chain_valid devient false. La clé publique est servie à /mcp/receipts/pubkey, afin que vous puissiez vérifier indépendamment sans avoir à faire confiance à cet endpoint. Les anciens reçus de l'ère HMAC renvoient legacy=true.

replay_channel

Requis : channel_ref. Facultatif : days (jusqu'à 90, 30 par défaut), policy_override. Répond à “et si j'avais suivi ce canal Telegram ces X derniers jours selon mes règles ?” en rejouant ses signaux passés en mode paper, chaque signal passant par le mur de politique afin que les signaux rejetés ne s'ouvrent jamais. La progression arrive sous forme d' replay_progress événements. Les résultats sont mis en cache pendant 24 heures et l'outil est limité à 5 replays par heure. Sortie : {trades:[...], summary:{total_pnl, win_rate, max_drawdown, avg_rr, policy_rejections}}.

get_trade_history

Facultatif : venue, symbol, days (1–365, 30 par défaut), limit (1–200, 50 par défaut), market (crypto / forex / paper). Renvoie les trades clôturés des trois sources en une seule liste, du plus récent au plus ancien, plus un summary. Le résumé est délibérément prudent : avg_rr n'est calculé qu'à partir des trades où l'entrée, le stop-loss et la sortie sont tous connus, et rr_sample indique combien c'était ; total_pnl vaut null lorsque plusieurs devises de compte sont mélangées, pnl_by_currency étant fourni à la place ; la commission n'est enregistrée nulle part, donc fee reste null et le PnL crypto est brut. Si une source ne peut pas être lue, incomplete_sources la nomme au lieu de renvoyer une liste courte comme si elle était complète.

compare_venues

Requis : symbol. Facultatif : market (futures par défaut, ou spot), side. Renvoie, pour chaque exchange crypto connecté, le prix en direct et — sur les places qui publient le bid/ask — le spread en points de base, plus l'écart de prix entre les places. Il ne choisit pas de place : votre ordre en désigne toujours une. Les frais de trading, la profondeur du carnet d'ordres et le slippage sont listés sous basis.not_measured et ne sont jamais estimés, et une place qui n'a pas publié de bid/ask apparaît dans not_comparable_on_spread au lieu d'être classée comme si son spread était nul. cheapest_measured signifie donc “spread mesuré le plus bas”, pas “le moins cher au global”.

list_strategies

Aucun paramètre. Renvoie vos stratégies TradingView avec leurs réglages, plan_limit et can_create_more. auto_trade est indiqué pour chaque stratégie afin que l'assistant puisse vous dire lesquelles sont en argent réel. L'URL du webhook, l'URL de démo et le secret HMAC sont retirés de la réponse — seuls webhook_url_configured et has_hmac_secret sont exposés, car l'URL elle-même est un identifiant sensible.

create_strategy

Facultatif : name. Requis : idempotency_key. Crée une stratégie TradingView avec auto_trade désactivé ; ce champ n'est pas modifiable via MCP, donc une stratégie nouvellement créée ne peut pas passer d'ordres réels tant que vous ne l'activez pas vous-même dans le panneau. Soumis au quota de stratégies de votre forfait — au-delà de la limite, il renvoie une erreur codée de limite de forfait plutôt que de ne rien faire silencieusement.

update_strategy

Requis : strategy_id, changes, idempotency_key. Modifie le levier (limité entre 1–20), le pourcentage de risque (0.1–50), les pourcentages de stop-loss et de take-profit, les réglages de trailing et de break-even, les symboles autorisés, le compte cible et si la stratégie accepte les signaux. auto_trade, status et ip_allowlist sont refusés et renvoyés dans refused_fields ; la suppression se fait uniquement depuis le panneau. Activer reverse_enabled renvoie un warning, car à partir de là un signal BUY ouvre un SHORT.

backtest_my_signals

Facultatif : days (1–90), source, symbols, margin_usd, leverage, sl_pct, tp_pct, max_hold_minutes, taker_fee_bps, partial_tp. Rejoue les signaux que vous avez réellement reçus sur de vraies bougies d'une minute du mainnet, deux fois : une fois avec le stop, le take-profit et le levier d'origine de chaque signal, une fois avec vos réglages. Renvoie immédiatement un job_ref ; le résultat se récupère avec get_job_status. Chaque résultat porte coverage (combien de signaux ont pu être simulés et pourquoi pas les autres) et assumptions (frais, slippage, TP partiel et ce qui n'est pas modélisé). Les signaux sans stop, avec un stop du mauvais côté de l'entrée ou sans données historiques sont comptés et ignorés, jamais devinés.

simulate_policy

Facultatif : policy_text (langage courant), rules (déjà compilées), days (1–365). Applique une politique de risque aux trades que vous avez réellement clôturés et indique lesquels elle aurait rejetés, par quelle règle, et l'écart de PnL. Renvoie un job_ref. Deux limites figurent dans chaque résultat : les règles qui dépendent de l'état du compte au moment de l'ordre (positions ouvertes, perte du jour, solde) sont évaluées à zéro car cet état ne peut pas être reconstruit à partir de trades clôturés — elles sont donc SOUS-comptées, jamais surcomptées ; et le PnL provient de vos résultats réalisés, il est indiqué par devise et jamais additionné entre devises.

import_tradingview_backtest

Obligatoire : csv_text. Facultatif : taker_fee_bps, slippage_bps, leverage. Prend le CSV exporté depuis le Strategy Tester de TradingView (List of Trades) et le recalcule avec de vrais coûts : frais taker et slippage mesuré à l'entrée comme à la sortie. Pine Script n'est jamais exécuté ni interprété — seule votre liste de trades exportée est recalculée — et les prix restent exactement ceux rapportés par TradingView. Les lignes sans colonne de quantité ne peuvent pas porter de frais : elles restent optimistes et leur nombre est indiqué. Renvoie un job_ref.

get_job_status

Facultatif : job_ref. Avec une référence, renvoie l'état de la tâche et, une fois terminée, son résultat ; sans argument, liste vos tâches récentes. status vaut PENDING, RUNNING (avec un pourcentage dans progress), DONE, FAILED (une nouvelle tentative est planifiée), DEAD ou CANCELLED. Les tâches s'exécutent une par une : queue_position indique combien passent avant la vôtre. Une référence qui ne vous appartient pas reçoit la MÊME réponse “introuvable” qu'une référence inexistante, ce qui empêche de les énumérer.

Les résultats ne sont pas conservés indéfiniment, et il vaut mieux connaître ces limites avant de s'appuyer dessus. Seules les 20 tâches terminées les plus récentes conservent leur résultat complet ; les plus anciennes sont réduites à leur résumé et renvoient result_pruned: true, ce qui signifie que les lignes détaillées ont disparu et que la tâche doit être relancée pour les régénérer. Tout est supprimé après 30 jours. Les exécutions de backtest et de politique sont également enregistrées dans l'historique de backtest de votre compte, et le résultat porte le run_id sous lequel elles ont été stockées.

Le mur de politique

C'est la partie qui rend défendable le fait de confier des outils à un modèle de langage. Vos règles sont compilées une fois en JSON, validées par rapport à un schéma fixe, puis évaluées côté serveur et de manière déterministe sur chaque ordre. Le modèle ne les évalue jamais, ne voit jamais de moyen de les contourner, et ne peut pas être convaincu de les assouplir — ni par vous dans un moment d'impatience, ni par un prompt injecté via une page web ou un message Telegram qu'il aurait lu. Une violation est un rejet strict avec une entrée d'audit.

Règle Type Signification
max_risk_per_trade_pctnombre, 0–100Plafond sur la part qu’un seul trade représente dans le compte
max_order_size_usdnombre > 0Plafond absolu sur la valeur de l'ordre
max_daily_loss_usdnombre > 0Arrête de trader pour la journée au-delà de cette perte
max_open_positionsentierLimite de concurrence
leverage_capnombre, 1–1000Votre propre plafond de levier
venue_scopetableauRestreint l'IA à des venues nommées
symbol_whitelisttableauSeuls ces symboles peuvent être tradés
symbol_blacklisttableauCes symboles ne sont jamais tradés
allowed_sidestableauLong uniquement, short uniquement, ou les deux
noteschaîneVotre propre annotation

Une politique compilée qui échoue à la validation du schéma ne peut pas être activée du tout. Il n'existe pas de politique partiellement valide.

Modèle de sécurité

Paper par défautChaque nouvelle clé démarre en paper scope avec un solde virtuel de 5 000 $. Atteindre de l'argent réel est un acte explicite et distinct.
Le stop-loss est obligatoireSi ni un stop-loss explicite ni une valeur par défaut enregistrée n'existent, l'ordre est refusé. Il ne peut pas non plus être supprimé par la suite.
IdempotenceChaque outil d'écriture nécessite une clé générée par le client d'au moins 8 caractères. Les répétitions rejouent la réponse stockée au lieu d'agir deux fois.
Kill switchPOST /api/mcp/freeze arrête tout d'un coup ; chaque outil renvoie alors user_frozen. /unfreeze l'annule.
Révocation par cléRévoquez un client sans toucher aux autres. Les flux d'événements ouverts se coupent en quelques secondes.
Reçus signéssignature ed25519 plus une chaîne de hachage par utilisateur sur chaque action, vérifiable par rapport à une clé publique.
Journal d'auditChaque appel est enregistré avec le nom de l'outil, les arguments, le résultat et la latence, consultable à GET /api/mcp/audit et dans le panneau.
Isolation par tenantLes outils ne peuvent pas accepter d'identifiant utilisateur ; l'identité provient uniquement de la connexion authentifiée.
Clés trade uniquementVos clés API d'exchange sont créées sans permission de retrait et stockées chiffrées en AES-256. Les ordres partent depuis des IP de trading AlgoVesta fixes que vous autorisez sur l'exchange.

Sur l'effet de levier, clairement : AlgoVesta n'impose pas de plafond de levier sur votre propre compte — c'est votre exchange qui le fait, et vous pouvez fixer votre propre plafond avec la règle leverage_cap de politique. Le forex via MetaTrader 5 n'est pas assorti d'effet de levier sur ce chemin et est dimensionné en lots. Quiconque vous dit qu'une plateforme “plafonne le levier à 20x” ici décrit quelque chose qui n'existe pas.

Erreurs

Code HTTP Quand cela se produit
unauthorized401Clé manquante, invalide ou révoquée
insufficient_scope401L'outil nécessite un scope supérieur à celui que possède la clé
forbidden403Non autorisé pour ce compte
user_frozen403Le kill switch est actif
policy_violation403Une règle a rejeté l'ordre ; la réponse indique laquelle
idempotency_conflict409La même clé a été réutilisée avec des arguments différents
validation_failed422Arguments malformés ou contradictoires
rate_limited429Trop d'appels ; retry_after est inclus

Les refus au niveau métier arrivent sous forme de résultats structurés plutôt que d'erreurs de transport, de sorte que l'assistant peut agir en conséquence : VENUE_NOT_CONNECTED, ACCOUNT_REQUIRED, ACCOUNT_AMBIGUOUS, ACCOUNT_NOT_FOUND, POSITION_NOT_FOUND, MISSING_FIELDS, INVALID_SIDE, SL_REMOVAL_FORBIDDEN. Les messages d'erreur ne divulguent jamais de détail interne, et ne révèlent jamais rien sur un autre compte.

Limites de débit

Portée de la limite Limite
Tous les appels d'outils, par clé60 par minute
place_order10 par minute
replay_channel5 par heure (résultats mis en cache 24 heures)
E-mail de confirmation du scope live1 par minute

Événements live

Un flux d'événements envoyés par le serveur, isolé par tenant, est disponible à /mcp/events (OAuth) et /u/<key>/events (lien secret), avec Last-Event-ID de reconnexion, de sorte qu'une connexion coupée reprend au lieu de redémarrer. Types d'événements : fill, policy_rejected, position_closed, sl_hit, tp_hit, et replay_progress pendant un replay de canal.

Venues — 16 exchanges et MetaTrader 5

Une seule connexion les atteint tous. Une venue ne devient disponible pour l'IA qu'après que vous l'avez connectée dans AlgoVesta ; demander une venue que vous n'avez pas connectée renvoie VENUE_NOT_CONNECTED plutôt qu'une supposition.

Exchange venue valeur Marchés Passphrase nécessaire
BinancebinanceSpot, futuresNon
BybitbybitSpot, futuresNon
OKXokxSpot, futuresOui
KuCoinkucoinSpot, futuresOui
Gate.iogateioSpot, futuresNon
BitgetbitgetSpot, futuresOui
KrakenkrakenSpot, futuresNon
CoinbasecoinbaseSpotNon
BingXbingxSpot, futuresNon
HyperliquidhyperliquidFuturesNon
BackpackbackpackSpot, futuresNon
HTXhtxSpot, futuresNon
BloFinblofinSpot, futuresOui
PhemexphemexSpot, futuresNon
WOO XwooSpot, futuresOui (Application ID)
CoinExcoinexSpot, futuresNon
MetaTrader 5 (forex, métaux, indices)mt5Lots, chemin sans effet de levierIdentifiants du broker
Moteur paperpaper5 000 $ virtuels

Six d'entre eux — Binance, Bybit, OKX, Gate.io, KuCoin et Bitget — ont été vérifiés de bout en bout avec de l'argent réel, à la fois en futures et en spot, avec confirmation que le stop-loss et le take-profit existent bien sur l'exchange lui-même et correspondent exactement aux valeurs enregistrées. Chaque exchange a ses propres particularités, et les différences sont délibérées plutôt que des lacunes : Bybit et Bitget n'acceptent pas une seconde jambe de take-profit en spot, OKX spot est acheminé via l'API brute pour empêcher un compte cash de devenir silencieusement un compte sur marge, Binance spot impose un notionnel minimum avant l'achat, et les achats au marché sur KuCoin sont passés en mode cost.

Le spot et les futures sont toujours tenus séparés. Le même symbole sur les deux marchés correspond à une ligne distincte, un flux de prix distinct et une clé distincte — l'un ne se mélange jamais avec l'autre.

MetaTrader 5 sans aucune installation

Vous n'installez rien pour le forex. Il n'y a pas de VPS à louer, pas de terminal MetaTrader à maintenir actif sur votre propre machine, pas d'Expert Advisor à attacher et pas de compte de pont tiers à acheter. AlgoVesta exécute les terminaux MetaTrader 5 sur ses propres serveurs gérés et les maintient connectés à votre broker en permanence. Vous saisissez vos identifiants de compte une seule fois et votre assistant IA peut ensuite trader ce compte. Les données de position renvoyées à l'assistant sont vérifiées par rapport au terminal, et lorsqu'elles ne peuvent pas être vérifiées, l'outil le dit au lieu de laisser entendre un compte vide.

Feuille de route — actions mondiales

Prévu — pas encore disponible

Le trading d'actions mondiales via Interactive Brokers (IBKR) est prévu, avec pour objectif 170 actions mondiales accessibles depuis la même connexion MCP que le crypto et le forex. Il s'agit d'un élément de la feuille de route et ce n'est pas encore en production aujourd'hui ; rien sur cette page à part ce paragraphe ne le décrit, et aucun outil actuel ne peut trader des actions. À son lancement, cela apparaîtra comme des valeurs venue supplémentaires sous les mêmes outils, le même mur de politique et les mêmes reçus.

Latence mesurée

Ce sont des mesures, pas des chiffres marketing.

Étape Mesuré
Réception et analyse de la requête17–67 ms (médiane 38 ms)
De bout en bout sur MetaTrader 5Environ 1 seconde (849 ms mesurées ; 702 ms pour fermer)
De bout en bout sur un exchange cryptoEnviron 3 secondes (2 785 ms mesurées)
Moteur paperMédiane 318 ms — aucun aller-retour vers l'exchange

Le temps passé dans votre client IA — le modèle qui réfléchit, et vous qui confirmez — n'est pas inclus et dominera généralement. Ce serveur n'est pas une venue d'exécution à faible latence et n'est pas vendu comme tel.

Endpoints REST du panneau

Tout ce que l'IA ne peut pas et ne doit pas faire elle-même se trouve derrière votre session connectée normale.

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

Ce dont vous avez besoin

La connexion MCP elle-même fait partie du produit et n'est pas vendue séparément. Ce qui vous limite en pratique, c'est ce que l'IA est censée atteindre : le trading paper ne nécessite qu'un compte, tandis que le trading live nécessite un forfait payant actif et les comptes connectés que ce forfait autorise — et le trading live MetaTrader 5 avec de l'argent réel nécessite en plus que vous y consentiez explicitement pour ce compte. Les limites de forfait sur le nombre de clés d'exchange et de comptes MetaTrader sont indiquées sur la page de tarification. Vous pouvez tout essayer sur le solde paper de 5 000 $ avant que rien de tout cela ne compte.

Questions fréquentes

Oui, une fois que vous lui donnez une clé avec le live scope, et ce scope n'est délivré qu'après un second facteur. Jusque-là, le même assistant fonctionne sur un solde paper de 5 000 $ avec des outils identiques, ce qui vous permet de répéter tout le workflow avant que le moindre argent réel ne soit accessible.
Non, et vous ne devriez jamais le faire avec aucun outil. Vos clés API restent à l'intérieur d'AlgoVesta, chiffrées, créées sans permission de retrait. L'assistant ne détient jamais qu'un lien MCP, qui est délimité par un scope, à débit limité, vérifié par des règles, révocable individuellement et inutilisable pour faire sortir des fonds d'un exchange.
Elle peut pousser le modèle à essayer. Elle ne peut pas faire réussir la tentative. Les règles sont compilées en JSON et évaluées côté serveur, après que la requête a quitté le modèle, si bien que la persuasion n'a aucune prise. Une violation est rejetée et inscrite dans le journal d'audit, où vous pouvez voir exactement ce qui a été tenté.
Rien ne se produit deux fois. Chaque outil d'écriture nécessite une clé d'idempotence, et une répétition de la même clé renvoie la réponse stockée au lieu d'agir à nouveau. C'est aussi ce qui rend sûre une nouvelle tentative du client après un timeout réseau.
Oui. C'est tout l'intérêt. Une seule connexion couvre chaque compte d'exchange et chaque compte MetaTrader 5 que vous avez connecté, et get_portfolio_context les renvoie tous en un seul appel. Lorsque vous détenez plusieurs comptes sur le même marché, le account paramètre devient obligatoire et une requête ambiguë est refusée plutôt qu'envoyée à un compte par défaut.
Plus maintenant, et il s'agissait d'un vrai bug, pas d'un cas hypothétique. Ces champs étaient auparavant obligatoires, ce qui forçait le modèle à inventer des valeurs, et les mesures ont montré que les paramètres des clients étaient écrasés silencieusement. Désormais, l'assistant reçoit pour instruction de laisser vides les champs non précisés, et le serveur les remplit à partir des paramètres enregistrés dans votre panneau, en indiquant lesquels il a utilisés.
Aucun des trois. AlgoVesta exécute MetaTrader 5 sur ses propres serveurs gérés, connectés à votre broker 24 h/24 et 7 j/7. Vous saisissez vos identifiants de compte une seule fois ; il n'y a rien à installer, louer ou redémarrer.
Non. Rien n'est répliqué depuis qui que ce soit. Vous dirigez votre propre assistant, chaque ordre est vérifié par rapport à vos propres règles, et vous pouvez inspecter et vérifier chaque action après coup via le journal d'audit et la chaîne de reçus signés.
Utilisez le kill switch dans le panneau, ou POST /api/mcp/freeze. Chaque outil renvoie alors user_frozen jusqu'à ce que vous dégeliez. Pour couper un seul client à la place, révoquez simplement cette clé — les autres continuent de fonctionner.
Parce que ces produits n'offrent pas de connecteurs MCP personnalisés. Gemini les prend en charge uniquement dans la CLI, et ChatGPT les propose sur les forfaits payants via le mode développeur. Ce sont toutes deux des restrictions du produit IA, qui s'appliquent à tout serveur MCP, pas seulement celui-ci. Claude, Claude Code et Cursor n'ont pas une telle limitation.
Oui. Chaque action renvoie un reçu signé en ed25519, chaîné par hachage au précédent. Vérifiez-le avec le verify_receipt outil, ou indépendamment par rapport à la clé publique à /mcp/receipts/pubkey. Modifier un ancien reçu casse la chaîne pour tous les reçus suivants, ce qui est exactement ce qui rend toute falsification détectable.
Non, et pas à cause d'une vérification de permission qui pourrait être mal configurée. Les outils n'ont aucun paramètre d'identité du tout — le compte est dérivé de la connexion authentifiée elle-même, de sorte qu'il n'existe aucun argument qu'un attaquant ou un modèle confus pourrait fournir pour atteindre quelqu'un d'autre.
Pas aujourd'hui. Le crypto et le forex MetaTrader 5 sont en production dès maintenant. Les actions mondiales via Interactive Brokers, avec un objectif de 170 actions, sont prévues et arriveront comme valeurs de venue supplémentaires sous les mêmes outils et le même mur de politique.

Connectez un assistant IA à vos comptes

Commencez avec le solde paper de 5 000 $. Pas de carte, rien à installer, et la frontière du live reste fermée jusqu'à ce que vous l'ouvriez délibérément.

Créer un compte gratuit Voir la présentation

Voir aussi : MCP pour assistants IA · Serveur MCP Trading : Claude & ChatGPT vers 16 Bourses + MT5 · exchanges pris en charge · forex MetaTrader 5 · automatisation TradingView · ce qu'est un serveur de trading MCP · sécurité · tarification.

Le trading comporte des risques. L'automatisation ne les supprime pas, et un assistant IA ne constitue pas un conseil en investissement. Commencez en paper.