Jesse MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JESSE_URL | No | The URL of the Jesse REST API (default: http://localhost:9000) | http://localhost:9000 |
| JESSE_PASSWORD | No | The password for the Jesse REST API |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| backtesting_statusA | Check Jesse REST API health and connection status. Returns connection status, Jesse version, and available strategies count. Use this to verify Jesse is reachable before running backtests or optimizations. |
| backtesting_exchangesA | Get list of supported exchanges in Jesse. Returns a list of exchange names that Jesse supports for trading and backtesting. Use this to validate exchange names before creating trading workflows or backtests. Returns: Dict with 'exchanges' list of supported exchange names and 'exchange_configs' with details |
| backtesting_runA | Run a single backtest on a strategy with specified parameters. Returns metrics: total_return, sharpe_ratio, max_drawdown, win_rate, total_trades, etc. Use this to:
Example flow for A/B testing:
|
| backtesting_list_strategiesA | List all available trading strategies. Use this as the FIRST step to see what strategies are available to test. Returns list of strategy names that can be passed to backtest(), analyze_results(), etc. |
| backtesting_read_strategyC | Read strategy source code |
| backtesting_validateB | Validate strategy code without saving |
| strategy_createA | Create strategy with iterative refinement (Ralph Wiggum loop). If async_mode=True, creates a Job and returns job_id immediately. Otherwise runs synchronously with progress logging. Args: name: Strategy name (used as class name) description: Human-readable description of the strategy indicators: List of technical indicators to use (optional) strategy_type: Type classification (default: trend_following) risk_per_trade: Risk percentage per trade (default: 0.02 = 2%) timeframe: Primary trading timeframe (default: 1h) max_iterations: Maximum refinement iterations (default: 5) overwrite: Overwrite existing strategy (default: False) async_mode: Run asynchronously (default: False) skip_backtest: Skip dry-run backtest validation (default: False) Returns: Dict with status, name, iterations, validation_history, path, code, ready_for_backtest |
| strategy_create_statusA | Poll async job progress for strategy creation. Args: job_id: Job identifier from strategy_create Returns: Dict with job_id, status, progress_percent, current_step, iterations_completed, iterations_total, elapsed_seconds, result (when complete) |
| strategy_create_cancelA | Cancel async strategy creation job. Args: job_id: Job identifier to cancel Returns: Dict with status, job_id |
| strategy_refineB | Refine existing strategy based on feedback. Reads strategy, refines based on feedback, re-validates. Args: name: Strategy name to refine feedback: Feedback/issues to address focus_area: Area to focus refinement (default: general) max_iterations: Maximum refinement iterations (default: 3) Returns: Dict with status, name, iterations, changes |
| strategy_deleteB | Delete a strategy. Args: name: Strategy name to delete confirm: Must be True to actually delete (default: False) Returns: Dict with status, name |
| jobs_listB | List recent jobs. Args: job_type: Filter by job type (optional) limit: Maximum number of jobs to return (default: 50) Returns: Dict with list of jobs containing id, type, status, progress, current_step, started_at |
| strategy_metadataB | Get metadata and version info for a strategy. Args: name: Strategy name Returns: Dict with strategy metadata including version, test_count, test_pass_count, certified status, and certification thresholds |
| backtesting_import_candlesC | Download candle data from exchange via Jesse REST API |
| rate_limit_statusA | Get current rate limiter status for Jesse API calls. Returns: Dict with rate limit configuration and statistics: - enabled: Whether rate limiting is active - rate_per_second: Configured requests per second - available_tokens: Current tokens available - wait_mode: Whether to wait or reject when limited - stats: Total requests, waits, rejections, wait time |
| optimization_runB | Auto-optimize strategy hyperparameters using Bayesian optimization. Automatically tests many parameter combinations to find best metrics. Example: Improve Sharpe ratio by optimizing EMA periods
Returns best parameters found and their performance metrics. |
| optimization_walk_forwardD | Perform walk-forward analysis to detect overfitting |
| optimization_batchC | Run multiple backtests concurrently for strategy comparison |
| optimization_analyzeA | Extract deep insights from backtest results. Takes backtest result dict and returns detailed analysis including:
Use this after backtest() to understand strategy performance better. Common workflow:
|
| risk_monte_carloC | Generate Monte Carlo simulations for comprehensive risk analysis |
| risk_varC | Calculate Value at Risk using multiple methods |
| risk_stress_testB | Stress test a portfolio under extreme market scenarios. Tests resilience to market crashes, liquidity crises, etc. Args: pairs: Trading pairs to stress test scenario: Market scenario (e.g., 'market crash', 'flash crash') Returns: Stress test results and risk mitigation strategies |
| risk_reportC | Generate comprehensive risk assessment and recommendations |
| pairs_correlationC | Analyze cross-asset correlations and identify pairs trading opportunities |
| pairs_backtestD | Backtest pairs trading strategies |
| pairs_factorsC | Decompose returns into systematic factors |
| pairs_regimesC | Identify market regimes and transitions |
| cache_statsA | Get cache statistics including hit/miss ratio and cache sizes. Returns: Dict with cache status, hit rates, and sizes for all caches |
| cache_clearA | Clear cache(s) to free memory or force fresh data. Args: cache_name: Specific cache to clear (strategy_list, backtest). If None, clears all caches. Returns: Dict with number of entries cleared per cache |
| benchmark_runA | Run a benchmark backtest to measure performance metrics. Measures backtest execution time and calculates candles/second performance. Useful for understanding how long different backtests will take. Args: symbol: Trading symbol (default: BTC-USDT) timeframe: Candle timeframe (default: 1h) days: Number of days to backtest (default: 30) exchange: Exchange name (default: Binance Spot) Returns: Dict with benchmark results including execution time and candles/second |
| trading_live_checkA | Check if jesse-live plugin is installed and available. Returns: Dict with 'available' boolean and optional 'error' message |
| trading_live_paperA | Start a PAPER trading session (simulated, no real money). Paper trading simulates trades without using real funds. Use this to test strategies before going live. Args: strategy: Strategy name (must exist in strategies directory) symbol: Trading symbol (e.g., "BTC-USDT") timeframe: Candle timeframe (e.g., "1h", "4h", "1d") exchange: Exchange name (e.g., "Binance", "Bybit") exchange_api_key_id: ID of stored exchange API key in Jesse notification_api_key_id: ID of stored notification config (optional) debug_mode: Enable debug logging Returns: Dict with session_id and status, or error details |
| trading_live_realA | Start LIVE trading with REAL MONEY. ⚠️ WARNING: This will execute real trades with real funds. ⚠️ RISKS:
REQUIREMENTS:
Args: strategy: Strategy name (must exist in strategies directory) symbol: Trading symbol (e.g., "BTC-USDT") timeframe: Candle timeframe (e.g., "1h", "4h", "1d") exchange: Exchange name (e.g., "Binance", "Bybit") exchange_api_key_id: ID of stored exchange API key in Jesse confirmation: REQUIRED: Must be exactly "I UNDERSTAND THE RISKS" notification_api_key_id: ID of stored notification config (optional) debug_mode: Enable debug logging permission: Agent permission level ("paper_only", "confirm_required", "full_autonomous") Returns: Dict with session_id and status, or error details |
| trading_live_cancelB | Cancel a running live/paper trading session. Args: session_id: Session ID to cancel paper_mode: True if paper trading session, False if live Returns: Dict with cancellation status |
| trading_live_sessionsB | Get list of live trading sessions. Args: limit: Maximum number of sessions to return (default: 50) offset: Offset for pagination (default: 0) Returns: Dict with sessions list |
| trading_live_statusB | Get status of a specific live trading session. Args: session_id: Session ID to check Returns: Dict with session details and current status |
| trading_live_ordersC | Get orders from a live trading session. Args: session_id: Session ID Returns: Dict with orders list |
| trading_live_equityA | Get real-time equity curve (P&L) for a session. Args: session_id: Session ID from_ms: Start time in milliseconds (optional) to_ms: End time in milliseconds (optional) Returns: Dict with equity curve data points |
| trading_live_logsC | Get logs from a live trading session. Args: session_id: Session ID log_type: Log type filter ("all", "info", "error", "warning") Returns: Dict with log entries |
| trading_paper_startA | Start a paper trading session. Paper trading simulates trades without using real funds. Use this to test strategies before going live. Args: strategy: Strategy name (e.g., 'SMACrossover', 'DayTrader') symbol: Trading pair (e.g., 'BTC-USDT') timeframe: Candle timeframe (default: '1h') exchange: Exchange name (default: 'Binance') exchange_api_key_id: ID of stored exchange API key in Jesse starting_balance: Initial capital (default: 10000) leverage: Futures leverage (default: 1) fee: Trading fee rate (default: 0.001) session_id: Optional custom session ID (auto-generated if not provided) Returns: Dict with session_id, status, and configuration |
| trading_paper_stopA | Stop a paper trading session and return final metrics. Args: session_id: Session ID to stop Returns: Dict with stopped_at, duration, and final_metrics |
| trading_paper_statusB | Get current status of a paper trading session. Args: session_id: Session ID to check Returns: Dict with session status, equity, positions, and metrics |
| trading_paper_tradesB | Get trades executed in a paper trading session. Args: session_id: Session ID limit: Maximum number of trades to return (default: 100) offset: Offset for pagination (default: 0) Returns: Dict with total_trades and trades list |
| trading_paper_equity_historyB | Get equity curve data for a paper trading session. Args: session_id: Session ID resolution: Resolution of equity curve data (default: '1h') Returns: Dict with equity_curve containing timestamp, equity, drawdown data |
| trading_paper_metricsB | Get calculated performance metrics for a paper trading session. Args: session_id: Session ID Returns: Dict with metrics: total_return, sharpe_ratio, max_drawdown, win_rate, etc. |
| trading_paper_listA | List all paper trading sessions. Returns: Dict with sessions list and total count |
| trading_paper_updateC | Update session parameters (limited to safe modifications). Args: session_id: Session ID to update notes: Notes text to associate with session Returns: Dict with update status |
| strategy_suggest_improvementsB | Get specific improvement suggestions for a trading strategy. Analyzes current performance and recommends concrete changes to test. Args: strategy_name: Name of the strategy to analyze pair: Trading pair to test on (e.g., 'BTCUSDT') Returns: Detailed improvement recommendations with expected impact |
| strategy_compare_strategiesC | Compare two strategies to identify best practices. Analyzes performance differences and key differentiators. Args: strategy1: First strategy name strategy2: Second strategy name Returns: Comparative analysis with insights on what makes one perform better |
| strategy_optimize_pair_selectionB | Find the best trading pairs for a given strategy. Analyzes performance across pairs to recommend the best ones. Args: strategy_name: Strategy to optimize pair selection for Returns: Ranked list of pairs with performance metrics and recommendations |
| strategy_analyze_optimization_impactC | Estimate the impact of a proposed strategy change. Analyzes expected benefits, risks, and testing methodology. Args: change_description: Description of the proposed change Returns: Impact analysis with testing recommendations |
| risk_analyze_portfolioB | Analyze risk profile of a trading portfolio. Evaluates correlation, concentration, and diversification. Args: pairs: List of trading pairs to analyze Returns: Portfolio risk analysis with recommendations |
| risk_assess_leverageB | Assess the risks of trading with leverage. Evaluates liquidation risk, margin requirements, and safe levels. Args: strategy_name: Strategy using leverage leverage: Leverage multiplier (e.g., 2.0 for 2x) Returns: Leverage risk assessment with recommendations |
| risk_recommend_hedgesA | Recommend hedging strategies for specific risks. Suggests hedging instruments and positioning. Args: pair: Trading pair to hedge (e.g., 'BTCUSDT') risk_type: Type of risk (e.g., 'downside', 'volatility', 'correlation') Returns: Hedging strategy recommendations with sizing and cost-benefit analysis |
| risk_analyze_drawdown_recoveryB | Analyze historical drawdowns and recovery patterns. Examines when and why losses occur and recovery timelines. Args: strategy_name: Strategy to analyze Returns: Drawdown analysis with recovery insights and improvement suggestions |
| backtest_comprehensiveB | Run a comprehensive backtest of a trading strategy. Tests performance, extracts metrics, and provides analysis. Args: strategy_name: Strategy to backtest pair: Trading pair (e.g., 'BTCUSDT') start_date: Start date in YYYY-MM-DD format end_date: End date in YYYY-MM-DD format Returns: Comprehensive backtest results and analysis |
| backtest_compare_timeframesA | Compare strategy performance across different timeframes. Tests 1m, 5m, 15m, 1h, 4h, 1d to find optimal timeframe. Args: strategy_name: Strategy to test pair: Trading pair Returns: Cross-timeframe comparison with optimal timeframe recommendation |
| backtest_optimize_parametersB | Find optimal parameter values through systematic testing. Tests parameter ranges to identify best settings. Args: strategy_name: Strategy with parameter to optimize pair: Trading pair param_name: Parameter name (e.g., 'period', 'threshold') param_range: Range to test (e.g., '10-100') Returns: Parameter optimization results with sensitivity analysis |
| backtest_monte_carloB | Perform Monte Carlo simulation for strategy robustness analysis. Tests many outcome variations to assess robustness. Args: strategy_name: Strategy to analyze pair: Trading pair Returns: Monte Carlo analysis with confidence intervals and risk assessment |
| backtest_analyze_regimesB | Analyze strategy performance in different market regimes. Tests performance in trending, ranging, and volatile markets. Args: strategy_name: Strategy to analyze pair: Trading pair Returns: Regime-dependent performance analysis with adaptation suggestions |
| backtest_validate_significanceA | Validate that backtest results are statistically significant. Ensures results are real, not luck or overfitting. Args: strategy_name: Strategy to validate pair: Trading pair Returns: Statistical significance assessment and confidence metrics |
| monitor_daily_scanB | Run daily market scan to identify trading opportunities. Scans multiple symbols and strategies to find signals. Args: symbols: Comma-separated list of symbols to scan Returns: Daily report with opportunities, risks, and recommendations |
| monitor_get_sentimentA | Get current market sentiment from Fear & Greed Index. Returns: Fear & Greed score and rating with historical context |
| monitor_scan_opportunitiesB | Scan for trading opportunities across symbols and strategies. Args: symbols: Comma-separated list of symbols strategies: Comma-separated list of strategies Returns: List of trading opportunities with signals and confidence |
| monitor_get_risksB | Identify current market risks and warning signs. Returns: List of identified risks with severity levels |
| logs_analyze_historyA | Analyze recent backtest history from Jesse database. Args: days: Number of days to analyze (default: 30) Returns: Backtest history with metrics and trends |
| logs_strategy_performanceB | Analyze strategy performance across all backtests. Returns: Performance metrics aggregated by strategy |
| logs_weekly_reportB | Generate weekly backtest activity report. Returns: Formatted weekly report with summaries and insights |
| alerts_send_notificationA | Send a notification alert via ntfy.sh. Args: message: Alert message to send priority: Priority level (default, low, high, urgent) tags: Comma-separated tags for the alert Returns: Send result with status and timestamp |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bkuri/jesse-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server