Skip to main content
Glama

luxalgo-mcp-server

Get a challenge's full ruleset

propfirms_challenge_rules

Fetch one directory challenge's complete ruleset (ChallengeSpec), adapted from the live LuxAlgo directory: evaluation steps (profit targets in percent units of the initial account, minimum trading days, time limits); the daily-loss rule with its exact semantics (basis = measured from prior-day balance vs prior-day equity; limitBasis = whether a pct limit is a fixed allowance of the initial balance or recomputed daily from the anchor; evaluation = breached on an intraday touch vs only at the close; includesOpenPnl = whether floating P&L can breach it); the max-loss rule and its drawdown mode (How the max-loss floor behaves - the single most consequential rule difference between firms. 'static-initial': floor fixed at initial balance minus the limit; never moves (classic CFD two-step). 'trailing-realized-eod': floor ratchets up with end-of-day balance highs; intraday highs do not move it. 'trailing-intraday-unrealized': floor trails the peak unrealized equity intraday and never stops trailing (futures-style; the most-miscalculated rule in the industry: it cuts pass probability dramatically). 'trailing-locks-at-initial': trails intraday peak equity until the floor reaches the initial balance, then freezes (common futures variant). Locking is also composable: locksAtInitial adds the same lock to an EOD trail, and lockOffsetAmount shifts the lock level to initial balance + that amount (e.g. 100 models 'stops trailing $100 above the start').); per-step consistency rules (steps[].consistency.maxBestDayProfitPct - SIMULATED: one outsized day effectively raises the target until the best-day share complies); fees (price, one-time vs monthly billing, reset fee, activation fee, refundable-on-pass); funded terms (profit split percent, payout frequency, first-payout minimum days, and funded.payoutRules - SIMULATED payout gating: minWinningDays, winningDayMinProfit, per-payout caps maxPayoutPctOfProfit/maxPayoutAmount, bufferAmount, and a windowed consistencyMaxBestDayPct gate); flagsNotSimulated (rules the entry declares but the engine does not simulate - material caveats to relay to the user); and sources (the firm-page citation when the directory serves one). The result also carries provenance and inferredFields - every rule read from free text instead of a structured column is named there; relay them and treat the firm's page as authoritative. The returned challenge object is exactly the shape the simulation tools accept as inline spec: copy it, change a rule, and re-simulate to quantify how a rule variation moves pass probability and EV. UNITS: every *Pct rule field and every percent-mode risk value is in PERCENT UNITS (5 = 5%, 0.5 = 0.5%). The one exception is winRate, which is a FRACTION in [0, 1] (0.55 = 55% winners). Probabilities in results are fractions in [0, 1]. DATA SOURCE & PROVENANCE: firm data comes live from LuxAlgo's public, keyless prop-firm directory API - the data behind luxalgo.com/prop-firms (origin overridable via the LUXALGO_APP_ORIGIN env var). Rule semantics are used verbatim where the directory serves structured rule columns; where it serves only free text, semantics are inferred ONLY when one reasonable reading exists, and every inferred field is disclosed in inferredFields (provenance 'directory+inferred') - relay those to the user next to any numbers. Challenges whose loss rules cannot be established are refused as not simulatable rather than guessed. Firms change rules; each firm's own page is always authoritative. NOTE: this returns the simulatable encoding of one challenge's rules; the directory listing with every captured field, plus live offers, is propfirms_get and propfirms_search_challenges.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
firmIdYesDirectory firm id or firm name from propfirms_list_simulatable, e.g. 'ftmo'.
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
challengeIdYesDirectory challenge id from propfirms_list_simulatable.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does so thoroughly. It discloses live data provenance from LuxAlgo, the LUXALGO_APP_ORIGIN override, the distinction between verbatim and inferred fields, the presence of provenance/inferredFields in results, refusal behavior for non-simulatable challenges, and the authority of the firm's own page.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very long, but it is densely packed with consequential details that are not available elsewhere, such as loss-rule semantics, units, provenance, and simulation compatibility. It is front-loaded with the core purpose and uses clear section labels, though a more streamlined structure would improve scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity and lack of an output schema, the description is exceptionally complete: it explains the full shape of the returned ruleset, the semantics of each major rule category, units for percent values and winRate, provenance/inferredFields handling, and how the returned challenge object can be fed into simulation tools. An agent has enough context to call and correctly interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add much parameter-specific meaning beyond the schema, though it reinforces that firmId and challengeId come from propfirms_list_simulatable. No parameter semantics are missing, but the description also does not elevate the parameter guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetch') and a specific resource ('one directory challenge's complete ruleset (ChallengeSpec)'), and clearly differentiates itself from sibling tools by stating that propfirms_get and propfirms_search_challenges serve the full listing instead. It also clarifies that this tool returns the simulatable encoding, distinguishing it from listing-oriented siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells agents when to use this tool vs alternatives: it returns the simulatable encoding, while the listing with every captured field and live offers is propfirms_get and propfirms_search_challenges. It also explains how the returned object can be copied and modified for re-simulation, and notes refusal behavior when loss rules cannot be established.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation4/5

The domain prefixes (edge_, library_, propfirms_, trackers_) cleanly separate four distinct areas, and within most clusters each tool has a specific job (search vs get vs list vs simulate). The propfirms cluster is the only strain: propfirms_simulate, propfirms_simulate_trades, propfirms_pass_rates, propfirms_compare, and propfirms_validate_strategy all overlap in the broad sense of 'running simulations,' though the descriptions do differentiate them by input type and scope.

Naming Consistency4/5

Each domain follows its own consistent pattern: library_get_*/library_list_*, propfirms_* with an action verb, edge_* and trackers_* as noun-style resources. The convention is recognizable and predictable per domain, with only minor deviations like propfirms_challenge_rules and propfirms_pass_rates being noun-first rather than verb-first.

Tool Count3/5

At 28 tools the server is heavy, but the count is justified by four large, distinct product surfaces (Library, Edge Stats, prop-firm simulation, and market trackers). Each individual cluster is reasonably scoped; the propfirms cluster alone accounts for 12 tools, which pushes the total into the 'too many' range even though the breadth is real.

Completeness5/5

Each domain feels complete: edge stats has catalog, symbol discovery, and report retrieval; the Library has search, browse, get, and source-code access; propfirms has search, get, rule encoding, simulation, trade-series simulation, comparison, optimization, and validation; trackers has dataset discovery, query, latest-publish, and cross-dataset ticker dossiers. There are no obvious dead ends or missing lifecycle steps within the read-only/analysis scope the server targets.