# BotSpot: AI Trading, Backtests and Bots (io.github.grzesir/botspot-trading): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.grzesir%2Fbotspot-trading/versions/latest)
- Connected to: https://mcp.botspot.trade/mcp
- Repository: https://github.com/Lumiwealth/botspot-mcp
- Scoring rules: v2
- Tools: 112
- Average: 65.7 / 100 (Cloudy)
- Near-identical pairs: 2

This page shows how BotSpot: AI Trading, Backtests and Bots (io.github.grzesir/botspot-trading)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 112 tools. Above 40, models choose less accurately.

## Tools

- `stop_backtest`: 18 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: backtestId, revisionId, botId.
  - Minor: String arguments with no constraint or example: botId.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `create_checkout_link`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: productSlugs.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `save_marketplace_publication`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: subjectKind, accountId, strategyId, title, description, details, removeHeroImage, tags, assetClasses, allowPerformanceView, allowPositionsView, allowFilledTradesView, allowOpenOrdersView, allowExactQuantitiesView, allowCodeView, allowClone.
  - Minor: The meaning of the boolean argument removeHeroImage is unclear.
  - Minor: The meaning of the boolean argument allowPerformanceView is unclear.
  - Minor: The meaning of the boolean argument allowPositionsView is unclear.
  - Minor: The meaning of the boolean argument allowFilledTradesView is unclear.
  - Minor: The meaning of the boolean argument allowOpenOrdersView is unclear.
  - Minor: The meaning of the boolean argument allowExactQuantitiesView is unclear.
  - Minor: The meaning of the boolean argument allowCodeView is unclear.
  - Minor: The meaning of the boolean argument allowClone is unclear.
  - Minor: Says nothing about what it returns.
- `get_backtest_chart_series`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: backtestId, series, limit.
  - Minor: Required identifiers whose description does not say where the value comes from: backtestId. Name the tool or the place that returns it, or models look it up first.
- `get_backtest_visuals`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: backtestId, includeTearsheet, includeTrades, includeIndicators, includeStats.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument includeTearsheet is unclear.
  - Minor: The meaning of the boolean argument includeTrades is unclear.
  - Minor: The meaning of the boolean argument includeIndicators is unclear.
  - Minor: The meaning of the boolean argument includeStats is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: backtestId. Name the tool or the place that returns it, or models look it up first.
- `get_strategy_visuals`: 43 / 100
  - Major: Arguments without a description: revisionId, includeDiagram, includeInfographic, generateInfographicIfMissing.
  - Minor: The meaning of the boolean argument includeDiagram is unclear.
  - Minor: The meaning of the boolean argument includeInfographic is unclear.
  - Minor: The meaning of the boolean argument generateInfographicIfMissing is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: revisionId. Name the tool or the place that returns it, or models look it up first.
- `update_strategy`: 43 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_bot_performance`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: deploymentId, hoursAgo.
- `get_broker_orders`: 44 / 100
  - Major: Arguments without a description: brokerCredentialId, brokerProvider, symbol, assetType, statuses, startTimeIso, endTimeIso.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `delete_strategy`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `list_deployment_artifacts`: 46 / 100
  - Major: Arguments without a description: deploymentId, runId.
  - Minor: Required identifiers whose description does not say where the value comes from: deploymentId. Name the tool or the place that returns it, or models look it up first.
- `list_deployment_runs`: 46 / 100
  - Major: Arguments without a description: deploymentId, deploymentIds, limit.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `test_schwab_broker_connection`: 46 / 100
  - Major: Arguments without a description: brokerCredentialId, runSnapshot, includeDiagnostics, includeLogs, logLimit.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument runSnapshot is unclear.
  - Minor: The meaning of the boolean argument includeDiagnostics is unclear.
  - Minor: The meaning of the boolean argument includeLogs is unclear.
- `unpublish_from_marketplace`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `delete_broker_credential`: 47 / 100
  - Major: Arguments without a description: id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `create_dashboard_file`: 48 / 100
  - Major: Arguments without a description: strategyId, title, path.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `create_billing_portal_link`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `get_single_trade_status`: 49 / 100
  - Major: Arguments without a description: actionId, singleTradeBotId, managerBotId.
  - Minor: No `required` list, so every argument is optional.
- `get_strategy`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `delete_file`: 51 / 100
  - Minor: Arguments without a description: path, description.
  - Minor: Says nothing about what it returns.
- `run_deployment_once`: 52 / 100
  - Major: Arguments without a description: deploymentId, idempotencyKey.
  - Minor: Required identifiers whose description does not say where the value comes from: deploymentId. Name the tool or the place that returns it, or models look it up first.
- `competitions`: 54 / 100
  - Minor: Arguments without a description: action.
  - Minor: Says nothing about what it returns.
- `show_backtest_comparison`: 54 / 100
  - Major: Arguments without a description: backtestIds.
  - Minor: Required identifiers whose description does not say where the value comes from: backtestIds. Name the tool or the place that returns it, or models look it up first.
- `show_option_payoff`: 54 / 100
  - Major: Arguments without a description: underlying, expiration, legs, legs[].kind, legs[].side, legs[].strike, legs[].premium, legs[].contracts, legs[].multiplier, fees, underlyingPrice, priceRange.
- `commit_backtest_rules_review`: 56 / 100
  - Major: Arguments without a description: backtestId, revisionId, rulesDigest, codeDigest, overall, rules, rules[].ruleId, rules[].verdict, rules[].summary, rules[].evidence, rules[].evidence[].source, rules[].evidence[].detail, rules[].evidence[].label, rules[].evidence[].query, rules[].evidence[].rowCount, rules[].evidence[].source, rules[].evidence[].detail, rules[].evidence[].query, rules[].evidence[].matchedLines, rules[].evidence[].startTime, rules[].evidence[].endTime, rules[].evidence[].source, rules[].evidence[].detail, rules[].evidence[].label, rules[].evidence[].metric, rules[].evidence[].observedValue, rules[].evidence[].source, rules[].evidence[].detail, rules[].evidence[].path, rules[].evidence[].lines, rules[].missingTelemetry, rules[].missingTelemetry.artifactOrField, rules[].missingTelemetry.reason, rules[].ruleId, rules[].verdict, rules[].summary, rules[].evidence, rules[].missingTelemetry.
  - Minor: String arguments with no constraint or example: rules[].verdict, rules[].evidence[].source, rules[].evidence[].source, rules[].evidence[].source, rules[].evidence[].source.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: backtestId, revisionId. Name the tool or the place that returns it, or models look it up first.
- `show_account_overview`: 56 / 100
  - Major: Arguments without a description: brokerCredentialId, mode.
  - Minor: No `required` list, so every argument is optional.
- `show_holdings`: 56 / 100
  - Major: Arguments without a description: brokerCredentialId, mode, sortBy.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `get_broker_option_chain`: 57 / 100
  - Major: Arguments without a description: brokerCredentialId, underlyingSymbol, expiration, expirationStart, expirationEnd, strikeMin, strikeMax, right, includeGreeks, detailLevel, limit, page.
  - Minor: The meaning of the boolean argument includeGreeks is unclear.
- `get_broker_quotes`: 57 / 100
  - Major: Arguments without a description: brokerCredentialId, symbols, assetType, quoteSymbol, expiration, strike, right, market, exchange.
  - Minor: Says nothing about what it returns.
- `remove_plan_item`: 57 / 100
  - Minor: Arguments without a description: target, reason.
  - Minor: Says nothing about what it returns.
- `get_broker_account_snapshot`: 59 / 100
  - Major: Arguments without a description: brokerCredentialId, brokerProvider.
  - Minor: No `required` list, so every argument is optional.
- `get_deployment_action_status`: 59 / 100
  - Major: Arguments without a description: actionId.
- `inspect_analysis_artifact`: 59 / 100
  - Minor: Arguments without a description: analysisRunId.
  - Minor: Required identifiers whose description does not say where the value comes from: analysisRunId. Name the tool or the place that returns it, or models look it up first.
- `search_documents`: 59 / 100
  - Major: Arguments without a description: query, timeRange, timeRange.startDate, timeRange.endDate, limit.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `set_data_provider`: 59 / 100
  - Minor: The description is long (483 words). It helps selection but costs steps and tokens.
  - Major: Arguments without a description: dataProvider, customEnvVars, customEnvVars[].key, customEnvVars[].value.
  - Minor: String arguments with no constraint or example: customEnvVars[].value.
  - Minor: The description mentions none of its 3 or more arguments.
- `show_backtest_dashboard`: 59 / 100
  - Major: Arguments without a description: backtestId, series, limit.
  - Minor: Required identifiers whose description does not say where the value comes from: backtestId. Name the tool or the place that returns it, or models look it up first.
- `stop_deployment`: 59 / 100
  - Major: Arguments without a description: deploymentId, idempotencyKey.
  - Minor: Required identifiers whose description does not say where the value comes from: deploymentId. Name the tool or the place that returns it, or models look it up first.
- `get_deployment_artifact`: 61 / 100
  - Major: Arguments without a description: deploymentId, runId, artifactKey, kind.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: deploymentId. Name the tool or the place that returns it, or models look it up first.
- `get_tool_call_metrics`: 61 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `switch_active_strategy`: 61 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_portfolio_series`: 62 / 100
  - Major: Arguments without a description: deploymentId, frequency, start, end, limit.
  - Minor: String arguments with no constraint or example: start.
- `query_deployment_artifact`: 62 / 100
  - Major: Arguments without a description: deploymentId, runId, targets, targets[].deploymentId, targets[].runId, artifactKey, kind, sql, maxRows.
  - Minor: Says nothing about what it returns.
- `search_data_catalog`: 62 / 100
  - Minor: Arguments without a description: limit, operations.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `start_parameter_experiment`: 62 / 100
  - Major: Arguments without a description: revisionId, startDate, endDate, variants, variants[].label, variants[].parameters, variants[].strategyParameterSetId.
- `clone_strategy`: 63 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `community`: 63 / 100
  - Major: Arguments without a description: body, marketplaceListingId, publicationId, parentPostId, verifiedTradeSource, verifiedTradeSource.deploymentId, verifiedTradeSource.orderId, verifiedTradeSource.observedAt, postId, cursor, limit.
  - Minor: String arguments with no constraint or example: cursor.
  - Minor: Says nothing about what it returns.
- `complete_plan`: 64 / 100
  - Minor: Arguments without a description: status, summary.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `set_strategy_requirements`: 64 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: revisionId. Name the tool or the place that returns it, or models look it up first.
- `show_bot_activity`: 64 / 100
  - Major: Arguments without a description: deploymentId, limit.
- `show_position`: 64 / 100
  - Major: Arguments without a description: symbol, brokerCredentialId.
- `skills`: 64 / 100
  - Minor: Says nothing about what it returns.
- `update_broker_credential`: 64 / 100
  - Major: Arguments without a description: id, broker, displayName, paperOrLive, credentialValues.
- `get_active_plan`: 66 / 100
  - Minor: No `required` list, so every argument is optional.
- `list_broker_credentials`: 66 / 100
  - Major: Arguments without a description: brokerCredentialId, brokerProvider.
  - Minor: No `required` list, so every argument is optional.
- `manage_schedule`: 66 / 100
  - Major: Arguments without a description: scheduleMetadata.schemaVersion, scheduleMetadata.deploymentMode, scheduleMetadata.cadence, scheduleMetadata.marketSession, scheduleMetadata.windows, scheduleMetadata.windows[].startAt, scheduleMetadata.windows[].endAt, scheduleMetadata.windows[].label, scheduleMetadata.windows[].timezone, scheduleMetadata.windows[].source, scheduleMetadata.windows[].kind, scheduleMetadata.requiresAlwaysOn, scheduleMetadata.backtestCadence, scheduleMetadata.liveCadenceMatchesBacktest, scheduleMetadata.mismatchWarning, scheduleMetadata.confidence, scheduleMetadata.sourceEvidence, scheduleMetadata.sourceEvidence[].file, scheduleMetadata.sourceEvidence[].line, scheduleMetadata.sourceEvidence[].snippet, scheduleMetadata.sourceEvidence[].reason, scheduleMetadata.source, scheduleMetadata.policySource, scheduleMetadata.billingRoute, scheduleMetadata.rollout, scheduleMetadata.rollout.thresholdSeconds.
  - Minor: The meaning of the boolean argument scheduleMetadata.requiresAlwaysOn is unclear.
  - Minor: The meaning of the boolean argument scheduleMetadata.liveCadenceMatchesBacktest is unclear.
- `get_broker_token_refresh_status`: 67 / 100
  - Major: Arguments without a description: brokerCredentialId.
  - Minor: Required identifiers whose description does not say where the value comes from: brokerCredentialId. Name the tool or the place that returns it, or models look it up first.
- `get_deployment_logs`: 67 / 100
  - Major: Arguments without a description: deploymentId, limit, sort, startTimeIso, endTimeIso, query, queries, diagnosticPreset, suppressNoise, contextLines, nextToken.
  - Minor: String arguments with no constraint or example: query, nextToken.
  - Minor: The meaning of the boolean argument suppressNoise is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: deploymentId. Name the tool or the place that returns it, or models look it up first.
- `get_deployment_order_telemetry`: 67 / 100
  - Minor: The description is long (593 words). It helps selection but costs steps and tokens.
  - Major: Arguments without a description: deploymentId, limit, sort, hoursAgo, includeOpen, startTimeIso, endTimeIso, startTimestamp, endTimestamp, status, statuses, symbol, nextToken.
  - Minor: String arguments with no constraint or example: status, nextToken.
  - Minor: The meaning of the boolean argument includeOpen is unclear.
  - Major: It may be destructive, but destructiveHint is not set.
- `my_marketplace_publications`: 67 / 100
  - Minor: Says nothing about what it returns.
- `publish_to_marketplace`: 67 / 100
  - Minor: Arguments without a description: tags.holdingPeriod, tags.riskLevel, tags.plan.
- `get_deployment_position_telemetry`: 68 / 100
  - Minor: The description is long (679 words). It helps selection but costs steps and tokens.
  - Major: Arguments without a description: deploymentId, history, includeRecentOrders, recentOrdersLimit, recentOrdersHoursAgo, limit, sort, startTimeIso, endTimeIso, startTimestamp, endTimestamp, symbol, nextToken.
  - Minor: String arguments with no constraint or example: nextToken.
  - Minor: The meaning of the boolean argument history is unclear.
  - Minor: The meaning of the boolean argument includeRecentOrders is unclear.
  - Major: It may be destructive, but destructiveHint is not set.
- `list_deployments`: 68 / 100
  - Minor: The description is long (675 words). It helps selection but costs steps and tokens.
  - Major: Arguments without a description: limit, strategyId, aiStrategyId, search, isRealMoney.
  - Minor: String arguments with no constraint or example: search.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument isRealMoney is unclear.
- `list_files`: 69 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `resolve_analysis_reference`: 69 / 100
- `set_runtime_secret_requirements`: 69 / 100
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: revisionId. Name the tool or the place that returns it, or models look it up first.
- `set_strategy_revision`: 69 / 100
  - Minor: Arguments without a description: strategyId, aiStrategyId.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `start_deployment`: 69 / 100
  - Minor: The description is long (1040 words). It helps selection but costs steps and tokens.
  - Major: Arguments without a description: aiStrategyRevisionId, strategyParameterSetId, brokerCredentialId, envVarSetIds, acceptances, acceptances.acceptedTerms, acceptances.acceptedBetaRisk, idempotencyKey, memoryGb, deploymentMode, schedulePolicyId, scheduleMetadata, scheduleMetadata.schemaVersion, scheduleMetadata.deploymentMode, scheduleMetadata.cadence, scheduleMetadata.marketSession, scheduleMetadata.windows, scheduleMetadata.windows[].startAt, scheduleMetadata.windows[].endAt, scheduleMetadata.windows[].label, scheduleMetadata.windows[].timezone, scheduleMetadata.windows[].source, scheduleMetadata.windows[].kind, scheduleMetadata.requiresAlwaysOn, scheduleMetadata.backtestCadence, scheduleMetadata.liveCadenceMatchesBacktest, scheduleMetadata.mismatchWarning, scheduleMetadata.confidence, scheduleMetadata.sourceEvidence, scheduleMetadata.sourceEvidence[].file, scheduleMetadata.sourceEvidence[].line, scheduleMetadata.sourceEvidence[].snippet, scheduleMetadata.sourceEvidence[].reason, scheduleMetadata.source, scheduleMetadata.policySource, scheduleMetadata.billingRoute, scheduleMetadata.rollout, scheduleMetadata.rollout.thresholdSeconds, runImmediately.
  - Minor: The meaning of the boolean argument acceptances.acceptedTerms is unclear.
  - Minor: The meaning of the boolean argument acceptances.acceptedBetaRisk is unclear.
  - Minor: The meaning of the boolean argument scheduleMetadata.requiresAlwaysOn is unclear.
  - Minor: The meaning of the boolean argument scheduleMetadata.liveCadenceMatchesBacktest is unclear.
  - Minor: The meaning of the boolean argument runImmediately is unclear.
- `create_plan`: 70 / 100
  - Minor: The description is long (418 words). It helps selection but costs steps and tokens.
  - Major: Arguments without a description: kind, title, items, items[].label, items[].status, items[].waitReason, items[].waitDetails, items[].blockedReason, items[].blockedDetails, items[].rationale, items[].externalWaitId, items[].toolName, items[].revisionId.
  - Minor: Says nothing about what it returns.
- `place_trade`: 70 / 100
  - Minor: The description is long (470 words). It helps selection but costs steps and tokens.
  - Major: Arguments without a description: brokerCredentialId, trade, trade.symbol, trade.side, trade.quantity, trade.assetType, trade.orderType, trade.orderClass, trade.timeInForce, trade.goodTillDate, trade.limitPrice, trade.stopPrice, trade.stopLimitPrice, trade.trailPrice, trade.trailPercent, trade.secondaryLimitPrice, trade.secondaryStopPrice, trade.secondaryStopLimitPrice, trade.secondaryTrailPrice, trade.secondaryTrailPercent, trade.expiration, trade.strike, trade.right, trade.multiplier, trade.leverage, trade.precision, trade.autoExpiry, trade.quoteSymbol, trade.exchange, trade.underlyingSymbol, trade.market, trade.clientOrderId, trade.price, trade.smartLimit, trade.smartLimit.preset, trade.smartLimit.finalPricePct, trade.smartLimit.slippage, trade.smartLimit.stepSeconds, trade.smartLimit.finalHoldSeconds, trade.legs, trade.legs[].symbol, trade.legs[].side, trade.legs[].quantity, trade.legs[].assetType, trade.legs[].outcome, trade.legs[].orderType, trade.legs[].orderClass, trade.legs[].timeInForce, trade.legs[].goodTillDate, trade.legs[].limitPrice, trade.legs[].stopPrice, trade.legs[].stopLimitPrice, trade.legs[].trailPrice, trade.legs[].trailPercent, trade.legs[].secondaryLimitPrice, trade.legs[].secondaryStopPrice, trade.legs[].secondaryStopLimitPrice, trade.legs[].secondaryTrailPrice, trade.legs[].secondaryTrailPercent, trade.legs[].expiration, trade.legs[].strike, trade.legs[].right, trade.legs[].multiplier, trade.legs[].leverage, trade.legs[].precision, trade.legs[].autoExpiry, trade.legs[].quoteSymbol, trade.legs[].exchange, trade.legs[].underlyingSymbol, trade.legs[].market, trade.legs[].clientOrderId, trade.legs[].price, trade.legs[].smartLimit, trade.entry, trade.entry.symbol, trade.entry.orderType, trade.entry.orderClass, trade.entry.timeInForce, trade.entry.limitPrice, trade.entry.price, trade.entry.market, trade.entry.clientOrderId, trade.entry.legs, trade.entry.legs[].symbol, trade.entry.legs[].side, trade.entry.legs[].quantity, trade.entry.legs[].assetType, trade.entry.legs[].outcome, trade.entry.legs[].orderType, trade.entry.legs[].orderClass, trade.entry.legs[].timeInForce, trade.entry.legs[].goodTillDate, trade.entry.legs[].limitPrice, trade.entry.legs[].stopPrice, trade.entry.legs[].stopLimitPrice, trade.entry.legs[].trailPrice, trade.entry.legs[].trailPercent, trade.entry.legs[].secondaryLimitPrice, trade.entry.legs[].secondaryStopPrice, trade.entry.legs[].secondaryStopLimitPrice, trade.entry.legs[].secondaryTrailPrice, trade.entry.legs[].secondaryTrailPercent, trade.entry.legs[].expiration, trade.entry.legs[].strike, trade.entry.legs[].right, trade.entry.legs[].multiplier, trade.entry.legs[].leverage, trade.entry.legs[].precision, trade.entry.legs[].autoExpiry, trade.entry.legs[].quoteSymbol, trade.entry.legs[].exchange, trade.entry.legs[].underlyingSymbol, trade.entry.legs[].market, trade.entry.legs[].clientOrderId, trade.entry.legs[].price, trade.entry.legs[].smartLimit, trade.takeProfit, trade.takeProfit.orderType, trade.takeProfit.limitPrice, trade.takeProfit.stopPrice, trade.takeProfit.stopLimitPrice, trade.takeProfit.trailPrice, trade.takeProfit.trailPercent, trade.takeProfit.timeInForce, trade.stopLoss, analysisBindings, analysisBindings.fields, analysisBindings.fields[].target, analysisBindings.fields[].resolutionId, idempotencyKey.
  - Minor: String arguments with no constraint or example: trade.entry.orderClass.
- `get_broker_positions`: 71 / 100
  - Major: Arguments without a description: brokerCredentialId, brokerProvider, symbol, assetType, includeCashPositions.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument includeCashPositions is unclear.
- `get_education_offers`: 71 / 100
- `private_share_link`: 71 / 100
- `record_external_wait_in_plan`: 72 / 100
  - Major: Arguments without a description: revisionId, sourceExternalId, evidence, currentItemEvidence, currentItemOutcome, waitingItem.label, waitingItem.completionCriteria, waitingItem.rationale, waitingItem.waitDetails, waitingItem.evidence, waitingItem.parentItemId, waitingItem.dependsOnItemIds.
- `replace_plan_items`: 72 / 100
  - Major: Arguments without a description: title, kind, items[].label, items[].status, items[].waitReason, items[].waitDetails, items[].blockedReason, items[].blockedDetails, items[].rationale, items[].externalWaitId, items[].toolName, items[].revisionId, items[].itemId.
- `list_strategies`: 73 / 100
  - Minor: No `required` list, so every argument is optional.
- `generate_other_code`: 74 / 100
  - Minor: Says nothing about what it returns.
- `patch_file`: 74 / 100
  - Minor: The description is long (1113 words). It helps selection but costs steps and tokens.
  - Minor: Arguments without a description: path, operations, operations[].type, operations[].startLine, operations[].endLine, operations[].expectedOldText, operations[].text, description.
  - Minor: String arguments with no constraint or example: operations[].expectedOldText, operations[].text.
- `create_file`: 75 / 100
  - Major: Arguments without a description: path, content, attachment.messageId, attachment.attachmentId, description.
- `search_memory`: 75 / 100
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `get_backtest_logs`: 76 / 100
  - Minor: The description is long (485 words). It helps selection but costs steps and tokens.
  - Major: Arguments without a description: limit, sort, startTimeIso, endTimeIso, query, queries, diagnosticPreset, suppressNoise, contextLines, nextToken.
  - Minor: String arguments with no constraint or example: query, nextToken.
  - Minor: The meaning of the boolean argument suppressNoise is unclear.
- `query_data`: 76 / 100
  - Major: Arguments without a description: entities, timeRange, timeRange.startDate, timeRange.endDate, timeRange.years, limit.
  - Minor: Required identifiers whose description does not say where the value comes from: datasetId. Name the tool or the place that returns it, or models look it up first.
- `show_trading_cards`: 76 / 100
  - Minor: The description is long (741 words). It helps selection but costs steps and tokens.
  - Major: Arguments without a description: cards, cards[].title, cards[].source, cards[].mode, cards[].account, cards[].details, cards[].data.
  - Minor: The description mentions none of its 3 or more arguments.
- `update_deployment_revision`: 76 / 100
  - Minor: The description is long (849 words). It helps selection but costs steps and tokens.
  - Major: Arguments without a description: deploymentId, strategyParameterSetId, idempotencyKey, deploymentMode, scheduleMetadata.schemaVersion, scheduleMetadata.deploymentMode, scheduleMetadata.cadence, scheduleMetadata.marketSession, scheduleMetadata.windows, scheduleMetadata.windows[].startAt, scheduleMetadata.windows[].endAt, scheduleMetadata.windows[].label, scheduleMetadata.windows[].timezone, scheduleMetadata.windows[].source, scheduleMetadata.windows[].kind, scheduleMetadata.requiresAlwaysOn, scheduleMetadata.backtestCadence, scheduleMetadata.liveCadenceMatchesBacktest, scheduleMetadata.mismatchWarning, scheduleMetadata.confidence, scheduleMetadata.sourceEvidence, scheduleMetadata.sourceEvidence[].file, scheduleMetadata.sourceEvidence[].line, scheduleMetadata.sourceEvidence[].snippet, scheduleMetadata.sourceEvidence[].reason, scheduleMetadata.source, scheduleMetadata.policySource, scheduleMetadata.billingRoute, scheduleMetadata.rollout, scheduleMetadata.rollout.thresholdSeconds.
  - Minor: The meaning of the boolean argument scheduleMetadata.requiresAlwaysOn is unclear.
  - Minor: The meaning of the boolean argument scheduleMetadata.liveCadenceMatchesBacktest is unclear.
- `update_plan_item`: 76 / 100
  - Major: Arguments without a description: target, patch, patch.label, patch.completionCriteria, patch.status, patch.waitReason, patch.waitDetails, patch.blockedReason, patch.blockedDetails, patch.rationale, patch.externalWaitId, patch.toolName, patch.revisionId.
- `update_plan_items`: 76 / 100
  - Major: Arguments without a description: updates[].target, updates[].patch, updates[].patch.label, updates[].patch.completionCriteria, updates[].patch.status, updates[].patch.waitReason, updates[].patch.waitDetails, updates[].patch.blockedReason, updates[].patch.blockedDetails, updates[].patch.rationale, updates[].patch.externalWaitId, updates[].patch.toolName, updates[].patch.revisionId.
- `account`: 77 / 100
- `add_plan_item`: 77 / 100
  - Major: Arguments without a description: item, item.label, item.status, item.waitReason, item.waitDetails, item.blockedReason, item.blockedDetails, item.rationale, item.externalWaitId, item.toolName, item.revisionId, item.position.
- `get_document`: 77 / 100
  - Minor: Says nothing about what it returns.
- `replace_file`: 77 / 100
  - Minor: The description is long (894 words). It helps selection but costs steps and tokens.
  - Minor: Arguments without a description: path, content, description.
- `run_data_analysis`: 78 / 100
  - Minor: The description is long (1393 words). It helps selection but costs steps and tokens.
  - Major: Arguments without a description: capabilities.broker, capabilities.broker.operations, capabilities.publicData, capabilities.publicData.datasetIds, capabilities.internalData, capabilities.internalData.datasetIds, capabilities.safeHttp, analysis.title, analysis.definitionId, analysis.parentRevisionId, analysis.changeSummary, attempt.
- `create_strategy`: 79 / 100
  - Minor: Says nothing about what it returns.
- `delete_memory`: 79 / 100
- `get_file`: 79 / 100
  - Minor: Arguments without a description: path.
- `list_backtests`: 79 / 100
  - Major: Arguments without a description: scope, id, strategyId, aiStrategyId, limit, offset.
  - Minor: No `required` list, so every argument is optional.
- `list_revisions`: 80 / 100
  - Minor: Arguments without a description: aiStrategyId, strategyId.
  - Minor: No `required` list, so every argument is optional.
- `search_conversation_history`: 80 / 100
  - Minor: Says nothing about what it returns.
- `purchases`: 82 / 100
- `start_backtest`: 83 / 100
  - Minor: The description is long (601 words). It helps selection but costs steps and tokens.
  - Minor: Arguments without a description: revisionId, startDate, endDate.
- `api_keys`: 84 / 100
  - Minor: The description is long (684 words). It helps selection but costs steps and tokens.
- `backtest_status`: 84 / 100
- `marketplace_accounts`: 84 / 100
- `marketplace_strategies`: 84 / 100
  - Minor: The description is long (590 words). It helps selection but costs steps and tokens.
- `strategy_share_link`: 84 / 100
- `get_backtest_artifact`: 86 / 100
  - Minor: The description is long (454 words). It helps selection but costs steps and tokens.
- `file_history`: 87 / 100
- `saved_env_vars`: 87 / 100
  - Minor: The description is long (472 words). It helps selection but costs steps and tokens.
- `env_var_sets`: 89 / 100
  - Minor: The description is long (466 words). It helps selection but costs steps and tokens.
- `query_csv`: 89 / 100
  - Minor: The description is long (914 words). It helps selection but costs steps and tokens.
- `send_feedback`: 90 / 100
  - Minor: The description is long (1932 words). It helps selection but costs steps and tokens.
- `broker_connections`: 92 / 100
  - Minor: The description is long (921 words). It helps selection but costs steps and tokens.
- `broker_snapshots`: 92 / 100
  - Minor: The description is long (513 words). It helps selection but costs steps and tokens.
- `remember`: 92 / 100
  - Minor: The description is long (880 words). It helps selection but costs steps and tokens.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
