claude-fidelity-mcp
# @tasque/fidelity-mcp
MCP server for Fidelity brokerage accounts via Playwright browser automation.
> **Warning** — Fidelity has no public API. This automates the web interface, which may violate their Terms of Service.
## Tools
| Tool | Description |
|------|-------------|
| `fidelity_login` | Log in to Fidelity (supports TOTP and SMS 2FA) |
| `fidelity_submit_2fa` | Submit SMS 2FA code |
| `fidelity_get_accounts` | List all accounts with balances |
| `fidelity_get_positions` | Get all holdings across accounts |
| `fidelity_transfer` | Transfer cash between Fidelity accounts |
| `fidelity_get_quote` | Get current stock/ETF price |
| `fidelity_place_order` | Place a buy/sell order (dry_run default) |
| `fidelity_batch_orders` | Place multiple orders sequentially (dry_run default) |
| `fidelity_status` | Check browser session status |
| `fidelity_logout` | Close session and save cookies |
| `fidelity_save_session` | Save browser state to disk |
| `fidelity_screenshot` | Take a full-page screenshot |
| `fidelity_page_content` | Get page URL and interactive elements |
## Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `FIDELITY_USERNAME` | Yes | Fidelity login username |
| `FIDELITY_PASSWORD` | Yes | Fidelity login password |
| `FIDELITY_TOTP_SECRET` | No | Base32 TOTP secret for automatic 2FA |
| `FIDELITY_HEADLESS` | No | Set to `"false"` to show browser (default: `true`) |
| `FIDELITY_SESSION_DIR` | No | Session persistence directory (default: `~/.fidelity-mcp`) |
| `FIDELITY_SESSION_TITLE` | No | Session file identifier for multiple accounts |
| `FIDELITY_DEBUG` | No | Set to `"true"` for debug logging |
| `FIDELITY_TIMEOUT` | No | Default timeout in ms (default: `30000`) |
## Auth Setup
Set `FIDELITY_USERNAME` and `FIDELITY_PASSWORD`. For automatic 2FA, get your TOTP secret from Fidelity Security Settings > Authenticator app > "Can't scan the code?" and set `FIDELITY_TOTP_SECRET`. Without TOTP, the server falls back to SMS 2FA (requires calling `fidelity_submit_2fa`).
Requires Playwright Firefox: `npx playwright install firefox`
## Development
```bash
npm install
npx playwright install firefox
npm run build
npm start # stdio mode
```
TDQS
Scored across 13 tools
Each tool has a unique and clear purpose (login, logout, get accounts, place orders, etc.). No two tools overlap in functionality, and the descriptions clearly differentiate them.
All tools follow a consistent 'fidelity_verb_noun' pattern in snake_case (e.g., fidelity_get_accounts, fidelity_place_order). This makes the set predictable and easy to navigate.
With 13 tools, the server covers essential Fidelity operations (login, orders, transfers, debugging) without being bloated. Each tool feels necessary for the domain.
The tool set covers core workflows: login, account info, quotes, orders (single & batch), transfers, and session management. Minor gaps like order cancellation or history exist, but the surface is strong for its stated purpose.