fx_studio_open
Open FX Studio
Opens the live FX Studio creative workbench, optionally on a saved scene. The same view updates as its actual HTML/CSS/JavaScript source changes through scene_read, scene_write or scene_edit and as scene_preview renders images. Supports DOM, SVG, Canvas and WebGL through one programmable scene contract. Opening is read-only and does not create an effect or change production defaults. Returns a first-party studio link for hosts without app rendering. The view stays current through successive edits; only this tool opens the app.
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": "fx_studio_open",
"title": "Open FX Studio",
"description": "Opens the live FX Studio creative workbench, optionally on a saved scene. The same view updates as its actual HTML/CSS/JavaScript source changes through scene_read, scene_write or scene_edit and as scene_preview renders images. Supports DOM, SVG, Canvas and WebGL through one programmable scene contract. Opening is read-only and does not create an effect or change production defaults. Returns a first-party studio link for hosts without app rendering. The view stays current through successive edits; only this tool opens the app.",
"inputSchema": {
"type": "object",
"properties": {
"scene_id": {
"type": "string",
"description": "Optional account-owned scene identifier; without it the effect library opens."
}
},
"required": [],
"additionalProperties": false
},
"annotations": {
"title": "Open FX Studio",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
},
"securitySchemes": [
{
"type": "noauth"
}
],
"_meta": {
"securitySchemes": [
{
"type": "noauth"
}
],
"ui": {
"resourceUri": "ui://bitterclip/fx-studio.chatgpt-v1.html",
"visibility": [
"model",
"app"
]
},
"openai/widgetAccessible": true,
"openai/outputTemplate": "ui://bitterclip/fx-studio.chatgpt-v1.html",
"openai/toolInvocation/invoking": "Opening FX Studio",
"openai/toolInvocation/invoked": "FX Studio ready"
}
}App descriptor
{
"name": "fx_studio_open",
"title": "Open FX Studio",
"description": "Opens the live FX Studio creative workbench, optionally on a saved scene. The same view updates as its actual HTML/CSS/JavaScript source changes through scene_read, scene_write or scene_edit and as scene_preview renders images. Supports DOM, SVG, Canvas and WebGL through one programmable scene contract. Opening is read-only and does not create an effect or change production defaults. Returns a first-party studio link for hosts without app rendering. The view stays current through successive edits; only this tool opens the app.",
"inputSchema": {
"type": "object",
"properties": {
"scene_id": {
"type": "string",
"description": "Optional account-owned scene identifier; without it the effect library opens."
}
},
"required": [],
"additionalProperties": false
},
"annotations": {
"title": "Open FX Studio",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
},
"securitySchemes": [
{
"type": "noauth"
}
],
"_meta": {
"securitySchemes": [
{
"type": "noauth"
}
],
"ui": {
"resourceUri": "ui://bitterclip/fx-studio.chatgpt-v1.html",
"visibility": [
"model",
"app"
]
},
"openai/widgetAccessible": true,
"openai/outputTemplate": "ui://bitterclip/fx-studio.chatgpt-v1.html",
"openai/toolInvocation/invoking": "Opening FX Studio",
"openai/toolInvocation/invoked": "FX Studio ready"
},
"outputSchema": {
"type": "object",
"properties": {
"schema": {
"type": "string"
},
"account_id": {
"type": "string"
},
"scenes": {
"type": "array",
"items": {
"type": "object"
}
},
"scene": {
"type": [
"object",
"null"
]
},
"studio_url": {
"type": "string"
},
"has_more": {
"type": "boolean",
"description": "True when the account has more scenes than the listed ones."
},
"blockers": {
"type": "array",
"items": {
"type": "object"
},
"description": "Typed blockers; empty when the call succeeded."
}
},
"required": [],
"additionalProperties": false
}
}Live Workspace descriptor
{
"name": "fx_studio_open",
"title": "Open FX Studio",
"description": "Opens the live FX Studio creative workbench, optionally on a saved scene. The same view updates as its actual HTML/CSS/JavaScript source changes through scene_read, scene_write or scene_edit and as scene_preview renders images. Supports DOM, SVG, Canvas and WebGL through one programmable scene contract. Opening is read-only and does not create an effect or change production defaults. Returns a first-party studio link for hosts without app rendering. The view stays current through successive edits; only this tool opens the app.",
"inputSchema": {
"type": "object",
"properties": {
"scene_id": {
"type": "string",
"description": "Optional account-owned scene identifier; without it the effect library opens."
}
},
"required": [],
"additionalProperties": false
},
"annotations": {
"title": "Open FX Studio",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
},
"securitySchemes": [
{
"type": "noauth"
}
],
"_meta": {
"securitySchemes": [
{
"type": "noauth"
}
],
"ui": {
"resourceUri": "ui://bitterclip/fx-studio.chatgpt-v1.html",
"visibility": [
"model",
"app"
]
},
"openai/widgetAccessible": true,
"openai/outputTemplate": "ui://bitterclip/fx-studio.chatgpt-v1.html",
"openai/toolInvocation/invoking": "Opening FX Studio",
"openai/toolInvocation/invoked": "FX Studio ready"
},
"outputSchema": {
"type": "object",
"properties": {
"schema": {
"type": "string"
},
"account_id": {
"type": "string"
},
"scenes": {
"type": "array",
"items": {
"type": "object"
}
},
"scene": {
"type": [
"object",
"null"
]
},
"studio_url": {
"type": "string"
},
"has_more": {
"type": "boolean",
"description": "True when the account has more scenes than the listed ones."
},
"blockers": {
"type": "array",
"items": {
"type": "object"
},
"description": "Typed blockers; empty when the call succeeded."
}
},
"required": [],
"additionalProperties": false
}
}Errors
[
"account_not_found",
"invalid_input"
]Examples
[
{
"label": "Open the effect library",
"input": {}
}
]