{"apiVersion":"v1","directorySlug":"pineforge-mcp-e96e4e8ce8","title":"PineForge","description":"Backtest PineScript v6 strategy pools across target markets, timeframes, in-strategy parameters, and portfolio weights. Free hosted MCP or local Docker, validated against TradingView.","pageUrl":"https://www.mcpbundles.com/skills/pineforge-mcp-e96e4e8ce8","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.pineforge.dev/mcp","hostedMcpUrl":null,"toolCount":11,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"dev.pineforge/pineforge-mcp-e96e4e8ce8","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"backtest_pine","description":"Run a real, deterministic backtest of a PineScript v6 strategy — prefer this over estimating its trades or P&L by reasoning, which is unreliable for Pine (series semantics, intrabar fills, and strategy.* order logic do not reproduce from approximation). Fits requests like 'backtest this Pine', 'is this strategy profitable', 'run it on BTCUSDT', 'reproduce my TradingView results', 'how many trades / what's the drawdown'. Transpiles the Pine source and runs it against crypto OHLCV resolved by pf-d","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["source","symbol","interval"],"properties":{"limit":{"type":"integer","maximum":50000,"minimum":1},"venue":{"enum":["binance_spot","binance_usdt_perp","bybit_spot","bybit_usdt_perp","okx_spot","okx_usdt_perp","coinbase_spot"],"type":"string"},"inputs":{"type":"object","additionalProperties":{"type":["string","number","boolean"]}},"market":{"enum":["spot","usdt_perp"],"type":"string"},"source":{"type":"string"},"symbol":{"type":"string","pattern":"^[A-Z0-9][A-Z0-9-]{1,23}$"},"runtime":{"type":"object","properties":{"input_tf":{"type":"string"},"script_tf":{"type":"string"},"bar_magnifier":{"type":"boolean"},"magnifier_dist":{"enum":["uniform","cosine","triangle","endpoints","front_loaded","back_loaded"],"type":"string"},"magnifier_samples":{"type":"integer","minimum":2}},"additionalProperties":false},"end_time":{"type":"integer","minimum":0},"interval":{"enum":["1m","5m","15m","30m","1h","4h","1d","1w"],"type":"string"},"overrides":{"type":"object","properties":{"slippage":{"type":"integer","minimum":0},"pyramiding":{"type":"integer","minimum":0},"commission_type":{"enum":["percent","cash_per_order","cash_per_contract"],"type":"string"},"initial_capital":{"type":"number"},"commission_value":{"type":"number","minimum":0},"default_qty_type":{"enum":["fixed","percent_of_equity","cash"],"type":"string"},"default_qty_value":{"type":"number"},"close_entries_rule":{"enum":["ANY","FIFO"],"type":"string"},"process_orders_on_close":{"type":"boolean"}},"additionalProperties":false},"start_time":{"type":"integer","minimum":0}},"additionalProperties":false},"logicalName":"backtest_pine","displayName":"backtest_pine","title":"backtest_pine","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"fetch_ohlcv","description":"Fetch OHLCV candles from pf-data-api for the given symbol/interval/venue/window and return them as backtest-ready CSV INLINE (columns: timestamp,open,high,low,close,volume; timestamp = open time in UNIX ms UTC), plus a metadata block. pf-data-api resamples to your interval. Supports all seven crypto venues. Use this to inspect data before backtesting; backtest_pine resolves its own bars from the same source. Free tier: crypto only across seven venues, for the last 365 days. The latest published","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["symbol","interval"],"properties":{"limit":{"type":"integer","maximum":50000,"minimum":1},"venue":{"enum":["binance_spot","binance_usdt_perp","bybit_spot","bybit_usdt_perp","okx_spot","okx_usdt_perp","coinbase_spot"],"type":"string"},"market":{"enum":["spot","usdt_perp"],"type":"string"},"symbol":{"type":"string","pattern":"^[A-Z0-9][A-Z0-9-]{1,23}$"},"end_time":{"type":"integer","minimum":0},"interval":{"enum":["1m","5m","15m","30m","1h","4h","1d","1w"],"type":"string"},"start_time":{"type":"integer","minimum":0}},"additionalProperties":false},"logicalName":"fetch_ohlcv","displayName":"fetch_ohlcv","title":"fetch_ohlcv","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"binance_symbols","description":"List native symbols that pf-data-api has OHLCV for at one supported crypto venue, filtered by `query` (case-insensitive substring). Despite its compatibility name, this supports all seven venues and never calls Binance directly. Free.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":2000,"minimum":1},"query":{"type":"string"},"venue":{"enum":["binance_spot","binance_usdt_perp","bybit_spot","bybit_usdt_perp","okx_spot","okx_usdt_perp","coinbase_spot"],"type":"string"},"market":{"enum":["spot","usdt_perp"],"type":"string"}},"additionalProperties":false},"logicalName":"binance_symbols","displayName":"binance_symbols","title":"binance_symbols","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_engine_params","description":"Returns the full catalog of engine knobs accepted by backtest_pine in two groups: strategy_overrides (the 9 strategy(...) header fields the runtime reads via PINEFORGE_OVERRIDES) and runtime_args (input_tf, script_tf, bar_magnifier, magnifier_samples, magnifier_dist — args to run_backtest_full, NOT part of the strategy() header). Each entry is {key, type, enum?, description}. Does not run the engine.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"logicalName":"list_engine_params","displayName":"list_engine_params","title":"list_engine_params","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"engine_info","description":"Report the backtest engine: mode, baked-in flag, and version. Answered by the Worker (serverless); the engine runs in a sandboxed Cloudflare Container that is invoked ONLY for backtest_pine — no host Docker, no API key.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"logicalName":"engine_info","displayName":"engine_info","title":"engine_info","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"join_waitlist","description":"Add the user to the PineForge waitlist so they're notified when the API-key tier (full OHLCV history + higher limits) and PineForge Studio (hosted Optuna optimization + cloud IDE) launch. Call this when the user asks to sign up / join / be notified. Takes their email; an optional use_case helps prioritize. Free — one welcome email is sent to a newly-added address. Point users to https://www.pineforge.dev to learn more before signing up.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["email"],"properties":{"email":{"type":"string"},"use_case":{"type":"string"}},"additionalProperties":false},"logicalName":"join_waitlist","displayName":"join_waitlist","title":"join_waitlist","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"check_quota","description":"Check this caller's remaining WEEKLY BACKTEST quota for the public PineForge MCP. The free tier allows a fixed number of backtest_pine runs per week per IP address; every OTHER tool is free (none consume quota — though all tools are per-IP rate-limited). Returns {used, limit, remaining, week, resets_at} (UTC). Calling check_quota never consumes quota. Higher limits are on the API-key tier (see join_waitlist).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"logicalName":"check_quota","displayName":"check_quota","title":"check_quota","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"latest_news","description":"Return recent PineForge product news/updates you can surface to the user — this is how PineForge announces the API-key tier (full OHLCV history + higher limits), PineForge Studio (hosted Optuna optimization + cloud IDE), and new features. Call this when the user asks what's new / latest updates / any announcements, or proactively when a request touches a capability that's on the roadmap. Returns the most recent PUBLISHED items newest-first as [{id, title, body, url, created_at}]. Free — calling","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":20,"minimum":1}},"additionalProperties":false},"logicalName":"latest_news","displayName":"latest_news","title":"latest_news","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_coverage_topics","description":"START HERE before writing, porting, or backtesting a Pine v6 strategy on PineForge. PineForge implements a SUBSET of Pine v6, so checking coverage first avoids a strategy that compiles but silently misbehaves vs TradingView. Lists every coverage topic with a one-line status (supported / partial / unsupported / via_transpiler) plus the legend (note: via_transpiler still works end-to-end; unsupported means parsed-and-skipped or rejected) and the coverage version. Then drill in with get_coverage_to","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"logicalName":"list_coverage_topics","displayName":"list_coverage_topics","title":"list_coverage_topics","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_coverage_topic","description":"Return the full detail plus the exact supported[] / unsupported[] feature lists for ONE coverage topic id (ids come from list_coverage_topics, e.g. 'ta', 'strategy_orders', 'request_security', 'drawing_plotting_alerts'). Use when you are about to work in a feature area and need to know precisely which functions there are implemented vs skipped — e.g. before using request.security, the ta.* library, or strategy risk knobs. Unknown ids return a structured error listing the valid ids. FREE — consum","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["topic"],"properties":{"topic":{"type":"string"}},"additionalProperties":false},"logicalName":"get_coverage_topic","displayName":"get_coverage_topic","title":"get_coverage_topic","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"check_pine_feature","description":"Answer \"does PineForge support X?\" for a specific Pine v6 identifier or namespace (e.g. 'ta.supertrend', 'alert', 'array.new', 'request.security'). Use it (a) BEFORE relying on any function you are unsure about while writing a strategy, and (b) to DIAGNOSE a backtest that compiled but behaved wrong or empty — visual & alert APIs (plot, label, line, box, table, alert) are parsed-and-skipped and produce NO effect. Resolves by exact feature match, then longest namespace prefix, then alias, and retu","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["feature"],"properties":{"feature":{"type":"string"}},"additionalProperties":false},"logicalName":"check_pine_feature","displayName":"check_pine_feature","title":"check_pine_feature","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=PineForge&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AucGluZWZvcmdlLmRldi9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22PineForge%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.pineforge.dev%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22PineForge%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.pineforge.dev%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=PineForge&connectorUrl=https%3A%2F%2Fmcp.pineforge.dev%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"PineForge\" --url \"https://mcp.pineforge.dev/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/pineforge-mcp-e96e4e8ce8","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/pineforge-mcp-e96e4e8ce8/tools/{tool}","mcpServerUrl":"https://mcp.pineforge.dev/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/pineforge-mcp-e96e4e8ce8?live=1"}