# Pixi Inspector MCP server

Agent View of the PolicyLayer registry record for Pixi Inspector: identity, probed posture, risk grade, and all 63 tools classified. HTML page: https://policylayer.com/tools/pixi-inspector-mcp

## Facts

- Server id: `pixi-inspector-mcp`
- Install: `npx -y pixi-inspector-mcp`
- Homepage: https://www.npmjs.com/package/pixi-inspector-mcp
- Registry record: grade F, identity unverified
- Lifecycle: active
- Rate-limited: no
- Tools: 63 (62 with introspected schema)
- Tool categories present: Destructive, Execute, Other, Read, Write
- Context-window cost: 19694 tokens per request — https://policylayer.com/token-cost/pixi-inspector-mcp
- Tags: pixi inspector mcp, admin, automation
- Record last modified: 2026-10-11T03:43:54.747Z

## Tools (63)

| Tool | Category | Risk | Record |
| --- | --- | --- | --- |
| `cdp.console.start` | Destructive | Critical | https://policylayer.com/tools/pixi-inspector-mcp/cdp.console.start.md |
| `cdp.emulate.cpu` | Destructive | Critical | https://policylayer.com/tools/pixi-inspector-mcp/cdp.emulate.cpu.md |
| `cdp.emulate.device` | Destructive | Critical | https://policylayer.com/tools/pixi-inspector-mcp/cdp.emulate.device.md |
| `cdp.emulate.network` | Destructive | Critical | https://policylayer.com/tools/pixi-inspector-mcp/cdp.emulate.network.md |
| `cdp.emulate.touch` | Destructive | Critical | https://policylayer.com/tools/pixi-inspector-mcp/cdp.emulate.touch.md |
| `cdp.network.start` | Destructive | Critical | https://policylayer.com/tools/pixi-inspector-mcp/cdp.network.start.md |
| `cdp.network.stop` | Destructive | Critical | https://policylayer.com/tools/pixi-inspector-mcp/cdp.network.stop.md |
| `cdp.performance.trace.start` | Destructive | Critical | https://policylayer.com/tools/pixi-inspector-mcp/cdp.performance.trace.start.md |
| `ext.logs` | Destructive | Critical | https://policylayer.com/tools/pixi-inspector-mcp/ext.logs.md |
| `pixi.tree.highlight` | Destructive | Critical | https://policylayer.com/tools/pixi-inspector-mcp/pixi.tree.highlight.md |
| `use_target` | Destructive | Critical | https://policylayer.com/tools/pixi-inspector-mcp/use-target.md |
| `cdp.console.list` | Execute | High | https://policylayer.com/tools/pixi-inspector-mcp/cdp.console.list.md |
| `cdp.network.list` | Execute | High | https://policylayer.com/tools/pixi-inspector-mcp/cdp.network.list.md |
| `pixi.stats` | Execute | High | https://policylayer.com/tools/pixi-inspector-mcp/pixi.stats.md |
| `browser.eval` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/browser.eval.md |
| `browser.navigate` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/browser.navigate.md |
| `browser.reload` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/browser.reload.md |
| `browser.screenshot` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/browser.screenshot.md |
| `cdp.console.stop` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.console.stop.md |
| `cdp.dom.getAttributes` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.getattributes.md |
| `cdp.dom.getBoxModel` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.getboxmodel.md |
| `cdp.dom.query` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.query.md |
| `cdp.dom.removeNode` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.removenode.md |
| `cdp.dom.setAttribute` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.setattribute.md |
| `cdp.dom.setOuterHTML` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.setouterhtml.md |
| `cdp.dom.snapshot` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.dom.snapshot.md |
| `cdp.emulate.clear` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.emulate.clear.md |
| `cdp.input.click` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.input.click.md |
| `cdp.input.key` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.input.key.md |
| `cdp.input.move` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.input.move.md |
| `cdp.input.scroll` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.input.scroll.md |
| `cdp.input.type` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.input.type.md |
| `cdp.network.get` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.network.get.md |
| `cdp.performance.metrics` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/cdp.performance.metrics.md |
| `ext.info` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/ext.info.md |
| `ext.reload` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/ext.reload.md |
| `ext.storage.remove` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/ext.storage.remove.md |
| `ext.storage.set` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/ext.storage.set.md |
| `ext.targets` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/ext.targets.md |
| `pixi.app.renderStats` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/pixi.app.renderstats.md |
| `pixi.app.stats` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/pixi.app.stats.md |
| `pixi.node.getProperties` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/pixi.node.getproperties.md |
| `pixi.tree.export` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/pixi.tree.export.md |
| `pixi.tree.getNode` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/pixi.tree.getnode.md |
| `pixi.tree.getTree` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/pixi.tree.gettree.md |
| `pixi.tree.select` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/pixi.tree.select.md |
| `spine.changeSkeleton` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/spine.changeskeleton.md |
| `spine.getInfo` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/spine.getinfo.md |
| `spine.listAnimations` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/spine.listanimations.md |
| `spine.listSkins` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/spine.listskins.md |
| `spine.setAnimation` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/spine.setanimation.md |
| `spine.setEmpty` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/spine.setempty.md |
| `spine.setSkin` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/spine.setskin.md |
| `sprite.getInfo` | Other | Low | https://policylayer.com/tools/pixi-inspector-mcp/sprite.getinfo.md |
| `browser.targets` | Read | Low | https://policylayer.com/tools/pixi-inspector-mcp/browser.targets.md |
| `ext.storage.get` | Read | Low | https://policylayer.com/tools/pixi-inspector-mcp/ext.storage.get.md |
| `pixi.app.textures` | Read | Low | https://policylayer.com/tools/pixi-inspector-mcp/pixi.app.textures.md |
| `pixi.node.setProperty` | Read | Low | https://policylayer.com/tools/pixi-inspector-mcp/pixi.node.setproperty.md |
| `spine.list` | Read | Low | https://policylayer.com/tools/pixi-inspector-mcp/spine.list.md |
| `status` | Read | Low | https://policylayer.com/tools/pixi-inspector-mcp/status.md |
| `cdp.performance.trace.stop` | Write | Medium | https://policylayer.com/tools/pixi-inspector-mcp/cdp.performance.trace.stop.md |
| `spine.setAutoUpdate` | Write | Medium | https://policylayer.com/tools/pixi-inspector-mcp/spine.setautoupdate.md |
| `spine.setToSetupPose` | Write | Medium | https://policylayer.com/tools/pixi-inspector-mcp/spine.settosetuppose.md |

## Tool descriptions

- `cdp.console.start` — Attaches the debugger (held) and enables Runtime + Log capture (console.* calls, browser log entries, and uncaught exceptions) into a bounded ring buffer. Idempotent. Auto-stops after ~5 min idle. Held sessions belong to ONE tab: while a…
- `cdp.emulate.cpu` — Emulation.setCPUThrottlingRate (1 = no throttle, 4 = 4× slowdown). HELD override: the attach banner stays until cdp.emulate.clear. Auto-cleared on detach / idle / connector-off so the page is never left stuck. Held sessions end when the …
- `cdp.emulate.device` — Emulation.setDeviceMetricsOverride (resizes the viewport). HELD override: the attach banner stays until cdp.emulate.clear. Auto-cleared on detach / idle / connector-off so the page is never left stuck. Held sessions end when the hub says…
- `cdp.emulate.network` — Network.emulateNetworkConditions (enables the Network domain if no capture session already has; outlives cdp.network.stop). HELD override: the attach banner stays until cdp.emulate.clear. Auto-cleared on detach / idle / connector-off so …
- `cdp.emulate.touch` — Emulation.setTouchEmulationEnabled. HELD override: the attach banner stays until cdp.emulate.clear. Auto-cleared on detach / idle / connector-off so the page is never left stuck. Held sessions end when the hub says bye, or 10 s after the…
- `cdp.network.start` — Attaches the debugger (held) and enables Network domain capture into a bounded ring buffer. Idempotent. The attach banner stays until cdp.network.stop. Auto-stops after ~5 min idle. Held sessions belong to ONE tab: while a capture/trace/…
- `cdp.network.stop` — Stops Network capture and releases the session hold (detaches the debugger if it was the last holder — banner disappears). Active cdp.emulate.network throttling stays in effect until cdp.emulate.clear. Acts only on the session of the tab…
- `cdp.performance.trace.start` — Starts a HELD, time-boxed Chrome tracing session (Tracing.start). The attach banner stays until cdp.performance.trace.stop or the maxDurationMs cap auto-ends it. Raw events buffer in the service worker — pick up the result with cdp.perfo…
- `ext.logs` — OWNER-ONLY. Returns recent service-worker console output from a bounded in-memory ring buffer (drop-oldest). UNAUTHORIZED unless that browser is paired. Runs in one browser: target picks it (does not pin), else the chosen tab's browser.
- `pixi.tree.highlight` — Highlights a node on the canvas. Pass id=null to clear the highlight. Draws nothing while the user has the overlay switched off in the panel (the eye button above the tree).
- `use_target` — Pins the tab every later page/browser/cdp call in THIS session acts on, and remembers it until the tab goes away or you change it. Call this after a CHOOSE_TARGET error: show the listed candidates to the user, ask which one, then pass it…
- `cdp.console.list` — Returns buffered console/log/exception entries with level + text + bounded arg previews. Fails with CDP_NO_SESSION if cdp.console.start was not called. Acts only on the session of the tab this call resolves to; a session held by another …
- `cdp.network.list` — Returns buffered network requests (correlated across CDP events). Bodies are NOT included here — use cdp.network.get. Fails with CDP_NO_SESSION if cdp.network.start was not called. Acts only on the session of the tab this call resolves t…
- `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 a…
- `browser.eval` — Evaluates a JavaScript expression in the inspected page (MAIN world) and returns the JSON-serialisable result. An expression that yields nothing returns null; one that throws, or yields a value that cannot be serialised (a DOM node, a fu…
- `browser.navigate` — Navigates the target tab — the ticked tab this call resolves to, never whichever tab has focus — to a URL. Like browser.reload, it also runs on a ticked tab whose page agent is silent (status silentTargets).
- `browser.reload` — Reloads the target tab — the ticked tab this call resolves to, never whichever tab has focus. The target survives the reload. Needs no page agent: pass a target from status silentTargets to recover a ticked tab whose agent is silent.
- `browser.screenshot` — Captures the target tab (never another tab) and returns the PNG as an image part, plus a JSON text part with the capture metadata. When the target is the active tab of its window — focused or not — the image is that window's visible area…
- `cdp.console.stop` — Disables Runtime/Log capture and releases the session hold (detaches the debugger if it was the last holder). Acts only on the session of the tab this call resolves to; a session held by another tab answers CDP_NO_SESSION naming that tab…
- `cdp.dom.getAttributes` — Returns a node's attributes as an object. Target by nodeId (valid only within the current attach) OR by a fresh selector (resolved in the same attach — robust across one-shot calls).
- `cdp.dom.getBoxModel` — Returns the box model for a node. Target by nodeId (valid only within the current attach) OR by a fresh selector (resolved in the same attach — robust across one-shot calls).
- `cdp.dom.query` — Resolves a CSS selector to nodeId(s) (DOM.querySelector / querySelectorAll). Single match also returns nodeName + attributes; all returns up to 200 nodeIds with a truncated flag. No match → BAD_PARAMS (single).
- `cdp.dom.removeNode` — DESTRUCTIVE: removes a node from the live page (DOM.removeNode). No confirmation prompt. Target by nodeId (valid only within the current attach) OR by a fresh selector (resolved in the same attach — robust across one-shot calls).
- `cdp.dom.setAttribute` — DESTRUCTIVE: mutates the live page (DOM.setAttributeValue). No confirmation prompt — the caller owns intent. Target by nodeId (valid only within the current attach) OR by a fresh selector (resolved in the same attach — robust across one-…
- `cdp.dom.setOuterHTML` — DESTRUCTIVE: replaces a node's outer HTML (DOM.setOuterHTML, capped at 1 MB). No confirmation prompt. Target by nodeId (valid only within the current attach) OR by a fresh selector (resolved in the same attach — robust across one-shot ca…
- `cdp.dom.snapshot` — Attaches the Chrome debugger to the inspected tab, captures a bounded DOM document tree via the DevTools Protocol (DOM.getDocument), then detaches immediately (reuses an active capture session's attachment if one is held). Returns a comp…
- `cdp.emulate.clear` — Clears EVERY active override (device / touch / cpu / network) and releases the hold (detaches if last holder), fully restoring the page. Acts only on the session of the tab this call resolves to; a session held by another tab answers CDP…
- `cdp.input.click` — One-shot synthesized click (mousePressed + mouseReleased) at (x, y). Coordinates are CSS pixels in the page viewport (0,0 = top-left). Has visible page side effects.
- `cdp.input.key` — One-shot key press (keyDown + keyUp) via Input.dispatchKeyEvent. For functional keys (e.g. "Enter", "Tab") also pass code / windowsVirtualKeyCode for reliable delivery.
- `cdp.input.move` — One-shot mouseMoved to (x, y). Coordinates are CSS pixels in the page viewport (0,0 = top-left).
- `cdp.input.scroll` — One-shot mouseWheel at (x, y) by (deltaX, deltaY). CSS pixels in the page viewport (0,0 = top-left).
- `cdp.input.type` — One-shot Input.insertText: inserts text into the currently focused element. Has visible page side effects.
- `cdp.network.get` — Returns the full record for a requestId plus, on demand, the response body (bounded) via Network.getResponseBody. Requires an active capture (CDP_NO_SESSION otherwise). Acts only on the session of the tab this call resolves to; a session…
- `cdp.performance.metrics` — One-shot Performance.getMetrics: returns lightweight runtime counters (JSHeapUsedSize, Nodes, Documents, LayoutCount, RecalcStyleCount, TaskDuration, ...). No tracing, no page side effects; attaches and detaches immediately (reuses a hel…
- `ext.info` — OWNER-ONLY. Returns the extension's id, name, version, manifest version, permissions, host permissions, and registered content scripts. UNAUTHORIZED unless that browser is paired. Runs in one browser: target picks it (does not pin), else…
- `ext.reload` — OWNER-ONLY, DESTRUCTIVE. Calls chrome.runtime.reload(). This DROPS the WebSocket — the client must reconnect afterwards. The ack is returned before the reload fires. UNAUTHORIZED unless that browser is paired. Runs in one browser: target…
- `ext.storage.remove` — OWNER-ONLY, DESTRUCTIVE. Removes keys from chrome.storage. In the local area, keys of the mcp* / pixiMcp* families (the extension's own control state: tab allowlist, connector switch, pairing token, instance id and label) are refused wit…
- `ext.storage.set` — OWNER-ONLY, DESTRUCTIVE. Writes key/value pairs into chrome.storage. No confirmation prompt. In the local area, keys of the mcp* / pixiMcp* families (the extension's own control state: tab allowlist, connector switch, pairing token, inst…
- `ext.targets` — OWNER-ONLY. chrome.debugger.getTargets() filtered to THIS extension (service worker / extension pages) with type/url/attached. UNAUTHORIZED unless that browser is paired. Runs in one browser: target picks it (does not pin), else the chos…
- `pixi.app.renderStats` — Render-loop counters sampled by hooking the renderer (rolling average over the last frames): draw calls, render time, measured FPS, container/leaf counts. The first call installs the hook — call again after a few frames for populated sam…
- `pixi.app.stats` — Engine diagnostics: engine (PIXI|PHASER), pixiVersion, rendererType (webgl/webgpu/canvas), resolution, screen size, FPS, frame time, average draw calls per frame, and node count. Phaser fills only what it exposes.
- `pixi.node.getProperties` — Returns the editable transform/visibility/text properties of a node.
- `pixi.tree.export` — Exports the scene graph to bounded, cycle-safe JSON (id/type/name/childCount, plus optional shallow props). Same lazy philosophy as getTree — depth is hard-capped at 8 (BAD_PARAMS beyond), node count capped by limit (default 5000, max 20…
- `pixi.tree.getNode` — Returns one node's summary plus a shallow skeleton of its direct children.
- `pixi.tree.getTree` — Returns a SHALLOW scene-graph skeleton ({id,type,name,childCount}) from the root to a bounded depth (default 1, hard-capped server-side). Expand lazily with pixi.tree.getNode. Never returns the full tree at once.
- `pixi.tree.select` — Selects the node (sets window.$pixi) and draws the selection overlay on the canvas. The user can silence that overlay from the panel (the eye button above the tree); selection itself still works, nothing is painted.
- `spine.changeSkeleton` — Swaps the Spine's skeleton for another scanned skeleton by id/name. Only skeletons of the same Spine runtime (4.1 / 4.2 / 4.3) as this Spine apply; one of another runtime fails BAD_PARAMS and the Spine is left as it was.
- `spine.getInfo` — Returns a Spine's animations, skins, active skin, and per-track playback state.
- `spine.listAnimations` — Returns the animation names available on a Spine skeleton.
- `spine.listSkins` — Returns the skin names available on a Spine skeleton.
- `spine.setAnimation` — Plays an animation on a track (live effect on the canvas).
- `spine.setEmpty` — Replaces the Spine with an empty skeleton (clears all visuals).
- `spine.setSkin` — Switches the active skin and resets slots to setup pose.
- `sprite.getInfo` — Returns the current texture key and the available texture inventory (key + dimensions) for a sprite node.
- `browser.targets` — Lists the tabs of ONE browser that currently have a live page agent — each as { tabId, url, title, engine, active, lastSeen, enabled }; enabled: true means the user ticked 'Use this tab for MCP' on it. This is a per-browser diagnostic: p…
- `ext.storage.get` — OWNER-ONLY. Reads chrome.storage (bounded; sensitive values such as the pairing token are REDACTED to a length placeholder). UNAUTHORIZED unless that browser is paired. Runs in one browser: target picks it (does not pin), else the chosen…
- `pixi.app.textures` — Lists cached textures ({ id, label, width, height, approxBytes }) plus totals { count, approxTextureMemoryMB }. Memory is an estimate (w*h*4, deduplicated per source) — not exact GPU usage.
- `pixi.node.setProperty` — Sets a single editable property on a node (e.g. x, alpha, visible). The value must have the property's type (as pixi.node.getProperties returns it): a read-only key (e.g. classesList) or a wrongly-typed value fails with BAD_PARAMS and a …
- `spine.list` — Lists every Spine instance in the scene: { id, name, visible, autoUpdate }.
- `status` — Reports whether this session can drive a game right now, and what to do if not. Distinguishes the three states that matter: the hub process (always up if this answers), extensionConnected (a browser attached to it), and tabsAvailable (ta…
- `cdp.performance.trace.stop` — Ends the held tracing session, writes the FULL raw trace JSON to a temp file (loadable in perfetto / chrome://tracing) and returns ONLY its path plus a bounded summary { durationMs, totalEvents, eventsByCategory, topLongTasks }. duration…
- `spine.setAutoUpdate` — Enables/disables automatic per-frame updates of the Spine.
- `spine.setToSetupPose` — Clears all tracks and resets the skeleton to its setup pose.

## Related servers

- UnClick (1662 tools) — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server.md
- Apibase (1384 tools) — https://policylayer.com/tools/io-github-whiteknightonhorse-apibase.md
- Delx Mcp A2a (1068 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a.md
- MCP Framework Personal (912 tools) — https://policylayer.com/tools/inggerman-mcps.md
- Hermoso (896 tools) — https://policylayer.com/tools/hermoso.md
- Nodebench (824 tools) — https://policylayer.com/tools/io-github-homenshum-nodebench.md
- Altium-MCP-Suite (817 tools) — https://policylayer.com/tools/altium-mcp-suite.md
- Eda Agent (777 tools) — https://policylayer.com/tools/eda-agent.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 · Recommended policies for every tool: https://policylayer.com/policies/pixi-inspector-mcp
