# Results, files and Run Inspector

> Inspect MCP executions, retrieve omitted values by version, open supported Run Inspector results, retain files, and cancel the intended run or relay action.

Source: https://kaitoi.io/docs/core/mcp-results/
Section: Kaitoi Core / MCP
Written for: People inspecting and retaining results from MCP execution.
Last reviewed: 2026-10-24

---

Read the execution you actually started rather than assuming the current
node preview still represents it. Retain its `executionId`, any relay
`actionId`, result version, and the logical submission key.

## Read an omitted value without rerunning


The result tree can include omitted-value markers even when execution succeeded. Use the matching reader with expected_version, path and offset. Follow nextOffset and any nested omission paths. hasMore false ends that selected value, not necessarily the whole result. File retention and temporary download URL expiry differ. The illustration expands local example content only.

The retained image stays visible while the details branch is omitted. Expanding that branch reveals illustrative width, height and caption values from the same result version; it does not generate a new image or execute a run.

*Figure: A bounded response can leave a real value for a later read.*

## Follow durable execution state

Use `get_graph_run_status(execution_id)`, `get_graph_run_result(execution_id)`,
and `get_graph_run_events(execution_id,limit)` for that owned execution.
Events are a bounded newest-event window, not a promise of complete history.
A result can still be pending.

Terminal results can include `version`, `valueTool`, `resultComplete`, and
omission information. Retrieve omitted retained values through
`get_execution_value` with the exact `expected_version`, path and offsets.
Follow nested omission paths and continuation offsets; omitted or redacted
does not mean an output is empty.

## Open displayable outputs

`get_displayable_outputs` accepts the supported execution or node selector
and returns bounded displayable media, text or JSON with output identities
and warnings. Prefer the execution selector when recovering a particular run;
the node's current output may have changed.

Run Inspector can open inline when the host supports MCP Apps and the
deployment has its ready UI bundle. On unsupported or degraded hosts, use
structured outputs. The viewer is an additional presentation layer, not
proof of rerun, permanent storage or a universal client UI feature.

## Distinguish display, retention, and cancellation

**Read:** use executionId and the exact result version, with value readers
for omitted data. **Display:** Run Inspector is conditional; structured outputs
remain the recovery path. **Retain:** copy or download useful files through
the supported surface; signed URL expiry differs from retained-result loss.
Cancel execution and cancel relay action use different IDs and do not undo
completed work. No result, file, or cancellation is requested here.

## Keep files through the right surface

Result retention and signed-media URL expiry are different. Request current
access or use retained value readers while the record exists; an expired URL
does not necessarily mean the retained file is gone. A missing retained result
cannot be repaired by pretending its omitted value was empty.

Attached file retention uses `studio_file_assets_action` operations such as
`copy_to_library`, `add_library_file_to_graph`, or `import_from_url`. Use the
current attachment and expected revision, and inspect separate copy, Library,
graph insertion and adoption receipts. Library IDs, storage filenames and
REST fileIds are not interchangeable. Generic MCP `upload_file(url,extension)`
imports a public URL; it is not the REST upload-session API.

## Stop the intended thing

`cancel_graph_run(execution_id)` can report canceled, requested, already
canceled or already requested. Running work may only accept a cancellation
request; this is not an undo or refund. `cancel_studio_action(action_id)`
targets a relay action instead. Read the final execution state and preserve
usable results before deciding to start again.

For large Studio captures, finish all needed paths/pages through
`get_studio_capture_value` before `release_studio_capture`. A completed page
is not necessarily the complete capture.
