Backtest de una estrategia Pine desde Claude Code en 90 segundos
Tutorial del servidor @pineforge/codegen-mcp: instálalo con un solo npx, pide a Claude que transpile tu Pine, ejecuta el backtest en Docker y lee la lista de operaciones. Tu OHLCV no sale de la máquina.
El codegen de PineForge llevaba meses detrás de un curl; esta semana también hay servidor Model Context Protocol: puedes lanzar un backtest desde cualquier cliente MCP — Claude Desktop, Claude Code, Cursor, Continue.dev, etc.
Recorrido extremo a extremo: de repo vacío a informe JSON en ~90 segundos de reloj (más la primera docker pull).
Qué hace el servidor
@pineforge/codegen-mcp en npm es un puente stdio local fino. Cuatro herramientas:
Privacidad: el Pine viaja al codegen alojado en codegen.pineforge.dev. El CSV OHLCV no — backtest_pine monta tu archivo solo lectura en Docker local; el contenedor runtime sin red saliente. Los datos no salen del portátil.
Instalación (un comando)
npx -y @pineforge/codegen-mcpNode ≥ 20, Docker arriba, clave pf_… del waitlist.
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"pineforge-codegen": {
"command": "npx",
"args": ["-y", "@pineforge/codegen-mcp"],
"env": {
"PINEFORGE_API_KEY": "pf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}Reinicia Claude. Primera llamada: codegen + docker pull (~250 MB una vez).
Claude Code (CLI)
claude mcp add pineforge-codegen \
--transport stdio \
--env PINEFORGE_API_KEY=pf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
-- npx -y @pineforge/codegen-mcpCursor
Ajustes → MCP → mismo bloque JSON.
Interacción en lenguaje natural
Ejemplo comprimido: pides backtest de ./strategy.pine contra ./eth_15m.csv; el modelo llama backtest_pine y te resume Sharpe / drawdown.
Forma del JSON
{
"engine": "pineforge",
"summary": {
"total_trades": 49,
"net_pnl": -190.85,
"max_drawdown": 312.0,
"sharpe": 0.21,
"profit_factor": 0.78,
"win_rate": 0.43
},
"trades": [
/* 49 entries with timestamps, prices, PnL */
],
"elapsed_seconds": 0.0042,
"_meta": {
"strategy_cpp_bytes": 5079,
"image": "ghcr.io/pineforge-4pass/pineforge-engine:latest"
}
}Cuotas
Tier gratis: 100 transpiles/mes. Patrón útil: en CLAUDE.md pedir get_quota antes de barridos grandes.
Fuera de alcance a propósito
- Sin órdenes live ni broker.
- Sin descarga de datos: traes el OHLCV.
- Sin estado entre llamadas: cada
backtest_pinees contenedor fresco.
Patrones útiles
Apretar stop y re-lanzar; cambiar CSV de ventana; barridos de parámetro; comparar dos estrategias con dos llamadas.
Enlaces
- Early access · Página /ai · npm — el servidor es pequeño y auditable.