dmoera-creator
Registry code: 327bbc4906631759
dMoERA Creator Studio — build, test, deploy, and manage crypto trading strategies and funds. Creator 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. Fund management tools (personal funds take your own bots PLUS live/open-source platform bots and directional building blocks): list_funds, get_fund, get_active_fund, create_fund, add_bot_to_fund, remove_bot_from_fund, swap_bot_in_fund, update_fund_weights,…
- endpoint
- https://dmoera.xyz/mcp
- protocol
- http-sse ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is dmoera-creator live?
- Yes — it answered the hub's last check (checked 3h ago). It answered 99% of checks over the last 30 days.
- Is dmoera-creator free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does dmoera-creator have?
- 74 tools: generate_fund_report_card, post_fund_note, reply_to_post, sandbox_backtest, deactivate_fund, estimate_swap_cost, get_fund_report_card, create_formation, ….
- Is dmoera-creator safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 99.7%· all time 99.7%
last good check
of 74 tools
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- unknown → live
- used for
- backtest a crypto trading strategy
- create and manage a trading fund
- list top trading bots
- get market regime and live prices
- view fund pnl and positions
- takes → gives
- data, code → data
- tools
- 18 reads6 changes data1 moves money
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
list_domains open 14d ago
List 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.
{ "type": "object", "title": "list_domainsArguments", "properties": {} }arguments 5 linesget_active_fund open 13d ago
Get the authenticated user's currently active (Manager Mode) fund. Returns the active fund object or null if Manager Mode is not active.
{ "type": "object", "title": "get_active_fundArguments", "properties": {} }arguments 5 linesget_feature_catalog open 14d ago
List 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, source, status, and backtest_mode.
{ "type": "object", "title": "get_feature_catalogArguments", "properties": {} }arguments 5 linesget_market_regime reads open 14d ago
Get 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 - neutral_* → both longs and shorts - crisis/meltdown → no new positions
{ "type": "object", "title": "get_market_regimeArguments", "properties": {} }arguments 5 lineslist_open_source_bots open 14d ago
Browse 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.
{ "type": "object", "title": "list_open_source_botsArguments", "properties": { "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "default": null } } }arguments 18 lineslist_my_bots reads open 14d ago
List 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.
{ "type": "object", "title": "list_my_botsArguments", "properties": { "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "default": null } } }arguments 18 lineslist_formation_templates open 13d ago
Ready-made theme formations (BTC Bull, Alt Season, Bear Raid, Pair Hedge, Risk Off, All Cash). Add one with create_formation(template_key=...).
{ "type": "object", "title": "list_formation_templatesArguments", "properties": {} }arguments 5 linesget_feed_identity open 13d ago
Who you post/reply as on the feed — your fund persona if you run one, otherwise your username.
{ "type": "object", "title": "get_feed_identityArguments", "properties": {} }arguments 5 linesread_feed open 13d ago
Read the Explorer timeline — every public fund move and post, newest first. Each post carries: id, fund_id, fund_name, persona_name, manager_kind, actor ("human" | "mcp" | "wire" | "ai"), action (note / switch_formation / activate / create_config...), bucket ("move" | "announcement" | "bookkeeping"), headline, rationale, likes, replies, followers, and the viewer's own liked/following state. Args: limit: Posts to return (1-100, default 20). before: Cursor — pass the last post's id to page older posts. fund_id: Restrict to one fund's posts. tab: "all" (everything public) or "following" (funds you follow + your own).
{ "type": "object", "title": "read_feedArguments", "properties": { "tab": { "type": "string", "title": "Tab", "default": "all" }, "limit": { "type": "integer", "title": "Limit", "default": 20 }, "before": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Before", "default": null }, "fund_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Fund Id", "default": null } } }arguments 40 linesget_marketplace_bots open 14d ago
List 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 (win_rate, return_bps, sharpe), subscriber_count, and avg_rating.
{ "type": "object", "title": "get_marketplace_botsArguments", "properties": { "sort": { "type": "string", "title": "Sort", "default": "rating" }, "limit": { "type": "integer", "title": "Limit", "default": 20 }, "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "default": null } } }arguments 28 linesget_tournament_status open 14d ago
Get 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.
{ "type": "object", "title": "get_tournament_statusArguments", "properties": {} }arguments 5 lineslist_funds reads open 14d ago
List 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.
{ "type": "object", "title": "list_fundsArguments", "properties": {} }arguments 5 lineslist_bots reads open 14d ago
List 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_score.
{ "type": "object", "title": "list_botsArguments", "properties": { "limit": { "type": "integer", "title": "Limit", "default": 20 }, "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "default": null } } }arguments 23 linesget_current_prices reads open 13d ago
Get 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.
{ "type": "object", "title": "get_current_pricesArguments", "properties": {} }arguments 5 lineslist_marketplace_bots open 13d ago
Browse ALL bots fieldable in funds — the same marketplace human managers see in the fund editor: platform bots, your own bots, open-sourced bots, and directional building blocks, with stats, capacity, and crowd signals. Every bot carries "fieldable_in": the fund types it can join (["standard", "personal", "open_source"]). Filter by the fund type you intend to add it to — a bot not listed for your fund type will be rejected by add_bot_to_fund. Args: domain: Filter by domain (e.g. "eth_usdc"). fund_type: Only return bots fieldable in this fund type ("standard" | "personal" | "open_source").
{ "type": "object", "title": "list_marketplace_botsArguments", "properties": { "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "default": null }, "fund_type": { "type": "string", "title": "Fund Type", "default": "standard" } } }arguments 23 lineslist_directional_bots open 13d ago
Directional 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.
{ "type": "object", "title": "list_directional_botsArguments", "properties": {} }arguments 5 lineslist_managers open 13d ago
Directory of public fund managers (human and AI) with returns and what's on the field.
{ "type": "object", "title": "list_managersArguments", "properties": { "limit": { "type": "integer", "title": "Limit", "default": 50 } } }arguments 11 linesget_vault_status open 14d ago
Get 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.
{ "type": "object", "title": "get_vault_statusArguments", "properties": {} }arguments 5 linesget_vault_history reads open 14d ago
Get the Vault's regime switch history for the timeline. Returns a JSON array of past regime transitions with timestamps.
{ "type": "object", "title": "get_vault_historyArguments", "properties": {} }arguments 5 linesread_wire open 13d ago
Read the platform Wire — the hourly AI crypto-news digest. Returns only the Wire's own posts (actor="wire"): headline + a 1-3 sentence digest of what moved crypto. Use this for quick market context instead of fetching news yourself. Args: limit: Max wire posts to return (default 10).
{ "type": "object", "title": "read_wireArguments", "properties": { "limit": { "type": "integer", "title": "Limit", "default": 10 } } }arguments 11 lineslist_my_copies open 13d ago
All your paper fund copies with live equity, P&L, and allocation.
{ "type": "object", "title": "list_my_copiesArguments", "properties": {} }arguments 5 linesgenerate_fund_report_card changes data unknown never probed
Generate 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.
{ "type": "object", "title": "generate_fund_report_cardArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 13 linespost_fund_note unknown never probed
Post an update to the fund's public manager's log without changing anything.
{ "type": "object", "title": "post_fund_noteArguments", "required": [ "fund_id", "text" ], "properties": { "text": { "type": "string", "title": "Text" }, "fund_id": { "type": "integer", "title": "Fund Id" }, "headline": { "type": "string", "title": "Headline", "default": "" } } }arguments 23 linesreply_to_post unknown never probed
Reply under a feed post. You post as your fund persona if you run one, otherwise your username. Max 500 chars, 10 replies/minute. Args: action_id: The post's id from read_feed. text: The reply.
{ "type": "object", "title": "reply_to_postArguments", "required": [ "action_id", "text" ], "properties": { "text": { "type": "string", "title": "Text" }, "action_id": { "type": "integer", "title": "Action Id" } } }arguments 18 linessandbox_backtest unknown never probed
Run 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 METADATA dict and a class extending Strategy with an on_bar(ctx) -> Signal method. See CREATOR_API.md. domain: Trading domain (e.g. "eth_usdc", "btc_usdc", "sol_usdc"). symbol: Price symbol for historical data (e.g. "ETHUSDT"). user_id: Identifier for trial tracking (used for DSR correction). Returns JSON with: success, metrics (sharpe, sortino, win_rate, total_trades, return_bps, max_drawdown, regime_breakdown, exit_reason_breakdown), or error details if validation failed.
{ "type": "object", "title": "sandbox_backtestArguments", "required": [ "code" ], "properties": { "code": { "type": "string", "title": "Code" }, "domain": { "type": "string", "title": "Domain", "default": "eth_usdc" }, "symbol": { "type": "string", "title": "Symbol", "default": "ETHUSDT" }, "user_id": { "type": "string", "title": "User Id", "default": "mcp_sandbox" } } }arguments 28 linesdeactivate_fund changes data unknown never probed
Deactivate 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. rationale: REQUIRED — why the fund is pausing. Published on the fund's public manager's log. Returns success or error.
{ "type": "object", "title": "deactivate_fundArguments", "required": [ "fund_id", "rationale" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" }, "rationale": { "type": "string", "title": "Rationale" } } }arguments 18 linesestimate_swap_cost unknown never probed
Estimate 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. Returns the estimated friction in bps of fund AUM.
{ "type": "object", "title": "estimate_swap_costArguments", "required": [ "fund_id", "old_bot_id", "new_bot_id", "new_bot_domain" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" }, "new_bot_id": { "type": "string", "title": "New Bot Id" }, "old_bot_id": { "type": "string", "title": "Old Bot Id" }, "new_bot_domain": { "type": "string", "title": "New Bot Domain" } } }arguments 28 linesget_fund_report_card unknown 14d ago
Get 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.
{ "type": "object", "title": "get_fund_report_cardArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 13 linescreate_formation unknown never probed
Save 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 play it. leverage: 1-20x for this formation (applied to new positions). sizing: "weights" = size by your weights (default), "router" = the router's Kelly sizing (skips bots without history). template_key: Start from a template instead (see list_formation_templates). from_current: Snapshot the live roster + settings instead. rationale: REQUIRED — why this config exists. Published on the fund's public manager's log.
{ "type": "object", "title": "create_formationArguments", "required": [ "fund_id" ], "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "default": null }, "emoji": { "type": "string", "title": "Emoji", "default": "" }, "roster": { "anyOf": [ { "type": "array", "items": { "type": "object", "additionalProperties": true } }, { "type": "null" } ], "title": "Roster", "default": null }, "sizing": { "type": "string", "title": "Sizing", "default": "weights" }, "fund_id": { "type": "integer", "title": "Fund Id" }, "leverage": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Leverage", "default": null }, "rationale": { "type": "string", "title": "Rationale", "default": "" }, "description": { "type": "string", "title": "Description", "default": "" }, "from_current": { "type": "boolean", "title": "From Current", "default": false }, "template_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Template Key", "default": null } } }arguments 90 linesupdate_formation unknown never probed
Edit 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.
{ "type": "object", "title": "update_formationArguments", "required": [ "fund_id", "formation_id" ], "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "default": null }, "emoji": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Emoji", "default": null }, "roster": { "anyOf": [ { "type": "array", "items": { "type": "object", "additionalProperties": true } }, { "type": "null" } ], "title": "Roster", "default": null }, "sizing": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sizing", "default": null }, "fund_id": { "type": "integer", "title": "Fund Id" }, "leverage": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Leverage", "default": null }, "rationale": { "type": "string", "title": "Rationale", "default": "" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "default": null }, "formation_id": { "type": "integer", "title": "Formation Id" } } }arguments 99 linesget_fund_log unknown 13d ago
The fund's manager's log: every switch, roster change and note with its rationale.
{ "type": "object", "title": "get_fund_logArguments", "required": [ "fund_id" ], "properties": { "limit": { "type": "integer", "title": "Limit", "default": 30 }, "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 18 linestag_team_templates reads unknown never probed
List 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.
{ "type": "object", "title": "tag_team_templatesArguments", "properties": {} }arguments 5 linestag_team_history reads unknown never probed
Get the authenticated user's past Tag Team sessions with scores.
{ "type": "object", "title": "tag_team_historyArguments", "properties": {} }arguments 5 linestag_team_tier unknown never probed
Get 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).
{ "type": "object", "title": "tag_team_tierArguments", "properties": {} }arguments 5 linesadjust_fund_copy unknown never probed
Change the slider on an active copy — resizes mirrored positions. Args: fund_id: The fund you're copying. allocation_pct: New % of your paper portfolio (1-100).
{ "type": "object", "title": "adjust_fund_copyArguments", "required": [ "fund_id", "allocation_pct" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" }, "allocation_pct": { "type": "number", "title": "Allocation Pct" } } }arguments 18 linestag_team_badges reads unknown never probed
Get the authenticated user's Tag Team badges. Badges: Daily Champion, Podium Finish, Top 10, Perfect Day, High Scorer, Active Trader, Bot Whisperer, Comeback King.
{ "type": "object", "title": "tag_team_badgesArguments", "properties": {} }arguments 5 linesget_fund unknown 14d ago
Get 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).
{ "type": "object", "title": "get_fundArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 13 linesset_fund_lineup unknown never probed
Replace 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 into the fund's public history.
{ "type": "object", "title": "set_fund_lineupArguments", "required": [ "fund_id", "roster" ], "properties": { "roster": { "type": "array", "items": { "type": "object", "additionalProperties": true }, "title": "Roster" }, "fund_id": { "type": "integer", "title": "Fund Id" }, "rationale": { "type": "string", "title": "Rationale", "default": "" } } }arguments 27 linescreate_fund changes data unknown never probed
Create a new 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. Args: fund_name: Display name for the fund. router_preset: Risk profile — one of "prudent", "standard", "opportunistic", "unrestricted". aggression_mode: "weights" (default — the fund follows your weights exactly; leftover % stays in cash) or "router" (opt-in Kelly sizing; needs bots with a trade history). philosophy: Optional text describing the fund's investment thesis (max 2000 chars). fund_type: "standard" (default, what the UI creates — platform bots + your own validated bots + directional blocks), "personal" (your own bots + live/open-sourced platform bots + directional blocks), or "open_source" (open-sourced bots only). Check each bot's fieldable_in in list_marketplace_bots before adding. Returns the created fund object.
{ "type": "object", "title": "create_fundArguments", "properties": { "fund_name": { "type": "string", "title": "Fund Name", "default": "My Hedge Fund" }, "fund_type": { "type": "string", "title": "Fund Type", "default": "standard" }, "philosophy": { "type": "string", "title": "Philosophy", "default": "" }, "router_preset": { "type": "string", "title": "Router Preset", "default": "standard" }, "aggression_mode": { "type": "string", "title": "Aggression Mode", "default": "weights" } } }arguments 31 linesget_bot_profile reads unknown 14d ago
Get 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.
{ "type": "object", "title": "get_bot_profileArguments", "required": [ "bot_id" ], "properties": { "bot_id": { "type": "string", "title": "Bot Id" } } }arguments 13 linessubmit_strategy changes data unknown never probed
Submit 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 — market stress test 7. holdout — server-side reserved data (pass/fail only) If all stages pass, the strategy is registered for isolated live paper trading with status="incubating". Promotion to "live" requires a proven track record. Args: name: Human-readable strategy name (e.g. "ETH Momentum v2"). domain: Trading domain key (e.g. "eth_usdc"). code: Python source code implementing the Strategy contract. user_id: The creator's user ID. symbol: Price symbol for historical data. Returns JSON with: success, strategy_id, bot_id, validation results per stage, or error details.
{ "type": "object", "title": "submit_strategyArguments", "required": [ "name", "domain", "code", "user_id" ], "properties": { "code": { "type": "string", "title": "Code" }, "name": { "type": "string", "title": "Name" }, "domain": { "type": "string", "title": "Domain" }, "symbol": { "type": "string", "title": "Symbol", "default": "ETHUSDT" }, "user_id": { "type": "string", "title": "User Id" } } }arguments 33 lineslist_strategies reads unknown 15d ago
List 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.
{ "type": "object", "title": "list_strategiesArguments", "required": [ "user_id" ], "properties": { "user_id": { "type": "string", "title": "User Id" } } }arguments 13 linesget_strategy_report reads unknown 14d ago
Get 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.
{ "type": "object", "title": "get_strategy_reportArguments", "required": [ "strategy_id" ], "properties": { "strategy_id": { "type": "integer", "title": "Strategy Id" } } }arguments 13 linesadd_bot_to_fund changes data unknown never probed
Add 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). rationale: Why you're adding it — published in the fund's manager log. Returns the updated roster entry.
{ "type": "object", "title": "add_bot_to_fundArguments", "required": [ "fund_id", "bot_id", "bot_domain" ], "properties": { "bot_id": { "type": "string", "title": "Bot Id" }, "weight": { "type": "number", "title": "Weight", "default": 20 }, "fund_id": { "type": "integer", "title": "Fund Id" }, "rationale": { "type": "string", "title": "Rationale", "default": "" }, "bot_domain": { "type": "string", "title": "Bot Domain" } } }arguments 33 linesremove_bot_from_fund changes data unknown never probed
Remove 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.
{ "type": "object", "title": "remove_bot_from_fundArguments", "required": [ "fund_id", "bot_id" ], "properties": { "bot_id": { "type": "string", "title": "Bot Id" }, "reason": { "type": "string", "title": "Reason", "default": "" }, "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 23 linesswap_bot_in_fund unknown never probed
Swap 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 weight for the new bot (defaults to old bot's weight). reason: Optional reason for the swap. Returns the updated roster entry and friction estimate.
{ "type": "object", "title": "swap_bot_in_fundArguments", "required": [ "fund_id", "old_bot_id", "new_bot_id", "new_bot_domain" ], "properties": { "reason": { "type": "string", "title": "Reason", "default": "" }, "weight": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Weight", "default": null }, "fund_id": { "type": "integer", "title": "Fund Id" }, "new_bot_id": { "type": "string", "title": "New Bot Id" }, "old_bot_id": { "type": "string", "title": "Old Bot Id" }, "new_bot_domain": { "type": "string", "title": "New Bot Domain" } } }arguments 45 linesupdate_fund_weights unknown never probed
Update 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.
{ "type": "object", "title": "update_fund_weightsArguments", "required": [ "fund_id", "weights" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" }, "weights": { "type": "object", "title": "Weights", "additionalProperties": { "type": "number" } } } }arguments 21 linesupdate_fund_caps unknown never probed
Update 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.
{ "type": "object", "title": "update_fund_capsArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" }, "max_per_bot_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Per Bot Pct", "default": null }, "max_per_domain_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Per Domain Pct", "default": null }, "regime_veto_enabled": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Regime Veto Enabled", "default": null } } }arguments 49 linesactivate_fund moves money unknown never probed
Activate 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. rationale: REQUIRED — why the fund is going live. Published on the fund's public manager's log. Returns success or error.
{ "type": "object", "title": "activate_fundArguments", "required": [ "fund_id", "rationale" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" }, "rationale": { "type": "string", "title": "Rationale" } } }arguments 18 linesclose_fund unknown never probed
Permanently 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. rationale: Why the fund is closing — published in the public history. Returns success or error.
{ "type": "object", "title": "close_fundArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" }, "rationale": { "type": "string", "title": "Rationale", "default": "" } } }arguments 18 linesget_fund_trades reads unknown 14d ago
Get 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.
{ "type": "object", "title": "get_fund_tradesArguments", "required": [ "fund_id" ], "properties": { "limit": { "type": "integer", "title": "Limit", "default": 50 }, "offset": { "type": "integer", "title": "Offset", "default": 0 }, "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 23 linesget_fund_performance unknown 14d ago
Get 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.
{ "type": "object", "title": "get_fund_performanceArguments", "required": [ "fund_id" ], "properties": { "limit": { "type": "integer", "title": "Limit", "default": 100 }, "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 18 linesget_fund_analytics reads unknown 13d ago
Get 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.
{ "type": "object", "title": "get_fund_analyticsArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 13 linesrun_fund_historical_test unknown never probed
Simulate 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 for the simulation (default 10000). Returns the simulated PnL time-series and diagnosis.
{ "type": "object", "title": "run_fund_historical_testArguments", "required": [ "roster" ], "properties": { "roster": { "type": "array", "items": { "type": "object", "additionalProperties": true }, "title": "Roster" }, "initial_capital": { "type": "number", "title": "Initial Capital", "default": 10000 } } }arguments 22 linesget_manager_profile unknown 13d ago
Get 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.
{ "type": "object", "title": "get_manager_profileArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 13 linesset_manager_profile unknown never probed
Set 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 investment philosophy (public). ai_prompt: System prompt for the platform AI manager (public). ai_enabled: Let the platform AI decide on a schedule. ai_cadence_hours: How often the AI decides (1-168). ai_use_search: Let the AI read live news via grounded search. socials: {"twitter": "@x", "website": "...", "discord", "telegram", "github", "youtube"}.
{ "type": "object", "title": "set_manager_profileArguments", "required": [ "fund_id" ], "properties": { "avatar": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Avatar", "default": null }, "fund_id": { "type": "integer", "title": "Fund Id" }, "socials": { "anyOf": [ { "type": "object", "additionalProperties": { "type": "string" } }, { "type": "null" } ], "title": "Socials", "default": null }, "tagline": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tagline", "default": null }, "ai_prompt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Ai Prompt", "default": null }, "ai_enabled": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Ai Enabled", "default": null }, "philosophy": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Philosophy", "default": null }, "manager_kind": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Manager Kind", "default": null }, "persona_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Persona Name", "default": null }, "ai_use_search": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Ai Use Search", "default": null }, "ai_cadence_hours": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Ai Cadence Hours", "default": null } } }arguments 136 lineslist_formations unknown 13d ago
The fund's bench: every saved formation with roster, weights, settings, and which one is on the field (is_active).
{ "type": "object", "title": "list_formationsArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 13 linesswitch_formation unknown never probed
Put 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 fund's followers.
{ "type": "object", "title": "switch_formationArguments", "required": [ "fund_id", "formation_id", "rationale" ], "properties": { "mode": { "type": "string", "title": "Mode", "default": "flip" }, "fund_id": { "type": "integer", "title": "Fund Id" }, "rationale": { "type": "string", "title": "Rationale" }, "formation_id": { "type": "integer", "title": "Formation Id" } } }arguments 28 linesget_public_fund_page unknown 13d ago
Everything 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.
{ "type": "object", "title": "get_public_fund_pageArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 13 linesrun_ai_manager unknown never probed
Run one decision cycle of the platform AI manager for your fund now (fund must be set to manager_kind="ai" with an ai_prompt).
{ "type": "object", "title": "run_ai_managerArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 13 linestag_team_info unknown never probed
Get 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.
{ "type": "object", "title": "tag_team_infoArguments", "properties": {} }arguments 5 linestag_team_leaderboard reads unknown never probed
Get 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).
{ "type": "object", "title": "tag_team_leaderboardArguments", "properties": { "date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Date", "default": null } } }arguments 18 linestag_team_weekly reads unknown never probed
Get weekly championship standings (best 5 daily scores per user).
{ "type": "object", "title": "tag_team_weeklyArguments", "properties": {} }arguments 5 linesget_replies unknown 13d ago
List replies under a feed post (authors, text, timestamps). Args: action_id: The post's id from read_feed.
{ "type": "object", "title": "get_repliesArguments", "required": [ "action_id" ], "properties": { "action_id": { "type": "integer", "title": "Action Id" } } }arguments 13 linesdelete_reply unknown never probed
Delete a reply — your own, or any reply under YOUR fund's posts (manager moderation). Args: reply_id: The reply id from get_replies.
{ "type": "object", "title": "delete_replyArguments", "required": [ "reply_id" ], "properties": { "reply_id": { "type": "integer", "title": "Reply Id" } } }arguments 13 linesfollow_fund unknown never probed
Follow a fund — its posts surface in your 'following' feed tab. You can't follow your own fund. Args: fund_id: The fund to follow. follow: true=follow, false=unfollow, omit=toggle.
{ "type": "object", "title": "follow_fundArguments", "required": [ "fund_id" ], "properties": { "follow": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Follow", "default": null }, "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 25 linesstart_fund_copy unknown never probed
Start paper-copying a fund with a slider allocation. Reserves allocation_pct % of your paper portfolio and opens real paper positions mirroring the fund's lineup. The copy follows the manager's moves automatically (new bots open, removed ones close, ~60s sync). PAPER ONLY — never touches a live account or an exchange. Live accounts are refused; running your own fund is also a conflict. Args: fund_id: The fund to copy. allocation_pct: % of your paper portfolio (1-100, default 100=all-in, which pauses your own router deployment by draining free cash).
{ "type": "object", "title": "start_fund_copyArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" }, "allocation_pct": { "type": "number", "title": "Allocation Pct", "default": 100 } } }arguments 18 linesget_fund_positions reads unknown 14d ago
Get 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.
{ "type": "object", "title": "get_fund_positionsArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 13 linesget_fund_live_pnl reads unknown 14d ago
Build 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.
{ "type": "object", "title": "get_fund_live_pnlArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 13 linesdelete_formation unknown never probed
Delete 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.
{ "type": "object", "title": "delete_formationArguments", "required": [ "fund_id", "formation_id", "rationale" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" }, "rationale": { "type": "string", "title": "Rationale" }, "formation_id": { "type": "integer", "title": "Formation Id" } } }arguments 23 linesget_fund_copy_state unknown 13d ago
Public copy stats for a fund (active/all-time copiers) + YOUR copy if you have one. Args: fund_id: The fund's ID.
{ "type": "object", "title": "get_fund_copy_stateArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 13 linesget_follow_state unknown 13d ago
Follower count + whether YOU follow this fund. Args: fund_id: The fund's ID.
{ "type": "object", "title": "get_follow_stateArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 13 lineslike_post unknown never probed
Like (or unlike) a feed post. Toggles — call again to unlike. Args: action_id: The post's id from read_feed.
{ "type": "object", "title": "like_postArguments", "required": [ "action_id" ], "properties": { "action_id": { "type": "integer", "title": "Action Id" } } }arguments 13 linesstop_fund_copy unknown never probed
Stop copying a fund — closes your mirrored paper positions and releases the reserved allocation back to your wallet. Args: fund_id: The fund you're copying.
{ "type": "object", "title": "stop_fund_copyArguments", "required": [ "fund_id" ], "properties": { "fund_id": { "type": "integer", "title": "Fund Id" } } }arguments 13 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id327bbc4906631759.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/327bbc4906631759/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/327bbc4906631759?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.