Default model tools

scene_read

Read FX scene source

Reads a saved scene's source verbatim, its revision/hash, settings and version history. Without project_id it reads the caller's own account. Optional revision reads a retained version; restoring means writing that source as a new revision using the current guards. Optional line bounds limit a large read. Edit matching is literal, including whitespace; no regular-expression replacement expansion occurs.

Surface: Default model and app

Product release eb8538f4a297f331d0399351c1e175bffcd212d2
Public contract commit 20688e11af473a363145ed880d5019c90a7ec1e2
Public contract SHA-256 87a94b85a84dc19245fc03f9b544c70d64bd9f5e08585dcccb38157cace5700d
Captured 2026-10-04T11:55:45.577Z. Review or improve this contract on GitHub.

These blocks show the complete MCP descriptors captured from serving Rails. Security schemes and resource URIs can differ by connected host.

Default model descriptor

{
  "name": "scene_read",
  "title": "Read FX scene source",
  "description": "Reads a saved scene's source verbatim, its revision/hash, settings and version history. Without project_id it reads the caller's own account. Optional revision reads a retained version; restoring means writing that source as a new revision using the current guards. Optional line bounds limit a large read. Edit matching is literal, including whitespace; no regular-expression replacement expansion occurs.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "project_id": {
        "type": "string"
      },
      "scene_id": {
        "type": "string"
      },
      "revision": {
        "type": "integer",
        "minimum": 1
      },
      "start_line": {
        "type": "integer",
        "minimum": 1
      },
      "end_line": {
        "type": "integer",
        "minimum": 1
      }
    },
    "required": [
      "scene_id"
    ],
    "additionalProperties": false
  },
  "annotations": {
    "title": "Read FX scene source",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "_meta": {
    "securitySchemes": [
      {
        "type": "noauth"
      }
    ],
    "ui": {
      "visibility": [
        "model",
        "app"
      ]
    },
    "openai/widgetAccessible": true
  }
}

App descriptor

{
  "name": "scene_read",
  "title": "Read FX scene source",
  "description": "Reads a saved scene's source verbatim, its revision/hash, settings and version history. Without project_id it reads the caller's own account. Optional revision reads a retained version; restoring means writing that source as a new revision using the current guards. Optional line bounds limit a large read. Edit matching is literal, including whitespace; no regular-expression replacement expansion occurs.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "project_id": {
        "type": "string"
      },
      "scene_id": {
        "type": "string"
      },
      "revision": {
        "type": "integer",
        "minimum": 1
      },
      "start_line": {
        "type": "integer",
        "minimum": 1
      },
      "end_line": {
        "type": "integer",
        "minimum": 1
      }
    },
    "required": [
      "scene_id"
    ],
    "additionalProperties": false
  },
  "annotations": {
    "title": "Read FX scene source",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "_meta": {
    "securitySchemes": [
      {
        "type": "noauth"
      }
    ],
    "ui": {
      "visibility": [
        "model",
        "app"
      ]
    },
    "openai/widgetAccessible": true
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "scene": {
        "type": "object"
      },
      "source": {
        "type": "string"
      },
      "byte_size": {
        "type": "integer"
      },
      "sha256": {
        "type": "string"
      },
      "history": {
        "type": "array",
        "items": {
          "type": "object"
        }
      },
      "warnings": {
        "type": "array",
        "items": {
          "type": "object"
        }
      },
      "schema": {
        "type": "string",
        "description": "Result schema identifier, bitterclip.scene_read.v1."
      },
      "start_line": {
        "type": "integer",
        "description": "First source line returned (1-based)."
      },
      "end_line": {
        "type": "integer",
        "description": "Last source line returned."
      },
      "total_lines": {
        "type": "integer",
        "description": "Number of lines in the full source."
      },
      "truncated": {
        "type": "boolean",
        "description": "True when the returned source is a line range rather than the whole source."
      },
      "history_truncated": {
        "type": "boolean",
        "description": "True when the scene has more retained versions than the returned history."
      },
      "project_id": {
        "type": "string",
        "description": "Project public ID the scene was read through; absent for an account-level read."
      },
      "blockers": {
        "type": "array",
        "items": {
          "type": "object"
        },
        "description": "Typed blockers; empty when the call succeeded."
      }
    },
    "required": [],
    "additionalProperties": false
  }
}

Live Workspace descriptor

{
  "name": "scene_read",
  "title": "Read FX scene source",
  "description": "Reads a saved scene's source verbatim, its revision/hash, settings and version history. Without project_id it reads the caller's own account. Optional revision reads a retained version; restoring means writing that source as a new revision using the current guards. Optional line bounds limit a large read. Edit matching is literal, including whitespace; no regular-expression replacement expansion occurs.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "project_id": {
        "type": "string"
      },
      "scene_id": {
        "type": "string"
      },
      "revision": {
        "type": "integer",
        "minimum": 1
      },
      "start_line": {
        "type": "integer",
        "minimum": 1
      },
      "end_line": {
        "type": "integer",
        "minimum": 1
      }
    },
    "required": [
      "scene_id"
    ],
    "additionalProperties": false
  },
  "annotations": {
    "title": "Read FX scene source",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "_meta": {
    "securitySchemes": [
      {
        "type": "noauth"
      }
    ],
    "ui": {
      "visibility": [
        "model",
        "app"
      ]
    },
    "openai/widgetAccessible": true
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "scene": {
        "type": "object"
      },
      "source": {
        "type": "string"
      },
      "byte_size": {
        "type": "integer"
      },
      "sha256": {
        "type": "string"
      },
      "history": {
        "type": "array",
        "items": {
          "type": "object"
        }
      },
      "warnings": {
        "type": "array",
        "items": {
          "type": "object"
        }
      },
      "schema": {
        "type": "string",
        "description": "Result schema identifier, bitterclip.scene_read.v1."
      },
      "start_line": {
        "type": "integer",
        "description": "First source line returned (1-based)."
      },
      "end_line": {
        "type": "integer",
        "description": "Last source line returned."
      },
      "total_lines": {
        "type": "integer",
        "description": "Number of lines in the full source."
      },
      "truncated": {
        "type": "boolean",
        "description": "True when the returned source is a line range rather than the whole source."
      },
      "history_truncated": {
        "type": "boolean",
        "description": "True when the scene has more retained versions than the returned history."
      },
      "project_id": {
        "type": "string",
        "description": "Project public ID the scene was read through; absent for an account-level read."
      },
      "blockers": {
        "type": "array",
        "items": {
          "type": "object"
        },
        "description": "Typed blockers; empty when the call succeeded."
      }
    },
    "required": [],
    "additionalProperties": false
  }
}

Errors

[
  "project_not_found",
  "invalid_input"
]

Examples

[
  {
    "label": "Read before editing",
    "input": {
      "scene_id": "light-study"
    }
  }
]