TypeScript MCP server for Freqtrade — connect AI agents (Claude, Cursor, Cline) to your crypto trading bot via its REST API
Solid foundation with 19 well-named tools covering a coherent domain (Freqtrade trading bot control). All tools have descriptions (avg ~120 chars, within baseline 194 chars). Input schemas are present and typed for all tools. However, output schemas are completely undocumented, LLMs cannot predict response structure for chaining. Error handling is minimal; no recovery guidance or actionable error messages. Missing tool annotations (readOnlyHint, destructiveHint). Several descriptions lack specificity on return values and prerequisites. Parameter descriptions are adequate but could be more prescriptive about constraints and formats.
Add a trading pair to the blacklist to prevent the bot from opening new trades on it.
Remove a specific trade lock by its ID. Use get_locks to list current locks and their IDs.
Manually enter (force-enter) a trade on a specific pair. The bot bypasses strategy signals and opens the position immediately. Natural language examples: • "buy 100 USDT of BTC/USDT" → pair=BTC/USDT, side=long, stake_amount=100 • "short 0.5 ETH/USDT at 2000" → pair=ETH/USDT, side=short, price=2000 The position will be managed by the active strategy after entry.
Manually exit (force-sell) an open trade, bypassing the strategy exit signals. Supports full and partial exits. Examples: • Close trade 42 immediately: trade_id=42 • Partial exit 50% of trade 7: trade_id=7, amount=<half the position size>
Check the current wallet and account balance across all currencies, including free, used, and total amounts.
Output schemas completely undocumented. No tool describes what fields are returned, their types, or structure. LLMs cannot predict response shape for chaining or field extraction.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes without explicit hints. Critical for agent safety.
Error handling absent. No recovery guidance, error classification, or actionable messages. FreqtradeApiError thrown but not caught/transformed into LLM-friendly guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
View the current trading pair blacklist — pairs that are explicitly excluded from trading.
Get general information about the bot: software version and the timestamp of the last strategy run cycle.
Retrieve all active trade locks. Locks prevent the bot from opening new trades on specific pairs for a defined period.
Fetch live OHLCV (Open/High/Low/Close/Volume) candlestick market data for a specific trading pair and timeframe.
View all currently active (open) trades, including entry price, current profit, stake amount, and duration.
Retrieve per-pair trading performance metrics, including profit and trade count for each pair.
Retrieve current profit and loss statistics: total profit, win/loss ratio, best pair, drawdown, trading volume, and more.
Retrieve detailed information about a specific trade by its ID, including full history, fees, and profit/loss.
Retrieve closed trade history with optional pagination. Returns trades sorted by ID.
View the current trading pair whitelist — the set of pairs the bot is allowed to trade.
Reload the bot configuration from disk. Useful after editing config.json without restarting the process. The bot will briefly pause trading during the reload.
Remove a trading pair from the blacklist, allowing the bot to trade it again.
Start the Freqtrade bot. The bot will begin trading according to its configured strategy. Has no effect if already running.
Stop the Freqtrade bot. Existing open trades will remain open and will not be closed automatically. Use force_exit_trade to close positions manually.
Pagination not implemented for list tools. get_trade_history accepts limit/offset but no total count or next_cursor returned. Large result sets risk context window exhaustion.
Destructive operations (execute_trade, force_exit_trade, delete_lock) lack confirmation/dry-run support. Agents can trigger irreversible trades without safeguards.