new-tasty-trade-mcp
An MCP server exposing the Tastytrade Open API to an LLM host (Claude Code, Claude Desktop, Cursor, …). Read-only account & market-data tools plus guarded live-trading tools (two-phase orders, size caps, audit log).
Published on PyPI — run it anywhere with
uvx; no clone or local venv required. (The Python import name is tastytrade_mcp.)
Requirements
- Python 3.10+
- A Tastytrade OAuth app with a refresh token and client secret. Create it at
my.tastytrade.com → Manage → My Profile → API → OAuth Applications, and select the
readandtradescopes when creating the client/grant (without them the API returns403 insufficient scopes).
Register with Claude Code
uvx fetches the package on demand, so there's nothing to install up front:
claude mcp add tastytrade \
-e TASTY_ACCOUNT_NUMBER=... \
-e TASTY_CLIENT_ID=... \
-e TASTY_CLIENT_SECRET=... \
-e TASTY_REFRESH_TOKEN=... \
-- uvx new-tasty-trade-mcp
Restart Claude Code and the tools appear.
Other MCP clients (Claude Desktop, Cursor, Cline, …)
Add this to your mcpServers config (same shape across clients):
{
"mcpServers": {
"tastytrade": {
"command": "uvx",
"args": ["new-tasty-trade-mcp"],
"env": {
"TASTY_ACCOUNT_NUMBER": "...",
"TASTY_CLIENT_ID": "...",
"TASTY_CLIENT_SECRET": "...",
"TASTY_REFRESH_TOKEN": "..."
}
}
}
}
Optional env overrides:
TASTY_MAX_ORDER_NOTIONAL_USD— reject orders above this notional (Limit orders only).TASTY_MAX_QUANTITY— reject orders above this total leg quantity.TASTY_LOG_FILE— audit-log path (defaulttastytrade-mcp-trades.login the working directory). Set an absolute path to place it elsewhere.
Tools
Account (read): get_accounts, get_account, get_balances, get_positions,
get_orders, get_order, get_transactions, get_trading_status, get_nlv_history.
Market (read): get_quote, get_option_chain, get_market_metrics,
search_symbols, get_equity.
Trading (guarded): dry_run_order, place_order (two-phase: execute=false previews,
execute=true submits after the size-cap check), modify_order, cancel_order.
Trading guardrails
- Two-phase:
place_orderalways dry-runs first; it submits only whenexecute=true. - Size caps:
TASTY_MAX_QUANTITYandTASTY_MAX_ORDER_NOTIONAL_USD; orders over a cap are rejected before submission. Leave unset for no cap. - Audit log: every place/modify/cancel (success or failure) and every dry-run appends a
JSON line to
TASTY_LOG_FILE.
Run directly (stdio)
uvx new-tasty-trade-mcp # from anywhere
# or, installed in a venv:
python -m tastytrade_mcp
Development
Editable install from a clone (includes pytest, build, twine):
venv/bin/pip install -e 'mcp/tastytrade[dev]'
Common tasks via the Makefile (run from mcp/tastytrade/, or make -C mcp/tastytrade …
from the repo root):
make test # run the suite (httpx.MockTransport — no network, no live account)
make build # clean -> test -> build wheel + sdist into dist/
make publish # build -> twine upload (uses ~/.pypirc)
make install # editable install with dev extras
make clean # remove build/ and dist/
Re-publishing: bump version in pyproject.toml, then make publish (PyPI won't accept
the same version twice).
Metadata
Release files for new-tasty-trade-mcp 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| new_tasty_trade_mcp-0.1.2.tar.gz | 13.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| new_tasty_trade_mcp-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.9 kB
Release files / new_tasty_trade_mcp-0.1.2.tar.gz
| Download URL | new_tasty_trade_mcp-0.1.2.tar.gz |
|---|---|
| Size | 13.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
da03ebe40b16385a53f867fe8ab2d9b0a2c2b05b1a608c958271fe650ee46ff6
|
|
BLAKE2b-256 checksum How to use checksums |
6063cff8d50f9de9633ff84dfaf7a955fc6e91c1ee96deccb31ce9b3c8c1cc0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.14
|
Release files / new_tasty_trade_mcp-0.1.2-py3-none-any.whl
| Download URL | new_tasty_trade_mcp-0.1.2-py3-none-any.whl |
|---|---|
| Size | 12.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d0f0244ab7a38e1d13eb593a6ce67d5e3b5800c157de31114cda1091313bef4c
|
|
BLAKE2b-256 checksum How to use checksums |
a8fc37c6ddf8ca29884ef67e1039ec573fb5555cc0993c18cad171a7a545029d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.14
|