Skip to main content
Glama

FirmFax prop firm data

Server Details

Independent rule and fee data on 71 prop trading firms, every figure with its evidence state.

Ownership verified
Status
Healthy
Uptime
87.9% over 24 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A3.6/5.0

Scored across 6 tools

Disambiguation4/5

Each tool has a distinct action: enumerate (list_firms), filter (find_firms), single-firm detail (get_firm), pairwise comparison (compare_firms), provenance (get_evidence), and change log (get_rule_changes). The main potential confusion is find_firms vs list_firms and get_firm vs compare_firms, but the descriptions clearly delineate filtered subsets and pairwise comparability.

Naming Consistency5/5

All six tools follow a clean verb_noun snake_case pattern (compare_firms, find_firms, get_evidence, get_firm, get_rule_changes, list_firms). No mixing of conventions or ambiguous standalone verbs.

Tool Count5/5

Six tools is well within the ideal range and each maps to a distinct read operation for a data-lookup domain. Nothing feels redundant or padded, and there are no missing-purpose duplicates.

Completeness4/5

The read-only surface covers enumeration, search, single lookup, comparison, evidence provenance, and change history, which is solid coverage for a prop-firm data server. Minor gaps like no direct evidence search or filtering by evidence state across firms are workable, but the core lifecycle is complete.

Available Tools

6 tools
compare_firmsBInspect

Two 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
aYesFirst firm slug.
bYesSecond firm slug.

TDQS

B3.3/5.0
Behavior4/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 discloses meaningful behavior: what is returned (each figure with evidence state), the comparability rules (a field neither records is not a tie, a field only one records is not a win), and that no per-field winner is declared because the published scoring model makes that judgement. It does not state read-only safety, auth needs, or error handling for invalid slugs.

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

Conciseness3/5

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

The lead sentence is short and front-loaded, but the remainder is a dense, clause-heavy run-on that mixes three separate ideas (comparability rules, tie/win semantics, model-sourced verdicts). The tie/win rule earns its place, but the phrasing is over-explained and could be trimmed.

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

Completeness3/5

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

There is no output schema, so the description must describe returns, and it does cover the shape of the response (figures, evidence state, grade) and comparability semantics. However it omits error behavior for invalid or unknown slugs and any indication of output format, leaving gaps for a tool with no structured return documentation.

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% and both parameters (a, b) are documented as firm slugs in the schema. The description adds no syntax or format detail beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

The opening 'Two firms side by side' states the resource and the comparative operation clearly, and the following text specifies that each figure is reported with its evidence state and comparability. It distinguishes itself from single-firm siblings (get_firm, find_firms) by being a pairwise comparison, though the verb 'compare' is implied by the name rather than stated.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance and no reference to alternatives such as get_firm or list_firms. The agent must infer that this is for pairwise comparison rather than two separate lookups. The description explains output semantics but not selection context.

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

find_firmsAInspect

Firms 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetClassNoFirms recorded as offering this. 21 of 71 records name no asset class and are returned as unknown.
maxResetFeeNoReset fee at or below this. 56 of 71 record no fee.
maxActivationFeeNoActivation fee at or below this. 42 of 71 record no fee.
maxConsistencyPctNoConsistency rule at or below this. 28 of 71 record none.
maxDailyLossLimitNoDaily loss limit at or below this, in the unit dailyLossLimitUnit names. 31 of 71 record none.
maxMinTradingDaysNoMinimum trading days at or below this, counted as minTradingDaysUnit names. 16 of 71 record none.
dailyLossLimitUnitNoThe 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.
maxMinDaysToPayoutNoMinimum days to first payout at or below this, counted as minDaysToPayoutUnit names. 26 of 71 record none.
minTradingDaysUnitNoWhat 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.
minDaysToPayoutUnitNoWhat 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.
minTradingDaysMinProfitNoWith 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.
minDaysToPayoutMinProfitNoWith 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.

TDQS

A3.6/5.0
Behavior4/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 delivers a genuinely useful behavioral trait not derivable from the schema alone: non-matching-by-absence records are returned separately under 'unknown' with the untestable field named, never silently dropped. It stops short of describing pagination, ordering, or the response envelope.

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?

Three sentences, front-loaded with the core predicate before the caveat, and each sentence carries distinct information. Minor density cost from the colon-and-clause construction, but no filler.

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

Completeness3/5

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

For a 12-parameter tool with no annotations and no output schema, the description covers the crucial unknown-bucket semantics but leaves the return shape, matched-list structure, and any limits unaddressed. Adequate but with an evident gap around what actually comes back.

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% and each parameter already documents its own unit and unknown-record counts (e.g. '56 of 71 record no fee'). The description adds no per-parameter syntax or semantics beyond what the schema provides, so the baseline 3 applies.

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

Purpose4/5

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

States a specific operation on a named resource: firms matching every criterion given, i.e. a conjunctive filter over firm records. That is clear enough to distinguish it from get_firm and compare_firms, though it never explicitly contrasts itself with list_firms, the nearest sibling.

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

Usage Guidelines3/5

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

Offers real interpretive guidance ('read counts before treating the matched list as the answer' because absence is common), but gives no explicit when-to-use/when-not-to-use framing and never routes the agent to compare_firms or list_firms. Usage is implied rather than stated.

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

get_evidenceAInspect

The 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe firm slug, e.g. "topstep".
fieldNoOne field path, e.g. "rules.dailyLossLimit". Omit for every field we hold for this firm.

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does useful work: it states the response shape (quote, page, date), that it answers 'we hold none' rather than an empty list, and that outcome values like contradicted/contradiction/absent record a reading rather than a published figure. That is meaningful behavioral context about returns. It leaves permissions/rate behavior unstated, which is a minor gap.

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

Conciseness3/5

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

Three sentences that front-load the resource, but the `outcome` sentence is jargon-heavy ('load-bearing') and refers to a field that appears in neither the schema nor any output schema, which costs the reader. The core content is efficient; the middle sentence muddies it.

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

Completeness4/5

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

With no output schema and no annotations, the description needs to convey what comes back and does — quote, page, read date, and explicit 'we hold none'. The only real hole is the undefined `outcome` values, which an agent cannot resolve from any structured field.

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%, and the schema already explains both slug and field including the 'omit for every field' behavior. The description adds nothing about either parameter, so the baseline of 3 applies; its mention of `outcome` is a return concept, not an input.

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

Purpose4/5

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

Names the specific resource returned — the verbatim quote, page, and read date behind a figure — so the agent knows this is an evidence/provenance lookup, not a figure lookup. It explicitly distinguishes itself from get_firm for the published figure. It's clear, though it never states the operation in a plain 'retrieves X for Y' form.

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

Usage Guidelines4/5

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

Points to the alternative ('Use get_firm for the published figure'), giving a real when-to-use condition. It does not spell out explicitly when not to call it or what happens for an unheld field beyond the empty-list note, so it stops short of full routing guidance.

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

get_firmCInspect

One 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe firm slug, e.g. "topstep".

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses output semantics - that figures are tagged with evidence provenance and that multi-band score ranges omit a letter grade - which is real value beyond structure. However, it says nothing about invalid-slug handling, auth needs, or error behavior.

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?

Two tight sentences with no filler, and the resource is front-loaded. The second sentence is somewhat elliptical but still earns its place by explaining the grading convention.

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

Completeness3/5

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

For a simple single-entity read with no output schema and no annotations, the description gives partial coverage: it hints at evidence flags and letter grades but never describes the returned shape or failure modes. Adequate but with clear gaps.

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 coverage is 100% for the single slug parameter, including an example value, so the schema already does the heavy lifting. The description adds no meaning about the slug beyond what the schema provides, making the baseline 3 appropriate.

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

Purpose3/5

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

The phrase "One prop trading firm" names the resource but supplies no verb, so it only implies retrieval. It loosely contrasts with the sibling list_firms by being singular, but never says so explicitly. The second sentence describes data semantics rather than the operation, leaving the core purpose only implied.

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

Usage Guidelines2/5

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

There is no statement of when to call this tool, no prerequisites, and no mention of list_firms as the alternative for enumerating firms. The agent must infer usage entirely from the singular/plural distinction.

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

get_rule_changesAInspect

The 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNofirm = the firm changed a rule. record = FirmFax corrected its own data. withdrawn = we published an entry and then retracted it.
slugNoLimit to one firm. Omit for every firm.
limitNoHow many entries to return, newest first. Default 50.
sinceNoISO date, e.g. "2026-08-01". Entries dated on or after it.

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and delivers real behavioral context: newest-first ordering, the fact that most entries are FirmFax self-corrections rather than firm rule changes, and a warning that cross-kind totals overstate activity. It omits permission/auth and pagination behavior, keeping it shy of a 5.

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?

Three tightly packed sentences, front-loaded with what the tape is and the ordering, then the kind caveat, then the counting warning. Slightly rhetorical tone but no wasted sentences.

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

Completeness4/5

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

No output schema exists, so the description must convey returns; it does by describing dated entries, ordering, and per-entry KIND. Combined with fully documented params, an agent has enough to call and interpret it, though filter interactions (slug + kind + since combos) are left to the schema.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning for the kind parameter by explaining that the tape is dominated by 'record' corrections and that pooling kinds distorts counts. This tells the agent how to interpret and filter, not just the enum values.

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

Purpose4/5

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

The description clearly frames this as a dated changelog of rule changes, newest first, with each entry tagged by KIND. It distinguishes the tool implicitly from the firm-lookup siblings (get_firm, list_firms) by being a change tape rather than a directory, though it never names an alternative explicitly.

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

Usage Guidelines3/5

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

It gives interpretive guidance ('read counts before describing industry activity') but no explicit when-to-use-this-versus-siblings routing, and no prerequisites. Usage is implied by the changelog framing rather than stated.

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

list_firmsBInspect

Every firm slug and name. Carries no figures, so nothing here needs evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, yet it only hints that the payload contains no figures ('nothing here needs evidence'). It does not state that this is a non-destructive read, nor does it describe size, ordering, or whether the list is paginated or exhaustive.

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?

Two short sentences with the primary fact (all firm slugs and names) front-loaded. The second sentence is compact but somewhat cryptic about what 'evidence' refers to, costing it a point.

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

Completeness3/5

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

For a zero-parameter lookup with no output schema, the description covers what comes back but omits ordering, size, and the read-only nature. Adequate for invocation, thin on context an agent might want.

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

Parameters4/5

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

The tool takes zero parameters, so the schema has nothing to document and the baseline is 4. The description correctly implies a parameterless full enumeration with no filtering options.

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

Purpose4/5

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

The description states exactly what the tool returns (every firm slug and name), which is a clear enumeration resource and implicitly distinguishes it from the singular sibling get_firm. It lacks an explicit verb like 'list', but the returned content is unambiguous.

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

Usage Guidelines2/5

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

There is no stated when-to-use guidance, no mention of the alternative get_firm, and no condition that would route an agent between enumerating all firms and fetching one. Usage is only weakly implied by the word 'Every'.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedfind_firms3 fields changed
      • changedInput schema / properties / maxMinTradingDays / description
        Previous value: -"Minimum trading days at or below this. 16 of 71 record none."New value: +"Minimum trading days at or below this, counted as minTradingDaysUnit names. 16 of 71 record none."
      • addedInput schema / properties / minTradingDaysMinProfit
        Added value: +{
        +  "description": "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.",
        +  "type": "number"
        +}
      • addedInput schema / properties / minTradingDaysUnit
        Added value: +{
        +  "description": "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.",
        +  "enum": [
        +    "calendar_days",
        +    "trading_days",
        +    "winning_days"
        +  ],
        +  "type": "string"
        +}
  2. 1 tool update
    • Changedfind_firms3 fields changed
      • changedInput schema / properties / maxMinDaysToPayout / description
        Previous value: -"Minimum days to first payout at or below this. 26 of 71 record none."New value: +"Minimum days to first payout at or below this, counted as minDaysToPayoutUnit names. 26 of 71 record none."
      • addedInput schema / properties / minDaysToPayoutMinProfit
        Added value: +{
        +  "description": "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.",
        +  "type": "number"
        +}
      • addedInput schema / properties / minDaysToPayoutUnit
        Added value: +{
        +  "description": "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.",
        +  "enum": [
        +    "calendar_days",
        +    "trading_days",
        +    "winning_days"
        +  ],
        +  "type": "string"
        +}
  3. 1 tool update
    • Changedfind_firms2 fields changed
      • addedInput schema / properties / dailyLossLimitUnit
        Added value: +{
        +  "description": "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.",
        +  "enum": [
        +    "percent",
        +    "usd"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / maxDailyLossLimit / description
        Previous value: -"Daily loss limit at or below this. 31 of 71 record none."New value: +"Daily loss limit at or below this, in the unit dailyLossLimitUnit names. 31 of 71 record none."
  4. 2 tool updates
    • Addedcompare_firms
    • Addedfind_firms
  5. 2 tool updates
    • Addedget_evidence
    • Addedget_rule_changes
  6. 2 tool updates
    • First observedget_firm
    • First observedlist_firms

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Query live prop firm discount codes, compare 20+ proprietary trading firms, and find the cheapest challenges. 6 tools: get deals, search firms, compare firms, find cheapest, get firm details, get discount codes. Universal code PFDF saves up to 80% off prop firm challenges for forex, futures, and crypto traders.
    6
    67 npm
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Provides live crypto derivatives data including funding rates, cross-exchange arbitrage, open interest pressure, Fear & Greed index, BTC dominance, and verified signal performance.
    67
    1,483 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Real-time capital oversight, drawdown alerts, and economic news blackout defense for funded prop traders and AI agents across cTrader and Tradovate.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Read-only crypto perps microstructure for AI agents: normalized cross-exchange market state (funding + multi-year percentile, OI, volume, CVD, order-book imbalance, liquidations, basis), OHLCV, 15-min state history, and measured conditional outcomes (historical base rates, not predictions) — 6 assets across Binance, Bybit, OKX and Hyperliquid, every metric with self-declared coverage and freshness
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources