Skip to main content
Glama

Search prop firms

propfirms_search
Read-only

Search LuxAlgo's prop-firm catalog (proprietary trading firms offering funded accounts). Combine firm filters (platforms, markets, payment/payout methods, country availability, Trustpilot, year founded) with nested challenge filters (account size, price, steps, profit split, trading rules) and offer filters — a firm matches when at least one of its challenges/offers matches all of them. Omit every filter to list all firms. Use include to nest the matching challenges, live offers, and the written overview; for one firm's full dossier prefer propfirms_get. Uncaptured (null) fields are omitted from results; nested challenges reference offers via offerIds into the firm-level offers list. This tool returns directory data (what exists and on what terms), not outcomes: for simulated pass odds on a challenge found here, use propfirms_pass_rates or propfirms_simulate with its firm and challenge ids.

Input Schema

NameRequiredDescriptionDefault
sortNoSort key (default name)
textNoCase-insensitive search over firm name and slug, e.g. 'ftmo'
stepsNoExact evaluation step count (1 = instant/funded, 2 = two-step, …)
contextYesExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
includeNoExtra payloads to nest on each firm (only children matching the filters are returned)
offerIdNoPublic offer ids
currencyNoAccount currencies, e.g. ['usd', 'eur']
intervalNoChallenge fee intervals, e.g. 'one-time', 'monthly'
priceMaxNoMaximum challenge fee (inclusive)
priceMinNoMinimum challenge fee (inclusive)
stepsMaxNoMaximum step count (ignored when steps is set)
stepsMinNoMinimum step count (ignored when steps is set)
directionNoSort direction; each sort key has a sensible default
offerTextNoCase-insensitive search over promo code and offer descriptions
pageIndexNo0-based page index (default 0)
promoCodeNoCase-insensitive substring of the promo code
isFeaturedNoOnly featured offers when true
maxLossMaxNoUpper bound on the overall-loss limit magnitude
propfirmIdNoPublic firm slugs, e.g. ['ftmo']
autoTradingNoWhether automated trading (EAs/bots) is allowed
availableInNoCountry names the firm must NOT restrict, e.g. ['United States']
challengeIdNoPublic challenge ids
copyTradingNoWhether copy trading is allowed
countryIso2NoISO-2 headquarters countries, e.g. ['GB', 'US']
discountMaxNoMaximum discount value
discountMinNoMinimum discount value
maxLossModeNoDrawdown modes; challenges without a captured mode never match
newsTradingNoWhether news trading is allowed
dailyLossMaxNoUpper bound on the daily-loss limit magnitude (smaller = stricter)
pageQuantityNoPage size (default 50, max 100)
productTypesNoProduct types the firm must offer at least one of, e.g. 'CFD', 'Futures'
challengeNameNoCase-insensitive substring of the challenge name
payoutMethodsNoPayout methods the firm must offer at least one of, e.g. 'Bank Transfer', 'Crypto'
accountSizeMaxNoMaximum account size (inclusive)
accountSizeMinNoMinimum account size (inclusive)
hasActiveOfferNoWhen true, the firm must currently have a live (active, unexpired) offer
includeExpiredNoWhen true, ended offers are not hidden (default false)
maxLeverageMinNoMinimum max leverage
maxYearFoundedNoInclusive maximum year founded
minYearFoundedNoInclusive minimum year founded
paymentMethodsNoPayment methods the firm must accept at least one of, e.g. 'Crypto', 'PayPal'
profitSplitMinNoMinimum trader profit-split percent
weekendHoldingNoWhether holding over the weekend is allowed
includeInactiveNoWhen true, inactive offers are not hidden (default false)
isFeeRefundableNoWhether the challenge fee is refundable
overnightHoldingNoWhether holding overnight is allowed
stoplossRequiredNoWhether a stop loss is required
tradingPlatformsNoPlatforms the firm must offer at least one of, e.g. 'MT5', 'cTrader', 'TradingView'
discountIsPercentNotrue for percent discounts, false for absolute amounts
minTradingDaysMaxNoMaximum required minimum trading days (finds less-strict challenges)
tradedMarketTypesNoMarkets the firm must offer at least one of, e.g. 'forex', 'indices', 'commodities'
isPreferredPartnerNoOnly LuxAlgo preferred-partner firms when true
minTrustPilotCountNoMinimum Trustpilot review count
minTrustPilotScoreNoMinimum Trustpilot score

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedInput schema / properties / context / description
      Previous value: -"Explain 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.\""New value: +"Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\""
    • addedInput schema / properties / maxYearFounded / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / maxYearFounded / minimum
      Added value: +-9007199254740991
    • addedInput schema / properties / minYearFounded / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / minYearFounded / minimum
      Added value: +-9007199254740991
    • addedInput schema / properties / pageIndex / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / steps / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / steps / minimum
      Added value: +-9007199254740991
    • addedInput schema / properties / stepsMax / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / stepsMax / minimum
      Added value: +-9007199254740991
    • addedInput schema / properties / stepsMin / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / stepsMin / minimum
      Added value: +-9007199254740991
  2. Changed3 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Explain 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.\"",
      +  "type": "string"
      +}
    • addedInput schema / required
      Added value: +[
      +  "context"
      +]
  3. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare read-only, non-destructive, open-world, but the description adds real behavioral context beyond them: the OR-across-children / AND-across-filters matching rule, that uncaptured (null) fields are omitted, and that nested challenges reference offers via offerIds. It also frames the tool as directory data, not outcomes.

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?

Purpose and matching semantics are front-loaded, and despite its length nearly every clause carries operative information (matching rule, include behavior, sibling routing). It is dense rather than padded, though the offerIds/overview sentence could be tightened slightly.

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?

For a 54-parameter, no-output-schema tool this is close to complete: it explains filter combination, include nesting, null omission, and where to go for results it does not return. Minor gap is no explicit mention of pagination defaults (pageIndex/pageQuantity), though those are self-documented in 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; the description earns above that by explaining cross-parameter semantics the schema cannot — how firm, challenge, and offer filters combine, and that a firm matches when at least one child matches all filters. It groups the 54 parameters into firm/challenge/offer families, aiding navigation of a large flat schema.

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?

States a specific verb and resource ('Search LuxAlgo's prop-firm catalog') and immediately defines the domain ('proprietary trading firms offering funded accounts'). It also distinguishes itself from the sibling propfirms_get by routing single-firm lookups there, so an agent can pick the right tool without opening either schema.

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?

Explicitly covers when-to-use ('omit every filter to list all firms'), which sibling to prefer for one firm's dossier (propfirms_get), and which siblings to chain for outcome data (propfirms_pass_rates, propfirms_simulate). The alternative-routing guidance is unusually thorough.

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.