| name | profiler-capture-frame |
| description | Capture the current frame's timing info (delta time, FPS, frame counts, runtime). Snapshot only — historical frames live in Unity's Profiler window. |
Profiler / Capture Frame
Reads UnityEngine.Time fields and returns them in a single struct. This tool is intentionally a single-frame snapshot — Unity's runtime API does not expose historical frame-data outside the Profiler window.
Fields
FrameTimeMs — Time.deltaTime * 1000f.
Fps — 1 / Time.deltaTime (0 when delta is zero).
TotalFrameCount — Time.frameCount (includes skipped renders).
RealtimeSinceStartup — Time.realtimeSinceStartup.
RenderedFrameCount — Time.renderedFrameCount.
Behavior
Uses only built-in Unity APIs (UnityEngine.Time). No external Unity package is required.
How to Call
unity-mcp-cli run-tool profiler-capture-frame --input '{
"nothing": "string_value"
}'
For complex input (multi-line strings, code), save the JSON to a file and use:
unity-mcp-cli run-tool profiler-capture-frame --input-file args.json
Or pipe via stdin (recommended):
unity-mcp-cli run-tool profiler-capture-frame --input-file - <<'EOF'
{"param": "value"}
EOF
Troubleshooting
If unity-mcp-cli is not found, either install it globally (npm install -g unity-mcp-cli) or use npx unity-mcp-cli instead.
Read the /unity-initial-setup skill for detailed installation instructions.
Input
| Name | Type | Required | Description |
|---|
nothing | string | No | |
Input JSON Schema
{
"type": "object",
"properties": {
"nothing": {
"type": "string"
}
}
}
Output
Output JSON Schema
{
"type": "object",
"properties": {
"result": {
"$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Editor.API.Tool_Profiler-FrameCaptureData",
"description": "Single-frame snapshot of timing information from UnityEngine.Time. No historical frame data; use the Profiler window for that."
}
},
"$defs": {
"com.IvanMurzak.Unity.MCP.Editor.API.Tool_Profiler-FrameCaptureData": {
"type": "object",
"properties": {
"FrameTimeMs": {
"type": "number",
"description": "Time.deltaTime in milliseconds at the moment of capture."
},
"Fps": {
"type": "number",
"description": "Frames per second derived from Time.deltaTime."
},
"TotalFrameCount": {
"type": "integer",
"description": "Total frame count since application start (Time.frameCount). May include skipped renders."
},
"RealtimeSinceStartup": {
"type": "number",
"description": "Time.realtimeSinceStartup, in seconds."
},
"RenderedFrameCount": {
"type": "integer",
"description": "Frames actually rendered (Time.renderedFrameCount)."
}
},
"required": [
"FrameTimeMs",
"Fps",
"TotalFrameCount",
"RealtimeSinceStartup",
"RenderedFrameCount"
],
"description": "Single-frame snapshot of timing information from UnityEngine.Time. No historical frame data; use the Profiler window for that."
}
},
"required": [
"result"
]
}