cd /news/ai-agents/show-hn-hosted-mcp-server-for-16-cry… Β· home β€Ί topics β€Ί ai-agents β€Ί article
[ARTICLE Β· art-164358] src=github.com β†— pub= topic=ai-agents verified=true sentiment=Β· neutral

Show HN: Hosted MCP server for 16 crypto exchanges and MetaTrader 5

AlgoVesta launched a hosted Model Context Protocol server that connects AI clients including Claude, ChatGPT, Cursor, Claude Code and Gemini CLI to 16 crypto exchanges and MetaTrader 5 over a single HTTPS endpoint. The server exposes 20 tools β€” 14 read-only, 1 additive write and 5 destructive β€” with risk rules compiled to JSON and evaluated server-side after the request leaves the model, and every new key starting on a $5,000 paper balance. Each action returns an ed25519-signed, hash-chained receipt, live scope is issued only after a second factor enforced server-side, and the server is hosted and closed-source with authentication via secret link or OAuth 2.1 with mandatory PKCE (S256) and Dynamic Client Registration (RFC 7591).

read17 min views2 publishedNov 5, 2026
Show HN: Hosted MCP server for 16 crypto exchanges and MetaTrader 5
Image: Michielbdejong (auto-discovered)

MCP server for 16 crypto exchanges + MetaTrader 5.

Trade from Claude, ChatGPT, Cursor or any MCP client over one hosted HTTPS connection. Paper by default.

Documentation Β· Tool reference Β· Safety model Β· Tool schemas (JSON) Β· Product overview

AlgoVesta runs a hosted Model Context Protocol server that reaches 16 crypto exchanges and MetaTrader 5 through a single HTTPS endpoint. Claude, ChatGPT, Cursor, Claude Code, Gemini CLI or any other MCP-capable client can read balances, open and close positions, move stop-loss and take-profit, and audit its own actions.

Your risk rules are compiled to JSON and evaluated on the server, after the request leaves the model β€” outside the reach of anything the model can be persuaded to say. Every new key starts on a $5,000 paper balance, and every action returns an ed25519-signed, hash-chained receipt.

Hosted and closed-source. This repository is the public documentation, tool reference and client configuration set. There is nothing to install, build or self-host β€” you connect to the hosted endpoint.

Contents β€” At a glance Β· How it works Β· Install in 2 minutes Β· Connect your client Β· Supported AI clients Β· In use Β· Tools Β· Safety model Β· Venues Β· Performance and limits Β· Endpoints Β· FAQ

| Transport | Remote MCP over Streamable HTTP | | Authentication | Secret link, or OAuth 2.1 with mandatory PKCE ( S256 ) and Dynamic Client Registration (RFC 7591) | | Tools | 20 β€” 14 read-only, 1 additive write, 5 destructive ( reference ) | | Venues | 16 crypto exchanges Β· MetaTrader 5 Β· built-in paper engine | | Default scope | paper β€” $5,000 virtual balance, identical toolset | | Live scope | Issued only after a second factor, enforced server-side | | Risk policy | Compiled to JSON, evaluated deterministically on the server | | Audit | ed25519-signed, hash-chained receipt per action, independently verifiable | | Install | None. Hosted endpoint. | | Registry | com.algovesta/trading β€”server.json is that manifest |

flowchart LR
    A["AI client<br/>Claude, ChatGPT, Cursor, and more"]
    B["AlgoVesta MCP server<br/>scope, rate limit, idempotency"]
    C{"Policy wall<br/>evaluated server-side"}
    R["Refusal<br/>plus audit entry"]
    D["Execution"]
    E["16 crypto exchanges"]
    F["MetaTrader 5<br/>managed terminals"]
    G["Paper engine<br/>5,000 USD virtual"]
    H["ed25519-signed receipt"]

    A -->|MCP over HTTPS| B
    B --> C
    C -->|violates a rule| R
    C -->|allowed| D
    D --> E
    D --> F
    D --> G
    D --> H

The model is the caller, never the authority. It decides what to ask for; the server decides what happens. Your exchange API keys never leave AlgoVesta and are created without withdrawal permission β€” the assistant only ever holds a scoped, revocable MCP link.

There is nothing to install locally: the server is hosted. An AI agent can follow llms-install.md step by step.

  1. Create an AlgoVesta account and open the MCP Connection tab in the panel.
  2. Generate a key. New keys default to the paper scope; the full link is shown once.
  3. Paste the link into your AI client as a custom MCP server.
https://api.algovesta.com/u/avmcp_<your-key>/mcp

That URL is a credential. Treat it like a password. If it leaks, revoke it in the panel β€” revocation takes effect immediately for new connections and drops open event streams within seconds.

Clients that prefer a full authorization flow can use OAuth 2.1 instead, at https://api.algovesta.com/mcp. PKCE ( S256) is mandatory and Dynamic Client Registration is supported, so most clients configure themselves. See docs/AUTHENTICATION.md.

Six walkthroughs below; anything else uses the same URL in whatever field it calls a remote MCP server.

Customize -> Connectors -> + -> Add custom connector, paste the URL, then allow the tools when Claude asks. Walkthrough

claude mcp add --transport http algovesta https://api.algovesta.com/u/avmcp_<your-key>/mcp

chatgpt.com/plugins -> + -> Add custom MCP server -> public endpoint https://api.algovesta.com/mcp (Streamable HTTP, OAuth). Account and workspace policies on OpenAI's side decide who can add custom MCP servers. Walkthrough

~/.cursor/mcp.json, or .cursor/mcp.json inside a project β€” file

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

.vscode/mcp.json β€” file

{
  "servers": {
    "algovesta": {
      "type": "http",
      "url": "https://api.algovesta.com/u/avmcp_<your-key>/mcp"
    }
  }
}

~/.gemini/settings.json β€” file. CLI only; the Gemini web app does not accept custom MCP servers.

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

The three config shapes you will meet, plus a curl connection check: examples/other-clients.md

This is a standard remote MCP server over Streamable HTTP, so anything that speaks remote MCP can connect. The clients below document that support themselves β€” each row links to the client's own configuration docs, which is where the exact field name lives.

Assistants and chat apps β€” 8 #

Client MCP documentation
Claude β€” web, desktop, iOS, Android Custom connectors
ChatGPT β€” custom MCP servers OpenAI MCP docs
Microsoft Copilot Studio agents Extend with MCP
Goose (Block) block.github.io/goose
LibreChat MCP in LibreChat
Open WebUI docs.openwebui.com
Cherry Studio CherryHQ/cherry-studio
Raycast raycast.com

Coding agents and IDEs β€” 19 #

Client MCP documentation
Claude Code Claude Code MCP
OpenAI Codex CLI Codex MCP
Gemini CLI MCP servers in Gemini CLI
Cursor Cursor MCP
VS Code β€” GitHub Copilot MCP servers in VS Code
Windsurf Cascade MCP
Zed Zed MCP
Cline Connecting to a remote server
Roo Code Using MCP in Roo
Kilo Code Using MCP in Kilo Code
Continue MCP deep dive
JetBrains AI Assistant MCP in JetBrains IDEs
Warp Warp MCP
Amazon Q Developer MCP with Amazon Q
Kiro (AWS) Kiro MCP
Sourcegraph Amp Amp manual
Trae Trae MCP
PostHog Code posthog.com/code
Archestra.AI archestra.ai

Frameworks, automation and developer tools β€” 6 #

Client MCP documentation
OpenAI Agents SDK MCP in the Agents SDK
fast-agent evalstate/fast-agent
n8n β€” MCP Client Tool node docs.n8n.io
Postman MCP requests
MCP Inspector modelcontextprotocol/inspector
MCPJam mcpjam.com

Scope of that claim. We have verified Claude end to end against this server. The others are listed because they document remote MCP support β€” not because we individually tested each one. Client support also moves fast, and a given client may gate custom servers behind account or workspace policy (ChatGPT does) or behind its CLI only (the Gemini web app does not accept custom MCP servers). If a listed client misbehaves with us, or one is missing, open an issue.

You never call a tool by name. You ask in plain language; the assistant picks the tool.

You say The assistant reaches for
"What's in my accounts right now, and how has this month gone?" get_portfolio_context β€” every exchange, MT5 account and the paper book in one call β€” thenget_trade_history
"Where is BTC trading on the exchanges I've connected?" compare_venues β€” measured spread, taker fee and, for a given size, slippage
"If I opened 0.05 BTC long on Binance with a 2% stop, what would it cost and would my rules allow it?" simulate_order β€” a dry runincluding the policy verdict
"OK, open it β€” stop 2% below, target 4% above." place_order
"Move the stop on my ETH position up to break-even." modify_position
"Close half of the SOL long." close_position β€” partial on crypto, full close on MT5
"Never risk more than 1% per trade, max 3 positions, stop me after a 5% daily drawdown." compile_policy β€” returns readable JSON you approve
"Show me the receipt for that last order and verify it." verify_receipt β€” signature and hash chain, against apublic key you can fetch yourself
"Run my last 90 days of signals again with a 1% risk cap." simulate_policy , thenget_job_status

And what it will refuse. "Turn on auto-trading for that strategy" β€” refused; auto_trade is not a writable field in any scope. "Trade on Kraken for me" when Kraken is not connected β€” VENUE_NOT_CONNECTED, not a guess. "Open it without a stop" β€” refused, with no saved default to fall back on.

On a paper key every one of those runs against the $5,000 virtual balance with the identical toolset, so the whole workflow can be rehearsed before real money is reachable.

20 tools. Scope read works on any key; paper / live gates the rest. Kind follows each tool's MCP annotations: destructive means the tool can overwrite or remove state (open, close, cancel, move a stop, change a strategy); write (additive) only creates something new. The table is generated from the live tools/list output.

Full tool list #

Tool Title Scope Kind What it does
get_portfolio_context Read portfolio read read-only Normalized portfolio view of all connected exchange accounts + MT5 + paper.
get_market_price Live price read read-only Returns the LIVE price of a crypto or MT5 symbol: last (+ bid/ask if available) + ts + source.
simulate_order Simulate order read read-only SIMULATES an order: expected fill, margin impact, policy check result.
place_order PLACE ORDER paper / live destructive Places an order.
compile_policy Compile policy read read-only Compiles natural-language risk rules into a JSON policy and returns a PREVIEW.
list_open_orders Pending orders read read-only Lists the user's pending limit orders (order_ref, venue, symbol, side, entry_price, size, created_at).
cancel_order Cancel order paper / live destructive Cancels a pending limit order.
close_position Close position paper / live destructive Closes an open position fully or partially (fraction (0,1]).
modify_position Modify SL/TP paper / live destructive Updates the SL/TP of an open position on a crypto exchange or FOREX/MT5.
verify_receipt Verify receipt read read-only Verifies an order receipt: ed25519 signature + per-user hash chain.
replay_channel Replay channel read read-only Answers "what if you had followed this Telegram channel for the last N days under these rules?".
get_trade_history Trade history read read-only Returns the user's CLOSED trades and a performance summary, across crypto exchanges, MetaTrader 5 and the paper account in one list.
compare_venues Compare exchanges read read-only Compares the user's CONNECTED crypto exchanges for one symbol on measured execution cost.
list_strategies List strategies read read-only Lists the user's TradingView strategies with their settings, plan limit and whether real-money execution is currently on.
create_strategy Create strategy paper / live write (additive) Creates a new TradingView strategy.
update_strategy Update strategy paper / live destructive Changes the settings of an existing strategy (leverage, risk, SL/TP percentages, trailing, allowed symbols, target account, and whether it accepts signals at all).
backtest_my_signals Backtest my signals read read-only Answers "what would have happened to MY OWN past signals with different settings?" - for example "5x instead of 10x" or "a 2% stop instead of 1%".
simulate_policy Simulate risk policy read read-only Answers "if I had had this risk rule in place, which of my trades would it have blocked, and what would that have done to my PnL?".
import_tradingview_backtest Import TradingView backtest read read-only Answers "TradingView says my strategy made X - what would it have made through AlgoVesta?".
get_job_status Job status read read-only Returns the state and, once finished, the result of a background job started by backtest_my_signals, simulate_policy or import_tradingview_backtest.

Two of them deserve a note, because what they refuse to do is the point:

  • compare_venues does not route your order. For each connected exchange it reports the bid/ask spread, the public taker fee and, when you give an order size, the slippage that size would pay against the live order book. It does not know your own VIP fee tier, and a venue whose cost could not be measured is left out of the ranking rather than treated as free. You still name the exchange yourself inplace_order .
  • create_strategy / update_strategy cannot turn real money on. A new strategy is always created withauto_trade off, andauto_trade is not in the writable field set β€” an assistant cannot set it, whatever it is asked or persuaded to do. A single order is one action you can see; a strategy keeps trading after the conversation ends, so arming one stays a human decision made in the panel.ip_allowlist is refused for the same reason: it is the second factor that verifies where signals come from.

Full reference with descriptions and JSON Schemas: docs/TOOLS.md Β· machine-readable: tools.json

The AI is the caller β€” never the authority. Full model: docs/SAFETY.md.

Control What it means
Paper by default Every new key starts in paper scope on a $5,000 virtual balance. Real money is a separate, deliberate act: thelive scope is issued only after a second factor (TOTP, or an email code for panel-created keys; over OAuth, TOTP is required), enforced server-side with no exceptions.
Server-side policy wall Max risk per trade, order-size cap, daily-loss cap, position count, leverage cap, venue/symbol/side restrictions β€” compiled to JSON and evaluated deterministically after the request leaves the model. A prompt injection can change what the model sends ; it cannot change how the server evaluates it.
Stop-loss is mandatory No stop-loss and no saved default means the order is refused. The stop cannot be removed later either. On forex/MT5, a take-profit is mandatory too.
Idempotency Every order-shaped tool β€” including the read-only simulate_order , so one key carries from simulation to placement β€” requires a client-generated idempotency key. Repeats replay the stored response instead of acting twice.
Signed receipts Every action returns an ed25519-signed, hash-chained receipt, verifiable against the public key endpoint .
Kill switch and per-key revocation Freeze everything at once, or revoke one client without touching the others.
Structural tenant isolation Tools have no identity parameter at all. The account is derived from the authenticated connection, so there is no argument a confused model or an attacker could supply to reach another account.
No withdrawal path Exchange API keys are created without withdrawal permission and stay inside AlgoVesta, AES-256 encrypted. The AI only ever holds a scoped, revocable MCP link.

Crypto (16) β€” Binance Β· Bybit Β· OKX Β· KuCoin Β· Gate.io Β· Bitget Β· Kraken Β· Coinbase Β· BingX Β· Hyperliquid Β· Backpack Β· HTX Β· BloFin Β· Phemex Β· WOO X Β· CoinEx

Forex, metals, indices β€” MetaTrader 5, zero installation: AlgoVesta runs the MT5 terminals on its own managed servers, connected to your broker 24/7.

Simulation β€” built-in paper engine, $5,000 virtual.

Six exchanges β€” Binance, Bybit, OKX, Gate.io, KuCoin and Bitget β€” have been verified end to end with real money on both futures and spot, with stop-loss and take-profit confirmed on the exchange itself. Each exchange has its own quirks, and the differences are deliberate rather than gaps: Bybit and Bitget do not accept a second take-profit leg on spot; OKX spot is routed through the raw API to keep a cash account from silently becoming a margin account; Binance spot enforces a minimum notional before buying; KuCoin market buys are placed in cost mode. A venue becomes available to the AI only after you connect it β€” asking for one you have not connected returns VENUE_NOT_CONNECTED rather than a guess.

Limit Value
All tool calls, per key 60 / minute
place_order 10 / minute
replay_channel 5 / hour (results cached 24 h)

Measured, not marketing β€” figures measured in August 2026; the averages match the ones published on algovesta.com:

Stage Measured
Request intake and parsing 17–67 ms (median 38, n=6)
End to end on MetaTrader 5 about 1.2 seconds on average, stop-loss and take-profit included (single live demo order: 849 ms)
End to end on a crypto exchange about 4.1 seconds on average, stop-loss and take-profit included (single live order: 2,785 ms)
Paper engine median 318 ms (n=18, min 284, max 769)

Time spent inside your AI client β€” the model thinking, and you confirming β€” is not included and usually dominates. This server is not a low-latency execution venue and is not sold as one.

Purpose URL
MCP β€” secret link https://api.algovesta.com/u/avmcp_<key>/mcp
MCP β€” OAuth 2.1 https://api.algovesta.com/mcp
Live events (SSE) https://api.algovesta.com/mcp/events Β·/u/avmcp_<key>/events
OAuth metadata /.well-known/oauth-authorization-server Β·/.well-known/oauth-protected-resource
Receipt public key /mcp/receipts/pubkey
Tool schemas https://algovesta.com/mcp/tools.json

Published in the official MCP Registry as com.algovesta/trading; server.json in this repository is that manifest.

Can Claude, ChatGPT or Cursor actually place a real trade on my exchange account? #

Yes β€” once you give it a key with the live scope, and that scope is only issued after a second factor. Until then the same assistant runs against a $5,000 paper balance with identical tools, so you can rehearse the entire workflow before any real money is reachable.

Do I have to give my exchange API keys to the AI? #

No, and you should never do that with any tool. Your API keys stay inside AlgoVesta, encrypted, created without withdrawal permission. The assistant only ever holds an MCP link β€” scoped, rate-limited, policy-checked, individually revocable, and useless for moving funds off an exchange.

Can a prompt injection make the AI ignore my risk rules? #

It can change what the model asks for. It does not change how the server answers: your rules are evaluated after the request leaves the model, by code the prompt never reaches, and a violation is rejected and written to the audit log. The limits of that guarantee are worth stating plainly β€” it covers rule evaluation, scope and account isolation, not the wording of what the assistant tells you afterwards.

What happens if the model calls place_order twice by mistake? #

place_order twice by mistake? Nothing happens twice. Every write tool requires an idempotency key, and a repeat of the same key returns the stored response instead of acting again.

How do I stop everything immediately? #

The kill switch in the panel (POST /api/mcp/freeze) stops everything at once; every tool then returns user_frozen. To cut off a single client, revoke just that key.

Ready-to-use files in examples/:

  • TradingView alert templates : six JSON messages (basic entry, multi take-profit, Pine strategy with position state, close, forex on MT5, crypto with margin and leverage) and the field reference the webhook receiver uses.
  • Telegram signal parsing corpus : 30 synthetic signal messages with the expected parse for each, for testing your own copier or seeing which formats the AlgoVesta parser is built for.
  • MCP client code : minimal Python and Node.js programs that connect with a secret link, read the portfolio and place a paper order.
  • Client configs: Cursor ,VS Code ,Gemini CLI .

Account and trading questions: support Β· support@algovesta.com Vulnerability reports: SECURITY.md Client that will not connect, or one missing from the list above: open an issue

AlgoVesta does not generate signals, does not hold, receive or move client funds, and does not provide investment advice. Trading carries risk; automation does not remove it. Every new key starts on paper.

Copyright (c) 2026 AlgoVesta. Documentation and configuration examples in this repository are licensed under CC BY 4.0. The AlgoVesta MCP server itself is proprietary and hosted; this repository contains no server source code.

── more in #ai-agents 4 stories Β· sorted by recency
── more on @algovesta 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/show-hn-hosted-mcp-s…] indexed:0 read:17min 2026-11-05 Β· β€”