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
Available components
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
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 46 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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.
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
claude mcp add io-gainium-gainium-mcp -- npx -y gainium-mcp
codex mcp add io-gainium-gainium-mcp -- npx -y gainium-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"io-gainium-gainium-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"gainium-mcp"
],
"enabled": true
}
}
} openclaw mcp add io-gainium-gainium-mcp --command npx --arg -y --arg gainium-mcp
mcp_servers:
io-gainium-gainium-mcp:
command: "npx"
args: ["-y", "gainium-mcp"] {
"mcpServers": {
"io-gainium-gainium-mcp": {
"command": "npx",
"args": [
"-y",
"gainium-mcp"
]
}
}
} 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.
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.
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.
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.
| Name | Type | Req | Description |
|---|---|---|---|
| botType | string | yes | Bot type |
| coin | string | yes | Base asset, e.g. "BTC" |
| exchange | string | yes | Preset exchange, e.g. "binance" |
| exchangeUUID | string | yes | UUID of YOUR connected exchange to create the bot on (from get_account info:"exchanges") |
| name | string | — | Override the bot name (optional) |
| pair | array | — | Override the preset pair(s), underscore format e.g. ["BTC_USDT"] (optional) |
| paperContext | boolean | — | Paper trading context (true = paper, false = real). Default: false |
| strategy | string | — | Direction (default "long") |
| tier | string | yes | Risk 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.
| Name | Type | Req | Description |
|---|---|---|---|
| botType | string | yes | Bot type |
| exchange | string | — | Exchange code for template (optional, default: binance) |
| fields | string | — | Field selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard" |
| id | string | — | Request ID (required for target="request") |
| page | integer | — | Page number for pagination (1-based). Default: 1 |
| target | string | yes | Information 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.
| Name | Type | Req | Description |
|---|---|---|---|
| botId | string | yes | Bot 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… |
| botType | string | yes | Bot type |
| overrides | object | — | Optional settings to override in the cloned bot. Pass an object with fields to change. |
| paperContext | boolean | — | Paper 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.
| Name | Type | Req | Description |
|---|---|---|---|
| baseOrderSize | string | — | Size of the initial base order, e.g. "100" |
| botType | string | yes | Bot type |
| budget | number | — | Total budget for grid (Grid only) |
| exchangeUUID | string | yes | UUID of the exchange connection to use |
| gridLevel | string | — | Grid level count (Combo only) |
| gridType | string | — | Grid distribution type (Grid only) |
| levels | integer | — | Number of grid levels (Grid only) |
| lowPrice | number | — | Low price for grid range (Grid only) |
| maxNumberOfOpenDeals | string | — | Maximum concurrent open deals, e.g. "1" |
| moveSL | boolean | — | Enable trailing stop-loss (move SL as price moves in your favour). |
| moveSLTrigger | string | — | Profit % at which trailing SL is activated, e.g. "1.0" |
| moveSLValue | string | — | Trail distance % for the moving SL, e.g. "0.5" |
| name | string | — | Bot name |
| orderSize | string | — | Size of each DCA/grid order, e.g. "100" |
| orderSizeType | string | — | Order size reference currency. Default: quote |
| ordersCount | integer | — | Maximum number of orders (DCA/Combo) |
| pair | array | yes | Trading pairs as array of {base}_{quote} strings, e.g. ["BTC_USDT"]. For Grid bots pass a single-element array — the server unwraps it automatically. |
| paperContext | boolean | — | Paper trading context (true = paper, false = real). Default: false |
| settings | object | — | Transparent 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… |
| slPerc | string | — | Stop loss percentage, e.g. "-10" |
| startCondition | string | — | Condition to start a new deal. Default: ASAP |
| startOrderType | string | — | Order type for the base (start) order. Default: market |
| step | string | — | Price deviation % for next DCA/grid order, e.g. "1.5" |
| strategy | string | — | Trading direction. Default: LONG |
| topPrice | number | — | Top price for grid range (Grid only) |
| tpPerc | string | — | Take profit percentage, e.g. "1.5" |
| useDca | boolean | — | Enable DCA orders. Set false for a single base-order bot. |
| useSl | boolean | — | Enable 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`.
| Name | Type | Req | Description |
|---|---|---|---|
| baseOrderSize | string | — | Base order size for terminal |
| botId | string | — | Bot ID (required for dca/combo) |
| dealType | string | yes | Deal type |
| exchangeUUID | string | — | Exchange UUID (required for terminal) |
| orderSize | string | — | Order size for terminal |
| pair | string | — | Trading pair for terminal (optional) |
| paperContext | boolean | — | Paper trading context (true = paper, false = real). Default: false |
| settings | object | — | Transparent passthrough for any additional terminal deal settings. Merged flat into request body. |
| slPerc | string | — | Stop loss percentage for terminal |
| strategy | string | — | Trading strategy for terminal |
| symbol | string | — | Optional symbol override (dca/combo) |
| terminalDealType | string | — | Terminal deal type (required for terminal) |
| tpPerc | string | — | Take 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`.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | — | Action filter for indicators (optional: "add", "close", "update") |
| botType | string | — | Bot type (required for bot/botSections) |
| exchange | string | — | Exchange code for indicators (optional) |
| section | string | — | Section name for bot discovery (optional) |
| target | string | yes | Discovery target. bots: list all. bot: details for one. botSections: list sections. indicators: list all. indicator: details for one. supportedExchanges: list all. |
| type | string | — | Indicator type (required for target="indicator") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | Discovery metadata for the requested target: bot schemas, bot sections, indicator schemas (object), or lists of bots/indicators/exchanges (array). |
| meta | object | — | Pagination / result metadata, present on list-style responses. |
| reason | string|null | — | Error reason when status is NOTOK; null otherwise. |
| status | string | — | OK 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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | — | Filter by single asset (balances only) |
| assets | array | — | Filter by multiple assets (balances only). Use asset OR assets, not both. |
| exchangeId | string | — | Filter by exchange ID (balances only) |
| fields | string | — | Field selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard" |
| info | string | yes | Information type. balances: account balances. exchanges: connected exchanges. globalVariables: user variables. supportedExchanges: API supports. |
| page | integer | — | Page number for pagination (1-based). Default: 1 |
| paperContext | boolean | — | Paper trading context (true = paper, false = real). Default: false |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | Account information for the requested type: balances, connected exchanges, global variables, or supported exchanges (array or object depending on `info`). |
| meta | object | — | Pagination / result metadata, present on list-style responses. |
| reason | string|null | — | Error reason when status is NOTOK; null otherwise. |
| status | string | — | OK 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`.
| Name | Type | Req | Description |
|---|---|---|---|
| botId | string | yes | Bot 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… |
| botType | string | yes | Bot type |
| fields | string | — | Field selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard" |
| paperContext | boolean | — | Paper trading context (true = paper, false = real). Default: false |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | — | The bot record; fields present depend on the `fields` preset. |
| meta | object | — | Pagination / result metadata, present on list-style responses. |
| reason | string|null | — | Error reason when status is NOTOK; null otherwise. |
| status | string | — | OK 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`.
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | Deal 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… |
| dealType | string | yes | Deal type |
| fields | string | — | Field selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard" |
| paperContext | boolean | — | Paper trading context (true = paper, false = real). Default: false |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | — | The deal record; fields present depend on the `fields` preset. |
| meta | object | — | Pagination / result metadata, present on list-style responses. |
| reason | string|null | — | Error reason when status is NOTOK; null otherwise. |
| status | string | — | OK 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`.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Filter by category (optional) |
| fields | string | — | Field selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard" |
| maxMarketCap | number | — | Maximum market cap (optional) |
| maxPages | number | — | When sorting, how many pages (10 coins each, ≤30, default 10) to fetch and rank across. Higher = wider pool for "most volatile" but more requests. |
| minMarketCap | number | — | Minimum market cap (optional) |
| minVolume | number | — | Minimum volume (optional) |
| order | string | — | Sort order (optional, default desc when sorting) |
| page | integer | — | Page number for pagination (1-based). Default: 1 |
| sort | string | — | Sort 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… |
| Name | Type | Req | Description |
|---|---|---|---|
| data | array | — | Screener rows (coins) with market data. When `sort` is used, ranked client-side and `meta` records the sort details. |
| meta | object | — | Pagination / result metadata, present on list-style responses. |
| reason | string|null | — | Error reason when status is NOTOK; null otherwise. |
| status | string | — | OK 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.
| Name | Type | Req | Description |
|---|---|---|---|
| botType | string | yes | Bot type |
| fields | string | — | Field selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard" |
| page | integer | — | Page number for pagination (1-based). Default: 1 |
| paperContext | boolean | — | Paper trading context (true = paper, false = real). Default: false |
| status | string | — | Filter by bot status |
| Name | Type | Req | Description |
|---|---|---|---|
| data | array | — | Matching bot records; fields present depend on the `fields` preset. |
| meta | object | — | Pagination / result metadata, present on list-style responses. |
| reason | string|null | — | Error reason when status is NOTOK; null otherwise. |
| status | string | — | OK 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).
| Name | Type | Req | Description |
|---|---|---|---|
| botId | string | — | Filter by bot ID (optional) |
| dealType | string | yes | Deal type |
| fields | string | — | Field selection: preset ("minimal", "standard", "extended", "full") or comma-separated fields (e.g. "_id,uuid,settings.name,profit.total"). Default: "standard" |
| page | integer | — | Page number for pagination (1-based). Default: 1 |
| paperContext | boolean | — | Paper trading context (true = paper, false = real). Default: false |
| status | string | — | Filter by deal status |
| Name | Type | Req | Description |
|---|---|---|---|
| data | array | — | Matching deal records; fields present depend on the `fields` preset. |
| meta | object | — | Pagination / result metadata, present on list-style responses. |
| reason | string|null | — | Error reason when status is NOTOK; null otherwise. |
| status | string | — | OK 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.
| Name | Type | Req | Description |
|---|---|---|---|
| botType | string | yes | Bot type to list presets for |
| coin | string | — | Filter to a single base asset, e.g. "BTC" (skips the closed-deals floor) |
| exchange | string | — | Canonical exchange, e.g. "binance" (use with coin) |
| includeNoDeals | boolean | — | Include coins with fewer than the minimum closed deals (default false) |
| limit | number | — | Max coins to return (default 10, max 50) |
| strategy | string | — | Filter by direction (optional) |
| summary | boolean | — | Omit the per-tier settings blob for a lightweight ranked list (default false) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | array | — | Curated preset rows (one per coin), each with tiers × strategy, ROI, drawdown, and (unless summary) the full settings blob. |
| meta | object | — | Pagination / result metadata, present on list-style responses. |
| reason | string|null | — | Error reason when status is NOTOK; null otherwise. |
| status | string | — | OK 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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Action to perform on the bot |
| botId | string | yes | Bot 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… |
| botType | string | yes | Bot type |
| cancelPartiallyFilled | boolean | — | Whether to cancel partially filled orders when stopping (optional) |
| closeGridType | string | — | Close type for stop action (grid only) |
| closeType | string | — | Close type for stop action (dca/combo). "closeByMarket" closes all positions, "leave" pauses the bot. |
| pair | array | — | Full 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… |
| paperContext | boolean | — | Paper 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`.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Action to perform on the deal |
| asset | string | — | Denomination 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". |
| botId | string | — | Bot ID for addFunds/reduceFunds (alternative to dealId for dca/combo) |
| closeType | string | — | Close type for close action |
| dealId | string | yes | Deal 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… |
| dealType | string | yes | Deal type |
| paperContext | boolean | — | Paper trading context (true = paper, false = real). Default: false |
| qty | string | — | Amount 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. |
| symbol | string | — | Symbol override (optional) |
| type | string | — | Type: 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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Action to perform |
| id | string | — | Variable ID (required for update/delete) |
| name | string | — | Variable name (required for create, optional for update) |
| type | string | — | Variable type (required for create, optional for update) |
| value | string | — | Variable 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.
| Name | Type | Req | Description |
|---|---|---|---|
| botType | string | yes | Bot type for the backtest |
| fields | string | — | Field selection for requestSync mode (optional) |
| mode | string | yes | Backtest mode. validate: confirm payload. estimate: check credit cost. request: async backtest. requestSync: wait for result. |
| paperContext | boolean | — | Paper trading context (true = paper, false = real). Default: false |
| payload | object | yes | Backtest 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.
| Name | Type | Req | Description |
|---|---|---|---|
| botId | string | yes | Bot 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… |
| botType | string | yes | Bot type (Grid does not support updates) |
| paperContext | boolean | — | Paper trading context (true = paper, false = real). Default: false |
| settings | object | yes | Settings 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`.
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | Deal 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… |
| dealType | string | yes | Deal type |
| paperContext | boolean | — | Paper trading context (true = paper, false = real). Default: false |
| settings | object | yes | Settings object with fields to update. Only include changed fields. |
No output schema declared.
No examples provided.