Skip to main content

Autoview

com.autoview/mcpVersion 0.118.2

Place and inspect orders on your own exchange accounts from an MCP-connected agent.

Status

Responds508 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 13:48 UTC
Latency
508 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://api.autoview.com/mcp/Responds508 ms
No sign-in

Claude Code

claude mcp add --transport http autoview https://api.autoview.com/mcp/

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: autoview
Remote MCP server URL: https://api.autoview.com/mcp/

Cursor

{
  "mcpServers": {
    "autoview": {
      "url": "https://api.autoview.com/mcp/"
    }
  }
}

VS Code

code --add-mcp '{"name":"autoview","type":"http","url":"https://api.autoview.com/mcp/"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

20 tools

Tools of Autoview
Read-only
Idempotent
Open world
alertBuild everything TradingView's create_alert(webhook, message, expiration, resolution) needs, in one call: fuses `command` (the message) and `hooks` (the webhook URL for hook_id), and fills in the expiration (default 1 year out -- TradingView itself defaults to only 30 days, which silently stops the alert) and resolution (default "1") TradingView also needs. The order is validated against the exchange(s) hook_id is actually linked to and rejected if it could never fire there. Returns warnings you should read, including never putting the hook's key in the message field and a fan-out warning when the hook links more than one exchange. Pass the alert field instead of the structured fields to use raw webhook command text with any key a webhook accepts. Dry-run by default like `command`; set live:true to build a command that trades for real once the alert fires. For any other sender, `command` + `hooks` give the same message and webhook URL; expiration and resolution are TradingView settings only. Requires your Autoview account token.NoYesYesNo
catalogList every exchange configured on Autoview, filterable by paper (testnet/practice/sim, no real money), free (no Autoview subscription required), and name. Every listed exchange works with entry, command, alert and connect once its credentials are linked to one of your hooks (the exchange itself validates the order); linkable ones also take paper keys via link -- see connect_url to add credentials for one. Pass exchange (any spelling of its id, e.g. "OANDAPRACTICE") to get that one exchange in detail instead of the list: credentials is a JSON Schema whose property keys are exactly the keys link takes (titles are the exchange's own labels, required lists the ones it needs), plus linkable and unsupported_parameters (command parameters the exchange rejects, e.g. sl/tp; an attached bracket using one is refused up front). The list reply also carries language: the card for the one-line Autoview trade language that command({ line }) accepts. Requires your Autoview account token.NoYesYesNo
commandBuild an Autoview alert command string from structured order fields (symbol, side, quantity, type, price, trigger), or from ONE line of the Autoview trade language (line, e.g. "buy(BTCUSD, 0.2, -0.5%)"; grammar in catalog's language card), without placing an order. A line reply also carries echo, one plain sentence stating the resolved order: confirm the sentence, not the string: the output is the alert body any webhook sender POSTs to a hook URL (for TradingView, the value create_alert's `message` field carries). Also builds cancel/close/flat management commands via `action` (see entry's description). Dry-run by default: a bare call returns a preview command (appends d=1); set live:true to build a command that trades for real once the alert fires. Pass the alert field instead to check and return raw webhook command text with any key a webhook accepts. Prefer the `alert` tool if you also need the destination webhook, expiration, and resolution in one call. Requires your Autoview account token; live:true requires a live-scoped token. exchange is optional: pass any exchange id configured on Autoview (see the `catalog` tool; a bracket is refused if that exchange lists sl/tp as unsupported); omit exchange entirely to build a generic command routed by whichever exchange(s) the destination hook is linked to.NoYesYesNo
connectConnect any exchange configured on Autoview (see catalog) to your account: creates a webhook and links it to your already-saved credentials for that exchange, the same steps 2-4 the website's setup wizard runs. Safe to call more than once -- if a webhook is already linked, it reports connected:true and creates nothing new. If you have no credentials saved for this exchange yet, returns connect_url instead: open it in a browser to add them, then call connect again with the same exchange (for a paper/testnet exchange you can instead call link with its keys; real-money keys are browser-only). Connecting a real-money (non-paper) exchange requires a live-scoped token; any token can connect a paper/testnet exchange. Requires your Autoview account token.NoNoYesNo
entryPlace an order on any exchange you have linked to a hook, right now — or manage existing orders/positions on `symbol` via `action` (cancel open orders, close open positions, or flat/liquidate everything — Tradovate only). You fill structured order fields (symbol, side, quantity, type, price, trigger) — Autoview assembles the order for you. Or pass alert: the same command text a webhook body carries, which reaches the engine unchanged, so every syntax key a webhook supports is supported here. Dry-run by default: a bare call returns the parsed order without placing it; set live:true to place a real order. On a paid exchange without an active Autoview subscription, live:true is silently downgraded to a dry-run — the response then carries dry_run_forced:true and a dry_run_reason explaining why (see the `setup` tool for which exchanges this applies to, and where to subscribe). The order is relayed to the exchange asynchronously: this returns { queued, trace, canonical_id } immediately, not the fill. For a dry-run (the default), entry waits up to ~10s for the exchange's own reply and returns it as dry_run_events when it arrives in time — otherwise dry_run_pending:true, and you can poll the `events` tool with canonical_id (or trace) a moment later. Credentials come from hook_id -- the credentials you already linked to one of your hooks (see the `hooks` or `setup` tool) -- so no exchange secret is passed with the order. exchange is optional when that hook links to exactly one exchange; pass it explicitly if the hook links to more than one. If you don't have credentials linked yet, use the `command` tool to check an order's shape without a hook. Live limits: a live:true order (not cancel/close/flat) must fit this token's user-set caps AND, once your user has set them, the account caps (they cover every agent token on the account together; with none set, the token's caps alone apply), and any limits your user set for one exchange or one symbol on it, which can only be tighterYesNoNot declaredYes
eventsRead what your orders did. Pass trace (the id entry or command's caller received) to read one order's events; omit trace to list your account's recent events instead, newest first, optionally narrowed by hook_id and/or canonical_id — this is the only way to see an order any webhook sender (TradingView, a script, another platform) fired directly, since it never went through entry and has no trace. Requires your Autoview account token. Poll this a moment after an order if the events are not there yet — the exchange reports back out-of-band.NoYesNot declaredNo
explain_commandExplain an existing Autoview command / alert message in plain English: what the engine will actually do with it on the named exchange (side, size, order type, price, brackets, account, dry run), plus caveats where that exchange quietly downgrades or ignores a key, or where the engine refuses the line. For example, Alpaca, Binance, Binance Delivery, ByBit Copy, Capital.com, Charles Schwab, OANDA and Tradovate have no post-only order, so the engine refuses t=post there and sends nothing, because the order would go out as a plain limit order that can fill at once; send t=limit for a plain limit. Accepts the classic key=value form (several lines, | or & legs included) or a one-line v3 call like buy(BTCUSD, 0.1, -1%). Returns { explanation: string, lines: [{ line, text, caveats: [{ text }], venue }] } or { error }. Read-only: it parses text only, never reads an account, a key, or sends anything. Describes, never recommends. No token, no account: works for a guest. To see a simulated fill beside the explanation, use sandbox_run.NoYesYesNo
feedback_statusRead where one send_feedback message stands: pending (waiting for a person to review it), approved (passed on to the Autoview team) or declined (reviewed and not passed on), with received_at. Pass the id send_feedback returned and the same account token it was sent with. Only the status comes back, never the message or contact. Feedback sent without a token has no status to read. Returns { id, status, received_at, note }. A refusal returns { error, code, fix }: bad_id, not_found (no such id for this account; the same answer for an id that belongs to someone else), invalid_token, feedback_unavailable. Do what fix says.NoYesYesNo
hooksList your Autoview webhook URLs: the address any webhook sender POSTs an alert to (a script or cron job, n8n, Zapier, your own server, or a TradingView alert's webhook field). The body is the command text from `command`, sent as plain text, a JSON string, or JSON {"alert": "..."} (form posts are refused). Each hook already knows which exchange(s) it is linked to; there is nothing further to configure on the Autoview side. Pair with the `command` tool (or use `alert` to build both at once). Requires your Autoview account token. The returned URL is itself a bearer secret for unattended trading — treat it like a password; rotate a hook's key from /account/hooks/ on the Autoview site if it leaks.NoYesNot declaredNo
linkSave a PAPER/TESTNET exchange's API keys to your account and link them to a webhook, in one step -- for an agent that has a practice account's keys and no browser. Only ALPACAPAPER, BINANCEDELIVERYTESTNET, BINANCEFUTURESTESTNET, BINANCETEST, BITGETDEMO, BITGETMIXDEMO, BITMEXTESTNET, BYBITCOPYTESTNET, BYBITSPOTTESTNET, BYBITTESTNET, CAPITALDEMO, CRYPTODEMO, DERIBITTESTNET, GATEFUTURESTESTNET, GEMINISANDBOX, HYPERLIQUIDTESTNET, OANDAPRACTICE, OKXDEMO, OKXEEADEMO, OKXUSDEMO, TRADOVATESIM are accepted (they never move real money); real-money exchanges are refused whatever your token's scope, and their keys must be added on autoview.com in a browser (see connect). The credentials object uses named keys (public, private, passphrase, email, vault, id, cid, sec); which of them an exchange takes, and what each is called on that exchange, is in catalog({ exchange }): its credentials schema lists the exact keys (titles are the exchange's own labels) and which are required. The keys are encrypted and stored exactly as the website's setup form stores them, and are never echoed back. hook_id, if given, must be one of your own hooks with no exchange linked yet (an order fires on every exchange a hook links); omit it to use an empty hook of yours or get a new one. Then call entry with the returned hook_id (dry-run by default) to check the keys work. Requires your Autoview account token; any token can link a paper exchange.NoNoNoNo
live_limitsRead this token's live limits: the max order size and daily limit (USD notional: quantity x limit price, or quantity x trigger price when that is higher, or on a sell quantity x current bid when that is higher) your user set for this token, the account caps that cover every agent token on the account together (the hard outer limit once set; account.set is false when your user has not set them, and then the token's own caps alone apply), any tighter limits your user set for one exchange or one symbol on it (venue_caps, with today's use there), the most live orders this token may place in any rolling minute (max_orders_per_minute; null = no rate limit), how much of each is used today, and whether this token can place a live entry order right now. Read-only: an agent cannot set or raise these; only the user can, at /account/tokens/ (set_at). The day is the UTC calendar day (resets_at). Returns { live, max_order_usd, daily_limit_usd, used_today_usd, remaining_today_usd, account: { set, max_order_usd, daily_limit_usd, used_today_usd, remaining_today_usd }, effective_max_order_usd, effective_remaining_today_usd, venue_caps, max_orders_per_minute, agent_trading_paused, paused_at, token_paused, token_paused_at, day, resets_at, unit, set_at, can_place_live, code?, reason? }. agent_trading_paused true means your user has paused all agent trading on the account (code agent_trading_paused); only your user can turn it off. token_paused true means your user has paused this token (code agent_token_paused); only your user can turn it off. Tell your user these numbers before going live. Requires your Autoview account token.NoYesYesNo
paper_ledgerRead a paper ledger back: its open positions, cash and the last fills, newest first. Nothing is sent to an exchange. Three forms. With paper_id (the id a no-token paper fill on entry returned) and no token: that one guest ledger, returned as { paper_ledger: true, exchange, cash, positions: [{ symbol, qty, avg_price, mark, mark_side, quote_at, unrealised_pnl }], fills: [{ symbol, side, qty, price, notional, bid, ask, quote_at, at }], more_fills, orders, note }. orders lists the ledger's newest paper limit orders, any state: [{ order_id, symbol, side, qty, limit_price, state (open, filled or cancelled), at, closed_at }]. Before it answers, the read asks the current quote for each symbol with an open order and fills each open order that quote crosses, at its limit price. Each position is marked at the current quote on its symbol: mark is the bid for a long and the ask for a short (mark_side says which), quote_at is when the quote was read, and unrealised_pnl is (mark - avg_price) x qty. Up to 10 symbols are quoted per ledger, each waiting up to 3 seconds; a position with no quote has mark, quote_at and unrealised_pnl null and a mark_reason (cap when the ledger holds more symbols than that, otherwise the quote's code, such as quote_timeout). With your user's Autoview account token and no paper_id: the account's own paper ledgers, one per exchange, as { paper_ledger: true, ledgers: [{ exchange, cash, positions, fills, more_fills }], note }; ledgers is empty when the account has none yet. With the token and a paper_id: that guest ledger moves onto the account (first claim wins; the reply carries claimed:true on the call that moved it) and is returned in the account form, ledgers holding just that one; this is the only form that writes, and once moved the paper_id no longer works without the token. qty is signed (negative is short); positions that are flat are left out; cash is null until a starting balance is set; amounts are in the symbol's quote currency. more_fills is NoNoYesNo
paper_resetStart a paper ledger over with a starting balance: sets its cash to balance and clears its positions. Earlier fills stay in its history. Nothing is sent to an exchange. After a reset, each paper fill on that ledger moves cash: a buy takes its notional (quantity x price) from cash and a sell adds its notional; a buy that costs more than the cash fills nothing and entry returns paper_insufficient_cash. Without a reset cash stays null and every order fills. Two forms. With paper_id (the id a no-token paper fill on entry returned) and no token: that one guest ledger. With your user's Autoview account token and no paper_id: the account's paper ledger on exchange, which its first token fill on entry opened or a paper_id claim moved onto the account (paper_ledger_none if there is none). A paper_id claimed by an account no longer works here without the token: reset that ledger with the token form. It also cancels the ledger's open paper limit orders, so none of them fills later against the new cash. Returns { paper_reset: true, exchange, cash, positions: [], cancelled_orders (how many open orders it cancelled), note }. cash is in the quote currency of the symbols traded, unconverted. A refusal returns { error, code }: paper_reset_invalid (exchange missing, or balance not a positive number up to 1000000000000), paper_id_unknown (no guest ledger has that paper_id), paper_id_other_exchange (the ledger is on another exchange), paper_reset_needs_id (neither paper_id nor a token), invalid_token, paper_exchange_out_of_scope (the token is not scoped for that exchange), paper_ledger_none (the account has no paper ledger on that exchange), paper_ledger_unavailable (nothing changed; try again shortly), paper_rate_limited (the paper_id form with no token is limited to 60 per hour from each connection, counted together with paper_ledger; wait until retry_at).YesNoYesNo
pricingWhat going live on Autoview costs, per venue. No token, no account: read-only, from Autoview's published price list. Each live exchange is its own subscription (most are $39.99 a month or $399.99 a year); practice/demo venues are free, and a few venues are free live. Returns { currency: "USD", venues: [{ exchange, name, live_monthly, live_yearly, demo, note, free_practice_venue?, live_venue? }], unknown?: [{ input, code: "unknown_exchange", fix }], how_to_go_live, source }. live_monthly and live_yearly are dollars (live_yearly is null when there is no yearly plan); demo is true for a practice venue (no real money, $0). Omit exchanges to list every venue. A refusal returns { error, code, fix }: bad_exchanges, too_many_exchanges, unknown_exchange. Do what fix says.NoYesYesNo
revoke_tokenRevoke the token this call is made with, so it stops working at once: every later call with it is refused. It only ever revokes the calling token (there is no target to pass), never another token of the account. Already revoked or expired counts as done (ok, already_revoked:true), not as an error. Needs the token's "Allow revoke and unlink" permission, which is off until your user ticks it at /account/tokens/. Requires your Autoview account token.YesNoYesNo
sandbox_resultsRead the simulated fills stored for a sandbox_id (from sandbox_run, or any Alert Sandbox webhook id), newest first. No token, no account, no key: simulation only, no real order was placed. Returns { sandbox: true, real_order_placed: false, notice, sandbox_id, alerts: [{ received_at, seq?, orders?: [same shape as sandbox_run orders, including fill.status (filled, not_filled, no_price or nothing_to_close), fill.origin, fill.price_label, fill.price_warning and fill.price_error], error? }], more, book, next_step } where alerts lists the newest 10 and more is true when older alerts exist beyond them. book = { positions: [{ exchange, symbol, net_qty, avg_entry, realized_pnl, last_fill_price, fills }], unvalued: [{ exchange, symbol, count }], unvalued_count, complete, method, note } is worked out on this call from up to 1000 stored alerts (an id with no account holds fewer, so it covers the whole store): average-cost, each market starting flat at its oldest fill read, no cash and no fees; net_qty is negative for a short and avg_entry is null when flat. Fills with no price or a percent qty are counted in unvalued and never valued; complete is false when older fills exist beyond the read. next_step = { market, practice_venue, practice_venue_name, same_venue, free, connect_url, text } names the free testnet or demo venue for the newest order's market and the page where your user connects it; practice_venue is null when Autoview has no match, and free is false when the only demo is not free to open. Pass text to your user as the next step. A refusal returns { error, code, fix }: bad_sandbox_id (malformed id), sandbox_refused (e.g. the id belongs to an account), sandbox_rate_limited, sandbox_bad_answer, sandbox_unreachable, sandbox_timeout, internal_error. Do what fix says. Fill model (every fill carries it as fill_model): each order fills at one snapshot price taken when the alert arrives, either the venue's public ticker (its best ask for a buy and best bid for a sell when tNoYesYesYes
sandbox_runRun one alert through Autoview's Alert Sandbox and see exactly what Autoview would do with it: the parsed orders and a simulated fill for each. No token, no account, no exchange key: simulation only, no real order is placed. Send the order one of two ways: command (alert text: the classic key=value form "e=kraken s=BTCUSD b=buy q=0.01" or a v3 line "buy(BTCUSD, 0.01)"), or order (structured: { "exchange": "oanda", "symbol": "EURUSD", "side": "buy", "qty": 1000 }). Not both. A limit order is { ..., "type": "limit", "limit_price": 50000 }. order takes only exchange, symbol, side, qty, type and limit_price: order.price is refused (order_bad_field), because the top-level price is a different thing, the market price you read, not a limit. To close, send command with c=position (for example "e=kraken s=XBTUSD c=position") and the same sandbox_id: it closes that sandbox_id's paper position on the symbol at market, a long by a sell at the bid and a short by a buy at the ask. Prices. Each fill is priced in this order and labelled with where the price came from (fill.origin): own_key (the user's own connected account; not available yet, coming), venue_ticker (the venue's free public ticker, e.g. Kraken, Coinbase, OKX, Bybit for crypto), caller (a price you pass in price), alert_fp (fp= in the alert, e.g. TradingView {{close}}). If Autoview has no price for the market (stocks, most forex, futures), read the price from your own user's data source and pass it as price (plus price_source and price_time); the fill is then labelled caller-supplied, never presented as Autoview's quote. Returns { sandbox: true, real_order_placed: false, notice, sandbox_id, webhook_url, compiled?, orders: [{ exchange, side, symbol, qty, type, order_price?, fill }], explanation?, next }. Fill shapes. A priced fill is { status: "filled", price, price_label, price_source, origin, origin_note, priced_at, price_age_ms, side_of_book?, limit?, price_warning?, caller_price_source?, caller_price_time? }. pNoNoNoYes
send_feedbackSend your user's feedback to the Autoview team: a feature request, a bug report, a question, or anything else. Works with no account and no token (as a guest), or with your user's token. Each message is saved for a person to review before it goes to the team; there is no set response time. With a token, the account is attached on our side from the token, so do not add it. Never put passwords, API keys or other secrets in message. If your user wants an answer, put a way to reach them in contact (for example an email address), or with a token set contact to true to use the address on the account. Show your user the message and get their go-ahead before sending. message is up to 4000 characters. Limit: 2 per hour for each account, or for each guest. Returns { received, id, status, guest, remaining_this_hour, note }; pass note to your user. A refusal returns { error, code, fix }: bad_kind, message_empty, message_too_long, contact_too_long, invalid_token, feedback_rate_limited (with retry_at), feedback_unavailable, feedback_store_failed. Do what fix says.NoNoNoYes
setupRead this FIRST. Returns your account overview: token scopes (live/exchange), which exchanges your token can call at all (callable), which of those allow a real live order right now vs. force a dry-run for lack of an active subscription (live_allowed/dry_run_forced, with upgrade_url when forced), per-exchange facts (id, whether it is free, whether it is a paper/no-real-money venue, whether the `link` tool accepts it (linkable), the parameters its integration lists as unsupported (unsupported_parameters), its setup_url and its required credential labels (credentials)), and your hooks with their linked exchanges. If no hook is linked to any exchange yet, recommended_first_exchange points at a free paper venue to start with. failing_hooks flags any hook whose last several alerts all failed with the SAME error (a stuck webhook loop). Requires your Autoview account token.NoYesYesNo
unlinkRemove one of your hooks, the same as deleting it by hand on autoview.com: its exchange links, then the hook itself (alerts sent to its URL stop placing orders), then any saved exchange API keys no other hook still uses (real-money keys included; keys another hook links are kept). The token must be scoped for every exchange the hook links, and a hook linking a real-money exchange needs a live-scoped token, the same as connect. One transaction, all or nothing. A hook that is already gone, or is not on your account, is reported as ok with already_gone:true and nothing is deleted. Needs the token's "Allow revoke and unlink" permission, which is off until your user ticks it at /account/tokens/. Requires your Autoview account token.YesNoYesNo

Details

Registry status
Active
Published
Nov 12, 2026
Updated
Nov 12, 2026
Categories (suggested)
Invoicing and accountingSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing