Broker MCP Selector
Overview
The rest of the Alpha Skills suite is the brain — it screens, scores, detects
regimes, and produces a trade plan. This skill is the hands: it answers the next
question, "where do I actually place this order, and is it safe to let an agent do it?"
It selects a broker MCP server for execution based on
what the user trades, where they are, and how much autonomy they're comfortable giving an
agent — then walks them through connecting it with safe defaults.
The authoritative, continuously re-verified data behind this skill lives in
awesome-broker-mcp — a directory
where every entry was opened and read at the source (the broker's own docs or the server's
own repo). A condensed snapshot ships in references/brokers.md; always prefer the live
list for the final decision, because this space moves fast and a stale entry is how
someone wires an agent to the wrong thing.
When to Use
Invoke this skill when the user wants to:
- "Actually place the trade" / "submit this order" / "execute this"
- "Connect my agent to my brokerage" / "wire up execution"
- "Which broker can Claude trade through?" / "does have an MCP server?"
- "Set up an auto-trader" / "automate my strategy" (pair with
ghost-auto-trader)
- "Is it safe to let an AI place orders on my account?"
- Move from a plan produced by any screener/analysis skill to a live or paper order
- Choose between broker MCP servers, or check if one is read-only vs. trade-capable
The two questions that decide almost everything
Before recommending anything, establish these — they collapse the whole option space:
Who wrote the server, and can it actually place an order?
✅ Trades — places a real order on its own tool call.
📝 Draft only — builds the order; the human submits it in the broker's UI. The
server physically cannot submit (e.g. Interactive Brokers).
👁️ Read-only — cannot place an order. Often official and deliberate. Most people
wiring up an LLM for analysis want exactly this.
- "Has an MCP server" ≠ "can trade." Some official servers are docs-only or
read-only; some community repos claim MCP but never register a trading tool. Verify
the tool surface, not the marketing.
What's the safety posture if the agent does something careless?
From safest to sharpest (see references/brokers.md for who sits where):
- Cannot execute, by design (IBKR draft-approval) — no env var turns it on.
- Draft-first, prompt-enforced (Trade It) — must draft, show, be told to execute.
- Paper / sandbox by default (Alpaca, Kraken, Webull) — live is opt-in, server-side.
- Live on a tool call (Robinhood, Tradier, most community servers) — the only
guardrail is your client config.
- Live, and no paper mode exists (Public.com) — every confirmation is real money.
Workflow
Step 1: Scope the need
Ask (or infer from prior suite output):
- Asset class — equities, options, futures, crypto, FX/CFD, event contracts.
- Region — US, India, Asia, EU, crypto (global).
- Autonomy — analysis only, human-in-the-loop draft approval, or full auto-execution.
- Environment — remote/hosted (paste a URL) vs. local (a process on their machine).
If the honest answer is "I just want analysis," recommend read-only and stop. Least
privilege: analysis needs no trading scope, and it removes the entire "prompt injection
reaches my account" blast radius.
Step 2: Match against the directory
Read references/brokers.md, then confirm against the live list
(https://github.com/mphinance/awesome-broker-mcp) before finalizing. Narrow by asset
class + region, then rank by the safety posture the user asked for.
Sensible defaults when the user is unsure:
- Safest thing that still trades → Interactive Brokers (draft-approval, server cannot submit).
- Experiment without risking money → Alpaca or Kraken (paper/sandbox by default).
- Analysis only → SnapTrade / Truthifi (read-only by design).
- Crypto → Kraken, OKX, Bybit, Gemini (all official, all trade).
- India → Zerodha (trades, self-hosted) or Upstox (read-only).
Step 3: Present the recommendation
Give the user a short, decision-shaped answer:
## Recommended: <Broker> MCP
- **Can it trade?** <✅ / 📝 / 👁️> — <one line>
- **Safety posture:** <posture> — <what happens on a careless prompt>
- **Type:** <Local (uvx/npx) / Remote / needs a gateway>
- **Official or community?** <who wrote it — and if community, "strangers' code holding
your credentials; check the last commit">
- **Why this one:** <ties back to their asset class / region / autonomy answer>
- **Source:** <link to the awesome-broker-mcp page for this broker>
### Safer alternative
<If the pick is "live on a tool call," always name the draft-first or paper-default
option they could use instead.>
Step 4: Wire it up with safe defaults
- Turn paper/sandbox on and leave live off until the user has watched it behave.
Name the exact switch (e.g. Alpaca
ALPACA_PAPER_TRADE=true; Kraken paper scope on,
trade scope off).
- Where the server supports it, leave the trading tools out entirely server-side
(e.g. Alpaca
ALPACA_TOOLSETS) if the user only needs data.
- Prefer draft-first execution when available. For full automation, hand off to
ghost-auto-trader and keep an explicit approval gate.
- For portfolio reads feeding analysis, hand off to
portfolio-manager.
Step 5: State the risks plainly
Before any live connection, surface these (don't bury them):
- Prompt injection reaches your account. If the agent reads a webpage, email, or
Discord message, hostile text is one hop from an order once it also holds a trading tool.
- Separate the brain from the hands. Analysis and execution don't have to be — and
arguably shouldn't be — the same connector.
- Paper first, for longer than feels necessary. Nothing here is battle-tested at the
level your money assumes.
Reference Files
references/brokers.md
- When: matching a need to a broker, or checking trade-capability / safety posture.
- Contains: a condensed, attributed snapshot of the awesome-broker-mcp directory —
official/community/aggregator servers, what each trades, local vs. remote, and safety
posture. Always cross-check the live list before finalizing.
Relationship to the rest of the suite
| Stage |
Skill |
Role |
| Decide what to trade |
screeners, regime detectors, stanley-druckenmiller-investment |
the brain |
| Decide where to execute |
broker-mcp-selector (this skill) |
the hands |
| Read the account |
portfolio-manager |
eyes on positions |
| Automate execution |
ghost-auto-trader |
the trigger finger (with a gate) |
Limitations and Disclaimers
This skill helps you choose and connect tooling. It is not financial advice and not an
endorsement of any broker or server. Community servers are third-party code that will hold
your broker credentials — read them, check the last commit, and assume the maintainer may
walk away. Verify every capability against the source before connecting to real money.
1---2name: broker-mcp-selector3description: Pick a broker MCP server your AI agent can actually execute trades through, and wire it up safely. Use when the user wants to place, submit, or automate real orders; connect an agent to a brokerage account; choose between Alpaca, IBKR, Tradier, Robinhood, Schwab, Kraken and other broker MCP servers; move from analysis to execution; or check whether a broker's MCP server can trade, is read-only, or is safe to connect to real money. This is the "hands" that execute what the rest of the Alpha Skills suite decides.4---56# Broker MCP Selector78## Overview910The rest of the Alpha Skills suite is the **brain** — it screens, scores, detects11regimes, and produces a trade plan. This skill is the **hands**: it answers the next12question, *"where do I actually place this order, and is it safe to let an agent do it?"*1314It selects a broker [MCP](https://modelcontextprotocol.io) server for execution based on15what the user trades, where they are, and how much autonomy they're comfortable giving an16agent — then walks them through connecting it with safe defaults.1718The authoritative, continuously re-verified data behind this skill lives in19**[awesome-broker-mcp](https://github.com/mphinance/awesome-broker-mcp)** — a directory20where every entry was opened and read at the source (the broker's own docs or the server's21own repo). A condensed snapshot ships in `references/brokers.md`; **always prefer the live22list** for the final decision, because this space moves fast and a stale entry is how23someone wires an agent to the wrong thing.2425## When to Use2627Invoke this skill when the user wants to:28- "Actually place the trade" / "submit this order" / "execute this"29- "Connect my agent to my brokerage" / "wire up execution"30- "Which broker can Claude trade through?" / "does <broker> have an MCP server?"31- "Set up an auto-trader" / "automate my strategy" (pair with `ghost-auto-trader`)32- "Is it safe to let an AI place orders on my account?"33- Move from a plan produced by any screener/analysis skill to a live or paper order34- Choose between broker MCP servers, or check if one is read-only vs. trade-capable3536## The two questions that decide almost everything3738Before recommending anything, establish these — they collapse the whole option space:39401. **Who wrote the server, and can it actually place an order?**41 - `✅ Trades` — places a real order on its own tool call.42 - `📝 Draft only` — builds the order; the *human* submits it in the broker's UI. The43 server physically cannot submit (e.g. Interactive Brokers).44 - `👁️ Read-only` — cannot place an order. Often official and deliberate. Most people45 wiring up an LLM for *analysis* want exactly this.46 - **"Has an MCP server" ≠ "can trade."** Some official servers are docs-only or47 read-only; some community repos claim MCP but never register a trading tool. Verify48 the tool surface, not the marketing.49502. **What's the safety posture if the agent does something careless?**51 From safest to sharpest (see `references/brokers.md` for who sits where):52 - **Cannot execute, by design** (IBKR draft-approval) — no env var turns it on.53 - **Draft-first, prompt-enforced** (Trade It) — must draft, show, be told to execute.54 - **Paper / sandbox by default** (Alpaca, Kraken, Webull) — live is opt-in, server-side.55 - **Live on a tool call** (Robinhood, Tradier, most community servers) — the only56 guardrail is your client config.57 - **Live, and no paper mode exists** (Public.com) — every confirmation is real money.5859## Workflow6061### Step 1: Scope the need62Ask (or infer from prior suite output):63- **Asset class** — equities, options, futures, crypto, FX/CFD, event contracts.64- **Region** — US, India, Asia, EU, crypto (global).65- **Autonomy** — analysis only, human-in-the-loop draft approval, or full auto-execution.66- **Environment** — remote/hosted (paste a URL) vs. local (a process on their machine).6768If the honest answer is *"I just want analysis,"* recommend **read-only** and stop. Least69privilege: analysis needs no trading scope, and it removes the entire "prompt injection70reaches my account" blast radius.7172### Step 2: Match against the directory73Read `references/brokers.md`, then **confirm against the live list**74(https://github.com/mphinance/awesome-broker-mcp) before finalizing. Narrow by asset75class + region, then rank by the safety posture the user asked for.7677Sensible defaults when the user is unsure:78- **Safest thing that still trades** → [Interactive Brokers](https://github.com/mphinance/awesome-broker-mcp/blob/main/brokers/interactive-brokers.md) (draft-approval, server cannot submit).79- **Experiment without risking money** → [Alpaca](https://github.com/mphinance/awesome-broker-mcp/blob/main/brokers/alpaca.md) or [Kraken](https://github.com/mphinance/awesome-broker-mcp/blob/main/brokers/kraken.md) (paper/sandbox by default).80- **Analysis only** → [SnapTrade](https://github.com/mphinance/awesome-broker-mcp/blob/main/aggregators/snaptrade.md) / [Truthifi](https://github.com/mphinance/awesome-broker-mcp/blob/main/aggregators/truthifi.md) (read-only by design).81- **Crypto** → Kraken, OKX, Bybit, Gemini (all official, all trade).82- **India** → Zerodha (trades, self-hosted) or Upstox (read-only).8384### Step 3: Present the recommendation85Give the user a short, decision-shaped answer:8687```markdown88## Recommended: <Broker> MCP8990- **Can it trade?** <✅ / 📝 / 👁️> — <one line>91- **Safety posture:** <posture> — <what happens on a careless prompt>92- **Type:** <Local (uvx/npx) / Remote / needs a gateway>93- **Official or community?** <who wrote it — and if community, "strangers' code holding94 your credentials; check the last commit">95- **Why this one:** <ties back to their asset class / region / autonomy answer>96- **Source:** <link to the awesome-broker-mcp page for this broker>9798### Safer alternative99<If the pick is "live on a tool call," always name the draft-first or paper-default100option they could use instead.>101```102103### Step 4: Wire it up with safe defaults104- Turn paper/sandbox **on** and leave live **off** until the user has watched it behave.105 Name the exact switch (e.g. Alpaca `ALPACA_PAPER_TRADE=true`; Kraken paper scope on,106 trade scope off).107- Where the server supports it, **leave the trading tools out entirely** server-side108 (e.g. Alpaca `ALPACA_TOOLSETS`) if the user only needs data.109- Prefer draft-first execution when available. For full automation, hand off to110 [`ghost-auto-trader`](../ghost-auto-trader/) and keep an explicit approval gate.111- For portfolio *reads* feeding analysis, hand off to112 [`portfolio-manager`](../portfolio-manager/).113114### Step 5: State the risks plainly115Before any live connection, surface these (don't bury them):116- **Prompt injection reaches your account.** If the agent reads a webpage, email, or117 Discord message, hostile text is one hop from an order once it also holds a trading tool.118- **Separate the brain from the hands.** Analysis and execution don't have to be — and119 arguably shouldn't be — the same connector.120- **Paper first, for longer than feels necessary.** Nothing here is battle-tested at the121 level your money assumes.122123## Reference Files124125**references/brokers.md**126- When: matching a need to a broker, or checking trade-capability / safety posture.127- Contains: a condensed, attributed snapshot of the awesome-broker-mcp directory —128 official/community/aggregator servers, what each trades, local vs. remote, and safety129 posture. Always cross-check the live list before finalizing.130131## Relationship to the rest of the suite132133| Stage | Skill | Role |134|-------|-------|------|135| Decide *what* to trade | screeners, regime detectors, `stanley-druckenmiller-investment` | the brain |136| Decide *where* to execute | **broker-mcp-selector** (this skill) | the hands |137| Read the account | `portfolio-manager` | eyes on positions |138| Automate execution | `ghost-auto-trader` | the trigger finger (with a gate) |139140## Limitations and Disclaimers141142*This skill helps you choose and connect tooling. It is not financial advice and not an143endorsement of any broker or server. Community servers are third-party code that will hold144your broker credentials — read them, check the last commit, and assume the maintainer may145walk away. Verify every capability against the source before connecting to real money.*