Skip to main content
Glama

BotSpot: AI Trading, Backtests and Bots

Switch the conversation data source

set_data_provider
DestructiveIdempotent

Updates the active conversation to use the specified backtesting data provider.

AVAILABILITY AND SETUP: Read these constraints before selecting a provider. Do not probe a provider already declared OFF by calling this tool. Explain its known unavailability and the supported alternatives instead. Preserve the named setup page when explaining a connection requirement.

  • Theta Data ('theta_data') is OFF right now. Theta Data is not available on BotSpot right now. Never select it and never start a backtest on it. If the user asks for it, say plainly that it is not available and offer the alternatives below.

  • 'alpaca' uses the user's connected Alpaca broker account for data. Never ask the user to add ALPACA_API_KEY or ALPACA_API_SECRET as environment variables: those names are reserved for broker connections. If Alpaca is not connected or needs reconnecting, send the user to the Broker Connections page.

  • For OPTIONS: BotSpot Auto has NO options data right now because Theta Data is off, and start_backtest refuses options strategies on 'botspot_auto'. Options backtests need the user's own data: 'alpaca' when the user has a connected Alpaca account (options history from February 2024), or 'polygon' with the user's own POLYGON_API_KEY. Ask the user which one before switching. If they have neither, explain how to connect an Alpaca account (a free one works) or save a Polygon key. BotSpot does not currently have IBKR options support.

IMPORTANT: Match the provider to the strategy's asset class requirements.

Available providers and their capabilities:

  • Alpaca (alpaca): stocks, options, crypto

  • BotSpot Auto (botspot_auto): stocks, options, crypto, futures, indexes

  • Custom Provider (custom): stocks, options, crypto, futures, indexes

  • DataBento (databento): futures

  • Polygon (polygon): stocks, options, crypto, indexes

RULES:

  • Match the provider to the strategy's asset class requirements

  • If the strategy requires an asset class the provider doesn't support, STOP and pick a compatible provider

  • BotSpot Auto is a managed asset-class router. Policy version: 2026-06-26. Current routes: default → ibkr, stock → ibkr, index → ibkr, option → thetadata, crypto → coinbase, crypto_future → coinbase, future → ibkr, cont_future → ibkr.

  • For STOCKS/INDEXES: Default to 'botspot_auto' (IBKR via router) unless the user explicitly requests a different provider (e.g., 'polygon' or 'alpaca')

  • For SPOT CRYPTO: Default to 'botspot_auto' (Coinbase via CCXT router) unless the user explicitly requests Polygon/Alpaca for spot crypto

  • For CRYPTO PERPETUAL/FUTURES: Default to 'botspot_auto' (Coinbase via CCXT router) unless the user explicitly requests a compatible futures provider

  • For FUTURES: Default to 'botspot_auto' (IBKR via router) unless the user explicitly requests DataBento. If IBKR is missing/unsupported for the requested futures symbol/contract, recommend DataBento as the fallback (BYOK: the user must supply their own DataBento API key).

  • If user doesn't have required API keys for a BYOK provider, recommend 'botspot_auto' for stocks, indexes, crypto and futures, or 'custom'. For options, follow the OPTIONS rule above.

  • The 'custom' provider lets users supply their own data files

The tool will return capability validation warnings if there's a mismatch.

Input Schema

NameRequiredDescriptionDefault
dataProviderYes
customEnvVarsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the description's lower bar is met and it adds real context: capability validation warnings are returned on mismatch, OFF providers must not be probed, and a named setup page must be preserved. It does not, however, say what the previous provider setting becomes or acknowledge the destructive/overwrite nature itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, but the rule block repeats itself ('Match the provider to the strategy's asset class requirements' appears twice) and contains an internal inconsistency: botspot_auto is listed as supporting options while a later section says it has no options data because Theta Data is off. Roughly 500 words for a two-parameter tool is heavier than needed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-param mutation tool with no output schema and no annotations covering selection logic, the provider routing, defaults, and OFF-provider handling are covered more than adequately. The remaining gap is customEnvVars, whose key/value semantics and required-vs-optional nature are never described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and there is no enum, so the description carries the full burden. It effectively enumerates valid dataProvider values in quotes ('theta_data', 'alpaca', 'botspot_auto', 'custom', 'databento', 'polygon') plus per-provider asset classes, which the schema omits entirely. Only customEnvVars is left unexplained beyond a hint that 'custom' lets users supply their own data files.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: switching the active conversation's backtesting data provider. The scope ('active conversation') clearly separates it from start_backtest (runs a backtest) and set_strategy_requirements (declares requirements), so an agent can identify the right sibling without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives per-asset-class defaults (stocks/indexes/crypto/futures → botspot_auto), explicit exceptions (options require alpaca or polygon), BYOK fallbacks, and a hard 'when not to use' rule (never select theta_data, never probe a provider declared OFF). Alternatives are named with the conditions that select them, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.