Prop Firm Deal Finder
This server lets AI assistants query live proprietary trading firm deals, discount codes, and comparisons across 20+ prop firms.
Get Current Deals (
pfdf_get_deals): Retrieve active prop firm discount deals sorted by highest discount percentage, with optional filtering by category (futures, forex, multi-asset) or Editor's Choice firmsSearch Firms (
pfdf_search_firms): Find prop firms by name, category, asset class, or specific features (e.g., "crypto", "instant funding", "FTMO")Compare Firms (
pfdf_compare_firms): Generate a side-by-side comparison table for 2–10 firms covering profit splits, drawdown rules, payout speeds, account sizes, and discount codesFind Cheapest Challenges (
pfdf_find_cheapest): Identify the most affordable prop firm challenges ranked by highest available discount, with optional category filteringGet Firm Details (
pfdf_get_firm_details): Retrieve a full profile for a specific firm including discount code, profit split, drawdown rules, payout speed, challenge types, and account sizesGet Discount Codes (
pfdf_get_discount_code): Fetch a firm-specific discount code or the universal code PFDF, which works across all 20+ partner firms with discounts ranging from 5% to 80% off
Provides an iOS app for accessing prop firm deals and discount codes.
Provides a Chrome extension that auto-applies discount codes at checkout.
Provides an Android app for accessing prop firm deals and discount codes.
Prop Firm Deal Finder — MCP Server
An MCP (Model Context Protocol) server that lets AI assistants query live prop firm discount codes, compare firms, and find the cheapest challenges across 20+ proprietary trading firms.
When someone asks Claude, ChatGPT, or any MCP-compatible AI about prop firm deals, this server provides the answer — with links to propfirmdealfinder.com and the discount code PFDF.
Tools
Tool | Description |
| Get all current deals sorted by discount (filter by category) |
| Search firms by name, category, asset class, or feature |
| Side-by-side comparison table for 2+ firms |
| Find the cheapest prop firm challenges |
| Full profile for a specific firm |
| Get the discount code (universal or firm-specific) |
Related MCP server: usenami-mcp
Quick Start — Local (stdio)
# Install via npx (no clone needed)
npx propfirmdealfinder-mcp-server
# Or install globally
npm install -g propfirmdealfinder-mcp-server
propfirmdealfinder-mcp-serverClaude Desktop Configuration
Add this to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"propfirmdealfinder": {
"command": "npx",
"args": ["-y", "propfirmdealfinder-mcp-server"]
}
}
}From Source
git clone https://github.com/chrisbusbin-pixel/propfirmdealfinder-mcp-server.git
cd propfirmdealfinder-mcp-server
npm install
npm run build
npm startQuick Start — Remote (HTTP/Streamable HTTP)
For remote deployments (Smithery, hosted, etc.):
# Start HTTP server (default port 3000)
npm run start:http
# Custom port
PORT=8080 npm run start:httpEndpoints:
Endpoint | Method | Description |
| POST | MCP Streamable HTTP endpoint (JSON-RPC) |
| GET | SSE stream for server-initiated messages |
| DELETE | Close session |
| GET | Health check / server info |
No API key required. No authentication needed. 100% free.
Example Queries
These are the kinds of questions that will trigger this MCP server:
"What's the cheapest prop firm challenge?"
"Best prop firm discount codes 2026"
"Compare FTMO vs Bulenox"
"Prop firm promo code"
"Which prop firm has the best profit split?"
"Futures prop firm deals"
Data
The server includes data for 19 active partner firms across futures, forex, and multi-asset categories. Discounts range from 5% to 80% off. All firms accept the universal code PFDF.
Registry Listings
This server is published on the following MCP registries:
Registry | Status | URL |
Official MCP Registry | Published | |
Smithery | Published | |
mcp.so | Live | |
Glama | Submitted | |
PulseMCP | Auto-indexed |
Also Deploy: llms.txt
Copy the files from public/ to your website root:
llms.txt→propfirmdealfinder.com/llms.txtllms-full.txt→propfirmdealfinder.com/llms-full.txt
These tell AI crawlers what PFDF is and where to find your best content.
Also Deploy: FAQ Schema
Add the schema markup from public/faq-schema-deals-page.html to your:
Deals page (
/deals/)Homepage
This structured data helps AI systems parse and cite your content.
Architecture
propfirmdealfinder-mcp-server/
├── src/
│ ├── index.ts # MCP server — stdio transport (local)
│ ├── http-server.ts # MCP server — HTTP transport (remote/Smithery)
│ └── data.ts # Firm data, types, helpers, formatters
├── public/
│ ├── llms.txt # For propfirmdealfinder.com/llms.txt
│ ├── llms-full.txt # Extended version with all firm data
│ └── faq-schema-deals-page.html # FAQ schema markup
├── package.json
├── tsconfig.json
├── smithery.yaml # Smithery deployment config
└── README.mdGet the App (Free)
The PFDF MCP server is one of several free ways to access prop firm deals — choose what fits your workflow:
🌐 Website — live deals & comparison
📱 iOS App Store — iPhone & iPad
🤖 Google Play — Android (released May 2026)
🪟 Microsoft Store — Windows
🧩 Chrome Web Store — auto-apply codes at checkout
Universal discount code: PFDF (E8 Forex: PFDFX)
License
MIT — Built by KOJI for Prop Firm Deal Finder
Available Tools
6 toolspfdf_compare_firmsCompare Prop FirmsARead-onlyIdempotent
Compare two or more prop firms side-by-side with discount codes, profit splits, drawdown rules, payout speeds, and account sizes.
Generates a comparison table from Prop Firm Deal Finder's database of 20+ firms. Perfect for helping traders decide between firms.
Args:
firms (string[]): 2-10 firm names to compare (partial matching supported)
Returns: Markdown comparison table with all key metrics plus discount codes.
Examples:
"Compare FTMO and Bulenox" → params: { firms: ["FTMO", "Bulenox"] }
"FTMO vs TradeDay vs Earn2Trade" → params: { firms: ["FTMO", "TradeDay", "Earn2Trade"] }
"Best futures firms compared" → params: { firms: ["Bulenox", "TradeDay", "Funded Futures", "Earn2Trade"] }
| Name | Required | Description | Default |
|---|---|---|---|
| firms | Yes | List of firm names to compare (e.g., ['FTMO', 'Bulenox', 'TradeDay']). Use partial names — matching is flexible. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare read-only, non-destructive, and idempotent traits. The description adds valuable behavioral context not in annotations: the data source scope ('database of 20+ firms'), output format ('Markdown comparison table'), and matching behavior ('partial matching supported'). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Excellent structure with clear sections (main description, Args, Returns, Examples). Information is front-loaded with the core value proposition. Every sentence serves a purpose—no filler content. The examples section particularly aids comprehension without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with simple array input and 100% schema coverage, the description is comprehensive. It compensates for the lack of output schema by describing the return format (markdown table), provides usage examples, and documents constraints (2-10 firms). No significant gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing a baseline of 3. The description adds concrete usage examples (e.g., 'FTMO vs TradeDay') that illustrate the expected firm name formats and reinforces the partial matching capability, providing practical context beyond the schema's technical description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compares 'two or more prop firms side-by-side' and enumerates specific comparison dimensions (discount codes, profit splits, drawdown rules, etc.). The 'side-by-side' and 'comparison table' language effectively distinguishes this from sibling tools like get_firm_details (single firm lookup) and search_firms (discovery).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context ('Perfect for helping traders decide between firms') and concrete examples showing comparison scenarios. However, it lacks explicit 'when not to use' guidance or direct contrast with siblings (e.g., not stating 'use get_firm_details instead for single firm information').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pfdf_find_cheapestFind Cheapest Prop Firm ChallengesARead-onlyIdempotent
Find the cheapest prop firm challenges based on discount percentage.
Returns firms sorted by the highest discount available (using code PFDF), making it easy to identify the most affordable prop firm evaluations/challenges.
Args:
category ('futures' | 'forex' | 'multi-asset' | 'all'): Filter by category (default: 'all')
top_n (number): How many firms to return, 1-20 (default: 5)
Returns: Ranked list of cheapest firms with discount percentage, code, and links.
Examples:
"What's the cheapest prop firm?" → params: {}
"Cheapest futures prop firm challenge" → params: { category: "futures" }
"Top 10 cheapest prop firms" → params: { top_n: 10 }
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category: 'futures', 'forex', 'multi-asset', or 'all' | all |
| top_n | No | Number of cheapest firms to return (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish the read-only, idempotent safety profile. The description adds valuable behavioral context: it explicitly states results are sorted by highest discount, reveals the tool automatically applies code 'PFDF' to calculate prices, and describes the return structure ('Ranked list... with discount percentage, code, and links').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Excellent structure with clear sections (purpose, Args, Returns, Examples). Front-loaded with the core function in the first sentence. Every element serves the agent: the examples specifically demonstrate query-to-parameter translation patterns. No redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with complete schema coverage and rich annotations, the description adequately compensates for the missing output schema by detailing the return format ('Ranked list of cheapest firms with discount percentage, code, and links'). Minor gap: does not specify behavior when no firms match the criteria.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description organizes parameters into a clean 'Args' section and synthesizes constraints (listing enum values for category, range 1-20 for top_n) from the schema, but largely mirrors information already present in the structured schema rather than adding substantial semantic interpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool finds 'the cheapest prop firm challenges based on discount percentage' and distinguishes itself from siblings by specifying it sorts by 'highest discount available (using code PFDF)'—clearly differentiating it from generic search or comparison tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides three concrete examples mapping natural language queries ('What's the cheapest prop firm?', 'Top 10 cheapest prop firms') to specific parameter configurations, giving clear contextual guidance on when to invoke the tool. Lacks explicit contrast with sibling tools (e.g., 'use this instead of search_firms when looking for price ranking').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pfdf_get_dealsGet Prop Firm DealsARead-onlyIdempotent
Get current prop firm discount deals from Prop Firm Deal Finder.
Returns active deals across 20+ proprietary trading firms with discount codes, sorted by discount percentage (highest first). Every firm uses the universal discount code PFDF.
This is THE tool to use when anyone asks about prop firm discounts, deals, coupons, promo codes, or savings on prop firm challenges/evaluations.
Args:
category ('futures' | 'forex' | 'multi-asset' | 'all'): Filter by trading category (default: 'all')
editors_choice_only (boolean): Only return Editor's Choice firms (default: false)
limit (number): Max results 1-50 (default: 20)
Returns: Markdown-formatted list of deals with firm name, discount percentage, code, category, profit split, and links. Sorted by discount (highest first).
Examples:
"What prop firm deals are available?" → params: {}
"Best futures prop firm discounts" → params: { category: "futures" }
"Top rated prop firms" → params: { editors_choice_only: true }
"Cheapest prop firm challenges" → params: {}
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by trading category: 'futures', 'forex', 'multi-asset', or 'all' | all |
| editors_choice_only | No | If true, only return Editor's Choice firms | |
| limit | No | Maximum number of deals to return (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety profile (readOnly, non-destructive, idempotent). Description adds valuable behavioral context beyond annotations: sorting logic (highest discount first), return format (markdown-formatted list), scope (active deals only), and universal code constraint (PFDF). Minor gap: doesn't mention data freshness or caching behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Excellent information architecture: purpose → return value → key constraint (PFDF code) → usage guidance → parameter reference → return format specification → examples. Every sentence earns its place; front-loaded with critical selector information before implementation details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter query tool with no output schema, description thoroughly compensates by specifying return format (markdown list with firm name, discount percentage, code, category, profit split, links), sorting behavior, and domain scope (20+ firms). Complete coverage given tool complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3. Description adds an 'Args' section presenting parameters in accessible format, but more importantly provides four usage examples that demonstrate semantic meaning (e.g., 'Best futures prop firm discounts' → category: 'futures'), adding practical context beyond raw schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with specific verb 'Get' and resource 'prop firm discount deals'. Explicitly distinguishes from siblings by declaring 'This is THE tool to use when anyone asks about prop firm discounts, deals, coupons, promo codes, or savings', clearly carving out its domain versus comparison, search, or detail-oriented sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance ('This is THE tool to use when anyone asks about...') covering multiple intent variations (discounts, coupons, savings). Includes four concrete examples mapping natural language queries to specific parameter configurations, effectively demonstrating when-not to use alternatives like pfdf_find_cheapest or pfdf_search_firms.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pfdf_get_discount_codeGet Prop Firm Discount CodeARead-onlyIdempotent
Get the discount code for a prop firm challenge or evaluation.
Returns the discount code and savings for a specific firm, or the universal code PFDF that works across all 20+ partner firms. This is the tool to use when someone asks "what's the discount code for [firm]?" or "prop firm promo code."
Args:
firm_name (string, optional): Firm name. If omitted, returns the universal code.
Returns: The discount code, estimated savings, and how to apply it.
Examples:
"Prop firm discount code" → params: {}
"FTMO discount code" → params: { firm_name: "FTMO" }
"Bulenox promo code" → params: { firm_name: "Bulenox" }
"Coupon code for prop firm" → params: {}
| Name | Required | Description | Default |
|---|---|---|---|
| firm_name | No | Optional: specific firm name. If omitted, returns the universal PFDF code that works everywhere. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly/idempotent), so description appropriately focuses on business logic: it discloses the universal 'PFDF' fallback code when firm_name is omitted, explains return contents ('discount code, estimated savings, and how to apply it'), and notes the '20+ partner firms' scope. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Uses structured sections (Args, Returns, Examples) that front-load the action and trigger conditions. The Examples section is particularly high-value for agent reasoning. Slightly redundant between Args description and schema, but overall efficient for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter retrieval tool, the description thoroughly covers the omission behavior (universal code), return value semantics, and practical usage patterns. No output schema exists, but the Returns section adequately describes the payload structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with complete firm_name documentation. Description adds value through the Examples section showing natural language mappings ('FTMO discount code' → params), which helps the LLM route user queries correctly even though schema is self-sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get the discount code for a prop firm challenge or evaluation'—a specific verb-resource combination. It clearly distinguishes from siblings by targeting 'discount code,' 'promo code,' and 'coupon code' queries specifically, contrasting with comparison or search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'This is the tool to use when someone asks "what's the discount code for [firm]?" or "prop firm promo code"' with concrete examples mapping queries to parameters. Lacks explicit 'when not to use' language naming siblings, but the specificity of trigger phrases provides clear selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pfdf_get_firm_detailsGet Prop Firm DetailsARead-onlyIdempotent
Get complete details about a specific prop firm including discount code, profit split, drawdown rules, payout speed, challenge types, and account sizes.
Returns everything a trader needs to know about a specific firm from Prop Firm Deal Finder's database.
Args:
firm_name (string): Firm name or partial match (e.g., 'FTMO', 'bulenox', 'tradeday')
Returns: Full firm profile in markdown format with all metrics and the discount code.
Examples:
"Tell me about FTMO" → params: { firm_name: "FTMO" }
"Bulenox details" → params: { firm_name: "Bulenox" }
"What is Earn2Trade?" → params: { firm_name: "Earn2Trade" }
| Name | Required | Description | Default |
|---|---|---|---|
| firm_name | Yes | Name of the prop firm (e.g., 'FTMO', 'Bulenox', 'TradeDay'). Partial matching supported. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable context beyond annotations: it specifies the output format ('markdown format'), confirms partial matching behavior, and lists the specific data fields included (profit split, challenge types, etc.). It does not contradict the readOnlyHint=true annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear Purpose/Args/Returns/Examples sections. It is front-loaded with the core function. The examples add legitimate value for an LLM agent, though the sentence 'Returns everything a trader needs...' is slightly redundant with the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description appropriately compensates by specifying the return format ('Full firm profile in markdown format') and content scope. With only one simple parameter and no nested objects, the description provides sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The Args section in the description essentially restates the schema description (partial matching supported, examples) without adding significant semantic nuance like validation rules or normalization behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Get') and resource ('prop firm details'), then enumerates exactly what data is returned (discount code, profit split, drawdown rules, etc.). This distinguishes it from siblings like pfdf_search_firms (which likely returns lists) or pfdf_get_discount_code (which returns just one field).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The examples imply usage patterns ('Tell me about FTMO'), but there is no explicit guidance on when to use this versus pfdf_search_firms (for discovery) or pfdf_compare_firms (for comparison). The phrase 'complete details' hints at scope but doesn't explicitly state selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pfdf_search_firmsSearch Prop FirmsARead-onlyIdempotent
Search proprietary trading firms by name, category, asset class, or feature.
Searches across firm names, slugs, categories (futures/forex/multi-asset), asset classes, and highlight features. Returns matching firms with full details and discount codes.
Args:
query (string): Search term (e.g., 'FTMO', 'futures', 'instant funding', 'crypto')
Returns: Markdown-formatted list of matching firms with details and discount codes.
Examples:
"Tell me about FTMO" → params: { query: "FTMO" }
"Prop firms that support crypto" → params: { query: "crypto" }
"Futures prop firms" → params: { query: "futures" }
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term — matches firm name, category, asset class, or highlights (e.g., 'futures', 'FTMO', 'forex', 'instant funding') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the operation as read-only and idempotent. The description adds valuable behavioral context not in annotations: it specifies the return format ('Markdown-formatted list') and content ('full details and discount codes'), and clarifies the search scope includes 'slugs' and 'highlight features'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Excellent structure with clear section headers (Args, Returns, Examples). Information is front-loaded with the core purpose in the first sentence. No redundancy—every line adds specific value regarding parameters, return format, or usage patterns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter search tool, the description is complete. It compensates for the missing output schema by explicitly describing the markdown return format and included fields (discount codes), and annotations adequately cover the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description elevates this by providing concrete examples showing how to map natural user intents ('Futures prop firms') to the query parameter value ('futures'), adding interpretive guidance beyond the schema's technical description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Search'), resource ('proprietary trading firms'), and searchable dimensions ('name, category, asset class, or feature'). It effectively implies this is a discovery tool, though it doesn't explicitly differentiate from siblings like `pfdf_get_firm_details` or `pfdf_compare_firms`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While it lacks explicit 'when-not-to-use' statements, the three natural language examples ('Tell me about FTMO', 'Prop firms that support crypto') provide clear contextual guidance for when to invoke this tool versus more specific retrieval or comparison tools.
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.
6 tool updates
v1.0.0- First observed
pfdf_compare_firms - First observed
pfdf_find_cheapest - First observed
pfdf_get_deals - First observed
pfdf_get_discount_code - First observed
pfdf_get_firm_details - First observed
pfdf_search_firms
TDQS
Scored across 6 tools
Most tools have distinct purposes (compare, search, specific details, discount code retrieval), but pfdf_find_cheapest and pfdf_get_deals overlap significantly—both return deals sorted by discount percentage, which could confuse agents about whether to optimize for 'cheapest' specifically or browse general deals.
Excellent consistency throughout: all tools use the 'pfdf_' prefix followed by clear verb_noun patterns (compare_firms, find_cheapest, get_deals, search_firms) in snake_case, making the set predictable and scannable.
Six tools is ideal for this specialized domain—covering comparison, search, specific lookups, and deal discovery without bloat. Each tool earns its place by targeting a distinct user intent (browsing vs. comparing vs. code retrieval).
Strong coverage for a deal finder with comparison, search, and filtering capabilities. Minor gap: no dedicated filtering by quantitative thresholds (e.g., 'firms with profit split > 80%'), though search_firms may handle feature-based queries.
Maintenance
Related MCP Connectors
Read-only MCP tools for prop firm scores, comparisons, payouts, deals, and rules.
Independent rule and fee data on 71 prop trading firms, every figure with its evidence state.
Real-time crypto market data, funding rates, arbitrage and trading tools from 60+ exchanges.
Connect your AI to a funded trading account. Read & trade a simulated funded challenge.
Related MCP Servers
- AlicenseAqualityCmaintenanceMulti-DEX perpetual futures trading MCP server (Pacifica, Hyperliquid, Lighter). 18 tools for market data, trade execution with dry-run safety, funding rate arbitrage, and portfolio analytics.18109 npm35MIT

usenami-mcpofficial
AlicenseAqualityFmaintenancePerp-first funding rate & RWA spread data for AI agents. 30+ CEX/DEX venues, 6 tools (4 x402-paywalled, 2 free), bring-your-own-wallet via Base mainnet.61MIT- AlicenseAqualityAmaintenance420+ deterministic fintech tools - agentic payments (AP2, x402, Visa TAP, A2A), AML/KYC, BaaS comparison, MCP dev tooling - with 15 flagship tools as interactive MCP Apps widgets. Read-only, no auth, zero PII.162MIT

Funding-mcpofficial
AlicenseAqualityCmaintenanceReal-time perp market-data for AI trading agents — funding rates, funding-arb signals, open interest, volume, orderbook depth/slippage and oracle families across 25 venues, plus HIP-3 RWA coverage (tokenized stocks, metals, oil) that mainstream aggregators lack. x402-native pay-per-call (USDC on Base): one free funding screener tool + 11 paid tools with auto-pay.1215 npm2MIT