Grok Crypto Quant API

Pay-per-call crypto backtests, signals, token risk checks and universes (x402, USDC on Base).

사용해야 할까요

품질 및 안전성

A
설명 품질
95%
스키마 완전성
70%
이름 품질
88%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (2)

  • LOWTool 'health' description lacks action verbhealth에서
  • LOWTool 'get_schema' description lacks action verbget_schema에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~7,996토큰 (도구 정의)
~5.7 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 6.25%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "crypto-quant": {
      "url": "https://grok-backtest-api.fly.dev/mcp"
    }
  }
}

원격 엔드포인트

https://grok-backtest-api.fly.dev/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (13)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢backtest(strategy, universe, start, end, initial_capital, ...)

Backtest crypto strategies on 399 Coinbase coins without survivorship bias. DIY backtests usually use today's coin list, so dead coins vanish and returns are overstated; this rebuilds the universe from each past day's top coins. Breakout, momentum, dip-buy or MA-trend rules on daily data with fees, slippage, H1/H2 split and a luck flag. No data fetching or backtest code on your side. Price: $0.05 USDC per call (x402, Base mainnet). Free pre-check: validate_backtest. Free sample: backtest_sample.

입력 스키마

{
  "type": "object",
  "properties": {
    "strategy": {
      "discriminator": {
        "mapping": {
          "breakout": "#/$defs/Breakout",
          "dip": "#/$defs/Dip",
          "ma_trend": "#/$defs/MATrend",
          "momentum": "#/$defs/Momentum"
        },
        "propertyName": "type"
      },
      "oneOf": [
        {
          "$ref": "#/$defs/Breakout"
        },
        {
          "$ref": "#/$defs/Momentum"
        },
        {
          "$ref": "#/$defs/Dip"
        },
        {
          "$ref": "#/$defs/MATrend"
        }
      ],
      "title": "Strategy"
    },
    "universe": {
      "anyOf": [
        {
          "$ref": "#/$defs/Universe"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "start": {
      "anyOf": [
        {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "YYYY-MM-DD",
      "title": "Start"
    },
    "end": {
      "anyOf": [
        {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "YYYY-MM-DD",
      "title": "End"
    },
    "initial_capital": {
      "default": 150,
      "description": "Starting capital in USD",
      "exclusiveMinimum": 0,
      "maximum": 1000000000,
      "title": "Initial Capital",
      "type": "number"
    },
    "fee": {
      "default": 0.009,
      "description": "Fee per side (0.009 = 0.9%)",
      "maximum": 0.05,
      "minimum": 0,
      "title": "Fee",
      "type": "number"
    },
    "slippage": {
      "default": 0.002,
      "description": "Slippage per side",
      "maximum": 0.05,
      "minimum": 0,
      "title": "Slippage",
      "type": "number"
    },
    "include_trades": {
      "default": true,
      "title": "Include Trades",
      "type": "boolean"
    }
  },
  "required": [
    "strategy"
  ],
  "$defs": {
    "Breakout": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "breakout",
          "title": "Type",
          "type": "string"
        },
        "params": {
          "$ref": "#/$defs/BreakoutParams",
          "default": {
            "lookback": 20,
            "atr_mult": 2,
            "risk_per_trade": 0.05,
            "max_position_pct": 0.5,
            "max_positions": 3,
            "gate": "btc_ma50",
            "min_stop_pct": 0.06,
            "max_stop_pct": 0.4
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "Breakout",
      "type": "object"
    },
    "BreakoutParams": {
      "additionalProperties": false,
      "properties": {
        "lookback": {
          "default": 20,
          "description": "Buy when close > highest high of prior N days",
          "maximum": 60,
          "minimum": 5,
          "title": "Lookback",
          "type": "integer"
        },
        "atr_mult": {
          "default": 2,
          "description": "Trailing stop = highest close - k*ATR14",
          "maximum": 6,
          "minimum": 0.5,
          "title": "Atr Mult",
          "type": "number"
        },
        "risk_per_trade": {
          "default": 0.05,
          "description": "Fraction of equity risked to the initial stop",
          "exclusiveMinimum": 0,
          "maximum": 0.25,
          "title": "Risk Per Trade",
          "type": "number"
        },
        "max_position_pct": {
          "default": 0.5,
          "exclusiveMinimum": 0,
          "maximum": 1,
          "title": "Max Position Pct",
          "type": "number"
        },
        "max_positions": {
          "default": 3,
          "maximum": 10,
          "minimum": 1,
          "title": "Max Positions",
          "type": "integer"
        },
        "gate": {
          "default": "btc_ma50",
          "description": "Only open trades when BTC > 50-day SMA (btc_ma50) or >=50% of universe above 20d SMA (breadth50)",
          "enum": [
            "none",
            "btc_ma50",
            "breadth50"
          ],
          "title": "Gate",
          "type": "string"
        },
        "min_stop_pct": {
          "default": 0.06,
          "exclusiveMinimum": 0,
          "maximum": 0.5,
          "title": "Min Stop Pct",
          "type": "number"
        },
        "max_stop_pct": {
          "default": 0.4,
          "exclusiveMinimum": 0,
          "maximum": 0.9,
          "title": "Max Stop Pct",
          "type": "number"
        }
      },
      "title": "BreakoutParams",
      "type": "object"
    },
    "Dip": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "dip",
          "title": "Type",
          "type": "string"
        },
        "params": {
          "$ref": "#/$defs/DipParams",
          "default": {
            "drop_pct": 0.15,
            "days": 1,
            "trend_filter": "ma50",
            "max_hold_days": 5,
            "hard_stop_pct": 0.15,
            "max_positions": 3
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "Dip",
      "type": "object"
    },
    "DipParams": {
      "additionalProperties": false,
      "properties": {
        "drop_pct": {
          "default": 0.15,
          "description": "Buy after a fall of at least this fraction over `days`",
          "exclusiveMaximum": 0.9,
          "exclusiveMinimum": 0.01,
          "title": "Drop Pct",
          "type": "number"
        },
        "days": {
          "default": 1,
          "maximum": 10,
          "minimum": 1,
          "title": "Days",
          "type": "integer"
        },
        "trend_filter": {
          "default": "ma50",
          "enum": [
            "ma50",
            "none"
          ],
          "title": "Trend Filter",
          "type": "string"
        },
        "max_hold_days": {
          "default": 5,
          "maximum": 60,
          "minimum": 1,
          "title": "Max Hold Days",
          "type": "integer"
        },
        "hard_stop_pct": {
          "default": 0.15,
          "exclusiveMaximum": 0.9,
          "exclusiveMinimum": 0.01,
          "title": "Hard Stop Pct",
          "type": "number"
        },
        "max_positions": {
          "default": 3,
          "maximum": 10,
          "minimum": 1,
          "title": "Max Positions",
          "type": "integer"
        }
      },
      "title": "DipParams",
      "type": "object"
    },
    "MATrend": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "ma_trend",
          "title": "Type",
          "type": "string"
        },
        "params": {
          "$ref": "#/$defs/MATrendParams",
          "default": {
            "coins": [
              "ETH-USD"
            ],
            "ma_days": 50
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "MATrend",
      "type": "object"
    },
    "MATrendParams": {
      "additionalProperties": false,
      "properties": {
        "coins": {
          "default": [
            "ETH-USD"
          ],
          "description": "Coinbase product ids, e.g. ETH-USD",
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "minItems": 1,
          "title": "Coins",
          "type": "array"
        },
        "ma_days": {
          "default": 50,
          "maximum": 60,
          "minimum": 5,
          "title": "Ma Days",
          "type": "integer"
        }
      },
      "title": "MATrendParams",
      "type": "object"
    },
    "Momentum": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "momentum",
          "title": "Type",
          "type": "string"
        },
        "params": {
          "$ref": "#/$defs/MomentumParams",
          "default": {
            "lookback": 14,
            "top_n": 2,
            "rebalance_days": 7,
            "gate": "btc_ma50",
            "trail_pct": null
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "Momentum",
      "type": "object"
    },
    "MomentumParams": {
      "additionalProperties": false,
      "properties": {
        "lookback": {
          "default": 14,
          "description": "Rank by N-day return",
          "maximum": 60,
          "minimum": 3,
          "title": "Lookback",
          "type": "integer"
        },
        "top_n": {
          "default": 2,
          "maximum": 10,
          "minimum": 1,
          "title": "Top N",
          "type": "integer"
        },
        "rebalance_days": {
          "default": 7,
          "maximum": 30,
          "minimum": 1,
          "title": "Rebalance Days",
          "type": "integer"
        },
        "gate": {
          "default": "btc_ma50",
          "enum": [
            "none",
            "btc_ma50",
            "breadth50"
          ],
          "title": "Gate",
          "type": "string"
        },
        "trail_pct": {
          "anyOf": [
            {
              "exclusiveMaximum": 0.9,
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional % trailing stop from highest close",
          "title": "Trail Pct"
        }
      },
      "title": "MomentumParams",
      "type": "object"
    },
    "Universe": {
      "additionalProperties": false,
      "properties": {
        "mode": {
          "default": "point_in_time",
          "description": "point_in_time = top-N by trailing 20d $ volume AS OF each day (no survivorship bias); current_top = top-N as of the end date (biased, for comparison); fixed = your coin list",
          "enum": [
            "point_in_time",
            "current_top",
            "fixed"
          ],
          "title": "Mode",
          "type": "string"
        },
        "top_n": {
          "default": 30,
          "maximum": 200,
          "minimum": 5,
          "title": "Top N",
          "type": "integer"
        },
        "min_age_days": {
          "default": 35,
          "description": "Days a coin must have traded before it is eligible",
          "maximum": 120,
          "minimum": 0,
          "title": "Min Age Days",
          "type": "integer"
        },
        "min_avg_dollar_volume": {
          "default": 1000000,
          "description": "Min 20-day avg Coinbase $ volume",
          "minimum": 0,
          "title": "Min Avg Dollar Volume",
          "type": "number"
        },
        "coins": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "maxItems": 200,
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Coins"
        }
      },
      "title": "Universe",
      "type": "object"
    }
  },
  "title": "backtestArguments"
}
🟢market_signals(top_n)

Daily crypto market regime in one call: BTC/ETH vs 20/50-day MAs, breadth of the point-in-time top-N (no survivorship bias), coins nearest a 20-day breakout, and the R1 breakout strategy's gate and entry signals. No candle fetching or indicator code. Completed UTC daily closes only. Price: $0.01 USDC per call (x402, Base mainnet). Free sample: signals_sample.

입력 스키마

{
  "type": "object",
  "properties": {
    "top_n": {
      "default": 30,
      "description": "Universe size for breadth / breakout scan",
      "maximum": 200,
      "minimum": 5,
      "title": "Top N",
      "type": "integer"
    }
  },
  "title": "market_signalsArguments"
}
🟢token_check(chain, address)

Token scam check in one call instead of wiring up five data sources: honeypot sell simulation, unverified code, mint/pause/blacklist powers, taxes, upgradeable proxy, age, liquidity, fake major-token (e.g. fake USDC) lookalikes and spam-airdrop patterns. Base, Ethereum or Solana. Never visits metadata URLs. Price: $0.02 USDC per call (x402, Base mainnet). Free pre-check: validate_token_check.

입력 스키마

{
  "type": "object",
  "properties": {
    "chain": {
      "description": "base, ethereum or solana",
      "enum": [
        "base",
        "ethereum",
        "solana"
      ],
      "title": "Chain",
      "type": "string"
    },
    "address": {
      "description": "Token contract / mint address",
      "maxLength": 44,
      "minLength": 32,
      "title": "Address",
      "type": "string"
    }
  },
  "required": [
    "chain",
    "address"
  ],
  "title": "token_checkArguments"
}
🟢optimize_strategy(strategy, grid, universe, start, end, ...)

Find robust strategy params, not lucky ones: tests up to 50 combos on the same survivorship-bias-free backtester, ranks by worst-half (H1/H2) return with neighbourhood smoothing, flags overfitting, and recommends the most stable parameters rather than the best-fit ones. Price: $0.50 USDC per call (x402, Base mainnet). Free pre-check: validate_optimize.

입력 스키마

{
  "type": "object",
  "properties": {
    "strategy": {
      "$ref": "#/$defs/OptimizeStrategy"
    },
    "grid": {
      "additionalProperties": {
        "items": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "type": "array"
      },
      "description": "param -> values to try; <= 50 combos total, <= 10 values per param",
      "title": "Grid",
      "type": "object"
    },
    "universe": {
      "anyOf": [
        {
          "$ref": "#/$defs/Universe"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "start": {
      "anyOf": [
        {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "YYYY-MM-DD",
      "title": "Start"
    },
    "end": {
      "anyOf": [
        {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "YYYY-MM-DD",
      "title": "End"
    },
    "initial_capital": {
      "default": 150,
      "description": "Starting capital in USD",
      "exclusiveMinimum": 0,
      "maximum": 1000000000,
      "title": "Initial Capital",
      "type": "number"
    },
    "fee": {
      "default": 0.009,
      "description": "Fee per side (0.009 = 0.9%)",
      "maximum": 0.05,
      "minimum": 0,
      "title": "Fee",
      "type": "number"
    },
    "slippage": {
      "default": 0.002,
      "description": "Slippage per side",
      "maximum": 0.05,
      "minimum": 0,
      "title": "Slippage",
      "type": "number"
    },
    "rank_by": {
      "default": "robust",
      "enum": [
        "robust",
        "return"
      ],
      "title": "Rank By",
      "type": "string"
    }
  },
  "required": [
    "strategy",
    "grid"
  ],
  "$defs": {
    "OptimizeStrategy": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "enum": [
            "breakout",
            "momentum",
            "dip",
            "ma_trend"
          ],
          "title": "Type",
          "type": "string"
        },
        "params": {
          "additionalProperties": true,
          "default": {},
          "description": "Fixed (non-grid) params; same fields as /backtest strategy params",
          "title": "Params",
          "type": "object"
        }
      },
      "required": [
        "type"
      ],
      "title": "OptimizeStrategy",
      "type": "object"
    },
    "Universe": {
      "additionalProperties": false,
      "properties": {
        "mode": {
          "default": "point_in_time",
          "description": "point_in_time = top-N by trailing 20d $ volume AS OF each day (no survivorship bias); current_top = top-N as of the end date (biased, for comparison); fixed = your coin list",
          "enum": [
            "point_in_time",
            "current_top",
            "fixed"
          ],
          "title": "Mode",
          "type": "string"
        },
        "top_n": {
          "default": 30,
          "maximum": 200,
          "minimum": 5,
          "title": "Top N",
          "type": "integer"
        },
        "min_age_days": {
          "default": 35,
          "description": "Days a coin must have traded before it is eligible",
          "maximum": 120,
          "minimum": 0,
          "title": "Min Age Days",
          "type": "integer"
        },
        "min_avg_dollar_volume": {
          "default": 1000000,
          "description": "Min 20-day avg Coinbase $ volume",
          "minimum": 0,
          "title": "Min Avg Dollar Volume",
          "type": "number"
        },
        "coins": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "maxItems": 200,
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Coins"
        }
      },
      "title": "Universe",
      "type": "object"
    }
  },
  "title": "optimize_strategyArguments"
}
🟢universe_snapshot(date, top_n, min_age_days, min_avg_dollar_volume)

Survivorship-free top-N coin list for any past date: Coinbase USD pairs ranked by trailing 20-day dollar volume using only data available that day. Fixes your own backtests: picking today's top coins hides the ones that died and overstates returns. Price: $0.05 USDC per call (x402, Base mainnet). Free pre-check: validate_universe.

입력 스키마

{
  "type": "object",
  "properties": {
    "date": {
      "anyOf": [
        {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "YYYY-MM-DD",
      "title": "Date"
    },
    "top_n": {
      "default": 30,
      "maximum": 200,
      "minimum": 1,
      "title": "Top N",
      "type": "integer"
    },
    "min_age_days": {
      "default": 35,
      "maximum": 120,
      "minimum": 0,
      "title": "Min Age Days",
      "type": "integer"
    },
    "min_avg_dollar_volume": {
      "default": 1000000,
      "minimum": 0,
      "title": "Min Avg Dollar Volume",
      "type": "number"
    }
  },
  "title": "universe_snapshotArguments"
}
🟢signals_sample

Free, one day delayed: yesterday's full /signals result (BTC/ETH trend, breadth, breakout watchlist, R1 gate) so you can judge quality before paying. Today's result: paid market_signals ($0.01). Limit 60/hour per client.

입력 스키마

{
  "type": "object",
  "properties": {},
  "title": "signals_sampleArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "signals_sampleDictOutput"
}
🟢backtest_sample(strategy, days)

Free sample of the paid `backtest` tool on the same survivorship-bias-free engine: any strategy, point-in-time top-10 universe, window = last `days` (14..90) completed days, summary only. Full version: backtest ($0.05). Limit 30/hour per client.

입력 스키마

{
  "type": "object",
  "properties": {
    "strategy": {
      "discriminator": {
        "mapping": {
          "breakout": "#/$defs/Breakout",
          "dip": "#/$defs/Dip",
          "ma_trend": "#/$defs/MATrend",
          "momentum": "#/$defs/Momentum"
        },
        "propertyName": "type"
      },
      "oneOf": [
        {
          "$ref": "#/$defs/Breakout"
        },
        {
          "$ref": "#/$defs/Momentum"
        },
        {
          "$ref": "#/$defs/Dip"
        },
        {
          "$ref": "#/$defs/MATrend"
        }
      ],
      "title": "Strategy"
    },
    "days": {
      "default": 90,
      "description": "Window length in days, ending on the last completed UTC day",
      "maximum": 90,
      "minimum": 14,
      "title": "Days",
      "type": "integer"
    }
  },
  "required": [
    "strategy"
  ],
  "$defs": {
    "Breakout": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "breakout",
          "title": "Type",
          "type": "string"
        },
        "params": {
          "$ref": "#/$defs/BreakoutParams",
          "default": {
            "lookback": 20,
            "atr_mult": 2,
            "risk_per_trade": 0.05,
            "max_position_pct": 0.5,
            "max_positions": 3,
            "gate": "btc_ma50",
            "min_stop_pct": 0.06,
            "max_stop_pct": 0.4
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "Breakout",
      "type": "object"
    },
    "BreakoutParams": {
      "additionalProperties": false,
      "properties": {
        "lookback": {
          "default": 20,
          "description": "Buy when close > highest high of prior N days",
          "maximum": 60,
          "minimum": 5,
          "title": "Lookback",
          "type": "integer"
        },
        "atr_mult": {
          "default": 2,
          "description": "Trailing stop = highest close - k*ATR14",
          "maximum": 6,
          "minimum": 0.5,
          "title": "Atr Mult",
          "type": "number"
        },
        "risk_per_trade": {
          "default": 0.05,
          "description": "Fraction of equity risked to the initial stop",
          "exclusiveMinimum": 0,
          "maximum": 0.25,
          "title": "Risk Per Trade",
          "type": "number"
        },
        "max_position_pct": {
          "default": 0.5,
          "exclusiveMinimum": 0,
          "maximum": 1,
          "title": "Max Position Pct",
          "type": "number"
        },
        "max_positions": {
          "default": 3,
          "maximum": 10,
          "minimum": 1,
          "title": "Max Positions",
          "type": "integer"
        },
        "gate": {
          "default": "btc_ma50",
          "description": "Only open trades when BTC > 50-day SMA (btc_ma50) or >=50% of universe above 20d SMA (breadth50)",
          "enum": [
            "none",
            "btc_ma50",
            "breadth50"
          ],
          "title": "Gate",
          "type": "string"
        },
        "min_stop_pct": {
          "default": 0.06,
          "exclusiveMinimum": 0,
          "maximum": 0.5,
          "title": "Min Stop Pct",
          "type": "number"
        },
        "max_stop_pct": {
          "default": 0.4,
          "exclusiveMinimum": 0,
          "maximum": 0.9,
          "title": "Max Stop Pct",
          "type": "number"
        }
      },
      "title": "BreakoutParams",
      "type": "object"
    },
    "Dip": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "dip",
          "title": "Type",
          "type": "string"
        },
        "params": {
          "$ref": "#/$defs/DipParams",
          "default": {
            "drop_pct": 0.15,
            "days": 1,
            "trend_filter": "ma50",
            "max_hold_days": 5,
            "hard_stop_pct": 0.15,
            "max_positions": 3
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "Dip",
      "type": "object"
    },
    "DipParams": {
      "additionalProperties": false,
      "properties": {
        "drop_pct": {
          "default": 0.15,
          "description": "Buy after a fall of at least this fraction over `days`",
          "exclusiveMaximum": 0.9,
          "exclusiveMinimum": 0.01,
          "title": "Drop Pct",
          "type": "number"
        },
        "days": {
          "default": 1,
          "maximum": 10,
          "minimum": 1,
          "title": "Days",
          "type": "integer"
        },
        "trend_filter": {
          "default": "ma50",
          "enum": [
            "ma50",
            "none"
          ],
          "title": "Trend Filter",
          "type": "string"
        },
        "max_hold_days": {
          "default": 5,
          "maximum": 60,
          "minimum": 1,
          "title": "Max Hold Days",
          "type": "integer"
        },
        "hard_stop_pct": {
          "default": 0.15,
          "exclusiveMaximum": 0.9,
          "exclusiveMinimum": 0.01,
          "title": "Hard Stop Pct",
          "type": "number"
        },
        "max_positions": {
          "default": 3,
          "maximum": 10,
          "minimum": 1,
          "title": "Max Positions",
          "type": "integer"
        }
      },
      "title": "DipParams",
      "type": "object"
    },
    "MATrend": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "ma_trend",
          "title": "Type",
          "type": "string"
        },
        "params": {
          "$ref": "#/$defs/MATrendParams",
          "default": {
            "coins": [
              "ETH-USD"
            ],
            "ma_days": 50
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "MATrend",
      "type": "object"
    },
    "MATrendParams": {
      "additionalProperties": false,
      "properties": {
        "coins": {
          "default": [
            "ETH-USD"
          ],
          "description": "Coinbase product ids, e.g. ETH-USD",
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "minItems": 1,
          "title": "Coins",
          "type": "array"
        },
        "ma_days": {
          "default": 50,
          "maximum": 60,
          "minimum": 5,
          "title": "Ma Days",
          "type": "integer"
        }
      },
      "title": "MATrendParams",
      "type": "object"
    },
    "Momentum": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "momentum",
          "title": "Type",
          "type": "string"
        },
        "params": {
          "$ref": "#/$defs/MomentumParams",
          "default": {
            "lookback": 14,
            "top_n": 2,
            "rebalance_days": 7,
            "gate": "btc_ma50",
            "trail_pct": null
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "Momentum",
      "type": "object"
    },
    "MomentumParams": {
      "additionalProperties": false,
      "properties": {
        "lookback": {
          "default": 14,
          "description": "Rank by N-day return",
          "maximum": 60,
          "minimum": 3,
          "title": "Lookback",
          "type": "integer"
        },
        "top_n": {
          "default": 2,
          "maximum": 10,
          "minimum": 1,
          "title": "Top N",
          "type": "integer"
        },
        "rebalance_days": {
          "default": 7,
          "maximum": 30,
          "minimum": 1,
          "title": "Rebalance Days",
          "type": "integer"
        },
        "gate": {
          "default": "btc_ma50",
          "enum": [
            "none",
            "btc_ma50",
            "breadth50"
          ],
          "title": "Gate",
          "type": "string"
        },
        "trail_pct": {
          "anyOf": [
            {
              "exclusiveMaximum": 0.9,
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional % trailing stop from highest close",
          "title": "Trail Pct"
        }
      },
      "title": "MomentumParams",
      "type": "object"
    }
  },
  "title": "backtest_sampleArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "backtest_sampleDictOutput"
}
🟢health

Free: service status, prices, network and data range.

입력 스키마

{
  "type": "object",
  "properties": {},
  "title": "healthArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "healthDictOutput"
}
🟢get_schema

Free: request schemas, examples, prices and limits for every paid tool/endpoint.

입력 스키마

{
  "type": "object",
  "properties": {},
  "title": "get_schemaArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_schemaDictOutput"
}
🟢validate_backtest(strategy, universe, start, end, initial_capital, ...)

Free: check backtest arguments (same as the paid `backtest` tool) before paying.

입력 스키마

{
  "type": "object",
  "properties": {
    "strategy": {
      "discriminator": {
        "mapping": {
          "breakout": "#/$defs/Breakout",
          "dip": "#/$defs/Dip",
          "ma_trend": "#/$defs/MATrend",
          "momentum": "#/$defs/Momentum"
        },
        "propertyName": "type"
      },
      "oneOf": [
        {
          "$ref": "#/$defs/Breakout"
        },
        {
          "$ref": "#/$defs/Momentum"
        },
        {
          "$ref": "#/$defs/Dip"
        },
        {
          "$ref": "#/$defs/MATrend"
        }
      ],
      "title": "Strategy"
    },
    "universe": {
      "anyOf": [
        {
          "$ref": "#/$defs/Universe"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "start": {
      "anyOf": [
        {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "YYYY-MM-DD",
      "title": "Start"
    },
    "end": {
      "anyOf": [
        {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "YYYY-MM-DD",
      "title": "End"
    },
    "initial_capital": {
      "default": 150,
      "description": "Starting capital in USD",
      "exclusiveMinimum": 0,
      "maximum": 1000000000,
      "title": "Initial Capital",
      "type": "number"
    },
    "fee": {
      "default": 0.009,
      "description": "Fee per side (0.009 = 0.9%)",
      "maximum": 0.05,
      "minimum": 0,
      "title": "Fee",
      "type": "number"
    },
    "slippage": {
      "default": 0.002,
      "description": "Slippage per side",
      "maximum": 0.05,
      "minimum": 0,
      "title": "Slippage",
      "type": "number"
    },
    "include_trades": {
      "default": true,
      "title": "Include Trades",
      "type": "boolean"
    }
  },
  "required": [
    "strategy"
  ],
  "$defs": {
    "Breakout": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "breakout",
          "title": "Type",
          "type": "string"
        },
        "params": {
          "$ref": "#/$defs/BreakoutParams",
          "default": {
            "lookback": 20,
            "atr_mult": 2,
            "risk_per_trade": 0.05,
            "max_position_pct": 0.5,
            "max_positions": 3,
            "gate": "btc_ma50",
            "min_stop_pct": 0.06,
            "max_stop_pct": 0.4
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "Breakout",
      "type": "object"
    },
    "BreakoutParams": {
      "additionalProperties": false,
      "properties": {
        "lookback": {
          "default": 20,
          "description": "Buy when close > highest high of prior N days",
          "maximum": 60,
          "minimum": 5,
          "title": "Lookback",
          "type": "integer"
        },
        "atr_mult": {
          "default": 2,
          "description": "Trailing stop = highest close - k*ATR14",
          "maximum": 6,
          "minimum": 0.5,
          "title": "Atr Mult",
          "type": "number"
        },
        "risk_per_trade": {
          "default": 0.05,
          "description": "Fraction of equity risked to the initial stop",
          "exclusiveMinimum": 0,
          "maximum": 0.25,
          "title": "Risk Per Trade",
          "type": "number"
        },
        "max_position_pct": {
          "default": 0.5,
          "exclusiveMinimum": 0,
          "maximum": 1,
          "title": "Max Position Pct",
          "type": "number"
        },
        "max_positions": {
          "default": 3,
          "maximum": 10,
          "minimum": 1,
          "title": "Max Positions",
          "type": "integer"
        },
        "gate": {
          "default": "btc_ma50",
          "description": "Only open trades when BTC > 50-day SMA (btc_ma50) or >=50% of universe above 20d SMA (breadth50)",
          "enum": [
            "none",
            "btc_ma50",
            "breadth50"
          ],
          "title": "Gate",
          "type": "string"
        },
        "min_stop_pct": {
          "default": 0.06,
          "exclusiveMinimum": 0,
          "maximum": 0.5,
          "title": "Min Stop Pct",
          "type": "number"
        },
        "max_stop_pct": {
          "default": 0.4,
          "exclusiveMinimum": 0,
          "maximum": 0.9,
          "title": "Max Stop Pct",
          "type": "number"
        }
      },
      "title": "BreakoutParams",
      "type": "object"
    },
    "Dip": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "dip",
          "title": "Type",
          "type": "string"
        },
        "params": {
          "$ref": "#/$defs/DipParams",
          "default": {
            "drop_pct": 0.15,
            "days": 1,
            "trend_filter": "ma50",
            "max_hold_days": 5,
            "hard_stop_pct": 0.15,
            "max_positions": 3
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "Dip",
      "type": "object"
    },
    "DipParams": {
      "additionalProperties": false,
      "properties": {
        "drop_pct": {
          "default": 0.15,
          "description": "Buy after a fall of at least this fraction over `days`",
          "exclusiveMaximum": 0.9,
          "exclusiveMinimum": 0.01,
          "title": "Drop Pct",
          "type": "number"
        },
        "days": {
          "default": 1,
          "maximum": 10,
          "minimum": 1,
          "title": "Days",
          "type": "integer"
        },
        "trend_filter": {
          "default": "ma50",
          "enum": [
            "ma50",
            "none"
          ],
          "title": "Trend Filter",
          "type": "string"
        },
        "max_hold_days": {
          "default": 5,
          "maximum": 60,
          "minimum": 1,
          "title": "Max Hold Days",
          "type": "integer"
        },
        "hard_stop_pct": {
          "default": 0.15,
          "exclusiveMaximum": 0.9,
          "exclusiveMinimum": 0.01,
          "title": "Hard Stop Pct",
          "type": "number"
        },
        "max_positions": {
          "default": 3,
          "maximum": 10,
          "minimum": 1,
          "title": "Max Positions",
          "type": "integer"
        }
      },
      "title": "DipParams",
      "type": "object"
    },
    "MATrend": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "ma_trend",
          "title": "Type",
          "type": "string"
        },
        "params": {
          "$ref": "#/$defs/MATrendParams",
          "default": {
            "coins": [
              "ETH-USD"
            ],
            "ma_days": 50
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "MATrend",
      "type": "object"
    },
    "MATrendParams": {
      "additionalProperties": false,
      "properties": {
        "coins": {
          "default": [
            "ETH-USD"
          ],
          "description": "Coinbase product ids, e.g. ETH-USD",
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "minItems": 1,
          "title": "Coins",
          "type": "array"
        },
        "ma_days": {
          "default": 50,
          "maximum": 60,
          "minimum": 5,
          "title": "Ma Days",
          "type": "integer"
        }
      },
      "title": "MATrendParams",
      "type": "object"
    },
    "Momentum": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "momentum",
          "title": "Type",
          "type": "string"
        },
        "params": {
          "$ref": "#/$defs/MomentumParams",
          "default": {
            "lookback": 14,
            "top_n": 2,
            "rebalance_days": 7,
            "gate": "btc_ma50",
            "trail_pct": null
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "Momentum",
      "type": "object"
    },
    "MomentumParams": {
      "additionalProperties": false,
      "properties": {
        "lookback": {
          "default": 14,
          "description": "Rank by N-day return",
          "maximum": 60,
          "minimum": 3,
          "title": "Lookback",
          "type": "integer"
        },
        "top_n": {
          "default": 2,
          "maximum": 10,
          "minimum": 1,
          "title": "Top N",
          "type": "integer"
        },
        "rebalance_days": {
          "default": 7,
          "maximum": 30,
          "minimum": 1,
          "title": "Rebalance Days",
          "type": "integer"
        },
        "gate": {
          "default": "btc_ma50",
          "enum": [
            "none",
            "btc_ma50",
            "breadth50"
          ],
          "title": "Gate",
          "type": "string"
        },
        "trail_pct": {
          "anyOf": [
            {
              "exclusiveMaximum": 0.9,
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional % trailing stop from highest close",
          "title": "Trail Pct"
        }
      },
      "title": "MomentumParams",
      "type": "object"
    },
    "Universe": {
      "additionalProperties": false,
      "properties": {
        "mode": {
          "default": "point_in_time",
          "description": "point_in_time = top-N by trailing 20d $ volume AS OF each day (no survivorship bias); current_top = top-N as of the end date (biased, for comparison); fixed = your coin list",
          "enum": [
            "point_in_time",
            "current_top",
            "fixed"
          ],
          "title": "Mode",
          "type": "string"
        },
        "top_n": {
          "default": 30,
          "maximum": 200,
          "minimum": 5,
          "title": "Top N",
          "type": "integer"
        },
        "min_age_days": {
          "default": 35,
          "description": "Days a coin must have traded before it is eligible",
          "maximum": 120,
          "minimum": 0,
          "title": "Min Age Days",
          "type": "integer"
        },
        "min_avg_dollar_volume": {
          "default": 1000000,
          "description": "Min 20-day avg Coinbase $ volume",
          "minimum": 0,
          "title": "Min Avg Dollar Volume",
          "type": "number"
        },
        "coins": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "maxItems": 200,
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Coins"
        }
      },
      "title": "Universe",
      "type": "object"
    }
  },
  "title": "validate_backtestArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "validate_backtestDictOutput"
}
🟢validate_optimize(strategy, grid, universe, start, end, ...)

Free: check optimize_strategy arguments and count grid combos before paying.

입력 스키마

{
  "type": "object",
  "properties": {
    "strategy": {
      "$ref": "#/$defs/OptimizeStrategy"
    },
    "grid": {
      "additionalProperties": {
        "items": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "type": "array"
      },
      "description": "param -> values to try",
      "title": "Grid",
      "type": "object"
    },
    "universe": {
      "anyOf": [
        {
          "$ref": "#/$defs/Universe"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "start": {
      "anyOf": [
        {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "YYYY-MM-DD",
      "title": "Start"
    },
    "end": {
      "anyOf": [
        {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "YYYY-MM-DD",
      "title": "End"
    },
    "initial_capital": {
      "default": 150,
      "description": "Starting capital in USD",
      "exclusiveMinimum": 0,
      "maximum": 1000000000,
      "title": "Initial Capital",
      "type": "number"
    },
    "fee": {
      "default": 0.009,
      "description": "Fee per side (0.009 = 0.9%)",
      "maximum": 0.05,
      "minimum": 0,
      "title": "Fee",
      "type": "number"
    },
    "slippage": {
      "default": 0.002,
      "description": "Slippage per side",
      "maximum": 0.05,
      "minimum": 0,
      "title": "Slippage",
      "type": "number"
    },
    "rank_by": {
      "default": "robust",
      "enum": [
        "robust",
        "return"
      ],
      "title": "Rank By",
      "type": "string"
    }
  },
  "required": [
    "strategy",
    "grid"
  ],
  "$defs": {
    "OptimizeStrategy": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "enum": [
            "breakout",
            "momentum",
            "dip",
            "ma_trend"
          ],
          "title": "Type",
          "type": "string"
        },
        "params": {
          "additionalProperties": true,
          "default": {},
          "description": "Fixed (non-grid) params; same fields as /backtest strategy params",
          "title": "Params",
          "type": "object"
        }
      },
      "required": [
        "type"
      ],
      "title": "OptimizeStrategy",
      "type": "object"
    },
    "Universe": {
      "additionalProperties": false,
      "properties": {
        "mode": {
          "default": "point_in_time",
          "description": "point_in_time = top-N by trailing 20d $ volume AS OF each day (no survivorship bias); current_top = top-N as of the end date (biased, for comparison); fixed = your coin list",
          "enum": [
            "point_in_time",
            "current_top",
            "fixed"
          ],
          "title": "Mode",
          "type": "string"
        },
        "top_n": {
          "default": 30,
          "maximum": 200,
          "minimum": 5,
          "title": "Top N",
          "type": "integer"
        },
        "min_age_days": {
          "default": 35,
          "description": "Days a coin must have traded before it is eligible",
          "maximum": 120,
          "minimum": 0,
          "title": "Min Age Days",
          "type": "integer"
        },
        "min_avg_dollar_volume": {
          "default": 1000000,
          "description": "Min 20-day avg Coinbase $ volume",
          "minimum": 0,
          "title": "Min Avg Dollar Volume",
          "type": "number"
        },
        "coins": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "maxItems": 200,
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Coins"
        }
      },
      "title": "Universe",
      "type": "object"
    }
  },
  "title": "validate_optimizeArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "validate_optimizeDictOutput"
}
🟢validate_token_check(chain, address)

Free: format-check a token_check request (no on-chain lookups).

입력 스키마

{
  "type": "object",
  "properties": {
    "chain": {
      "enum": [
        "base",
        "ethereum",
        "solana"
      ],
      "title": "Chain",
      "type": "string"
    },
    "address": {
      "title": "Address",
      "type": "string"
    }
  },
  "required": [
    "chain",
    "address"
  ],
  "title": "validate_token_checkArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "validate_token_checkDictOutput"
}
🟢validate_universe(date, top_n, min_age_days, min_avg_dollar_volume)

Free: check universe_snapshot arguments (date in range, enough history) before paying.

입력 스키마

{
  "type": "object",
  "properties": {
    "date": {
      "anyOf": [
        {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "YYYY-MM-DD",
      "title": "Date"
    },
    "top_n": {
      "default": 30,
      "maximum": 200,
      "minimum": 1,
      "title": "Top N",
      "type": "integer"
    },
    "min_age_days": {
      "default": 35,
      "maximum": 120,
      "minimum": 0,
      "title": "Min Age Days",
      "type": "integer"
    },
    "min_avg_dollar_volume": {
      "default": 1000000,
      "minimum": 0,
      "title": "Min Avg Dollar Volume",
      "type": "number"
    }
  },
  "title": "validate_universeArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "validate_universeDictOutput"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 13개