Skip to main content
Glama
chrisbusbin-pixel

Prop Firm Deal Finder

Prop Firm Deal Finder — MCP Server

npm version npm downloads License: MIT GitHub stars MCP

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

pfdf_get_deals

Get all current deals sorted by discount (filter by category)

pfdf_search_firms

Search firms by name, category, asset class, or feature

pfdf_compare_firms

Side-by-side comparison table for 2+ firms

pfdf_find_cheapest

Find the cheapest prop firm challenges

pfdf_get_firm_details

Full profile for a specific firm

pfdf_get_discount_code

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-server

Claude 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 start

Quick 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:http

Endpoints:

Endpoint

Method

Description

/mcp

POST

MCP Streamable HTTP endpoint (JSON-RPC)

/mcp

GET

SSE stream for server-initiated messages

/mcp

DELETE

Close session

/health

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

registry.modelcontextprotocol.io

Smithery

Published

smithery.ai

mcp.so

Live

mcp.so/server/prop-firm-deal-finder

Glama

Submitted

glama.ai/mcp/servers

PulseMCP

Auto-indexed

pulsemcp.com

Also Deploy: llms.txt

Copy the files from public/ to your website root:

  • llms.txtpropfirmdealfinder.com/llms.txt

  • llms-full.txtpropfirmdealfinder.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.md

Get the App (Free)

The PFDF MCP server is one of several free ways to access prop firm deals — choose what fits your workflow:

Universal discount code: PFDF (E8 Forex: PFDFX)

License

MIT — Built by KOJI for Prop Firm Deal Finder

Available Tools

6 tools
pfdf_compare_firmsCompare Prop FirmsA
Read-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"] }

ParametersJSON Schema
NameRequiredDescriptionDefault
firmsYesList of firm names to compare (e.g., ['FTMO', 'Bulenox', 'TradeDay']). Use partial names — matching is flexible.

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 ChallengesA
Read-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 }

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by category: 'futures', 'forex', 'multi-asset', or 'all'all
top_nNoNumber of cheapest firms to return (default: 5)

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 DealsA
Read-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: {}

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by trading category: 'futures', 'forex', 'multi-asset', or 'all'all
editors_choice_onlyNoIf true, only return Editor's Choice firms
limitNoMaximum number of deals to return (default: 20)

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 CodeA
Read-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: {}

ParametersJSON Schema
NameRequiredDescriptionDefault
firm_nameNoOptional: specific firm name. If omitted, returns the universal PFDF code that works everywhere.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 DetailsA
Read-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" }

ParametersJSON Schema
NameRequiredDescriptionDefault
firm_nameYesName of the prop firm (e.g., 'FTMO', 'Bulenox', 'TradeDay'). Partial matching supported.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 FirmsA
Read-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" }

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch term — matches firm name, category, asset class, or highlights (e.g., 'futures', 'FTMO', 'forex', 'instant funding')

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

  1. 6 tool updatesv1.0.0
    • First observedpfdf_compare_firms
    • First observedpfdf_find_cheapest
    • First observedpfdf_get_deals
    • First observedpfdf_get_discount_code
    • First observedpfdf_get_firm_details
    • First observedpfdf_search_firms

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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

Completeness4/5

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

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Multi-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.
    18
    109 npm
    35
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    Perp-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.
    6
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    420+ 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.
    16
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Real-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.
    12
    15 npm
    2
    MIT