dcc-diagnostics · git:20260422.2082784 · 2026-04-22 · sha256 c2e9bae124642401
dcc-diagnostics git:20260422.2082784A
Immutable. This exact content is served forever at /api/v1/blob/c2e9bae124642401.
---
name: dcc-diagnostics
description: >-
Infrastructure skill — DCC-agnostic observability primitives: capture
screenshots, query audit logs, inspect tool performance metrics, and monitor
process health. Works in any DCC environment (Maya, Blender, Houdini, Unreal,
etc.) or standalone Python. Use for debugging any skill failure or verifying
DCC state. Not for primary task execution — use a domain skill for actual DCC
operations.
license: MIT
metadata:
dcc-mcp.dcc: python
dcc-mcp.version: "1.0.0"
dcc-mcp.layer: infrastructure
dcc-mcp.search-hint: "screenshot, capture, audit log, metrics, performance, process monitor, diagnostics, debug, health check, observability"
dcc-mcp.tags: "diagnostics, observability, screenshot, audit, metrics, debug, infrastructure"
tools:
- name: screenshot
description: "Capture a screenshot of the current display or a specific window. Returns the image as a base64-encoded PNG. Useful for visual debugging — capture what's visible on screen when an error occurs."
input_schema:
type: object
properties:
format:
type: string
description: "Image format: 'png' (default), 'jpeg', or 'raw_bgra'"
default: png
scale:
type: number
description: "Scale factor 0.0-1.0 (default 1.0 = native resolution). Use 0.5 to halve the size."
default: 1.0
jpeg_quality:
type: integer
description: "JPEG quality 0-100 (default 85). Only used when format is 'jpeg'."
default: 85
window_title:
type: string
description: "Capture only the window whose title contains this substring. If omitted, captures the full screen."
save_path:
type: string
description: "If provided, save the image to this file path in addition to returning base64."
timeout_ms:
type: integer
description: "Maximum milliseconds to wait for a frame (default 5000)."
default: 5000
read_only: true
idempotent: false
source_file: scripts/screenshot.py
next-tools:
on-success: []
on-failure: [dcc_diagnostics__audit_log, dcc_diagnostics__process_status]
- name: audit_log
description: "Query the dcc-mcp-core sandbox audit log — list recent action invocations, filter by outcome (success/denied), or search by action name. Helps diagnose why an action was blocked or what the agent did recently."
input_schema:
type: object
properties:
filter:
type: string
description: "Filter entries: 'all' (default), 'success', 'denied', or 'error'"
default: all
action_name:
type: string
description: "Only return entries for this specific action name."
limit:
type: integer
description: "Maximum number of entries to return (default 50)."
default: 50
read_only: true
idempotent: true
source_file: scripts/audit_log.py
next-tools:
on-success: [dcc_diagnostics__tool_metrics]
on-failure: []
- name: tool_metrics
description: "Show performance metrics for registered tools — invocation counts, success rates, average and P95/P99 latencies. Use to identify slow or failing tools."
input_schema:
type: object
properties:
action_name:
type: string
description: "If provided, return metrics only for this tool. Otherwise return all."
sort_by:
type: string
description: "Sort results by: 'name', 'invocations' (default), 'avg_ms', 'p95_ms', or 'failure_rate'"
default: invocations
limit:
type: integer
description: "Maximum number of tools to return (default 20)."
default: 20
read_only: true
idempotent: true
source_file: scripts/tool_metrics.py
next-tools:
on-success: [dcc_diagnostics__process_status]
on-failure: []
- name: process_status
description: "Check the health of tracked DCC processes — list running PIDs, check if a specific process is alive, and inspect crash recovery policy. Use when a DCC tool stops responding."
input_schema:
type: object
properties:
pid:
type: integer
description: "Check status of a specific process ID. If omitted, returns summary of all tracked processes."
read_only: true
idempotent: true
source_file: scripts/process_status.py
next-tools:
on-success: []
on-failure: [dcc_diagnostics__audit_log]
---
# DCC Diagnostics
Cross-DCC observability and debugging tools powered by `dcc-mcp-core`.
All tools work in any DCC environment (Maya, Blender, Houdini, Unreal, 3ds Max)
or standalone Python — no DCC-specific APIs required.
## Tools
### `dcc_diagnostics__screenshot`
Capture the current screen or a specific window as a PNG/JPEG image.
Backed by the `dcc_mcp_core.Capturer` class which uses:
- **Windows**: DXGI Desktop Duplication API (<16ms per frame)
- **Linux**: X11 XShmGetImage
- **Fallback**: Mock synthetic backend (headless/CI)
### `dcc_diagnostics__audit_log`
Query the sandbox audit log from `dcc_mcp_core.SandboxContext`.
Returns recent tool invocations with outcome (success/denied) and timestamps.
### `dcc_diagnostics__tool_metrics`
Inspect per-tool performance counters from `dcc_mcp_core.ToolRecorder`:
invocation count, success rate, average latency, P95/P99 percentiles.
### `dcc_diagnostics__process_status`
Check process health via `dcc_mcp_core.PyProcessMonitor`.
Lists tracked PIDs and their liveness status.
## Usage with any DCC MCP server
```python
import os
os.environ["DCC_MCP_SKILL_PATHS"] = "/path/to/dcc-diagnostics"
from dcc_mcp_maya import start_server # or dcc_mcp_blender, etc.
handle = start_server(port=8765)
# dcc_diagnostics__screenshot is now available as an MCP tool
```