MCP 서버

Autoview

io.github.autoview-com/mcp
암호화폐 및 Web3 금융 및 투자 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Builds and optionally submits trading orders across supported exchanges and brokers, manages TradingView webhook alerts, and reports order events.

alert
Build 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. Returns warnings you should read, including never putting the hook's key in the message field. Dry-run by default like `command`; set live:true to build a command that trades for real once the alert fires. Requires your Autoview account token.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['hook_id', 'symbol'], 'properties': {'live': {'type': 'boolean', 'description': 'false (default) = build a dry-run preview command (appends d=1); true = build a command that places a real order when the alert fires'}, 'side': {'enum': ['buy', 'sell'], 'type': 'string', 'description': 'order direction; required unless action is set, where it is an optional buy/sell filter for cancel/close (omit for flat)'}, 'type': {'enum': ['market', 'limit', 'post_only', 'ioc', 'fok', 'stop', 'stop_limit'], 'type': 'string', 'description': 'order type; defaults to market'}, 'unit': {'enum': ['units', 'currency'], 'type': 'string', 'description': '"currency" treats quantity as a CURRENCY amount to convert to units at the resolved price (u=currency) â\x80\x94 e.g. quantity:10 with unit:"currency" on BTC/USD buys $10 of BTC instead of 10 BTC. Only meaningful with a fixed (non-percent) quantity.'}, 'price': {'type': 'number', 'description': 'absolute limit price; required for limit, post_only, ioc, fok, and stop_limit'}, 'token': {'type': 'string', 'description': 'your Autoview account token â\x80\x94 an av_mcp_ personal access token, generate one at /account/tokens/ on the Autoview site. Omit this if your MCP client already sends it as an `Authorization: Bearer` header (Claude Code, Cursor, and most non-browser clients do this automatically once configured).'}, 'action': {'enum': ['cancel', 'close', 'flat'], 'type': 'string', 'description': 'manage EXISTING orders/positions on symbol instead of placing a new one: cancel = cancel open orders, close = close open positions, flat = cancel every order AND close every position (Tradovate only). When set, side (if given) is an optional buy/sell filter (not applicable to flat), and quantity/type/price/trigger/brackets/unit are ignored.'}, 'symbol': {'type': 'string', 'description': 'the instrument symbol, e.g. EUR_USD, XBTUSD, BTC_USD'}, 'hook_id': {'type': 'string', 'description': "the hook whose URL becomes the alert's webhook (see the `hooks` tool)"}, 'trigger': {'type': 'number', 'description': 'absolute trigger (stop) price; required for stop and stop_limit', 'exclusiveMinimum': 0}, 'exchange': {'type': 'string', 'description': "optional â\x80\x94 one of OANDAPRACTICE, KRAKEN, CRYPTO, CRYPTODEMO, BYBITTESTNET, BYBITSPOTTESTNET, TRADOVATESIM validates order-type and bracket support against that exchange's capabilities; any other exchange id known to Autoview (see `catalog`) is also accepted but skips that check; omit entirely to skip validation"}, 'priceRef': {'type': 'number', 'description': 'reference price for percent sizing and brackets', 'exclusiveMinimum': 0}, 'quantity': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'string', 'pattern': '^(100|[1-9][0-9]?)%$'}], 'description': 'order size: a positive number (contracts/units), or a percent-of-balance string like "50%" (1-100%). Required unless action is set.'}, 'stopLoss': {'type': 'number', 'description': 'attached bracket stop-loss as a POINT distance from the fill; pairs with takeProfit or a trail leg', 'exclusiveMinimum': 0}, 'trailStop': {'type': 'number', 'description': 'auto-trail stop distance in points; requires trailActivate', 'exclusiveMinimum': 0}, 'expiration': {'type': 'string', 'description': "ISO 8601 timestamp for TradingView's alert expiration; defaults to 1 year from now"}, 'resolution': {'type': 'string', 'description': 'chart timeframe TradingView\'s create_alert needs; defaults to "1" (1 minute)'}, 'takeProfit': {'type': 'number', 'description': 'attached bracket take-profit as a POINT distance from the fill; pairs with stopLoss or a trail leg', 'exclusiveMinimum': 0}, 'trailActivate': {'type': 'number', 'description': 'points of profit before the trail starts; required whenever trailStop is set', 'exclusiveMinimum': 0}, 'trailFrequency': {'type': 'number', 'description': 'how often the trailing stop re-checks price; defaults to 1 if omitted', 'exclusiveMinimum': 0}, 'sizeAgainstEquity': {'type': 'boolean', 'description': 'for a percent quantity, size against equity instead of available balance (y=equity)'}}}
catalog
Look up exchanges beyond setup's certified seven -- Autoview's integrations cover many more, filterable by paper (testnet/practice/sim, no real money), free (no Autoview subscription required), and name. Each entry's certified flag tells you whether it also works with entry (full order-type/bracket validation + connect) or only command/alert (builds the alert syntax; connect and full validation are certified-only for now) -- see connect_url to add credentials for one. Requires your Autoview account token.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'free': {'type': 'boolean', 'description': 'filter to (true) or exclude (false) exchanges that need no Autoview subscription; omit for both'}, 'name': {'type': 'string', 'description': 'case-insensitive substring match against the exchange\'s display name or id, e.g. "binance"'}, 'paper': {'type': 'boolean', 'description': 'filter to (true) or exclude (false) paper/testnet/sim exchanges; omit for both'}, 'token': {'type': 'string', 'description': 'your Autoview account token â\x80\x94 an av_mcp_ personal access token, generate one at /account/tokens/ on the Autoview site. Omit this if your MCP client already sends it as an `Authorization: Bearer` header (Claude Code, Cursor, and most non-browser clients do this automatically once configured).'}}}
command
Build an Autoview alert command string from structured order fields (symbol, side, quantity, type, price, trigger) without placing an order — the output is the value TradingView's create_alert `message` field should carry. 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 TradingView fires the alert. 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 one of OANDAPRACTICE, KRAKEN, CRYPTO, CRYPTODEMO, BYBITTESTNET, BYBITSPOTTESTNET, TRADOVATESIM for full order-type/bracket validation, or any other exchange id configured on Autoview (see the `catalog` tool) to build a generic command for it with that extra validation skipped; omit exchange entirely to build a generic command routed by whichever exchange(s) the destination hook is linked to.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['symbol'], 'properties': {'live': {'type': 'boolean', 'description': 'false (default) = build a dry-run preview command (appends d=1); true = build a command that places a real order when the alert fires'}, 'side': {'enum': ['buy', 'sell'], 'type': 'string', 'description': 'order direction; required unless action is set, where it is an optional buy/sell filter for cancel/close (omit for flat)'}, 'type': {'enum': ['market', 'limit', 'post_only', 'ioc', 'fok', 'stop', 'stop_limit'], 'type': 'string', 'description': 'order type; defaults to market'}, 'unit': {'enum': ['units', 'currency'], 'type': 'string', 'description': '"currency" treats quantity as a CURRENCY amount to convert to units at the resolved price (u=currency) â\x80\x94 e.g. quantity:10 with unit:"currency" on BTC/USD buys $10 of BTC instead of 10 BTC. Only meaningful with a fixed (non-percent) quantity.'}, 'price': {'type': 'number', 'description': 'absolute limit price; required for limit, post_only, ioc, fok, and stop_limit'}, 'token': {'type': 'string', 'description': 'your Autoview account token â\x80\x94 an av_mcp_ personal access token, generate one at /account/tokens/ on the Autoview site. Omit this if your MCP client already sends it as an `Authorization: Bearer` header (Claude Code, Cursor, and most non-browser clients do this automatically once configured).'}, 'action': {'enum': ['cancel', 'close', 'flat'], 'type': 'string', 'description': 'manage EXISTING orders/positions on symbol instead of placing a new one: cancel = cancel open orders, close = close open positions, flat = cancel every order AND close every position (Tradovate only). When set, side (if given) is an optional buy/sell filter (not applicable to flat), and quantity/type/price/trigger/brackets/unit are ignored.'}, 'symbol': {'type': 'string', 'description': 'the instrument symbol, e.g. EUR_USD, XBTUSD, BTC_USD â\x80\x94 or the exchange-native symbol a TradingView EXCHANGE:TICKER maps to'}, 'trigger': {'type': 'number', 'description': 'absolute trigger (stop) price; required for stop and stop_limit', 'exclusiveMinimum': 0}, 'exchange': {'type': 'string', 'description': "optional â\x80\x94 one of OANDAPRACTICE, KRAKEN, CRYPTO, CRYPTODEMO, BYBITTESTNET, BYBITSPOTTESTNET, TRADOVATESIM validates order-type and bracket support against that exchange's capabilities; any other exchange id known to Autoview (see `catalog`) is also accepted but skips that check; omit entirely to skip validation"}, 'priceRef': {'type': 'number', 'description': 'reference price for percent sizing and brackets', 'exclusiveMinimum': 0}, 'quantity': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'string', 'pattern': '^(100|[1-9][0-9]?)%$'}], 'description': 'order size: a positive number (contracts/units), or a percent-of-balance string like "50%" (1-100%). Required unless action is set.'}, 'stopLoss': {'type': 'number', 'description': 'attached bracket stop-loss as a POINT distance from the fill; pairs with takeProfit or a trail leg', 'exclusiveMinimum': 0}, 'trailStop': {'type': 'number', 'description': 'auto-trail stop distance in points; requires trailActivate', 'exclusiveMinimum': 0}, 'takeProfit': {'type': 'number', 'description': 'attached bracket take-profit as a POINT distance from the fill; pairs with stopLoss or a trail leg', 'exclusiveMinimum': 0}, 'trailActivate': {'type': 'number', 'description': 'points of profit before the trail starts; required whenever trailStop is set', 'exclusiveMinimum': 0}, 'trailFrequency': {'type': 'number', 'description': 'how often the trailing stop re-checks price; defaults to 1 if omitted', 'exclusiveMinimum': 0}, 'sizeAgainstEquity': {'type': 'boolean', 'description': 'for a percent quantity, size against equity instead of available balance (y=equity)'}}}
connect
Connect one of the seven certified exchanges (see setup's exchange list) 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 (no exchange secret can be pasted into this chat), then call connect again with the same exchange. 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.
멱등성
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['exchange'], 'properties': {'token': {'type': 'string', 'description': 'your Autoview account token â\x80\x94 an av_mcp_ personal access token, generate one at /account/tokens/ on the Autoview site. Omit this if your MCP client already sends it as an `Authorization: Bearer` header (Claude Code, Cursor, and most non-browser clients do this automatically once configured).'}, 'hook_id': {'type': 'string', 'description': 'link this specific existing hook instead of letting connect pick or create one (see the `hooks` tool for your hook ids)'}, 'exchange': {'enum': ['OANDAPRACTICE', 'KRAKEN', 'CRYPTO', 'CRYPTODEMO', 'BYBITTESTNET', 'BYBITSPOTTESTNET', 'TRADOVATESIM'], 'type': 'string', 'description': 'the exchange to connect'}}}
entry
Place an order on a supported exchange, 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. 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 ever enters this chat. 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. Requires your Autoview account token.
파괴적 작업 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['hook_id', 'symbol'], 'properties': {'live': {'type': 'boolean', 'description': 'false (default) = a dry-run preview that returns the parsed order without placing it; true = place a real order on your live account'}, 'side': {'enum': ['buy', 'sell'], 'type': 'string', 'description': 'order direction; required unless action is set, where it is an optional buy/sell filter for cancel/close (omit for flat)'}, 'type': {'enum': ['market', 'limit', 'post_only', 'ioc', 'fok', 'stop', 'stop_limit'], 'type': 'string', 'description': 'order type; defaults to market. limit/post_only/ioc/fok and stop_limit need a price; stop/stop_limit need a trigger. An entry stop keeps the order side. Not every exchange supports every type (e.g. OANDA has no stops; Kraken spot no ioc/fok).'}, 'unit': {'enum': ['units', 'currency'], 'type': 'string', 'description': '"currency" treats quantity as a CURRENCY amount to convert to units at the resolved price (u=currency) â\x80\x94 e.g. on BTC/USD, quantity:10 with unit:"currency" buys $10 of BTC instead of 10 BTC. Only meaningful with a fixed (non-percent) quantity. On TRADOVATESIM also pass priceRef (or price) â\x80\x94 see priceRef.'}, 'price': {'type': 'number', 'description': 'absolute limit price; required for limit, post_only, ioc, fok, and stop_limit. Also accepted (optional) on a market order as a stand-in for priceRef.'}, 'token': {'type': 'string', 'description': 'your Autoview account token â\x80\x94 an av_mcp_ personal access token, generate one at /account/tokens/ on the Autoview site. Omit this if your MCP client already sends it as an `Authorization: Bearer` header (Claude Code, Cursor, and most non-browser clients do this automatically once configured).'}, 'action': {'enum': ['cancel', 'close', 'flat'], 'type': 'string', 'description': "manage EXISTING orders/positions on symbol instead of placing a new one: cancel = cancel open orders, close = close open positions, flat = cancel every order AND close every position (Tradovate/TRADOVATESIM only â\x80\x94 see setup's flat per exchange). When set, side (if given) is an optional buy/sell filter (not applicable to flat), and quantity/type/price/trigger/brackets/unit are ignored."}, 'symbol': {'type': 'string', 'description': 'the instrument symbol, e.g. EUR_USD, XBTUSD, BTC_USD'}, 'hook_id': {'type': 'string', 'description': 'use the credentials already linked to this hook (see the `hooks` tool). The hook must belong to your account.'}, 'trigger': {'type': 'number', 'description': 'absolute trigger (stop) price; required for stop and stop_limit', 'exclusiveMinimum': 0}, 'exchange': {'enum': ['OANDAPRACTICE', 'KRAKEN', 'CRYPTO', 'CRYPTODEMO', 'BYBITTESTNET', 'BYBITSPOTTESTNET', 'TRADOVATESIM'], 'type': 'string', 'description': 'the exchange to trade on; omit when hook_id links to exactly one exchange (see the hooks tool) -- otherwise required to disambiguate'}, 'priceRef': {'type': 'number', 'description': 'reference price for percent sizing and brackets (price=); percent quantity divides balance by it. Optional on exchanges with a live quote feed (the zone fetches one); REQUIRED on TRADOVATESIM (no live market-data feed â\x80\x94 Tradovate charges separately for it, and a Simulation account never has it) whenever quantity is a percent, unit is "currency", OR any of stopLoss/takeProfit/trailStop is set. Omitting it there fails late with a live exchange error instead of a clear one â\x80\x94 pass an approximate current price.', 'exclusiveMinimum': 0}, 'quantity': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'string', 'pattern': '^(100|[1-9][0-9]?)%$'}], 'description': 'order size: a positive number (contracts/units), or a percent-of-balance string like "50%" (1-100%). Required unless action is set. On TRADOVATESIM (no live market-data feed), a percent quantity also requires priceRef â\x80\x94 see priceRef.'}, 'stopLoss': {'type': 'number', 'description': 'attached bracket stop-loss as a POINT distance from the fill; pair with takeProfit for a fixed OCO, or with a trailing leg. Market entry, bracket-capable exchanges only (Tradovate). On TRADOVATESIM also pass priceRef (or price) â\x80\x94 see priceRef.', 'exclusiveMinimum': 0}, 'trailStop': {'type': 'number', 'description': 'attached TRAILING stop as a POINT distance the stop keeps behind price once the trail activates (atsl=). Requires trailActivate. Rides winners: pairs with a stopLoss (hard stop + trail) or stands alone. Market entry, trail-capable exchanges only (Tradovate). On TRADOVATESIM also pass priceRef (or price) â\x80\x94 see priceRef.', 'exclusiveMinimum': 0}, 'takeProfit': {'type': 'number', 'description': 'attached bracket take-profit as a POINT distance from the fill; pair with stopLoss, or with a trailing leg. On TRADOVATESIM also pass priceRef (or price) â\x80\x94 see priceRef.', 'exclusiveMinimum': 0}, 'trailActivate': {'type': 'number', 'description': 'POINTS of profit the price must move before the trailing stop starts trailing (atx=). Required whenever trailStop is set', 'exclusiveMinimum': 0}, 'trailFrequency': {'type': 'number', 'description': 'how often the trailing stop re-checks price (atf=); defaults to 1 if omitted', 'exclusiveMinimum': 0}, 'sizeAgainstEquity': {'type': 'boolean', 'description': 'for a percent quantity, size against equity instead of available balance (y=equity)'}}}
events
Read 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 a TradingView (or other webhook) alert 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.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'description': 'max events to return (default 20)', 'exclusiveMinimum': 0}, 'token': {'type': 'string', 'description': 'your Autoview account token â\x80\x94 an av_mcp_ personal access token, generate one at /account/tokens/ on the Autoview site. Omit this if your MCP client already sends it as an `Authorization: Bearer` header (Claude Code, Cursor, and most non-browser clients do this automatically once configured).'}, 'trace': {'type': 'string', 'description': "the trace id returned by the entry tool for the order you want to inspect; omit to list your account's recent events instead"}, 'hook_id': {'type': 'string', 'description': 'when trace is omitted, narrow the account-wide listing to events reported for this hook'}, 'canonical_id': {'type': 'string', 'description': 'when trace is omitted, narrow the account-wide listing to events reported for one webhook delivery (the canonical id a webhook call produces)'}}}
hooks
List your Autoview webhook URLs — the destination for a TradingView (or any other) alert's webhook field. 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.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'token': {'type': 'string', 'description': 'your Autoview account token â\x80\x94 an av_mcp_ personal access token, generate one at /account/tokens/ on the Autoview site. Omit this if your MCP client already sends it as an `Authorization: Bearer` header (Claude Code, Cursor, and most non-browser clients do this automatically once configured).'}}}
setup
Read 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 (supported order types, symbol format example, bracket/flat support, whether a manual priceRef is required, whether it's a free paper/no-real-money venue, its setup_url and required credential labels), 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.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'token': {'type': 'string', 'description': 'your Autoview account token â\x80\x94 an av_mcp_ personal access token, generate one at /account/tokens/ on the Autoview site. Omit this if your MCP client already sends it as an `Authorization: Bearer` header (Claude Code, Cursor, and most non-browser clients do this automatically once configured).'}}}
변경됨
alert
2026년 10월 3일 2:52 AM
변경됨
command
2026년 10월 3일 2:52 AM
변경됨
entry
2026년 10월 3일 2:52 AM
추가됨
catalog
2026년 10월 3일 2:52 AM
추가됨
connect
2026년 10월 3일 2:52 AM
변경됨
setup
2026년 10월 3일 2:52 AM
변경됨
alert
2026년 9월 25일 2:51 AM
변경됨
command
2026년 9월 25일 2:51 AM
변경됨
hooks
2026년 9월 25일 2:51 AM
변경됨
events
2026년 9월 25일 2:51 AM
변경됨
entry
2026년 9월 25일 2:51 AM
변경됨
setup
2026년 9월 25일 2:51 AM
추가됨
alert
2026년 9월 21일 2:50 AM
변경됨
command
2026년 9월 21일 2:50 AM
변경됨
hooks
2026년 9월 21일 2:50 AM
변경됨
events
2026년 9월 21일 2:50 AM
변경됨
entry
2026년 9월 21일 2:50 AM
추가됨
setup
2026년 9월 21일 2:50 AM
추가됨
command
2026년 9월 17일 12:40 PM
추가됨
hooks
2026년 9월 17일 12:40 PM
추가됨
events
2026년 9월 17일 12:40 PM
추가됨
entry
2026년 9월 17일 12:40 PM