---
name: pineforge
description: Connect to PineForge over MCP, check Pine Script coverage, run crypto backtests, and compare TradingView trades.
---

# Use PineForge over MCP

# PineForge MCP server

PineForge is a free, keyless MCP server for backtesting Pine Script v6 strategies on crypto market data and comparing their trades with a TradingView export. No API key or account is needed. Connect to https://mcp-release-test.pineforge.dev/mcp using MCP Streamable HTTP.

## Connect PineForge to Claude or Cursor

For Claude Code, run this one line:

```
claude mcp add --transport http pineforge https://mcp-release-test.pineforge.dev/mcp
```

For Cursor, add this to `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global):

```json
{
  "mcpServers": {
    "pineforge": {
      "url": "https://mcp-release-test.pineforge.dev/mcp"
    }
  }
}
```

Any MCP client with Streamable HTTP support uses this same URL.

## Transport

MCP Streamable HTTP, stateless: POST one JSON-RPC 2.0 message per HTTP request to https://mcp-release-test.pineforge.dev/mcp with `Content-Type: application/json` and `Accept: application/json, text/event-stream`. A request gets one `application/json` response; a notification gets `202 Accepted` with no body. The server does not open a standalone SSE stream; GET /mcp with `Accept: text/event-stream` returns 405. Do not use a legacy SSE transport or send JSON-RPC batches.

## Tools

- `backtest_pine`: Backtest a Pine strategy
- `check_tradingview_parity`: Check TradingView parity
- `fetch_ohlcv`: Fetch OHLCV bars
- `binance_symbols`: List venue symbols
- `list_engine_params`: List engine parameters
- `engine_info`: Get engine info
- `join_waitlist`: Join the waitlist
- `check_quota`: Check the weekly quota
- `latest_news`: Get PineForge news
- `list_coverage_topics`: List Pine coverage topics
- `get_coverage_topic`: Get a Pine coverage topic
- `check_pine_feature`: Check a Pine feature

fetch_ohlcv venue policy — derived returns data availability only (bar counts and time ranges), no prices or volumes: binance_spot, binance_usdt_perp, bybit_spot, bybit_usdt_perp, okx_spot, okx_usdt_perp, coinbase_spot. Derived requests ignore limit and use outward-aligned UTC day windows for intervals < 1d and UTC month windows for intervals >= 1d, clamped to the history window and ending no later than the start of the current incomplete UTC day/month. No venues return raw CSV. This policy applies only to fetch_ohlcv.

## Free use

- 100 metered calls per week per IP address, counted for `backtest_pine` and `check_tradingview_parity` together; every other tool is free. IPv6 callers on one /64 share the quota. `check_quota` reports the UTC week, remaining calls, and reset time. Exhaustion returns HTTP 429 with `Retry-After`.
- Crypto OHLCV for the last 365 days from 7 venues: `binance_spot`, `binance_usdt_perp`, `bybit_spot`, `bybit_usdt_perp`, `okx_spot`, `okx_usdt_perp`, `coinbase_spot`.
- Historical backtests are measurements, not predictions or financial advice. Feature support is not universal: check `list_coverage_topics` and `check_pine_feature` before running a strategy. A parity check compares your own TradingView export; it does not promise identical results for every strategy.
- `join_waitlist` sends a confirmation link; the address joins only after confirmation. Fair-use limits apply. Call it only when the user asks to join, with their permission to use that address. The weekly quota does not guarantee availability; compute can pause at the service's budget limit.

## Links

- Landing and setup: https://mcp-release-test.pineforge.dev/
- Usage skill: https://mcp-release-test.pineforge.dev/.well-known/agent-skills/pineforge/SKILL.md
- API catalog: https://mcp-release-test.pineforge.dev/.well-known/api-catalog
- Server card: https://mcp-release-test.pineforge.dev/.well-known/mcp/server-card.json
- AI catalog: https://mcp-release-test.pineforge.dev/.well-known/ai-catalog.json
- Setup guide: https://pineforge.dev/en/ai/
- llms.txt: https://mcp-release-test.pineforge.dev/llms.txt (this server) and https://pineforge.dev/llms.txt (PineForge)

## Workflow

1. Initialize the MCP connection, then send `notifications/initialized` and `tools/list`. Read each tool's input schema and annotations; the runtime list is authoritative.
2. Call `check_quota`, `engine_info`, and `list_coverage_topics`. Use `get_coverage_topic` or `check_pine_feature` for features in the user's script. These calls do not consume weekly quota.
3. Use `binance_symbols` with a supported venue to find the native symbol, then `fetch_ohlcv` to inspect the requested range. Supply symbol, interval, and timestamps as the tool schema requires. Do not supply your own OHLCV, filesystem paths, or engine image.
4. For a backtest, call `backtest_pine` with the user's Pine Script source and one configuration. Use `list_engine_params` to discover supported inputs, strategy overrides, and runtime options. At most 50000 output bars are allowed. Keep the source unchanged when only adjusting parameters. Each call consumes quota, including unsuccessful runs after admission; get the user's agreement before spending it on repeated trials.
5. For a parity check, call `check_tradingview_parity` with the same script, settings, range, and the user's TradingView List of trades export. A range outside the allowed history or in the future is refused, not silently changed. Backtests can clamp an old start; report their returned warnings and effective range.
6. Read the result's errors, warnings, and data window before interpreting returns. Follow `report_url` when the full report is offloaded. Do not treat historical results as future returns or claim full Pine Script coverage. On a 429, respect `Retry-After`; do not evade quota by rotating IPs. On a budget or data-availability error, explain it rather than retrying indefinitely.
