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', 'side', 'quantity'], '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'}, 'type': {'enum': ['market', 'limit', 'post_only', 'ioc', 'fok', 'stop', 'stop_limit'], 'type': 'string', 'description': 'order type; defaults to market'}, '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).'}, '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': {'enum': ['OANDAPRACTICE', 'KRAKEN', 'CRYPTO', 'CRYPTODEMO', 'BYBITTESTNET', 'BYBITSPOTTESTNET', 'TRADOVATESIM'], 'type': 'string', 'description': "optional â\x80\x94 validate order-type and bracket support against this exchange's capabilities; omit to skip that check"}, '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%)'}, '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)'}}}
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. 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 to also validate order-type/bracket support for that exchange; omit it 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', 'side', 'quantity'], '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'}, 'type': {'enum': ['market', 'limit', 'post_only', 'ioc', 'fok', 'stop', 'stop_limit'], 'type': 'string', 'description': 'order type; defaults to market'}, '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).'}, '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': {'enum': ['OANDAPRACTICE', 'KRAKEN', 'CRYPTO', 'CRYPTODEMO', 'BYBITTESTNET', 'BYBITSPOTTESTNET', 'TRADOVATESIM'], 'type': 'string', 'description': "optional â\x80\x94 validate order-type and bracket support against this exchange's capabilities; omit to skip that check"}, '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%)'}, '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)'}}}
entry
Place an order on a supported exchange, right now. 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, so this returns { queued, trace } immediately, not the fill — pass the trace to the `events` tool to read what the order did. 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. Requires your Autoview account token.
可能执行破坏性操作 可访问外部资源
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['hook_id', 'symbol', 'side', 'quantity'], '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'}, '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).'}, '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).'}, '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 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%). 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 support, whether a manual priceRef is required), and your hooks with their linked exchanges. 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年9月25日 02:51
已更改
command
2026年9月25日 02:51
已更改
hooks
2026年9月25日 02:51
已更改
events
2026年9月25日 02:51
已更改
entry
2026年9月25日 02:51
已更改
setup
2026年9月25日 02:51
已添加
alert
2026年9月21日 02:50
已更改
command
2026年9月21日 02:50
已更改
hooks
2026年9月21日 02:50
已更改
events
2026年9月21日 02:50
已更改
entry
2026年9月21日 02:50
已添加
setup
2026年9月21日 02:50
已添加
command
2026年9月17日 12:40
已添加
hooks
2026年9月17日 12:40
已添加
events
2026年9月17日 12:40
已添加
entry
2026年9月17日 12:40