Skip to main content
Glama

luxalgo-mcp-server

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

TableJSON 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.9/5.0
Behavior5/5

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

Annotations carry readOnlyHint and openWorldHint, so the safety profile is covered. The description adds substantial behavioral detail beyond annotations: the conjunctive filter matching rule, that include only returns children matching the filters, that null fields are omitted, and the offerIds linkage into the firm-level offers list. These are non-obvious behaviors an agent must know.

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

Conciseness5/5

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

Front-loaded with the main verb and resource, then logically structured: core semantics, simplest usage, sibling routing, data quirks, and scope limitation. Each sentence earns its place; the length is justified by the complexity of a 54-parameter search tool and there is no redundant filler.

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 tool's complexityaine, no output schema, and only read-only/open-world annotations, the description covers what an agent needs: matching rules, include behavior, null-field omission, offerId referencing, and a clear warning that outcomes are out of scope. Nothing essential for selecting or invoking the tool is missing.

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 baseline is 3. The description adds value by grouping the 54 parameters into firm, challenge, and offer filter categories and by explaining the 'at least one challenge/offer matches all filters' semantics that applies across all params. It also clarifies the include parameter's behavior beyond the schema. Individual parameter meanings remain left to the schema, which is appropriate here.

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?

Description states a specific verb ('Search') and resource ('LuxAlgo's prop-firm catalog'), then defines the matching semantics precisely: a firm matches when at least one challenge/offer matches all filters. It explicitly distinguishes itself from propfirms_get, propfirms_pass_rates, and propfirms_simulate, so an agent can tell them apart without opening schemas.

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?

Gives clear when-to-use guidance: 'Omit every filter to list all firms', and routes to alternatives explicitly ('for one firm's full dossier prefer propfirms_get', 'for simulated pass odds ... use propfirms_pass_rates or propfirms_simulate'). Also clarifies scope boundaries by stating this returns directory data, not outcomes.

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.