MCP Tools Reference
TradeStaq's MCP server exposes 31 tools organized into 9 categories. Each tool can be called by any MCP-compatible AI client.
Scope and Cost Annotations
For remote OAuth clients, each tool requires a minimum scope on the token. Scopes are hierarchical — mcp:live implies mcp:paper implies mcp:read. Session-cookie (dashboard) users bypass scope checks.
| Badge | Meaning |
|---|---|
mcp:read | Read-only. Safe for research agents. |
mcp:paper | Read + paper-trade writes (paper exchanges, paper bots). |
mcp:live | Read + paper + live-money writes (live deploys, wallet-charging tools). |
$ | Charges your Strategy Lab wallet. Agent must pass acknowledgeCost: true to commit. |
When a tool requires a scope your token doesn't hold, the server returns 403 insufficient_scope with the required scope echoed back. See Authentication for the full scope model.
Authentication (4 tools)
login
Log in with email and password credentials.
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | TradeStaq account email |
password | string | Yes | Account password |
authenticate
Start a browser-based OAuth flow. Opens a browser window for secure login — useful when you do not want to type credentials into the AI client.
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters required |
check_auth
Check whether the current session is authenticated and surface the context an agent needs to preflight scope and cost gates. Returns user profile, subscription tier with capabilities (allowLiveTrading, allowAIBuilder, allowNewsTrading, allowMcpServer), strategyLabBalanceUsd, and for MCP Bearer tokens the token block (clientId, clientName, scope, expiresAt). Response is cached per-token for 30 seconds.
Scope: none required (works on any authenticated session).
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters required |
set_token
Manually set a JWT token for authentication. Use this if you already have a token from the TradeStaq dashboard or API.
| Parameter | Type | Required | Description |
|---|---|---|---|
token | string | Yes | JWT authentication token |
Market Data (3 tools)
get_price
Get the current price of a trading pair on a specific exchange.
| Parameter | Type | Required | Description |
|---|---|---|---|
exchange | string | Yes | Exchange name (e.g. "binance") |
symbol | string | Yes | Trading pair (e.g. "BTC/USDT") |
list_exchanges
List all exchanges supported by TradeStaq.
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters required |
get_trading_pairs
Get available trading pairs for a specific exchange.
| Parameter | Type | Required | Description |
|---|---|---|---|
exchange | string | Yes | Exchange name |
Portfolio (2 tools)
get_portfolio
Get portfolio balances across all connected exchanges.
| Parameter | Type | Required | Description |
|---|---|---|---|
exchange | string | No | Filter by specific exchange |
get_positions
Get open positions across all connected exchanges.
| Parameter | Type | Required | Description |
|---|---|---|---|
exchange | string | No | Filter by specific exchange |
symbol | string | No | Filter by specific trading pair |
Strategies (6 tools)
list_strategies
List available trading strategies from the marketplace.
| Parameter | Type | Required | Description |
|---|---|---|---|
category | string | No | Filter by category |
page | number | No | Page number for pagination |
search_strategies
Search for strategies by name, description, or tags.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search query |
get_strategy
Get detailed information about a specific strategy.
| Parameter | Type | Required | Description |
|---|---|---|---|
strategyId | string | Yes | Strategy ID |
get_strategy_performance
Get historical performance metrics for a strategy.
| Parameter | Type | Required | Description |
|---|---|---|---|
strategyId | string | Yes | Strategy ID |
period | string | No | Time period ("7d", "30d", "90d") |
create_strategy
Create a new strategy using the AI builder (FORGE).
Scope: mcp:live when invoked with wallet-charging optimization (generate_strategy path). $ — see generate_strategy below for the cost envelope. Agent must pass acknowledgeCost: true to commit.
| Parameter | Type | Required | Description |
|---|---|---|---|
description | string | Yes | Natural language description of the strategy |
pair | string | No | Target trading pair |
timeframe | string | No | Candle timeframe |
acknowledgeCost | boolean | No | Required (true) when the call will charge the Strategy Lab wallet. Without it, the server returns a cost-estimate envelope instead of queueing. |
get_my_strategies
List strategies you own or have purchased.
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters required |
Backtesting (3 tools)
run_backtest
Start a backtest for a strategy with specified parameters.
| Parameter | Type | Required | Description |
|---|---|---|---|
strategyId | string | Yes | Strategy to backtest |
exchange | string | Yes | Exchange for market data |
symbol | string | Yes | Trading pair |
timeframe | string | Yes | Candle timeframe ("1m", "5m", "1h", etc.) |
startDate | string | No | Start date (ISO 8601) |
endDate | string | No | End date (ISO 8601) |
get_backtest_status
Check the status of a running backtest.
| Parameter | Type | Required | Description |
|---|---|---|---|
backtestId | string | Yes | Backtest job ID |
get_backtest_results
Get the results of a completed backtest.
| Parameter | Type | Required | Description |
|---|---|---|---|
backtestId | string | Yes | Backtest job ID |
Bot Management (5 tools)
deploy_bot
Deploy a new trading bot with a strategy on an exchange.
Scope: mcp:paper when exchange targets a paper exchange; mcp:live when exchange targets a live exchange. The server resolves the exchange before deciding — attempting a live deploy with a mcp:paper token returns 403 insufficient_scope.
| Parameter | Type | Required | Description |
|---|---|---|---|
strategyId | string | Yes | Strategy to use |
exchange | string | Yes | Target exchange |
symbol | string | Yes | Trading pair |
mode | string | No | "live" or "paper" (default: "paper") |
config | object | No | Bot configuration overrides |
stop_bot
Stop a running bot.
Scope: mcp:paper for paper bots; mcp:live for live-money bots.
| Parameter | Type | Required | Description |
|---|---|---|---|
botId | string | Yes | Bot ID to stop |
get_bot_status
Get the current status and performance of a bot.
| Parameter | Type | Required | Description |
|---|---|---|---|
botId | string | Yes | Bot ID |
list_bots
List all your bots with their status.
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | No | Filter by status ("running", "stopped", "error") |
update_bot_config
Update configuration of a running or stopped bot.
Scope: mcp:paper for paper bots; mcp:live for live-money bots.
| Parameter | Type | Required | Description |
|---|---|---|---|
botId | string | Yes | Bot ID |
config | object | Yes | New configuration values |
Trade History (2 tools)
get_recent_trades
Get recent trades across all bots.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | Number of trades to return (default: 20) |
botId | string | No | Filter by specific bot |
get_trade_details
Get detailed information about a specific trade.
| Parameter | Type | Required | Description |
|---|---|---|---|
tradeId | string | Yes | Trade ID |
Copy Trading (3 tools)
get_leaderboard
Get the copy trading leaderboard with top-performing traders.
| Parameter | Type | Required | Description |
|---|---|---|---|
period | string | No | Ranking period ("7d", "30d", "90d") |
limit | number | No | Number of results |
follow_trader
Start copying a master trader.
Scope: mcp:paper when copying onto a paper exchange; mcp:live when copying onto a live exchange.
| Parameter | Type | Required | Description |
|---|---|---|---|
masterId | string | Yes | Master trader ID |
exchange | string | Yes | Exchange to copy on |
allocation | number | No | Percentage of balance to allocate |
unfollow_trader
Stop copying a master trader.
Scope: mcp:paper for paper copies; mcp:live for live-money copies.
| Parameter | Type | Required | Description |
|---|---|---|---|
masterId | string | Yes | Master trader ID |
Advisor (3 tools)
get_trading_advice
Get AI-powered trading advice based on current market conditions.
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | string | No | Specific trading pair to analyze |
context | string | No | Additional context for the advice |
analyze_portfolio
Get an AI analysis of your current portfolio with suggestions.
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters required |
get_market_summary
Get a summary of current market conditions across major pairs.
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters required |
Next Steps
- Setup Guide — Configure your AI client
- Authentication — How to authenticate
- Troubleshooting — Common errors and fixes