# PineForge MCP server

> Transpiles PineScript v6 to C++ to run deterministic, local backtests against OHLCV data with TradingView parity.

- Repository: https://github.com/pineforge-4pass/pineforge-codegen-mcp
- Page: https://hostedmcp.org/servers/pineforge-4pass/pineforge-codegen-mcp
- Transport: stdio
- Stars: 9
- License: MIT
- Latest version: 0.9.18

## Install

### Claude Code

```sh
claude mcp add pineforge-codegen-mcp -- docker run -i --rm ghcr.io/pineforge-4pass/pineforge-codegen-mcp:v0.9.18
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "pineforge-codegen-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/pineforge-4pass/pineforge-codegen-mcp:v0.9.18"
      ]
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "pineforge-codegen-mcp": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/pineforge-4pass/pineforge-codegen-mcp:v0.9.18"
      ]
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"pineforge-codegen-mcp","type":"stdio","command":"docker","args":["run","-i","--rm","ghcr.io/pineforge-4pass/pineforge-codegen-mcp:v0.9.18"]}'
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "pineforge-codegen-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/pineforge-4pass/pineforge-codegen-mcp:v0.9.18"
      ]
    }
  }
}
```

### Codex

```sh
codex mcp add pineforge-codegen-mcp -- docker run -i --rm ghcr.io/pineforge-4pass/pineforge-codegen-mcp:v0.9.18
```

### Codex config.toml (`~/.codex/config.toml`)

```toml
[mcp_servers.pineforge-codegen-mcp]
command = "docker"
args = ["run", "-i", "--rm", "ghcr.io/pineforge-4pass/pineforge-codegen-mcp:v0.9.18"]
```

### Gemini CLI

```sh
gemini mcp add -s user pineforge-codegen-mcp docker -- run -i --rm ghcr.io/pineforge-4pass/pineforge-codegen-mcp:v0.9.18
```

### Gemini settings.json (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "pineforge-codegen-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/pineforge-4pass/pineforge-codegen-mcp:v0.9.18"
      ]
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `PINEFORGE_ALLOW_ANYWHERE` | no | no |  |

## Tools (11)

- `transpile_pine`
- `list_engine_params`
- `backtest_pine`
- `backtest_pine_grid`
- `check_tradingview_parity`
- `fetch_binance_ohlcv`
- `binance_symbols`
- `list_coverage_topics`
- `check_pine_feature`
- `get_coverage_topic`
- `engine_info`

## FAQ

### Does this require an API key?

No, the server does not require an API key for operation.

### Can I use my own historical data for backtesting?

Yes, you can run backtests against your own OHLCV CSV files by mounting them to the container.

### How does it ensure accuracy compared to TradingView?

It uses a deterministic C++ engine and includes a tool to grade your TradingView Strategy Tester export against PineForge's run, trade by trade.

### What are the system requirements?

The server requires Docker and outbound network access for Binance fetching tools.
