# pine_save

Save the current Pine Script (Ctrl+S)

Agent View of the PolicyLayer registry record for `pine_save`. HTML page: https://policylayer.com/tools/byeung888-tradingview-mcp/pine-save

## Facts

- Tool: `pine_save`
- Server: TradingView MCP Bridge (`byeung888/tradingview-mcp`) — https://policylayer.com/tools/byeung888-tradingview-mcp.md
- Homepage: https://github.com/byeung888/tradingview-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "pine_save",
    "arguments": {}
  }
}
```

## Why pine_save is rated Medium

The tool saves data (a Pine Script file) in a reversible manner. While saving could overwrite existing code, the action itself is not irreversible in the destructive sense—previous versions are typically recoverable through TradingView's undo functionality or version history.

From the tool's own definition: "Tool name is 'pine_save' and description states 'Save the current Pine Script (Ctrl+S)'. This performs a save operation, which modifies the state of the Pine Script file in TradingView."

## Use case

AI agents use pine_save to create or update resources in TradingView MCP Bridge, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your TradingView MCP Bridge environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches TradingView MCP Bridge:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "pine_save": {
      "limits": [
        {
          "counter": "pine_save_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on TradingView MCP Bridge (77)

- `alert_delete` — Destructive — https://policylayer.com/tools/byeung888-tradingview-mcp/alert-delete.md
- `draw_clear` — Destructive — https://policylayer.com/tools/byeung888-tradingview-mcp/draw-clear.md
- `draw_remove_one` — Destructive — https://policylayer.com/tools/byeung888-tradingview-mcp/draw-remove-one.md
- `batch_run` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/batch-run.md
- `chart_scroll_to_date` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/chart-scroll-to-date.md
- `chart_set_visible_range` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/chart-set-visible-range.md
- `layout_switch` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/layout-switch.md
- `pane_focus` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/pane-focus.md
- `pine_check` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/pine-check.md
- `pine_compile` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/pine-compile.md
- `pine_smart_compile` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/pine-smart-compile.md
- `replay_autoplay` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/replay-autoplay.md
- `replay_start` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/replay-start.md
- `replay_step` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/replay-step.md
- `replay_stop` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/replay-stop.md
- `replay_trade` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/replay-trade.md
- `tab_new` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/tab-new.md
- `tab_switch` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/tab-switch.md
- `tv_launch` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/tv-launch.md
- `ui_click` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/ui-click.md
- `ui_evaluate` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/ui-evaluate.md
- `ui_fullscreen` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/ui-fullscreen.md
- `ui_hover` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/ui-hover.md
- `ui_keyboard` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/ui-keyboard.md
- `ui_mouse_click` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/ui-mouse-click.md
- `ui_open_panel` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/ui-open-panel.md
- `ui_scroll` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/ui-scroll.md
- `ui_type_text` — Execute — https://policylayer.com/tools/byeung888-tradingview-mcp/ui-type-text.md
- `alert_list` — Read — https://policylayer.com/tools/byeung888-tradingview-mcp/alert-list.md
- `capture_screenshot` — Read — https://policylayer.com/tools/byeung888-tradingview-mcp/capture-screenshot.md
- …and 47 more: https://policylayer.com/tools/byeung888-tradingview-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=byeung888-tradingview-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/byeung888-tradingview-mcp
