Jesse MCP Server
An MCP server that exposes the Jesse algorithmic trading framework's capabilities to LLM agents for backtesting, optimization, and risk analysis. It provides 32 specialized tools for managing trading strategies and performing comprehensive market simulations via the Jesse REST API.
README
Jesse MCP Server
An MCP (Model Context Protocol) server that exposes Jesse's algorithmic trading framework capabilities to LLM agents.
Status: Feature Complete ✅
All planned features implemented and tested. 32 tools available (17 core + 15 agent).
Installation
PyPI
pip install jesse-mcp
uvx (recommended for running directly)
uvx jesse-mcp
Arch Linux (AUR)
yay -S jesse-mcp
# or
paru -S jesse-mcp
From Source
git clone https://github.com/bkuri/jesse-mcp.git
cd jesse-mcp
pip install -e .
Usage
# stdio transport (default, for MCP clients)
jesse-mcp
# HTTP transport (for remote access)
jesse-mcp --transport http --port 8100
# Show help
jesse-mcp --help
Environment Variables
| Variable | Description | Default |
|---|---|---|
JESSE_URL |
Jesse REST API URL | http://localhost:9000 |
JESSE_PASSWORD |
Jesse UI password | (required) |
JESSE_API_TOKEN |
Pre-generated API token | (alternative to password) |
Features
- Backtesting - Single and batch backtest execution via Jesse REST API
- Optimization - Hyperparameter tuning with walk-forward validation
- Monte Carlo Analysis - Statistical robustness testing
- Pairs Trading - Cointegration testing and strategy generation
- Strategy Management - CRUD operations for trading strategies
- Risk Analysis - VaR, stress testing, comprehensive risk reports
- Agent Tools - 15 specialized tools for autonomous trading workflows
Architecture
LLM Agent ←→ MCP Protocol ←→ jesse-mcp ←→ Jesse REST API (localhost:9000)
↓
Mock Fallbacks (when Jesse unavailable)
Available Tools (32 Total)
Core Tools (17)
Phase 1: Backtesting
| Tool | Description |
|---|---|
backtest |
Run single backtest with specified parameters |
strategy_list |
List available strategies |
strategy_read |
Read strategy source code |
strategy_validate |
Validate strategy code |
Phase 2: Data & Analysis
| Tool | Description |
|---|---|
candles_import |
Download candle data from exchanges |
backtest_batch |
Run concurrent multi-asset backtests |
analyze_results |
Extract insights from backtest results |
walk_forward |
Walk-forward analysis for overfitting detection |
Phase 3: Optimization
| Tool | Description |
|---|---|
optimize |
Optimize hyperparameters using Optuna |
Phase 4: Risk Analysis
| Tool | Description |
|---|---|
monte_carlo |
Monte Carlo simulations for risk analysis |
var_calculation |
Value at Risk (historical, parametric, Monte Carlo) |
stress_test |
Test under extreme market scenarios |
risk_report |
Comprehensive risk assessment |
Phase 5: Pairs Trading
| Tool | Description |
|---|---|
correlation_matrix |
Cross-asset correlation analysis |
pairs_backtest |
Backtest pairs trading strategies |
factor_analysis |
Decompose returns into systematic factors |
regime_detector |
Identify market regimes and transitions |
Agent Tools (15)
Specialized tools for autonomous trading workflows:
| Tool | Description |
|---|---|
strategy_suggest_improvements |
AI-powered strategy enhancement suggestions |
strategy_compare_strategies |
Compare multiple strategies side-by-side |
strategy_optimize_pair_selection |
Optimize pairs trading selection |
strategy_analyze_optimization_impact |
Analyze impact of optimization changes |
risk_analyze_portfolio |
Portfolio-level risk analysis |
risk_stress_test |
Advanced stress testing |
risk_assess_leverage |
Leverage risk assessment |
risk_recommend_hedges |
Hedging recommendations |
risk_analyze_drawdown_recovery |
Drawdown recovery analysis |
backtest_comprehensive |
Full backtest with all metrics |
backtest_compare_timeframes |
Compare performance across timeframes |
backtest_optimize_parameters |
Quick parameter optimization |
backtest_monte_carlo |
Backtest with Monte Carlo analysis |
backtest_analyze_regimes |
Regime-aware backtest analysis |
backtest_validate_significance |
Statistical significance validation |
Testing
# Install dev dependencies
pip install jesse-mcp[dev]
# Run all tests
pytest -v
# Run with coverage
pytest --cov=jesse_mcp
Status: 49 tests passing
Local Development
Prerequisites
- Python 3.10+
- Jesse 1.13.x running on localhost:9000
- PostgreSQL on localhost:5432
- Redis on localhost:6379
Start Jesse Stack (Podman)
# Start infrastructure
podman run -d --name jesse-postgres --network host \
-e POSTGRES_USER=jesse_user -e POSTGRES_PASSWORD=password -e POSTGRES_DB=jesse_db \
docker.io/library/postgres:14-alpine
podman run -d --name jesse-redis --network host \
docker.io/library/redis:6-alpine redis-server --save "" --appendonly no
# Start Jesse
podman run -d --name jesse --network host \
-v /path/to/jesse-bot:/home:z \
docker.io/salehmir/jesse:latest bash -c "cd /home && jesse run"
Start Dev MCP Server
./scripts/start-dev-server.sh # Start on port 8100
./scripts/stop-dev-server.sh # Stop server
Add to OpenCode
Add to ~/.config/opencode/opencode.json:
{
"mcp": {
"jesse-mcp-dev": {
"type": "remote",
"url": "http://localhost:8100/mcp",
"enabled": true
}
}
}
Documentation
- Using with LLMs - How to use with MCP-compatible LLMs
- Production Deployment - Production deployment guide
- Jesse Setup - Jesse integration setup
- Agent System - Agent architecture
- AGENTS.md - Development guidelines for AI agents
API Reference
Jesse REST Client
The jesse_rest_client.py module provides direct access to Jesse's REST API:
from jesse_mcp.core.jesse_rest_client import get_jesse_rest_client
client = get_jesse_rest_client()
# Run backtest
result = client.backtest(
strategy="OctopusStrategy",
symbol="BTC-USDT",
timeframe="1h",
start_date="2024-01-01",
end_date="2024-01-31"
)
Mock Implementations
When Jesse is unavailable, all tools gracefully fall back to mock implementations that return realistic synthetic data. This enables development and testing without a full Jesse installation.
Key Dependencies
| Package | Version | Purpose |
|---|---|---|
| fastmcp | >=0.3.0 | MCP server framework |
| numpy | >=1.24.0 | Numerical computations |
| pandas | >=2.0.0 | Data manipulation |
| scipy | >=1.10.0 | Statistical functions |
| scikit-learn | >=1.3.0 | ML utilities |
| optuna | >=3.0.0 | Hyperparameter optimization |
Project Structure
jesse_mcp/
├── server.py # FastMCP server with 17 core tools
├── optimizer.py # Phase 3: Optimization tools
├── risk_analyzer.py # Phase 4: Risk analysis tools
├── pairs_analyzer.py # Phase 5: Pairs trading tools
├── agent_tools.py # 15 agent-specific tools
├── core/
│ ├── integrations.py # Jesse framework integration
│ ├── jesse_rest_client.py # REST API client
│ └── mock.py # Mock implementations
├── agents/
│ ├── base.py # Base agent class
│ ├── backtester.py # Backtesting specialist
│ └── risk_manager.py # Risk management specialist
└── scripts/
├── start-dev-server.sh
└── stop-dev-server.sh
License
MIT License - see LICENSE file for details.
Publishing
This package uses GitHub Actions with PyPI trusted publishing. To release a new version:
- Update version in
pyproject.tomlandjesse_mcp/__init__.py - Create a git tag:
git tag v1.x.x - Push tag:
git push origin v1.x.x - Create GitHub release - automatically publishes to PyPI
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.