FirmFax prop firm data
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Independent rule and fee data on 71 prop trading firms, every figure with its evidence state.
| Author | com.firmfax |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 1936 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"FirmFax prop firm data": {
"url": "https://firmfax.com/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (6)
get_firmOne prop trading firm. Every figure states whether we hold evidence for it, and a firm whose score range spans more than one band carries no letter grade at all.
Parameters:
slug(required) — string — The firm slug, e.g. "topstep".
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_rule_changesThe dated record of what changed, newest first. Every entry states its KIND, and most of this tape is FirmFax correcting its own data rather than a firm changing its rules. Read counts before describing industry activity: a total taken across kinds overstates it.
Parameters:
kind— string — firm = the firm changed a rule. record = FirmFax corrected its own data. withdrawn = we published an entry and then retracted it.slug— string — Limit to one firm. Omit for every firm.limit— number — How many entries to return, newest first. Default 50.since— string — ISO date, e.g. "2026-08-01". Entries dated on or after it.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_evidenceThe stored reading behind a figure: the verbatim quote, the page it came from, and the date we read it. Answers "we hold none" explicitly rather than returning an empty list. `outcome` is load-bearing: a `contradicted`, `contradiction` or `absent` row records what we read, not a figure we publish. Use get_firm for the published figure.
Parameters:
slug(required) — string — The firm slug, e.g. "topstep".field— string — One field path, e.g. "rules.dailyLossLimit". Omit for every field we hold for this firm.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_firmsFirms matching every criterion given. A firm whose record does not carry a criterion is never counted as a match and never silently dropped: it is returned separately under unknown, with the field that could not be tested. Absence is common here, so read counts before treating the matched list as the answer.
Parameters:
assetClass— string — Firms recorded as offering this. 21 of 71 records name no asset class and are returned as unknown.maxResetFee— number — Reset fee at or below this. 56 of 71 record no fee.maxActivationFee— number — Activation fee at or below this. 42 of 71 record no fee.maxConsistencyPct— number — Consistency rule at or below this. 28 of 71 record none.maxDailyLossLimit— number — Daily loss limit at or below this, in the unit dailyLossLimitUnit names. 31 of 71 record none.maxMinTradingDays— number — Minimum trading days at or below this, counted as minTradingDaysUnit names. 16 of 71 record none.dailyLossLimitUnit— string — The unit maxDailyLossLimit is in. Daily loss limits are recorded in percent at some firms and in dollars at others, and the two are never compared: a firm recorded in the other unit is returned under unknown with its unit named.maxMinDaysToPayout— number — Minimum days to first payout at or below this, counted as minDaysToPayoutUnit names. 26 of 71 record none.minTradingDaysUnit— string — What maxMinTradingDays counts: calendar_days, trading_days or winning_days. A minimum is compared only with minimums counted the same way; a firm counting another way, or stating no unit, is returned under unknown with what it counts named.minDaysToPayoutUnit— string — What maxMinDaysToPayout counts: calendar_days, trading_days or winning_days. A wait is compared only with waits counted the same way; a firm counting another way, or stating no unit, is returned under unknown with what it counts named.minTradingDaysMinProfit— number — With winning_days only: the profit a day must reach to count. A firm whose winning days carry a different profit bar is returned under unknown.minDaysToPayoutMinProfit— number — With winning_days only: the profit a day must reach to count. A firm whose winning days carry a different profit bar is returned under unknown.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
compare_firmsTwo firms side by side. Reports each figure with its evidence state and whether the pair is comparable at all: a field neither firm records is not a tie, and a field only one records is not a win. No per-field winner is declared, because the direction of "better" for several of these is a judgement the published scoring model already makes; each firm's grade is returned alongside so the verdict comes from that model rather than from this tool.
Parameters:
a(required) — string — First firm slug.b(required) — string — Second firm slug.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_firmsEvery firm slug and name. Carries no figures, so nothing here needs evidence.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.