On the canonical strict-filter scenario (options required, MCP required, free tier required, auth complexity ≤ 2), the Broker API Comparator returns Alpaca as the only fit (score 4/4). Tradier scores 3/4 and fails on auth complexity (OAuth 2.0 = 3, above the 2 ceiling). Relaxing to "options only, auth ≤ 3" puts Alpaca and Tradier tied at 2/2; Schwab, Robinhood, IBKR all fail. The Finance MCP Directory confirms: Alpaca ships the only official MCP server in the catalogue; Tradier has a community MCP without idempotency; Schwab and Robinhood have none. The decision flips on portfolio size and the trade-frequency dimension the comparator does not measure.
TL;DR
Two scenario runs against the broker comparator:
| Scenario | Alpaca | Tradier | Schwab | Robinhood | IBKR |
|---|---|---|---|---|---|
| Options + MCP + free + auth ≤ 2 | fit 4/4 | 3/4 (auth) | 2/4 | 2/4 | 2/4 |
| Options only, auth ≤ 3 | fit 2/2 | fit 2/2 | 1/2 (no MCP) | 1/2 (no MCP) | 1/2 (no free tier) |
The MCP directory lists 7 servers: 2 official (Alpaca, full scope; Polygon, read-only) and 5 community (Databento and Tiingo read-only; IBKR, Tradier, and NautilusTrader full scope). The directory confirms the comparator: for a solo retail operator who wants official-MCP options trading on a free tier, Alpaca is the only fit; for an operator willing to wear OAuth 2.0 and a community MCP, Tradier joins.
The strict-filter result: Alpaca alone
Under the canonical filter set, Alpaca scores 4/4 on the four binary checks: options (yes), MCP (official), free tier (yes), authComplexity ≤ 2 (Alpaca is 1, the simplest API key + secret model).
The other four brokers each fail at least one gate:
- Tradier: options yes, community MCP, free tier yes, authComplexity = 3 (OAuth 2.0). Fails the auth gate.
- Schwab: options yes, no MCP, no free tier (Schwab requires brokerage accounts), authComplexity = 4. Fails MCP and auth.
- Robinhood: options yes, no MCP, free tier yes, authComplexity = 4 (web-OAuth + 2FA challenges). Fails MCP and auth.
- IBKR: options yes, community MCP, no free tier in the API sense (TWS Gateway is required), authComplexity = 5 (TWS Gateway with port-forwarding). Fails free tier and auth.
The score gap (Alpaca at 4 vs the next-best at 3) reflects the simultaneous match on all four axes. No competitor matches Alpaca on the strict-filter set; the comparator returns a degenerate winner.
The relaxed-filter result: parity on options
Drop the MCP and free-tier requirements and lift authComplexity ≤ 3 to admit Tradier. Now Alpaca and Tradier tie at 2/2; Schwab, Robinhood, and IBKR remain disqualified.
In this regime the substantive choice is between Alpaca and Tradier on dimensions the comparator does not encode: order-routing depth, options-execution quality, Greeks-feed reliability, multi-leg-order ergonomics. The trade-press consensus on these (verifiable through each vendor's published docs) is roughly:
- Alpaca: equity-focused heritage, options added in 2024, single-leg and basic spread support. Free real-time IEX data; full SIP requires Algo Trader Plus ($99/mo). MCP V2 with 61 actions ships idempotency by default.
- Tradier: options-focused heritage, deep multi-leg order support including butterfly / iron-condor with as-of-2026 pricing engines. Real-time options chain streaming. Community MCP lacks idempotency, every order submission needs explicit idempotency-key wrapping.
The decision pivot is portfolio size and option-strategy depth. Under-$50k options book trading single-leg or basic spread strategies, Alpaca wins on MCP. Above $50k or running multi-leg strategies (butterflies, ratio spreads), Tradier wins on options-execution depth.
Why MCP availability is the load-bearing axis
For an LLM-driven retail operator, MCP is the difference between "the agent can execute trades" and "the agent emits trade intentions that a human types into a broker GUI." That is a 10× operational gap. The Alpaca official MCP makes the agent execute end-to-end; the Tradier community MCP requires either an idempotency wrapper or a same-day double-submit defence.
The MCP directory output lists 7 servers; the only one with both official status and full scope is the Alpaca MCP V2 (61 actions, idempotency built in). The next-best fits are the community full-scope servers IBKR, Tradier, and NautilusTrader. Polygon is official but read-only (a market-data MCP, not a broker MCP); Databento and Tiingo are community read-only.
For a solo retail operator the practical short-list is one: Alpaca. For an operator willing to invest in their own idempotency wrapper, the shortlist extends to two: Alpaca + Tradier.
The options-specific axes the comparator does not measure
Four dimensions matter for options-heavy use cases that the comparator omits:
-
Multi-leg order primitives. Tradier supports as-of-2026 native iron-condor, butterfly, calendar spread, and ratio spread submission as a single order. Alpaca supports vertical spreads and straddles natively, with butterfly emulation via paired vertical legs. For a complex-options strategy, the order-primitive count matters more than the underlying broker comparator captures.
-
Greeks feed quality. Real-time Greeks (delta, gamma, theta, vega) are required for position-management agents. Tradier publishes a Greeks feed at chain-snapshot cadence; Alpaca's Greeks are derived client-side from the option price and underlying. For an agent that re-hedges every 5 minutes, the broker-supplied Greeks save a Black-Scholes computation per option per check.
-
Assignment-and-exercise handling. Tradier surfaces assignment events with full breakdown of trip dates and cost basis. Alpaca's assignment notifications are summary-only; the agent has to reconcile against the position-snapshot endpoint to recover trip detail.
-
Margin and PDT enforcement. Both brokers enforce the Pattern Day Trader rule (4 day-trades / 5 days at <$25k). The enforcement mechanism differs: Tradier blocks the order at submission; Alpaca surfaces a warning but executes (until the threshold is breached, then locks the account). For an agent that should never breach PDT, Tradier's pre-submission block is more defensive.
The IBKR exclusion is a cost, not a gain
IBKR fails the canonical filter on free tier (TWS Gateway requires the brokerage account, which has fees) and authComplexity (TWS Gateway port-forwarding). For an agent operator who is willing to wear those costs, IBKR opens multi-asset depth (futures, FX, bonds, options on non-US exchanges) that neither Alpaca nor Tradier covers. The choice "Alpaca for US equities/options, IBKR for everything else" is the institutional-grade configuration for multi-asset retail.
Related in this series
This is the narrow head-to-head entry in the broker-and-data-vendor series: Alpaca vs Tradier specifically on options primitives and MCP coverage for an options-first agent. Read alongside:
- Choosing a Broker API 2026: the series pillar, covering all five retail broker APIs on the production-bite axes.
- Broker APIs Compared 2026: the AI-agent lens: the same brokers ranked on MCP coverage and order idempotency.
- Market Data APIs Compared 2026: the data side: six market-data vendors, separate from the broker decision.
- Data Vendor TCO for EU Retail: true total cost once exchange fees, OPRA pass-through, and BaFin record-keeping enter the bill.
Connects to
- Broker APIs Compared 2026 — the broader head-to-head across five brokers.
- Choosing a Broker API 2026 — the decision framework above the comparator.
- Options Greeks for LLM-Driven Trading — the consumer of the Greeks-feed axis.
- Broker API Comparator — engine endpoint.
- Finance MCP Directory — companion catalogue of MCP servers.
- Trading System Blueprinter — broader architecture context for the broker decision.
References
- Alpaca. "Trading API Documentation." alpaca.markets/docs/trading-api/, accessed 2026-05-21. Reference for Alpaca's options coverage, MCP V2, and authentication.
- Tradier. "Brokerage API Reference." documentation.tradier.com/brokerage-api, accessed 2026-05-21. Reference for Tradier's options coverage, OAuth 2.0, and rate limits.
- Anthropic. "Model Context Protocol." modelcontextprotocol.io, accessed 2026-05-21. Reference for MCP specification and idempotency conventions.
- IBKR. "Trader Workstation API Documentation." interactivebrokers.com/en/trading/ib-api.php, accessed 2026-05-21.
- SEC. "Pattern Day Trader Rule." sec.gov/divisions/marketreg/marginleverage.htm, accessed 2026-05-21. Reference for the PDT enforcement context.
Verified engine output
Show the recompute-verified inputs and outputs
| require_options | true |
|---|---|
| require_futures | false |
| require_crypto | false |
| require_mcp | true |
| require_free_tier | true |
| max_auth_complexity | 2 |
| filters › require options | true |
|---|---|
| filters › require futures | false |
| filters › require crypto | false |
| filters › require mcp | true |
| filters › require free tier | true |
| filters › max auth complexity | 2 |
| results › row 1 › broker › id | alpaca |
| results › row 1 › broker › name | Alpaca |
| results › row 1 › broker › url | https://alpaca.markets/ |
| results › row 1 › broker › docs url | https://alpaca.markets/docs/ |
| results › row 1 › broker › auth | API Key + Secret |
| results › row 1 › broker › auth complexity | 1 |
| results › row 1 › broker › order types (10 items) | [...] |
| results › row 1 › broker › rate limits | 200 req/min (free), higher on paid tiers |
| results › row 1 › broker › market data › row 1 | IEX real-time (free) |
| results › row 1 › broker › market data › row 2 | Full SIP on Algo Trader Plus ($99/mo) |
| results › row 1 › broker › market data › row 3 | Historical bars + trades + quotes |
| results › row 1 › broker › mcp | official |
| results › row 1 › broker › mcp note | Official MCP V2, 61 actions, idempotent order submission |
| results › row 1 › broker › assets › stocks | true |
| results › row 1 › broker › assets › options | true |
| results › row 1 › broker › assets › futures | false |
| results › row 1 › broker › assets › crypto | true |
| results › row 1 › broker › assets › forex | false |
| results › row 1 › broker › assets › bonds | false |
| results › row 1 › broker › account minimum | 0 |
| results › row 1 › broker › commission | $0 (PFOF on equities) |
| results › row 1 › broker › good for | Solo AI operator, paper-to-live parity |
| results › row 1 › broker › has free tier | true |
| results › row 1 › broker › notes › row 1 | Free paper trading with same API surface as live |
| results › row 1 › broker › notes › row 2 | Options require Algo Trader Plus tier |
| results › row 1 › broker › notes › row 3 | Python/Go SDKs mature; rate-limit backoff documented |
| results › row 1 › score | 4 |
| results › row 1 › max score | 4 |
| results › row 1 › fits | true |
| results › row 2 › broker › id | tradier |
| results › row 2 › broker › name | Tradier |
| results › row 2 › broker › url | https://tradier.com/ |
| results › row 2 › broker › docs url | https://developer.tradier.com/ |
| results › row 2 › broker › auth | OAuth 2.0 |
| results › row 2 › broker › auth complexity | 3 |
| results › row 2 › broker › order types (8 items) | [...] |
| results › row 2 › broker › rate limits | 120 req/min market data, 60 req/min trading |
| results › row 2 › broker › market data › row 1 | Real-time equities + options (streaming) |
| results › row 2 › broker › market data › row 2 | Historical OHLC back ~5 years |
| results › row 2 › broker › market data › row 3 | No Level-2 depth |
| results › row 2 › broker › mcp | community |
| results › row 2 › broker › mcp note | Community MCP; idempotency is a manual patch |
| results › row 2 › broker › assets › stocks | true |
| results › row 2 › broker › assets › options | true |
| results › row 2 › broker › assets › futures | false |
| results › row 2 › broker › assets › crypto | false |
| results › row 2 › broker › assets › forex | false |
| results › row 2 › broker › assets › bonds | false |
| results › row 2 › broker › account minimum | 0 |
| results › row 2 › broker › commission | $0 equities (PFOF), $0.35/contract options Pro |
| results › row 2 › broker › good for | Options-first retail, multi-leg strategies |
| results › row 2 › broker › has free tier | true |
| results › row 2 › broker › notes › row 1 | Free sandbox with delayed data |
| results › row 2 › broker › notes › row 2 | Strong options chain + multi-leg order API |
| results › row 2 › broker › notes › row 3 | US-only account eligibility |
| results › row 2 › score | 3 |
| results › row 2 › max score | 4 |
| results › row 2 › fits | false |
| results › row 2 › fail reasons › row 1 | Auth ≤ 2 |
| results › row 3 › broker › id | schwab |
| results › row 3 › broker › name | Schwab |
| results › row 3 › broker › url | https://www.schwab.com/ |
| results › row 3 › broker › docs url | https://developer.schwab.com/ |
| results › row 3 › broker › auth | OAuth 2.0 (3-legged) |
| results › row 3 › broker › auth complexity | 4 |
| results › row 3 › broker › order types (9 items) | [...] |
| results › row 3 › broker › rate limits | 120 req/min per endpoint (published tier) |
| results › row 3 › broker › market data › row 1 | Real-time equities + options quotes |
| results › row 3 › broker › market data › row 2 | Historical bars (1m to daily) |
| results › row 3 › broker › market data › row 3 | No exchange depth via API |
| results › row 3 › broker › mcp | none |
| results › row 3 › broker › mcp note | No official or listed community MCP server |
| results › row 3 › broker › assets › stocks | true |
| results › row 3 › broker › assets › options | true |
| results › row 3 › broker › assets › futures | true |
| results › row 3 › broker › assets › crypto | false |
| results › row 3 › broker › assets › forex | true |
| results › row 3 › broker › assets › bonds | true |
| results › row 3 › broker › account minimum | 0 |
| results › row 3 › broker › commission | $0 equities, $0.65/contract options |
| results › row 3 › broker › good for | Established retail, post-TDA API migration |
| results › row 3 › broker › has free tier | true |
| results › row 3 › broker › notes › row 1 | API rebuilt after TD Ameritrade integration; still maturing |
| results › row 3 › broker › notes › row 2 | Requires individual developer registration and app review |
| results › row 3 › broker › notes › row 3 | Token refresh flow is finicky vs Alpaca/Tradier |
| results › row 3 › score | 2 |
| results › row 3 › max score | 4 |
| results › row 3 › fits | false |
| results › row 3 › fail reasons › row 1 | MCP |
| results › row 3 › fail reasons › row 2 | Auth ≤ 2 |
| results › row 4 › broker › id | robinhood |
| results › row 4 › broker › name | Robinhood |
| results › row 4 › broker › url | https://robinhood.com/ |
| results › row 4 › broker › docs url | https://docs.robinhood.com/ |
| results › row 4 › broker › auth | OAuth 2.0 (unofficial endpoints) |
| results › row 4 › broker › auth complexity | 4 |
| results › row 4 › broker › order types › row 1 | market |
| results › row 4 › broker › order types › row 2 | limit |
| results › row 4 › broker › order types › row 3 | stop |
| results › row 4 › broker › order types › row 4 | stop-limit |
| results › row 4 › broker › order types › row 5 | gtc |
| results › row 4 › broker › order types › row 6 | ioc |
| results › row 4 › broker › rate limits | Not publicly documented; low throughput |
| results › row 4 › broker › market data › row 1 | Delayed quotes in public tier |
| results › row 4 › broker › market data › row 2 | Limited historical depth |
| results › row 4 › broker › market data › row 3 | No public Level-2 |
| results › row 4 › broker › mcp | none |
| results › row 4 › broker › mcp note | No MCP; unofficial SDKs only |
| results › row 4 › broker › assets › stocks | true |
| results › row 4 › broker › assets › options | true |
| results › row 4 › broker › assets › futures | false |
| results › row 4 › broker › assets › crypto | true |
| results › row 4 › broker › assets › forex | false |
| results › row 4 › broker › assets › bonds | false |
| results › row 4 › broker › account minimum | 0 |
| results › row 4 › broker › commission | $0 (PFOF), $5/mo Gold for margin + extras |
| results › row 4 › broker › good for | Casual retail; not recommended for agents |
| results › row 4 › broker › has free tier | true |
| results › row 4 › broker › notes › row 1 | No officially supported public API in 2026 |
| results › row 4 › broker › notes › row 2 | Community SDKs break on auth changes without notice |
| results › row 4 › broker › notes › row 3 | Paper trading unavailable |
| results › row 4 › score | 2 |
| results › row 4 › max score | 4 |
| results › row 4 › fits | false |
| results › row 4 › fail reasons › row 1 | MCP |
| results › row 4 › fail reasons › row 2 | Auth ≤ 2 |
| results › row 5 › broker › id | ibkr |
| results › row 5 › broker › name | Interactive Brokers |
| results › row 5 › broker › url | https://www.interactivebrokers.com/ |
| results › row 5 › broker › docs url | https://www.interactivebrokers.com/en/trading/ib-api.php |
| results › row 5 › broker › auth | OAuth + TWS/IB Gateway |
| results › row 5 › broker › auth complexity | 5 |
| results › row 5 › broker › order types (10 items) | [...] |
| results › row 5 › broker › rate limits | ~50 msg/sec per connection; 50 orders/sec burst |
| results › row 5 › broker › market data › row 1 | Global equities via subscription bundles |
| results › row 5 › broker › market data › row 2 | Level-2 depth on most exchanges |
| results › row 5 › broker › market data › row 3 | Historical depth across asset classes |
| results › row 5 › broker › mcp | community |
| results › row 5 › broker › mcp note | Community CLI MCP; audit before production |
| results › row 5 › broker › assets › stocks | true |
| results › row 5 › broker › assets › options | true |
| results › row 5 › broker › assets › futures | true |
| results › row 5 › broker › assets › crypto | true |
| results › row 5 › broker › assets › forex | true |
| results › row 5 › broker › assets › bonds | true |
| results › row 5 › broker › account minimum | 0 |
| results › row 5 › broker › commission | Tiered per-share or fixed; ~$0.0035/sh tiered |
| results › row 5 › broker › good for | Multi-asset-class, international, scale |
| results › row 5 › broker › has free tier | false |
| results › row 5 › broker › notes › row 1 | Requires TWS or IB Gateway running locally |
| results › row 5 › broker › notes › row 2 | Idempotency via client-supplied orderId |
| results › row 5 › broker › notes › row 3 | Fully headless gateway is possible but under-documented |
| results › row 5 › score | 2 |
| results › row 5 › max score | 4 |
| results › row 5 › fits | false |
| results › row 5 › fail reasons › row 1 | Free tier |
| results › row 5 › fail reasons › row 2 | Auth ≤ 2 |
| fitting brokers › row 1 › broker › id | alpaca |
| fitting brokers › row 1 › broker › name | Alpaca |
| fitting brokers › row 1 › broker › url | https://alpaca.markets/ |
| fitting brokers › row 1 › broker › docs url | https://alpaca.markets/docs/ |
| fitting brokers › row 1 › broker › auth | API Key + Secret |
| fitting brokers › row 1 › broker › auth complexity | 1 |
| fitting brokers › row 1 › broker › order types (10 items) | [...] |
| fitting brokers › row 1 › broker › rate limits | 200 req/min (free), higher on paid tiers |
| fitting brokers › row 1 › broker › market data › row 1 | IEX real-time (free) |
| fitting brokers › row 1 › broker › market data › row 2 | Full SIP on Algo Trader Plus ($99/mo) |
| fitting brokers › row 1 › broker › market data › row 3 | Historical bars + trades + quotes |
| fitting brokers › row 1 › broker › mcp | official |
| fitting brokers › row 1 › broker › mcp note | Official MCP V2, 61 actions, idempotent order submission |
| fitting brokers › row 1 › broker › assets › stocks | true |
| fitting brokers › row 1 › broker › assets › options | true |
| fitting brokers › row 1 › broker › assets › futures | false |
| fitting brokers › row 1 › broker › assets › crypto | true |
| fitting brokers › row 1 › broker › assets › forex | false |
| fitting brokers › row 1 › broker › assets › bonds | false |
| fitting brokers › row 1 › broker › account minimum | 0 |
| fitting brokers › row 1 › broker › commission | $0 (PFOF on equities) |
| fitting brokers › row 1 › broker › good for | Solo AI operator, paper-to-live parity |
| fitting brokers › row 1 › broker › has free tier | true |
| fitting brokers › row 1 › broker › notes › row 1 | Free paper trading with same API surface as live |
| fitting brokers › row 1 › broker › notes › row 2 | Options require Algo Trader Plus tier |
| fitting brokers › row 1 › broker › notes › row 3 | Python/Go SDKs mature; rate-limit backoff documented |
| fitting brokers › row 1 › score | 4 |
| fitting brokers › row 1 › max score | 4 |
| fitting brokers › row 1 › fits | true |
Computed live at build time.
Frequently asked questions
- Why does Tradier fail the strict filter when it has options and a free tier?
- Auth complexity. Tradier's OAuth 2.0 scores 3 in the comparator; strict filter requires ≤ 2. For a retail solo willing to wear OAuth, Tradier passes the relaxed filter and competes with Alpaca on options-execution depth.
- Should I use Alpaca's official MCP or write my own broker integration?
- Use Alpaca's MCP. The official integration includes idempotency, retries, and rate-limit backoff — three production concerns that take 2-4 weeks to get right when rolling your own.
- What about IBKR's deep multi-asset coverage?
- IBKR is the right choice for strategies spanning equities + options + futures + FX. The friction is real but worth it above $50k notional; for US-only equity-and-options retail, Alpaca is cheaper to integrate.
- Is the community Tradier MCP safe for production?
- Not without wrapping. Idempotency on order submission is the load-bearing safety property; the community MCP lacks it by default. Add an idempotency-key wrapper before routing live capital.
- How often does the comparator update?
- The MCP directory updates as new servers ship; the broker capability table updates quarterly. For procurement decisions, cross-check the engine against each vendor's current published docs.