Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.gainium/gainium-mcp

NPM · GAINIUM-MCP · 2 COMPONENTS · SCANNED AUG 3

MCP server for Gainium — manage trading bots, deals, and balances via AI assistants

+15 this week 65 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability73
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 6187 tokens (~309/item across 20 items; 19 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (47% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · gainium-mcp

# add to Claude Code
claude mcp add io-gainium-gainium-mcp -- npx -y gainium-mcp
# add to Codex CLI
codex mcp add io-gainium-gainium-mcp -- npx -y gainium-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-gainium-gainium-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "gainium-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add io-gainium-gainium-mcp --command npx --arg -y --arg gainium-mcp
# ~/.hermes/config.yaml
mcp_servers:
  io-gainium-gainium-mcp:
    command: "npx"
    args: ["-y", "gainium-mcp"]
// mcp.json
{
  "mcpServers": {
    "io-gainium-gainium-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "gainium-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +45
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Security disclosure: unverified → fail functional
    • Schema quality: unverified → excellent functional
    • Tool coverage: unverified → 100 functional
    • License: unverified → pass functional
    • Schema quality: unverified → 100 functional
    • Dependency health: unverified → partial functional
    • Maintenance: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Licence: MIT functional
  • 2 Aug 26 −4
    • Malware scan: unverified → pass security
    • Tool coverage: 100 → unverified functional
    • Security disclosure: fail → unverified functional
    • Schema quality: 100 → unverified functional
  • 31 Jul 26 −8
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −18
    • Malware scan: pass → unverified security
  • 27 Jul 26 50

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 95 packages

95 packages in the resolved dependency tree · 95 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 19 exposed · ~6,142 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
apply_preset ~322

Create a real bot from a curated preset in a single call — equivalent to `list_presets` → pick row → `create_bot` collapsed into one step. Identifies the preset by `botType` + `coin` + `exchange` + `tier` + `strategy`, then creates a bot from its `settings`. Optional overrides: `pair` (override the default pair), `name` (custom bot name), and `baseOrderSize` / `orderSize` (override sizing without touching the rest of the strategy). Returns the new bot id. Same destructive effect as `create_bot`. Use this when you trust the preset and want to start fast; use `list_presets` first if you want to compare before committing.

NameTypeReqDescription
botTypestringyesBot type
coinstringyesBase asset, e.g. "BTC"
exchangestringyesPreset exchange, e.g. "binance"
exchangeUUIDstringyesUUID of YOUR connected exchange to create the bot on (from get_account info:"exchanges")
namestringOverride the bot name (optional)
pairarrayOverride the preset pair(s), underscore format e.g. ["BTC_USDT"] (optional)
paperContextbooleanPaper trading context (true = paper, false = real). Default: false
strategystringDirection (default "long")
tierstringyesRisk tier: short (tight), mid (balanced), long (wide)

No output schema declared.

No examples provided.

backtest_info ~269

Read-only access to backtest metadata, results, and templates. Four targets by `target`: `requests` (list the user's past backtest requests with status), `request` (fetch a single request — needs `requestId` — returns full results when complete, progress when pending), `schema` (return the JSON shape of a backtest payload for a given `botType` — start here before composing a payload), `template` (return a ready-to-edit payload template). Use this to poll an async backtest started with `run_backtest`, or to learn the payload shape before submitting one.

NameTypeReqDescription
botTypestringyesBot type
exchangestringExchange code for template (optional, default: binance)
fieldsstringField selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard"
idstringRequest ID (required for target="request")
pageintegerPage number for pagination (1-based). Default: 1
targetstringyesInformation target. requests: list all. request: fetch one. schema: operation schema. template: payload template.

Structured output declared, but exposes no named fields.

No examples provided.

clone_bot ~282

Duplicate an existing bot — copies all configured settings into a new bot and returns the new bot id. Open deals on the source are NOT copied; the clone starts empty. Pass `overrides` (object of changed fields) to tweak the clone in the same call — e.g. change `pair` or `name` without a follow-up `update_bot`. Use this over `create_bot` when you want an exact replica of a working config (faster, less error-prone); use `create_bot` when starting from scratch or from `discover`-derived defaults.

NameTypeReqDescription
botIdstringyesBot identifier. Accepts EITHER the bot's 24-character hex MongoDB ObjectId (e.g. "65f000000000000000000001") OR the bot's UUID (e.g. "550e8400-e29b-41d4-a716-446655440000"). Either form resolves to t…
botTypestringyesBot type
overridesobjectOptional settings to override in the cloned bot. Pass an object with fields to change.
paperContextbooleanPaper trading context (true = paper, false = real). Default: false

No output schema declared.

No examples provided.

create_bot ~747

Create a new bot in a single step — no follow-up update needed. The top-level properties cover the most common fields. For any field from discover(target: "bot") that is NOT listed here (e.g. startOrderType, useMoveTP, moveTPTrigger, moveTPValue, stopLossTimeout, takeProfitTimeout, dcaOrdersMultiplier, dcaStepMultiplier, trailingTP, trailingTPPerc, indicators, timers, and any other discovery field), pass them inside the 'settings' object — it is transparently merged into the request body at creation time. This avoids a create→update two-step. Use discover(target: 'bot', botType) to discover all available fields and defaults. The 'futures' and 'coinm' fields are auto-detected from the exchange — do not provide them. Requires write API key permission.

NameTypeReqDescription
baseOrderSizestringSize of the initial base order, e.g. "100"
botTypestringyesBot type
budgetnumberTotal budget for grid (Grid only)
exchangeUUIDstringyesUUID of the exchange connection to use
gridLevelstringGrid level count (Combo only)
gridTypestringGrid distribution type (Grid only)
levelsintegerNumber of grid levels (Grid only)
lowPricenumberLow price for grid range (Grid only)
maxNumberOfOpenDealsstringMaximum concurrent open deals, e.g. "1"
moveSLbooleanEnable trailing stop-loss (move SL as price moves in your favour).
moveSLTriggerstringProfit % at which trailing SL is activated, e.g. "1.0"
moveSLValuestringTrail distance % for the moving SL, e.g. "0.5"
namestringBot name
orderSizestringSize of each DCA/grid order, e.g. "100"
orderSizeTypestringOrder size reference currency. Default: quote
ordersCountintegerMaximum number of orders (DCA/Combo)
pairarrayyesTrading pairs as array of {base}_{quote} strings, e.g. ["BTC_USDT"]. For Grid bots pass a single-element array — the server unwraps it automatically.
paperContextbooleanPaper trading context (true = paper, false = real). Default: false
settingsobjectTransparent passthrough for any bot settings field from discover(target: "bot") that is not listed as a top-level property above. All keys are merged flat into the request body — use this to create a…
slPercstringStop loss percentage, e.g. "-10"
startConditionstringCondition to start a new deal. Default: ASAP
startOrderTypestringOrder type for the base (start) order. Default: market
stepstringPrice deviation % for next DCA/grid order, e.g. "1.5"
strategystringTrading direction. Default: LONG
topPricenumberTop price for grid range (Grid only)
tpPercstringTake profit percentage, e.g. "1.5"
useDcabooleanEnable DCA orders. Set false for a single base-order bot.
useSlbooleanEnable stop-loss. When true, slPerc is used.

No output schema declared.

No examples provided.

create_deal ~355

Open a new deal — places real entry orders immediately. Two modes by `dealType`: `dca` or `combo` opens a new deal under an existing bot (`botId` required, `symbol` optional override); `terminal` opens a standalone terminal deal not tied to a bot (`exchangeUUID`, `terminalDealType`, `pair`, `strategy`, sizing, TP/SL required — any extra config goes inside `settings`, which is merged into the request body). Returns the new deal record. Use this to *start* a position; once open, modify with `update_deal` and act on it with `manage_deal`. To configure a bot without opening a deal, use `create_bot` / `update_bot`.

NameTypeReqDescription
baseOrderSizestringBase order size for terminal
botIdstringBot ID (required for dca/combo)
dealTypestringyesDeal type
exchangeUUIDstringExchange UUID (required for terminal)
orderSizestringOrder size for terminal
pairstringTrading pair for terminal (optional)
paperContextbooleanPaper trading context (true = paper, false = real). Default: false
settingsobjectTransparent passthrough for any additional terminal deal settings. Merged flat into request body.
slPercstringStop loss percentage for terminal
strategystringTrading strategy for terminal
symbolstringOptional symbol override (dca/combo)
terminalDealTypestringTerminal deal type (required for terminal)
tpPercstringTake profit percentage for terminal

No output schema declared.

No examples provided.

discover ~275

Read-only catalog of available bot types, fields, defaults, and indicators — the source of truth for what `create_bot` / `update_bot` accept. Six targets by `target`: `bots` (list bot-type names), `bot` (full field schema + defaults for one `botType` — call before `create_bot` to learn what every field means), `botSections` (section grouping for a `botType`), `indicators` (list available indicators), `indicator` (details for one), `supportedExchanges` (catalog of exchanges Gainium can connect). Use this for *catalog/schema* questions; for the user's own connected exchanges and balances use `get_account`.

NameTypeReqDescription
actionstringAction filter for indicators (optional: "add", "close", "update")
botTypestringBot type (required for bot/botSections)
exchangestringExchange code for indicators (optional)
sectionstringSection name for bot discovery (optional)
targetstringyesDiscovery target. bots: list all. bot: details for one. botSections: list sections. indicators: list all. indicator: details for one. supportedExchanges: list all.
typestringIndicator type (required for target="indicator")
NameTypeReqDescription
dataDiscovery metadata for the requested target: bot schemas, bot sections, indicator schemas (object), or lists of bots/indicators/exchanges (array).
metaobjectPagination / result metadata, present on list-style responses.
reasonstring|nullError reason when status is NOTOK; null otherwise.
statusstringOK on success, NOTOK on a handled API error.

No examples provided.

get_account ~308

Read-only account information selected via `info`: `balances` (per-exchange holdings — `exchangeId`, `asset`/`assets` filters apply), `exchanges` (connected exchange accounts and their UUIDs — needed as `exchangeUUID` when creating bots), `globalVariables` (user-defined constants accessible in strategies), or `supportedExchanges` (catalog of exchanges Gainium can connect). `exchangeId`/`asset`/`assets` are ignored unless `info=balances`. Authenticated with the configured API key/secret. For mutating global variables use `manage_global_variable`; this tool only reads them.

NameTypeReqDescription
assetstringFilter by single asset (balances only)
assetsarrayFilter by multiple assets (balances only). Use asset OR assets, not both.
exchangeIdstringFilter by exchange ID (balances only)
fieldsstringField selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard"
infostringyesInformation type. balances: account balances. exchanges: connected exchanges. globalVariables: user variables. supportedExchanges: API supports.
pageintegerPage number for pagination (1-based). Default: 1
paperContextbooleanPaper trading context (true = paper, false = real). Default: false
NameTypeReqDescription
dataAccount information for the requested type: balances, connected exchanges, global variables, or supported exchanges (array or object depending on `info`).
metaobjectPagination / result metadata, present on list-style responses.
reasonstring|nullError reason when status is NOTOK; null otherwise.
statusstringOK on success, NOTOK on a handled API error.

No examples provided.

get_bot ~270

Read a single bot by its MongoDB ObjectId or UUID. Returns the full bot record (fields controlled by the same `fields` preset/csv as `list_bots`). Use when you already have the bot id and need its current config or recent stats. To browse without an id use `list_bots`; to modify config use `update_bot`; to start/stop/archive use `manage_bot`.

NameTypeReqDescription
botIdstringyesBot identifier. Accepts EITHER the bot's 24-character hex MongoDB ObjectId (e.g. "65f000000000000000000001") OR the bot's UUID (e.g. "550e8400-e29b-41d4-a716-446655440000"). Either form resolves to t…
botTypestringyesBot type
fieldsstringField selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard"
paperContextbooleanPaper trading context (true = paper, false = real). Default: false
NameTypeReqDescription
dataobjectThe bot record; fields present depend on the `fields` preset.
metaobjectPagination / result metadata, present on list-style responses.
reasonstring|nullError reason when status is NOTOK; null otherwise.
statusstringOK on success, NOTOK on a handled API error.

No examples provided.

get_deal ~249

Read a single deal by its MongoDB ObjectId — returns the full record (entries, exits, current PnL, settings). `fields` uses the same preset/csv shape as `list_deals`. Use when you already have the `dealId`; to browse without one use `list_deals`, to change settings use `update_deal`, to act on the position use `manage_deal`.

NameTypeReqDescription
dealIdstringyesDeal identifier. Accepts EITHER the deal's 24-character hex MongoDB ObjectId (e.g. "65f000000000000000000001") OR the deal's UUID. Either form resolves to the same deal — use whichever the deal recor…
dealTypestringyesDeal type
fieldsstringField selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard"
paperContextbooleanPaper trading context (true = paper, false = real). Default: false
NameTypeReqDescription
dataobjectThe deal record; fields present depend on the `fields` preset.
metaobjectPagination / result metadata, present on list-style responses.
reasonstring|nullError reason when status is NOTOK; null otherwise.
statusstringOK on success, NOTOK on a handled API error.

No examples provided.

get_screener ~409

Read-only cryptocurrency screener — browse live price, 24h % change, volume, and market-cap data across hundreds of pairs. Pagination is 1-based (10 coins per page). Sorting is applied client-side AFTER fetching, so `maxPages` (≤30, default 10) controls how many pages the server fetches before ranking — raise it for "most volatile across the market" queries, lower it to save API calls when an unsorted page is enough. The `fields` parameter accepts either a preset (minimal | standard | extended | full) or a comma-separated list of specific field names. Use for live market discovery; for already-tuned bot strategies use `list_presets`, for your own running bots use `list_bots`.

NameTypeReqDescription
categorystringFilter by category (optional)
fieldsstringField selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard"
maxMarketCapnumberMaximum market cap (optional)
maxPagesnumberWhen sorting, how many pages (10 coins each, ≤30, default 10) to fetch and rank across. Higher = wider pool for "most volatile" but more requests.
minMarketCapnumberMinimum market cap (optional)
minVolumenumberMinimum volume (optional)
orderstringSort order (optional, default desc when sorting)
pageintegerPage number for pagination (1-based). Default: 1
sortstringSort field (applied client-side; the API does not sort). One of: "volatility" (largest absolute 24h % change), "priceChange"/"change", "volume"/"totalVolume", "marketCap", "price". Use "volatility" t…
NameTypeReqDescription
dataarrayScreener rows (coins) with market data. When `sort` is used, ranked client-side and `meta` records the sort details.
metaobjectPagination / result metadata, present on list-style responses.
reasonstring|nullError reason when status is NOTOK; null otherwise.
statusstringOK on success, NOTOK on a handled API error.

No examples provided.

list_bots ~215

List the authenticated user's bots of one type (DCA, Combo, or Grid), with status/pagination/paper-context filters. Returns one page (controlled by `page`) of bot records; `fields` accepts a preset (minimal | standard | extended | full) or a comma-separated list of specific fields. Use this when you don't know the bot id yet or want to filter/browse — once you have an id, use `get_bot` for the single full record.

NameTypeReqDescription
botTypestringyesBot type
fieldsstringField selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard"
pageintegerPage number for pagination (1-based). Default: 1
paperContextbooleanPaper trading context (true = paper, false = real). Default: false
statusstringFilter by bot status
NameTypeReqDescription
dataarrayMatching bot records; fields present depend on the `fields` preset.
metaobjectPagination / result metadata, present on list-style responses.
reasonstring|nullError reason when status is NOTOK; null otherwise.
statusstringOK on success, NOTOK on a handled API error.

No examples provided.

list_deals ~234

List the user's deals of one type (DCA, Combo, or Terminal) with status, `botId`, and paper-context filters. Returns one page; `fields` accepts a preset or comma-separated list. Use this to find active/closed deals across bots or filter by status — once you have a `dealId`, switch to `get_deal` for full detail, `update_deal` for config edits, or `manage_deal` for lifecycle actions (close/add/reduce funds).

NameTypeReqDescription
botIdstringFilter by bot ID (optional)
dealTypestringyesDeal type
fieldsstringField selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard"
pageintegerPage number for pagination (1-based). Default: 1
paperContextbooleanPaper trading context (true = paper, false = real). Default: false
statusstringFilter by deal status
NameTypeReqDescription
dataarrayMatching deal records; fields present depend on the `fields` preset.
metaobjectPagination / result metadata, present on list-style responses.
reasonstring|nullError reason when status is NOTOK; null otherwise.
statusstringOK on success, NOTOK on a handled API error.

No examples provided.

list_presets ~314

Read-only curated bot-strategy presets ranked by backtested performance. Each coin returns tiers (short/mid/long) × strategy (long/short) with ROI, drawdown, and the full strategy `settings`. Filters: `botType` (required), `coin`+`exchange` (narrow to one pair — skips the closed-deals floor), `strategy` (long/short), `limit` (1–50, default 10). Set `summary: true` to drop the per-tier settings blob for a lightweight ranked list; `includeNoDeals: true` keeps coins with too few closed deals to meet the default floor. Use this to *browse* working strategies; pass any chosen row's tier/strategy to `apply_preset` to spin up a bot from it in one call.

NameTypeReqDescription
botTypestringyesBot type to list presets for
coinstringFilter to a single base asset, e.g. "BTC" (skips the closed-deals floor)
exchangestringCanonical exchange, e.g. "binance" (use with coin)
includeNoDealsbooleanInclude coins with fewer than the minimum closed deals (default false)
limitnumberMax coins to return (default 10, max 50)
strategystringFilter by direction (optional)
summarybooleanOmit the per-tier settings blob for a lightweight ranked list (default false)
NameTypeReqDescription
dataarrayCurated preset rows (one per coin), each with tiers × strategy, ROI, drawdown, and (unless summary) the full settings blob.
metaobjectPagination / result metadata, present on list-style responses.
reasonstring|nullError reason when status is NOTOK; null otherwise.
statusstringOK on success, NOTOK on a handled API error.

No examples provided.

manage_bot ~417

Bot lifecycle actions: `start`, `stop` (requires `closeType` for DCA/Combo or `closeGridType` for Grid — controls how open deals are unwound), `archive`, `restore`, or `changePairs` (DCA only — requires `pair` array). Effects are immediate: `stop` cancels new entries and may close positions per the chosen `closeType`, `archive` hides a stopped bot from default lists, and `changePairs` mutates the bot in-place. Use this for run-state changes; use `update_bot` for config edits and `manage_deal` for actions on a specific open deal.

NameTypeReqDescription
actionstringyesAction to perform on the bot
botIdstringyesBot identifier. Accepts EITHER the bot's 24-character hex MongoDB ObjectId (e.g. "65f000000000000000000001") OR the bot's UUID (e.g. "550e8400-e29b-41d4-a716-446655440000"). Either form resolves to t…
botTypestringyesBot type
cancelPartiallyFilledbooleanWhether to cancel partially filled orders when stopping (optional)
closeGridTypestringClose type for stop action (grid only)
closeTypestringClose type for stop action (dca/combo). "closeByMarket" closes all positions, "leave" pauses the bot.
pairarrayFull replacement set of trading pairs for changePairs action (DCA, multi-pair bots only). Underscore format, e.g. ["BTC_USDT","ETH_USDT"]. Replaces all existing pairs. Single-coin bots reject pair ch…
paperContextbooleanPaper trading context (true = paper, false = real). Default: false

No output schema declared.

No examples provided.

manage_deal ~420

Lifecycle actions on a single open deal: `close` (terminal — requires `closeType`), `addFunds`, or `reduceFunds` (both require `qty`, `type`, and — when type="fixed" — `asset`). Returns the updated deal record on success. Effects are immediate and not reversible — a market close fills at the current price, an `addFunds` opens a new entry order. Use this for *running* deals; create new deals with `create_deal`, edit deal *config* (TP, SL, settings) with `update_deal`, and start/stop the parent bot with `manage_bot`.

NameTypeReqDescription
actionstringyesAction to perform on the deal
assetstringDenomination for a fixed add/reduce — "quote" (e.g. USDT) or "base" (the coin). Required when type="fixed"; this is NOT a ticker symbol. Ignored when type="perc".
botIdstringBot ID for addFunds/reduceFunds (alternative to dealId for dca/combo)
closeTypestringClose type for close action
dealIdstringyesDeal identifier. Accepts EITHER the deal's 24-character hex MongoDB ObjectId (e.g. "65f000000000000000000001") OR the deal's UUID. Either form resolves to the same deal — use whichever the deal recor…
dealTypestringyesDeal type
paperContextbooleanPaper trading context (true = paper, false = real). Default: false
qtystringAmount to add/reduce. With type="fixed" it is an amount in the chosen asset denomination; with type="perc" it is a percentage of the position.
symbolstringSymbol override (optional)
typestringType: fixed amount or percentage

No output schema declared.

No examples provided.

manage_global_variable ~206

Create, update, or delete a global variable. Variables are user-defined constants referenced by name inside bot strategy expressions. `action` controls which: `create` needs `name`/`type`/`value`; `update` needs `id` plus any of `name`/`type`/`value`; `delete` needs `id` only. Delete is irreversible — any strategy that references the deleted variable will fall back to its inline default at next evaluation. To *read* existing variables, use `get_account` with `info="globalVariables"`; this tool only mutates.

NameTypeReqDescription
actionstringyesAction to perform
idstringVariable ID (required for update/delete)
namestringVariable name (required for create, optional for update)
typestringVariable type (required for create, optional for update)
valuestringVariable value (required for create, optional for update)

No output schema declared.

No examples provided.

run_backtest ~317

Submit a backtest of a candidate bot configuration. Four modes by `mode`: `validate` (server-side schema/sanity check, no run), `estimate` (return credit cost without running), `request` (enqueue an async job — returns a request id you poll via `backtest_info`), `requestSync` (block until done and return the result inline — only viable for small payloads). `request`/`requestSync` consume backtest credits per the `estimate` figure. Required payload: `exchange`, `exchangeUUID`, and bot `settings` — use `backtest_info` with `target="schema"` for the field shape per bot type. Use this to *try* a strategy; use `backtest_info` to retrieve results, list past runs, or fetch a payload template.

NameTypeReqDescription
botTypestringyesBot type for the backtest
fieldsstringField selection for requestSync mode (optional)
modestringyesBacktest mode. validate: confirm payload. estimate: check credit cost. request: async backtest. requestSync: wait for result.
paperContextbooleanPaper trading context (true = paper, false = real). Default: false
payloadobjectyesBacktest request wrapper. Required nesting: payload.data.exchange (string), payload.data.exchangeUUID (UUID string), payload.data.settings (inner bot settings object). Optional: from, to (Unix ms tim…

No output schema declared.

No examples provided.

update_bot ~314

Patch the settings of an existing DCA or Combo bot (Grid has no update endpoint — clone-and-recreate it instead). Pass only the fields you want to change inside `settings`; an empty `settings` object is rejected. Boolean gate enforcement: feature value fields (e.g. `slPerc`, `moveTPTrigger`) are silently ignored unless their toggle (`enableSL`, `useMoveTP`, etc.) is also set to `true` — to turn a feature on, send both the toggle and its value in the same call. Changes apply to new orders; open positions are not retroactively adjusted. Use `manage_bot` for lifecycle (start/stop/archive) and `manage_deal` for per-deal actions.

NameTypeReqDescription
botIdstringyesBot identifier. Accepts EITHER the bot's 24-character hex MongoDB ObjectId (e.g. "65f000000000000000000001") OR the bot's UUID (e.g. "550e8400-e29b-41d4-a716-446655440000"). Either form resolves to t…
botTypestringyesBot type (Grid does not support updates)
paperContextbooleanPaper trading context (true = paper, false = real). Default: false
settingsobjectyesSettings object with fields to update. Only include changed fields.

No output schema declared.

No examples provided.

update_deal ~219

Patch the settings of an existing open deal (e.g. take-profit %, stop-loss, trailing TP). Pass only the fields you want to change inside `settings`; empty `settings` is rejected. Changes apply to the deal's pending/future orders; already-filled entries are not re-priced. For close/add/reduce funds use `manage_deal`; for bot-wide config changes use `update_bot`.

NameTypeReqDescription
dealIdstringyesDeal identifier. Accepts EITHER the deal's 24-character hex MongoDB ObjectId (e.g. "65f000000000000000000001") OR the deal's UUID. Either form resolves to the same deal — use whichever the deal recor…
dealTypestringyesDeal type
paperContextbooleanPaper trading context (true = paper, false = real). Default: false
settingsobjectyesSettings object with fields to update. Only include changed fields.

No output schema declared.

No examples provided.