---
title: "Tool reference"
description: "Every ShotOps MCP tool, grouped by what it gets you. Names, input and result shapes are generated from the 16 tools the server registers."
canonical: "https://shotops.dev/docs/mcp/reference"
last_updated: "2026-09-07"
shotops_mcp_version: "0.9.6"
result_contract_version: "2.0.0"
---
# Tool reference

Every ShotOps MCP tool, grouped by what it gets you. Names, input and result shapes are generated from the 16 tools the server registers.

## How to read a tool page

Every page below is generated from the 16 tools the ShotOps MCP server registers. The input and result shapes are the ones a client is sent on `tools/list`, not a description of them, so they cannot drift from what the server accepts. The outcome, the example, the gates and the failure guidance are written by hand.

Both execution doors register the same tools. Where a tool behaves differently on [your own machine](https://shotops.dev/docs/mcp/your-computer) than it does on [ShotOps Cloud](https://shotops.dev/docs/mcp/shotops-cloud), its page says so under Access and cost. What separates a preview from store-ready output is explained once, in [Plans and output](https://shotops.dev/docs/mcp/plans-and-output).

## Make the store screenshots

The three calls that produce pixels or a file the user can upload.

- [`render_strip`](https://shotops.dev/docs/mcp/reference/render_strip)Raw app screenshots in, finished App Store panels out — the call that produces the pixels.
  - Writes
  - No account needed
- [`emit_bundle`](https://shotops.dev/docs/mcp/reference/emit_bundle)The uploadable file: a fastlane deliver-ready zip of the finished screenshots.
  - Writes
  - Destructive
- [`render_project`](https://shotops.dev/docs/mcp/reference/render_project)Re-render a saved project — the route that needs nothing attached to the conversation.
  - Writes

## Decide how it looks

The styling catalog, and the saved look a designer already approved.

- [`read_look`](https://shotops.dev/docs/mcp/reference/read_look)The styling a human already approved on a project, with its full version history.
  - Read-only
- [`save_look`](https://shotops.dev/docs/mcp/reference/save_look)Persist a composed look on a project as a new version, so the next strip starts there.
  - Writes
- [`hold_look`](https://shotops.dev/docs/mcp/reference/hold_look)Pin one saved look version as the project default, so a designer can keep experimenting.
  - Writes
- [`release_look`](https://shotops.dev/docs/mcp/reference/release_look)Clear the held version so renders follow whatever the designer saved most recently.
  - Writes
- [`describe_look`](https://shotops.dev/docs/mcp/reference/describe_look)The complete styling catalog: five palette presets, three layout templates, every field and default.
  - Read-only

## Keep an editable project

Turn a one-off strip into something that survives the conversation.

- [`save_project`](https://shotops.dev/docs/mcp/reference/save_project)Keep the strip: save it as an editable ShotOps project with a URL to hand back.
  - Writes
  - Destructive
- [`read_project`](https://shotops.dev/docs/mcp/reference/read_project)A project’s full current state — frame order, per-locale caption words, styling.
  - Read-only
- [`refine_project`](https://shotops.dev/docs/mcp/reference/refine_project)Change a saved project in words: one bounded agent turn that commits exactly once.
  - Writes
  - Destructive

## Move screenshots in and out

How pixels reach the server, and how they are removed again.

- [`request_screenshot_upload`](https://shotops.dev/docs/mcp/reference/request_screenshot_upload)Signed upload URLs for screenshots that live only on the user’s machine.
  - Writes
- [`import_screenshot`](https://shotops.dev/docs/mcp/reference/import_screenshot)Turn attachments, URLs or local paths into account-scoped refs the render tools accept.
  - Writes
  - No account needed
- [`delete_assets`](https://shotops.dev/docs/mcp/reference/delete_assets)Delete owned private assets only when no live ShotOps resource depends on them.
  - Writes
  - Destructive

## Know what this connection can do

Ask before a long render, not after a refusal.

- [`account_status`](https://shotops.dev/docs/mcp/reference/account_status)Whether this connection may produce store-ready output — asked before a long render.
  - Read-only
  - No account needed
- [`production_operation`](https://shotops.dev/docs/mcp/reference/production_operation)Reconnect to a paid Hosted render, request cancellation, or collect its finished files.
  - Writes
  - Destructive
