# pixi.stats

Everything the panel's Statistics tab shows, in one call. frame: FPS, frame time avg/max, draw calls avg/last, renderer type, resolution, ticker, plus the FULL 300-sample histories (window says how many the ring holds, samples how many are filled) — and visible/hooked/glHooked/foreignHook, which say WHY a counter is null (a hidden tab renders no frames; foreignHook means an older extension build instrumented this renderer and the page needs a reload; Phaser has no draw-call instrumentation). scene: node census (containers/leaves, counts by type) and the cost drivers — nodes with filters, masks or cacheAsTexture, distinct texture sources against the GPU's MAX_TEXTURE_IMAGE_UNITS, textures over 4096 px, blend modes, interactive nodes, approximate texture memory (w*h*4) and the texture GC settings (whose unit matters: v8 counts ms, v6/v7 counts FRAMES). page: TTFB/FCP/LCP, requests and bytes by initiator type, JS heap (runtime.heap, Chrome-only, page-wide — not GPU memory) with its own runtime.heapHistoryMB ring sampled every 250 ms (sampling starts on the first page read and stops after 5 min without one, so a call after a pause returns a short history), long tasks, INP, CLS, GPU strings and WebGL limits, hardwareConcurrency/deviceMemory. Long tasks, INP and CLS are counted SINCE OBSERVATION STARTED, reported as observedForMs — not for the whole session. Pass sections to skip work: the scene census walks the whole tree.

Agent View of the PolicyLayer registry record for `pixi.stats`. HTML page: https://policylayer.com/tools/pixi-inspector-mcp/pixi.stats

## Facts

- Tool: `pixi.stats`
- Server: Pixi Inspector (`pixi-inspector-mcp`) — https://policylayer.com/tools/pixi-inspector-mcp.md
- Install: `npx -y pixi-inspector-mcp`
- Homepage: https://www.npmjs.com/package/pixi-inspector-mcp
- Risk category: Execute (High risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 4
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `tabId` | integer | no | Legacy: a bare tab id, resolved inside the browser this session is already working with. Prefer `target`, which is unambiguous across browsers. |
| `target` | string | no | Drive a specific tab: a target id like "b7a3c1#487" from status/use_target/CHOOSE_TARGET. Omit to use this session's chosen tab (or the only available one). Pas |
| `frameId` | integer | no | Escape hatch: drive a specific FRAME of the tab (0 is the top frame). Normally unnecessary — the extension picks the frame running the game (canvas owner first, |
| `sections` | array | no | Which sections to collect. Omit for all three. Use ["frame"] when polling, so the scene walk is skipped. |

Parameters from the server's own tool schema.

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

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

## Why pixi.stats is rated High

pixi.stats triggers real processes with real consequences. An agent gone sideways doesn't fire it once. It starts dozens of builds, sends mass notifications, or burns through compute before anyone looks up.

Risk signals: Bulk/mass operation — affects multiple targets

## Use case

AI agents invoke pixi.stats to trigger actions in Pixi Inspector. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## Recommended policy (PolicyLayer)

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

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "pixi.stats": {
      "limits": [
        {
          "counter": "pixi.stats_rate",
          "window": "minute",
          "max": 10,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Pixi Inspector (62)

- `cdp.console.start` — Destructive — https://policylayer.com/tools/pixi-inspector-mcp/cdp.console.start.md
- `cdp.emulate.cpu` — Destructive — https://policylayer.com/tools/pixi-inspector-mcp/cdp.emulate.cpu.md
- `cdp.emulate.device` — Destructive — https://policylayer.com/tools/pixi-inspector-mcp/cdp.emulate.device.md
- `cdp.emulate.network` — Destructive — https://policylayer.com/tools/pixi-inspector-mcp/cdp.emulate.network.md
- `cdp.emulate.touch` — Destructive — https://policylayer.com/tools/pixi-inspector-mcp/cdp.emulate.touch.md
- `cdp.network.start` — Destructive — https://policylayer.com/tools/pixi-inspector-mcp/cdp.network.start.md
- `cdp.network.stop` — Destructive — https://policylayer.com/tools/pixi-inspector-mcp/cdp.network.stop.md
- `cdp.performance.trace.start` — Destructive — https://policylayer.com/tools/pixi-inspector-mcp/cdp.performance.trace.start.md
- `ext.logs` — Destructive — https://policylayer.com/tools/pixi-inspector-mcp/ext.logs.md
- `pixi.tree.highlight` — Destructive — https://policylayer.com/tools/pixi-inspector-mcp/pixi.tree.highlight.md
- `use_target` — Destructive — https://policylayer.com/tools/pixi-inspector-mcp/use-target.md
- `cdp.console.list` — Execute — https://policylayer.com/tools/pixi-inspector-mcp/cdp.console.list.md
- `cdp.network.list` — Execute — https://policylayer.com/tools/pixi-inspector-mcp/cdp.network.list.md
- `browser.eval` — Other — https://policylayer.com/tools/pixi-inspector-mcp/browser.eval.md
- `browser.navigate` — Other — https://policylayer.com/tools/pixi-inspector-mcp/browser.navigate.md
- `browser.reload` — Other — https://policylayer.com/tools/pixi-inspector-mcp/browser.reload.md
- `browser.screenshot` — Other — https://policylayer.com/tools/pixi-inspector-mcp/browser.screenshot.md
- `cdp.console.stop` — Other — https://policylayer.com/tools/pixi-inspector-mcp/cdp.console.stop.md
- `cdp.dom.getAttributes` — Other — https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.getattributes.md
- `cdp.dom.getBoxModel` — Other — https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.getboxmodel.md
- `cdp.dom.query` — Other — https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.query.md
- `cdp.dom.removeNode` — Other — https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.removenode.md
- `cdp.dom.setAttribute` — Other — https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.setattribute.md
- `cdp.dom.setOuterHTML` — Other — https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.setouterhtml.md
- `cdp.dom.snapshot` — Other — https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.snapshot.md
- `cdp.emulate.clear` — Other — https://policylayer.com/tools/pixi-inspector-mcp/cdp.emulate.clear.md
- `cdp.input.click` — Other — https://policylayer.com/tools/pixi-inspector-mcp/cdp.input.click.md
- `cdp.input.key` — Other — https://policylayer.com/tools/pixi-inspector-mcp/cdp.input.key.md
- `cdp.input.move` — Other — https://policylayer.com/tools/pixi-inspector-mcp/cdp.input.move.md
- `cdp.input.scroll` — Other — https://policylayer.com/tools/pixi-inspector-mcp/cdp.input.scroll.md
- …and 32 more: https://policylayer.com/tools/pixi-inspector-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=pixi-inspector-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/pixi-inspector-mcp
