io.github.CacheCarti/dmoera-creator

dMoERA Creator

Build, backtest, and deploy crypto trading strategies via MCP with 7-stage validation.

Endpointhttps://dmoera.xyz/mcp (streamable-http)
Registry version1.0.0
Now59 tools · grade C (66) · pin ts_359ce0cbe116a52414a9a0403869d990 · protocol 2025-06-18
First / last listed2026-10-25 07:27 UTC / 2026-10-25 07:27 UTC
Grade over time2026-10-25: C (66), 59 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-10-25 07:27 UTC
59 tools, grade C (66)

Tools: list_domains list_bots get_bot_profile get_feature_catalog get_market_regime get_current_prices sandbox_backtest submit_strategy list_strategies get_strategy_report get_marketplace_bots get_tournament_status list_funds get_fund get_active_fund set_fund_lineup create_fund add_bot_to_fund remove_bot_from_fund swap_bot_in_fund update_fund_weights update_fund_caps activate_fund deactivate_fund close_fund estimate_swap_cost list_open_source_bots list_my_bots get_fund_positions get_fund_trades get_fund_performance get_fund_live_pnl get_fund_analytics run_fund_historical_test generate_fund_report_card get_fund_report_card get_manager_profile set_manager_profile list_formation_templates list_directional_bots list_formations create_formation update_formation delete_formation switch_formation post_fund_note get_fund_log get_public_fund_page list_managers run_ai_manager tag_team_info tag_team_templates tag_team_leaderboard tag_team_weekly tag_team_history tag_team_tier tag_team_badges get_vault_status get_vault_history

Current tools (59)

list_domainsList all available trading domains on dMoERA. Domains define what asset pair a strategy trades, what time horizon it uses (scalp=5m, swing=1h, crisis=2m), and what data is available. Strategies must declare which domain they belong to. Returns a JSON array of domain objects with: key, name, type, base_asset, quote_asset, grading_seconds, and feed_symbols.
params: none
list_botsList trading bots ranked by performance. Args: domain: Filter by domain key (e.g. "eth_usdc", "btc_usdc", "sol_usdc"). If omitted, returns top bots across all domains. limit: Maximum number of bots to return (default 20, max 100). Returns JSON array of bots with: bot_id, domain, strategy_name, sharpe, win_rate, total_trades, return_bps, and validation_s
params: domain, limit
get_bot_profileGet detailed profile and performance stats for a specific bot. Args: bot_id: The bot identifier (e.g. "Eth_Full_Ensemble"). Returns JSON with: bot_id, domain, strategy type, full performance metrics (Sharpe, Sortino, Calmar, profit factor, regime breakdown), current position if any, and recent trade history.
params: bot_id*
get_feature_catalogList all data feeds available to strategies via ctx.features. Features are external data that strategies can read during on_bar(). Each feature has a status: "live" (available now, requirable) or "planned" (roadmap, not yet available). Only live features can be used in required_features. Returns JSON array of features with: key, label, description, unit, example, cadence,
params: none
get_market_regimeGet current market regime classification. Returns the aggregate regime (e.g. "bull_calm", "bear_volatile"), per-symbol regimes, crisis score, and the derivatives data driving the classification (funding rates, open interest, long/short ratios, taker buy/sell ratios). Regime determines which trade directions are allowed: - bull_* → longs only - bear_* → shorts only
params: none
get_current_pricesGet current live prices for all tracked symbols. Returns JSON with symbol → {price, bid, ask, source, change_24h_pct, volume_24h} for ETHUSDT, BTCUSDT, SOLUSDT from Binance/Coinbase/Kraken.
params: none
sandbox_backtestRun a sandbox backtest of strategy code without persisting anything. This is the fastest way to test a strategy. The code is run through static checks and a full backtest on historical data, but no Strategy or StrategyVersion rows are created. Use this for rapid iteration. Args: code: Python source code implementing the Strategy contract. Must define a METAD
params: code*, domain, symbol, user_id
submit_strategySubmit a strategy for full validation and live deployment. Runs the complete 7-stage validation pipeline: 1. static_check — code safety (banned imports, syntax) 2. in_sample — sanity check on training data 3. out_of_sample — test on unseen data (70/30 split) 4. walk_forward — rolling window validation 5. randomized_start — different random start points 6. perturbation
params: name*, domain*, code*, user_id*, symbol
list_strategiesList all strategies created by a user. Args: user_id: The creator's user ID. Returns JSON array of strategies with: id, bot_id, name, domain, status, declared_sl_bps, declared_tp_bps, and created_at.
params: user_id*
get_strategy_reportGet a detailed report card for a strategy. Includes validation run results for all 7 stages, performance metrics, and the integrity block (code hash, AST hash, parameter fingerprint). Args: strategy_id: The strategy's database ID. Returns JSON with: strategy details, latest validation runs, metrics.
params: strategy_id*
get_marketplace_botsList bots published to the marketplace. Args: domain: Filter by domain (e.g. "eth_usdc"). Omit for all domains. sort: Sort order — "rating", "return", "subscribers", or "newest". limit: Max results (default 20, max 100). Returns JSON array of marketplace listings with: listing_id, bot_id, title, description, domain, creator, monthly_price_usd, cached stats
params: domain, sort, limit
get_tournament_statusGet current tournament round status and leaderboard. Tournaments run every 3 days. Top 3 bots per domain win prizes from the reward pool. Scoring is weighted: 50% risk-adjusted return, 30% total PnL, 20% consistency. Returns JSON with: current round info (round_id, start/end time, reward_pool_usd, total_participants), and leaderboard entries.
params: none
list_fundsList all hedge funds for the authenticated user (active + closed). Returns a JSON array of fund objects with: id, fund_name, is_active, inception_date, initial_capital, current_aum, router_preset, aggression_mode, total_pnl_usd, total_pnl_bps, and roster summary.
params: none
get_fundGet detailed info for a specific hedge fund, including its roster. Args: fund_id: The fund's ID. Returns a JSON object with fund details and active roster entries (bot_id, bot_name, weight, domain, current_pnl).
params: fund_id*
get_active_fundGet the authenticated user's currently active (Manager Mode) fund. Returns the active fund object or null if Manager Mode is not active.
params: none
set_fund_lineupReplace your fund's live lineup in one call. roster: [{"bot_id": "dir_long_btc", "weight_pct": 60}, {"bot_id": "...", "weight_pct": 25}] Weights are % of the fund; anything under 100 stays in cash. Bots that stay keep their positions, removed bots are closed at market, new bots open on their next signal (Always Long/Short bots open right away). The change and your rationale go
params: fund_id*, roster*, rationale
create_fundCreate a new personal hedge fund for the authenticated user. The fund starts inactive — call activate_fund to start Manager Mode. Initial capital is taken from the user's wallet_cash at creation time. Personal funds can ONLY contain the user's own bots — use list_my_bots to see eligible strategies. Args: fund_name: Display name for the fund. router_preset: Ris
params: fund_name, router_preset, aggression_mode, philosophy, fund_type
add_bot_to_fundAdd a bot to a fund's roster. Personal funds can only contain the authenticated user's OWN bots. Use list_my_bots to see eligible strategies. Args: fund_id: The fund's ID. bot_id: The bot to add (e.g. "momentum_eth_v3"). bot_domain: The bot's domain (e.g. "eth_usdc", "btc_usdc"). weight: Initial allocation weight in percent (default 20.0). rati
params: fund_id*, bot_id*, bot_domain*, weight, rationale
remove_bot_from_fundRemove a bot from a fund's roster (triggers wind-down of its positions). Args: fund_id: The fund's ID. bot_id: The bot to remove. reason: Optional reason for removal. Returns success or error.
params: fund_id*, bot_id*, reason
swap_bot_in_fundSwap one bot for another in a fund's roster. Closes the old bot's positions and opens new ones for the replacement. Incurs friction cost — use estimate_swap_cost first. Args: fund_id: The fund's ID. old_bot_id: The bot to remove. new_bot_id: The bot to add in its place. new_bot_domain: The new bot's domain (e.g. "eth_usdc"). weight: Allocation
params: fund_id*, old_bot_id*, new_bot_id*, new_bot_domain*, weight, reason
update_fund_weightsUpdate allocation weights for bots in a fund's roster. Args: fund_id: The fund's ID. weights: A dict mapping bot_id to new weight percentage (e.g. {"momentum_eth_v3": 15.0, "scalper_btc_v2": 20.0}). Returns success or error.
params: fund_id*, weights*
update_fund_capsUpdate a fund's risk caps and settings. Args: fund_id: The fund's ID. max_per_bot_pct: Max allocation per single bot (e.g. 40.0 = 40%). max_per_domain_pct: Max allocation per domain (e.g. 60.0 = 60%). regime_veto_enabled: Whether the regime detector can veto trades. Only provided fields are updated; others remain unchanged. Returns success or error.
params: fund_id*, max_per_bot_pct, max_per_domain_pct, regime_veto_enabled
activate_fundActivate Manager Mode for a fund — starts the personal router. This deploys capital across the fund's roster bots according to their weights and the fund's risk caps. The main platform router is paused while Manager Mode is active. Args: fund_id: The fund's ID. Returns success or error.
params: fund_id*
deactivate_fundDeactivate Manager Mode — returns to the main platform router. Closes all roster bot positions and returns capital to the wallet. Args: fund_id: The fund's ID. Returns success or error.
params: fund_id*
close_fundPermanently close a hedge fund. Returns all capital to the wallet. This is irreversible. The fund's performance record is preserved for reporting and copy-trader settlement. Args: fund_id: The fund's ID. Returns success or error.
params: fund_id*
estimate_swap_costEstimate the friction cost (in bps) of swapping a bot in a fund. Use this before calling swap_bot_in_fund to understand the cost of winding down the old bot's positions and opening new ones. Args: fund_id: The fund's ID. old_bot_id: The bot being considered for removal. new_bot_id: The replacement bot. new_bot_domain: The replacement bot's domain.
params: fund_id*, old_bot_id*, new_bot_id*, new_bot_domain*
list_open_source_botsBrowse open-source bots with normalized stats and capacity info. NOTE: personal funds can only contain the authenticated user's OWN bots — use list_my_bots for roster-eligible strategies. This tool is for researching the broader bot ecosystem. Args: domain: Filter by domain (e.g. "eth_usdc"). Returns a JSON array of bot entries with gamified card ratings.
params: domain
list_my_botsList the authenticated user's OWN bots eligible for a personal fund roster. Personal funds can NEVER contain another user's bots — this returns only the caller's own personal + incubating + live bots with live engine stats and gamified card ratings. Args: domain: Filter by domain (e.g. "eth_usdc"). Returns a JSON array of the user's bots.
params: domain
get_fund_positionsGet open positions for a fund's roster bots. Args: fund_id: The fund's ID. Returns a JSON array of open positions with entry/exit prices and PnL.
params: fund_id*
get_fund_tradesGet closed trade history for a fund's roster bots. Args: fund_id: The fund's ID. limit: Max trades to return (default 50). offset: Pagination offset. Returns a JSON array of closed trades.
params: fund_id*, limit, offset
get_fund_performanceGet performance snapshots for a fund's P&L graph. Args: fund_id: The fund's ID. limit: Max snapshots to return (default 100). Returns a JSON time-series of AUM/PnL snapshots.
params: fund_id*, limit
get_fund_live_pnlBuild a real-time PnL chart from closed positions for a fund's roster. Args: fund_id: The fund's ID. Returns a JSON series of cumulative PnL points.
params: fund_id*
get_fund_analyticsGet real-time analytics for a fund dashboard. Args: fund_id: The fund's ID. Returns fund analytics: allocation breakdown, per-bot performance, risk metrics, and benchmark comparison.
params: fund_id*
run_fund_historical_testSimulate how a roster of bots would have performed historically. Queries each bot's closed positions over the available historical period and combines them (weighted) into a single PnL time-series with diagnosis. Rate limited: 1 request per 30 seconds per user. Args: roster: List of {"bot_id": str, "weight_pct": float} entries. initial_capital: Starting capital fo
params: roster*, initial_capital
generate_fund_report_cardGenerate a new report card for a fund (immutable once saved). Args: fund_id: The fund's ID. Returns the generated report card with grades and analysis.
params: fund_id*
get_fund_report_cardGet the latest report card for a fund. Args: fund_id: The fund's ID. Returns the latest immutable report card, or null if none exists.
params: fund_id*
get_manager_profileGet a fund's manager persona: name, avatar, tagline, manager_kind (human|ai), AI prompt, AI schedule, socials, leverage and the formation currently on the field.
params: fund_id*
set_manager_profileSet the manager persona shown on the fund's PUBLIC page. Args: fund_id: Your fund. persona_name: Display name, e.g. "Grandma Prudence". avatar: One emoji, e.g. "👵". tagline: One line under the name. manager_kind: "human" or "ai". With "ai", the platform's AI loop can run the fund on a schedule using ai_prompt. philosophy: The fund's
params: fund_id*, persona_name, avatar, tagline, manager_kind, philosophy, ai_prompt, ai_enabled, ai_cadence_hours, ai_use_search, socials
list_formation_templatesReady-made theme formations (BTC Bull, Alt Season, Bear Raid, Pair Hedge, Risk Off, All Cash). Add one with create_formation(template_key=...).
params: none
list_directional_botsDirectional building-block bots: always long / always short BTC, ETH, SOL. Pure exposure, no edge — use them to express a market view in a formation (e.g. news is bullish for BTC -> a formation heavy in dir_long_btc). Allowed in personal and standard funds.
params: none
list_formationsThe fund's bench: every saved formation with roster, weights, settings, and which one is on the field (is_active).
params: fund_id*
create_formationSave a formation on the fund's bench. Args: fund_id: Your fund. name: Formation name, e.g. "Iran Oil Shock". roster: [{"bot_id": "dir_long_btc", "weight_pct": 60}, ...]. Weights under 100 total leave the rest in cash. Empty list = all cash. Shares may not add up to more than 100. emoji: Optional emoji. description: When you'd pla
params: fund_id*, name, roster, emoji, description, leverage, sizing, template_key, from_current, rationale
update_formationEdit a saved formation. Changes take effect next time it goes on the field. rationale is REQUIRED — why you changed it. Published on the manager's log.
params: fund_id*, formation_id*, name, roster, emoji, description, leverage, sizing, rationale
delete_formationDelete a formation from the bench (not the one on the field). rationale is REQUIRED — why you're deleting it. Published on the manager's log.
params: fund_id*, formation_id*, rationale*
switch_formationPut a formation on the field — the manager's main move. Bots in both lineups keep their positions. Departing bots: mode "flip" closes their positions at market now; "drain" lets them exit on their own rules. Arriving bots go through the normal fund rules; any rejected are listed in the result. The rationale is published on the fund's public manager's log — write it for the fun
params: fund_id*, formation_id*, rationale*, mode
post_fund_notePost an update to the fund's public manager's log without changing anything.
params: fund_id*, text*, headline
get_fund_logThe fund's manager's log: every switch, roster change and note with its rationale.
params: fund_id*, limit
get_public_fund_pageEverything on a fund's public page: manager persona, philosophy, AI prompt, formations, roster, open positions, track record and log. Works for any public fund, not just yours.
params: fund_id*
list_managersDirectory of public fund managers (human and AI) with returns and what's on the field.
params: limit
run_ai_managerRun one decision cycle of the platform AI manager for your fund now (fund must be set to manager_kind="ai" with an ai_prompt).
params: fund_id*
tag_team_infoGet the authenticated user's Tag Team session info. Tag Team is a daily paper-trading competition: you get $10k paper capital split 70% human / 30% Co-Pilot bot. Make manual trades, deploy the Co-Pilot after 3 closed manual trades, and your combined PnL is scored on the daily leaderboard. Returns session state, open positions, bot status, and rank.
params: none
tag_team_templatesList all available Co-Pilot templates (momentum, scalper, etc.). Each template defines the Co-Pilot bot's signal logic and tunable parameter ranges. Bot params carry over between days for the same template — trained settings persist.
params: none
tag_team_leaderboardGet the daily Tag Team leaderboard. Args: date: Optional date filter (YYYY-MM-DD). Defaults to today. Scoring needs 5+ human trades AND 5+ bot trades to qualify. score = sharpe x trade_factor x (1 + win_bonus).
params: date
tag_team_weeklyGet weekly championship standings (best 5 daily scores per user).
params: none
tag_team_historyGet the authenticated user's past Tag Team sessions with scores.
params: none
tag_team_tierGet the authenticated user's Tag Team tier and stats. Tiers: Rookie (0) -> Apprentice (10) -> Trader (50) -> Veteran (150) -> Expert (500) -> Master (1000+), based on total trades across all sessions (persists across days).
params: none
tag_team_badgesGet the authenticated user's Tag Team badges. Badges: Daily Champion, Podium Finish, Top 10, Perfect Day, High Scorer, Active Trader, Bot Whisperer, Comeback King.
params: none
get_vault_statusGet the authenticated user's Vault state. The Vault is a regime-aware allocator: in strong markets most capital holds BTC/ETH/SOL; when the market weakens it rotates into savings and funding arbitrage. Returns current regime, allocation weights, and sleeve holdings.
params: none
get_vault_historyGet the Vault's regime switch history for the timeline. Returns a JSON array of past regime transitions with timestamps.
params: none

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.