Registered MCP tools
This list is generated from the tool contracts checked into this build. Registration describes an implementation surface, not production host acceptance. Use the schema and scopes before making a call.
Check /mcp for this deployment's connection status. Widget and download capabilities depend on the client; authenticated ChatGPT host acceptance is still pending.
70 / 70 registered tools
get_manimlabs_capabilitiesREAD
Discover actual object types, animation presets, deployed feature flags and truthful render infrastructure before creating a scene.
Scopes: Public metadata · Widget: library
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {},
"additionalProperties": false
}get_my_profileREAD
Read the linked account's display identity, without exposing credentials, billing data or staff permissions.
Scopes: profile.read · Widget: connection
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {},
"additionalProperties": false
}get_connection_statusREAD
Inspect this OAuth connection's permissions; never assumes browser or Desktop Agent connectivity.
Scopes: Public metadata · Widget: connection
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {},
"additionalProperties": false
}get_my_plan_and_limitsREAD
Read current server-authoritative plan limits and recorded usage. Null limits mean unlimited; native compute availability is separate.
Scopes: plans.read · Widget: plan
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {},
"additionalProperties": false
}check_capabilityREAD
Check object creation or a named authoritative plan feature before attempting it. Permission is distinct from host support.
Scopes: plans.read · Widget: plan
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"objectType": {
"type": "string",
"enum": [
"fourier_drawing",
"arc_polygon",
"cutout",
"boolean_shape",
"mathtypst",
"sample_space",
"text",
"mathtex",
"derivation",
"vector_field",
"path",
"layered_matrix",
"circle",
"ellipse",
"square",
"rectangle",
"rounded_rectangle",
"triangle",
"regular_polygon",
"polygon",
"arc",
"sector",
"line",
"arrow",
"double_arrow",
"curved_arrow",
"brace",
"angle_marker",
"venn",
"probability_tree",
"dot",
"vector",
"number_line",
"axes",
"number_plane",
"complex_plane",
"function_graph",
"parametric_function",
"polar_graph",
"implicit_curve",
"star",
"annulus",
"annular_sector",
"sphere",
"ellipsoid",
"cube",
"prism",
"cone",
"cylinder",
"torus",
"threed_axes",
"surface3d",
"line3d",
"arrow3d",
"dot3d",
"parametric_surface",
"parametric_curve3d",
"polyhedron",
"image",
"svg",
"video",
"counter",
"graph",
"table",
"code",
"matrix",
"bar_chart",
"pie_chart",
"box_plot",
"callout",
"highlight",
"group"
]
},
"feature": {
"type": "string",
"enum": [
"physics",
"svgImport",
"codeExport",
"shareProject",
"parametricShapes",
"proFormats",
"transformAnims"
]
}
},
"additionalProperties": false
}list_supported_formatsREAD
Distinguish editor formats from capability-detected browser export in a supported MCP Apps host.
Scopes: Public metadata · Widget: learning
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {},
"additionalProperties": false
}inspect_object_schemaREAD
Get the canonical JSON Schema and editable timeline properties for an actual editor object type. Inspect before changing object-specific fields.
Scopes: Public metadata · Widget: library
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"fourier_drawing",
"arc_polygon",
"cutout",
"boolean_shape",
"mathtypst",
"sample_space",
"text",
"mathtex",
"derivation",
"vector_field",
"path",
"layered_matrix",
"circle",
"ellipse",
"square",
"rectangle",
"rounded_rectangle",
"triangle",
"regular_polygon",
"polygon",
"arc",
"sector",
"line",
"arrow",
"double_arrow",
"curved_arrow",
"brace",
"angle_marker",
"venn",
"probability_tree",
"dot",
"vector",
"number_line",
"axes",
"number_plane",
"complex_plane",
"function_graph",
"parametric_function",
"polar_graph",
"implicit_curve",
"star",
"annulus",
"annular_sector",
"sphere",
"ellipsoid",
"cube",
"prism",
"cone",
"cylinder",
"torus",
"threed_axes",
"surface3d",
"line3d",
"arrow3d",
"dot3d",
"parametric_surface",
"parametric_curve3d",
"polyhedron",
"image",
"svg",
"video",
"counter",
"graph",
"table",
"code",
"matrix",
"bar_chart",
"pie_chart",
"box_plot",
"callout",
"highlight",
"group"
]
}
},
"required": [
"type"
],
"additionalProperties": false
}list_animation_presetsREAD
Discover the real registered animation presets; these builders are shared with the editor.
Scopes: Public metadata · Widget: animations
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {},
"additionalProperties": false
}list_educational_examplesREAD
List existing genuine editor starters and their working editor links. This does not create a cloud project.
Scopes: Public metadata · Widget: learning
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {},
"additionalProperties": false
}list_fourier_presetsREAD
List the five real SVG outline presets implemented by Fourier Drawing. Series Decomposition Studio is not enabled.
Scopes: Public metadata · Widget: curves
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {},
"additionalProperties": false
}list_projectsREAD
List only projects owned by this account, with bounded cursor pagination. No private thumbnails or full scenes are fetched by default.
Scopes: projects.read · Widget: projects
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"limit": {
"default": 12,
"type": "integer",
"minimum": 1,
"maximum": 25
},
"cursor": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"limit"
],
"additionalProperties": false
}get_projectREAD
Read a saved project's summary and exact editable object IDs. Full geometry is supplied to the trusted widget rather than dumped into chat.
Scopes: projects.read · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"projectId"
],
"additionalProperties": false
}get_scene_summaryREAD
Read scene duration, object/animation counts, current revision and a canonical editor link.
Scopes: projects.read · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"projectId"
],
"additionalProperties": false
}get_scene_objectREAD
Read one exact object and its editable animation properties, scoped to an owned project.
Scopes: projects.read · Widget: inspector
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"projectId",
"objectId"
],
"additionalProperties": false
}get_scene_playback_dataREAD
Open an authentic preview of the saved scene in supported MCP Apps hosts. Playback does not save or start a native render.
Scopes: projects.read · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"projectId"
],
"additionalProperties": false
}get_browser_export_policyREAD
Check the current owned project, live plan and watermark requirements immediately before a local browser export. Does not start server rendering or consume a cloud render quota.
Scopes: projects.read, renders.create · Widget: render
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"projectId"
],
"additionalProperties": false
}open_project_in_editorREAD
Return the canonical link to the exact owned cloud project, preserving its saved identity.
Scopes: projects.read · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"projectId"
],
"additionalProperties": false
}create_projectWRITE
Create a named, genuinely cloud-saved editor project. This pure creation does not consume AI generation quota. Retry with the same requestKey.
Scopes: projects.read, projects.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"duration": {
"default": 6,
"type": "number",
"minimum": 0.1,
"maximum": 600
}
},
"required": [
"name",
"requestKey",
"duration"
],
"additionalProperties": false
}rename_projectWRITE
Rename both the saved project and its Projects title atomically, requiring the current revision.
Scopes: projects.read, projects.write · Widget: projects
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"name"
],
"additionalProperties": false
}add_scene_objectWRITE
Add a real editor object using shared factory defaults and canonical property validation. Includes the exact cloud revision after saving.
Scopes: projects.read, projects.write, scenes.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"type": {
"type": "string",
"enum": [
"fourier_drawing",
"arc_polygon",
"cutout",
"boolean_shape",
"mathtypst",
"sample_space",
"text",
"mathtex",
"derivation",
"vector_field",
"path",
"layered_matrix",
"circle",
"ellipse",
"square",
"rectangle",
"rounded_rectangle",
"triangle",
"regular_polygon",
"polygon",
"arc",
"sector",
"line",
"arrow",
"double_arrow",
"curved_arrow",
"brace",
"angle_marker",
"venn",
"probability_tree",
"dot",
"vector",
"number_line",
"axes",
"number_plane",
"complex_plane",
"function_graph",
"parametric_function",
"polar_graph",
"implicit_curve",
"star",
"annulus",
"annular_sector",
"sphere",
"ellipsoid",
"cube",
"prism",
"cone",
"cylinder",
"torus",
"threed_axes",
"surface3d",
"line3d",
"arrow3d",
"dot3d",
"parametric_surface",
"parametric_curve3d",
"polyhedron",
"image",
"svg",
"video",
"counter",
"graph",
"table",
"code",
"matrix",
"bar_chart",
"pie_chart",
"box_plot",
"callout",
"highlight",
"group"
]
},
"properties": {
"default": {},
"type": "object",
"propertyNames": {
"type": "string",
"maxLength": 80
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"type",
"properties"
],
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
}
}update_scene_objectWRITE
Edit canonical object fields; ID/type cannot be changed. Object-specific fields are checked against the authoritative editor schema.
Scopes: projects.read, projects.write, scenes.write · Widget: inspector
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"patch": {
"type": "object",
"propertyNames": {
"type": "string",
"maxLength": 80
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"objectId",
"patch"
],
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
}
}duplicate_scene_objectWRITE
Create an independently editable object copy in the same project; existing animation targets are preserved.
Scopes: projects.read, projects.write, scenes.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"objectId"
],
"additionalProperties": false
}set_visibilityWRITE
Change the saved visibility of an exact scene object.
Scopes: projects.read, projects.write, scenes.write · Widget: inspector
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"visible": {
"type": "boolean"
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"objectId",
"visible"
],
"additionalProperties": false
}set_lockedWRITE
Change the saved editor lock state of an exact scene object.
Scopes: projects.read, projects.write, scenes.write · Widget: inspector
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"locked": {
"type": "boolean"
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"objectId",
"locked"
],
"additionalProperties": false
}set_object_styleWRITE
Edit fill, stroke, opacity and line width without changing object geometry or identity.
Scopes: projects.read, projects.write, scenes.write · Widget: inspector
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"style": {
"type": "object",
"properties": {
"fill": {
"anyOf": [
{
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
{
"type": "null"
}
]
},
"stroke": {
"anyOf": [
{
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
{
"type": "null"
}
]
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"fillOpacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"strokeWidth": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"additionalProperties": false
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"objectId",
"style"
],
"additionalProperties": false
}set_parentWRITE
Attach an object to an existing group or detach it; cycles and invalid parent types are rejected.
Scopes: projects.read, projects.write, scenes.write · Widget: inspector
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"parentId": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
{
"type": "null"
}
]
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"objectId",
"parentId"
],
"additionalProperties": false
}arrange_layersWRITE
Set the exact layer order; must contain every existing object ID once.
Scopes: projects.read, projects.write, scenes.write · Widget: inspector
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"objectOrder": {
"maxItems": 500,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"objectOrder"
],
"additionalProperties": false
}add_animationWRITE
Add a complete registered editor AnimationEvent to the timeline. Canonical schema, targets, timing, flags and plan gates are enforced.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: timeline
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"event": {
"type": "object",
"propertyNames": {
"type": "string",
"maxLength": 80
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"event"
],
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
}
}add_animation_presetWRITE
Build a real editor preset for an existing object and save its clips to the timeline.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: animations
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"presetId": {
"type": "string",
"maxLength": 80
},
"start": {
"type": "number",
"minimum": 0,
"maximum": 600
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"objectId",
"presetId",
"start"
],
"additionalProperties": false
}update_animationWRITE
Edit timing, easing and registered event fields on an exact saved timeline clip.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: timeline
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"animationId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"patch": {
"type": "object",
"propertyNames": {
"type": "string",
"maxLength": 80
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"animationId",
"patch"
],
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
}
}add_keyframeWRITE
Insert or update an exact frame-snapped multi-keyframe channel using the editor's shared channel engine.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: timeline
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"property": {
"type": "string",
"enum": [
"position.x",
"position.y",
"scale.x",
"scale.y",
"rotation",
"opacity",
"position.z",
"rotation.x",
"rotation.y"
]
},
"time": {
"type": "number",
"minimum": 0,
"maximum": 600
},
"value": {
"type": "number",
"minimum": -100000,
"maximum": 100000
},
"interpolation": {
"default": "linear",
"type": "string",
"enum": [
"linear",
"hold",
"ease",
"easeIn",
"easeOut",
"easeInOut",
"bezier"
]
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"objectId",
"property",
"time",
"value",
"interpolation"
],
"additionalProperties": false
}move_keyframesWRITE
Move selected channel keys by an integer frame delta using shared frame collision rules.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: timeline
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"keyIds": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"deltaFrames": {
"type": "integer",
"minimum": -36000,
"maximum": 36000
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"keyIds",
"deltaFrames"
],
"additionalProperties": false
}delete_keyframesWRITE
Remove explicitly selected channel keys from an editable scene; changes remain revisioned in the MCP journal.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: timeline
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"keyIds": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"keyIds"
],
"additionalProperties": false
}set_timeline_durationWRITE
Set scene duration; shortening beneath existing clips, markers or channel keys is rejected instead of silently truncating them.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: timeline
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"duration": {
"type": "number",
"minimum": 0.1,
"maximum": 600
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"duration"
],
"additionalProperties": false
}get_editor_configurationREAD
Read exact scene background, output settings, cameras, timeline markers and preview-only 3D lights from an owned project.
Scopes: projects.read · Widget: inspector
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"projectId"
],
"additionalProperties": false
}set_scene_backgroundWRITE
Change the actual editor and native scene background color without accepting a remote image URL.
Scopes: projects.read, projects.write, scenes.write · Widget: inspector
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"color"
],
"additionalProperties": false
}set_output_settingsWRITE
Save aspect ratio, resolution, frame rate and export format under the current verified plan. This does not start a render.
Scopes: projects.read, projects.write, scenes.write, plans.read · Widget: render
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"aspect": {
"type": "string",
"enum": [
"16:9",
"9:16",
"1:1",
"4:5",
"4:3",
"21:9"
]
},
"resolution": {
"type": "string",
"enum": [
"480p",
"720p",
"1080p",
"1440p",
"2160p"
]
},
"fps": {
"anyOf": [
{
"type": "number",
"const": 24
},
{
"type": "number",
"const": 30
},
{
"type": "number",
"const": 60
}
]
},
"outputFormat": {
"type": "string",
"enum": [
"mp4",
"gif",
"webm_alpha"
]
},
"watermarkEnabled": {
"type": "boolean"
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey"
],
"additionalProperties": false
}set_camera_2dWRITE
Set the editor's scene camera position, zoom, rotation or follow target. A follow target must be an existing 2D object.
Scopes: projects.read, projects.write, scenes.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"position": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"y": {
"type": "number",
"minimum": -10000,
"maximum": 10000
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"zoom": {
"type": "number",
"minimum": 0.05,
"maximum": 100
},
"rotation": {
"type": "number",
"minimum": -3600,
"maximum": 3600
},
"followObjectId": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
{
"type": "null"
}
]
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey"
],
"additionalProperties": false
}set_camera_3dWRITE
Edit initial 3D orientation and preview camera optics. Preview depth of field and clip planes may differ from native Manim.
Scopes: projects.read, projects.write, scenes.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"phi": {
"type": "number",
"minimum": 0,
"maximum": 180
},
"theta": {
"type": "number",
"minimum": -3600,
"maximum": 3600
},
"ambientRotation": {
"type": "number",
"minimum": -720,
"maximum": 720
},
"fov": {
"type": "number",
"minimum": 10,
"maximum": 140
},
"focalDistance": {
"type": "number",
"minimum": 0.01,
"maximum": 10000
},
"aperture": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"nearClip": {
"type": "number",
"minimum": 0.001,
"maximum": 10000
},
"farClip": {
"type": "number",
"minimum": 0.01,
"maximum": 100000
},
"safeArea": {
"type": "boolean"
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey"
],
"additionalProperties": false
}set_3d_viewportWRITE
Change editor-only floor, axes and depth guides. These aids are not emitted as native scene objects.
Scopes: projects.read, projects.write, scenes.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"floor": {
"type": "string",
"enum": [
"grid",
"dots",
"polar",
"isometric",
"solid",
"none"
]
},
"extent": {
"type": "number",
"minimum": 0.1,
"maximum": 100
},
"spacing": {
"type": "number",
"minimum": 0.05,
"maximum": 20
},
"axes": {
"type": "boolean"
},
"dropLines": {
"type": "boolean"
},
"horizonFade": {
"type": "boolean"
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey"
],
"additionalProperties": false
}add_3d_lightWRITE
Add an editor WebGL light. Lighting is preview-only and is not compiled into native Cairo renders.
Scopes: projects.read, projects.write, scenes.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"kind": {
"type": "string",
"enum": [
"point",
"sun",
"spot",
"area"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"kind"
],
"additionalProperties": false
}update_3d_lightWRITE
Edit a saved WebGL preview light; no native Manim lighting claim is made.
Scopes: projects.read, projects.write, scenes.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"lightId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"patch": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"position": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"y": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"z": {
"type": "number",
"minimum": -10000,
"maximum": 10000
}
},
"required": [
"x",
"y",
"z"
],
"additionalProperties": false
},
"target": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"y": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"z": {
"type": "number",
"minimum": -10000,
"maximum": 10000
}
},
"required": [
"x",
"y",
"z"
],
"additionalProperties": false
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"intensity": {
"type": "number",
"minimum": 0,
"maximum": 1000
},
"range": {
"type": "number",
"minimum": 0,
"maximum": 10000
},
"angle": {
"type": "number",
"minimum": 0.1,
"maximum": 179
},
"penumbra": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"width": {
"type": "number",
"minimum": 0.01,
"maximum": 1000
},
"height": {
"type": "number",
"minimum": 0.01,
"maximum": 1000
},
"radius": {
"type": "number",
"minimum": 0,
"maximum": 1000
},
"castShadow": {
"type": "boolean"
},
"visible": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"lightId",
"patch"
],
"additionalProperties": false
}remove_3d_lightDESTRUCTIVE
Remove one WebGL preview light after explicit confirmation.
Scopes: projects.read, projects.write, scenes.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"lightId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"confirm": {
"type": "boolean",
"const": true
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"lightId",
"confirm"
],
"additionalProperties": false
}get_physics_configurationREAD
Read saved world settings, joints and force fields. Motion is effective only after the editor bakes its simulation; MCP does not run an untrusted bake.
Scopes: projects.read · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"projectId"
],
"additionalProperties": false
}set_physics_worldWRITE
Set actual editor gravity, floor and solver parameters. Re-bake in the editor to update motion.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"gravity": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"y": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"z": {
"type": "number",
"minimum": -10000,
"maximum": 10000
}
},
"required": [
"x",
"y",
"z"
],
"additionalProperties": false
},
"ground": {
"type": "boolean"
},
"groundZ": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"duration": {
"anyOf": [
{
"type": "number",
"minimum": 0.1,
"maximum": 600
},
{
"type": "null"
}
]
},
"substeps": {
"type": "integer",
"minimum": 1,
"maximum": 64
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey"
],
"additionalProperties": false
}add_force_fieldWRITE
Add a real wind, attractor or drag field to an eligible project's simulation setup; re-bake in the editor.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"kind": {
"type": "string",
"enum": [
"wind",
"attractor",
"drag"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"kind"
],
"additionalProperties": false
}update_force_fieldWRITE
Edit a saved force field with bounded physical parameters.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"fieldId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"patch": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"kind": {
"type": "string",
"enum": [
"wind",
"attractor",
"drag"
]
},
"enabled": {
"type": "boolean"
},
"position": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"y": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"z": {
"type": "number",
"minimum": -10000,
"maximum": 10000
}
},
"required": [
"x",
"y",
"z"
],
"additionalProperties": false
},
"radius": {
"type": "number",
"minimum": 0.01,
"maximum": 10000
},
"strength": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"y": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"z": {
"type": "number",
"minimum": -10000,
"maximum": 10000
}
},
"required": [
"x",
"y",
"z"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"fieldId",
"patch"
],
"additionalProperties": false
}remove_force_fieldDESTRUCTIVE
Remove one exact force field after confirmation.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"fieldId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"confirm": {
"type": "boolean",
"const": true
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"fieldId",
"confirm"
],
"additionalProperties": false
}add_physics_jointWRITE
Connect two distinct existing physics-enabled bodies with an editable joint. Re-bake in the editor to update motion.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"bodyA": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"bodyB": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"type": {
"type": "string",
"enum": [
"revolute",
"prismatic",
"fixed",
"spherical",
"rope",
"spring"
]
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"bodyA",
"bodyB",
"type"
],
"additionalProperties": false
}update_physics_jointWRITE
Edit a saved joint's anchors, axis, limits or spring parameters without changing the attached bodies.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"jointId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"patch": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"revolute",
"prismatic",
"fixed",
"spherical",
"rope",
"spring"
]
},
"anchorA": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"y": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"z": {
"type": "number",
"minimum": -10000,
"maximum": 10000
}
},
"required": [
"x",
"y",
"z"
],
"additionalProperties": false
},
"anchorB": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"y": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"z": {
"type": "number",
"minimum": -10000,
"maximum": 10000
}
},
"required": [
"x",
"y",
"z"
],
"additionalProperties": false
},
"axis": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"y": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"z": {
"type": "number",
"minimum": -10000,
"maximum": 10000
}
},
"required": [
"x",
"y",
"z"
],
"additionalProperties": false
},
"limitsEnabled": {
"type": "boolean"
},
"limitsMin": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"limitsMax": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"length": {
"type": "number",
"minimum": 0,
"maximum": 10000
},
"restLength": {
"type": "number",
"minimum": 0,
"maximum": 10000
},
"stiffness": {
"type": "number",
"minimum": 0,
"maximum": 10000
},
"damping": {
"type": "number",
"minimum": 0,
"maximum": 10000
}
},
"additionalProperties": false
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"jointId",
"patch"
],
"additionalProperties": false
}remove_physics_jointDESTRUCTIVE
Remove one exact physics joint after confirmation.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"jointId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"confirm": {
"type": "boolean",
"const": true
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"jointId",
"confirm"
],
"additionalProperties": false
}add_timeline_markerWRITE
Save a named, colored marker at a time inside the scene duration.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: timeline
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"time": {
"type": "number",
"minimum": 0,
"maximum": 600
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"color": {
"default": "#58C4DD",
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"time",
"label",
"color"
],
"additionalProperties": false
}move_timeline_markerWRITE
Change a marker's time, label or color without changing its identity.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: timeline
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"markerId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"time": {
"type": "number",
"minimum": 0,
"maximum": 600
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"markerId"
],
"additionalProperties": false
}remove_timeline_markerDESTRUCTIVE
Remove one exact timeline marker after explicit confirmation; scene objects and animations are kept.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: timeline
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"markerId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"confirm": {
"type": "boolean",
"const": true
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"markerId",
"confirm"
],
"additionalProperties": false
}list_scene_animationsREAD
List actual timeline clips in stable ID order with bounded pagination; inspect one before changing its timing or target.
Scopes: projects.read · Widget: timeline
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"offset": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 2000
},
"limit": {
"default": 20,
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"projectId",
"offset",
"limit"
],
"additionalProperties": false
}remove_animationDESTRUCTIVE
Remove one exact timeline clip after confirmation; other clips and the targeted scene object stay intact.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: timeline
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"animationId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"confirm": {
"type": "boolean",
"const": true
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"animationId",
"confirm"
],
"additionalProperties": false
}remove_scene_objectDESTRUCTIVE
Remove an exact object after confirmation. Camera follow, physics joints, animation targets or mathematical dependencies reject the whole transaction.
Scopes: projects.read, projects.write, scenes.write · Widget: inspector
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"confirm": {
"type": "boolean",
"const": true
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"objectId",
"confirm"
],
"additionalProperties": false
}configure_fourier_drawingWRITE
Adjust a saved Fourier Drawing's real staged reconstruction, color, wait, metric text and final-outline settings without replacing its validated SVG source.
Scopes: projects.read, projects.write, scenes.write · Widget: curves
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"patch": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"dual",
"complex"
]
},
"harmonicMode": {
"type": "string",
"enum": [
"auto",
"manual"
]
},
"quality": {
"type": "string",
"enum": [
"draft",
"balanced",
"high"
]
},
"harmonics": {
"type": "integer",
"minimum": 1,
"maximum": 1024
},
"staged": {
"type": "boolean"
},
"cycles": {
"type": "integer",
"minimum": 1,
"maximum": 20
},
"waitAfterDraw": {
"type": "number",
"minimum": 0,
"maximum": 30
},
"speed": {
"type": "number",
"minimum": 0.1,
"maximum": 4
},
"startAngle": {
"type": "number",
"minimum": -3600,
"maximum": 3600
},
"direction": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": -1
}
]
},
"showCircles": {
"type": "boolean"
},
"showSpokes": {
"type": "boolean"
},
"showGuides": {
"type": "boolean"
},
"showFormulas": {
"type": "boolean"
},
"showMetrics": {
"type": "boolean"
},
"finalFill": {
"type": "boolean"
},
"xColor": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"yColor": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"traceColor": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"circleOpacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"guideOpacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"ghostOpacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"traceDecay": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"metricLabels": {
"type": "array",
"items": [
{
"type": "string",
"minLength": 1,
"maxLength": 40
},
{
"type": "string",
"minLength": 1,
"maxLength": 40
},
{
"type": "string",
"minLength": 1,
"maxLength": 40
}
],
"additionalItems": false,
"minItems": 3,
"maxItems": 3
},
"metricColors": {
"type": "array",
"items": [
{
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
{
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
{
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
}
],
"additionalItems": false,
"minItems": 3,
"maxItems": 3
},
"metricFontFamily": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[\\p{L}\\p{N} ._-]+$"
},
"metricFontSize": {
"type": "number",
"minimum": 8,
"maximum": 96
},
"metricFontStyle": {
"type": "string",
"enum": [
"normal",
"bold",
"italic"
]
},
"metricPosition": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"y": {
"type": "number",
"minimum": -10000,
"maximum": 10000
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"anchorGap": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"autoFit": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"objectId",
"patch"
],
"additionalProperties": false
}preview_at_timeREAD
Evaluate actual object geometry/styles at an absolute timestamp using the shared preview engine. Does not modify the scene.
Scopes: projects.read · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"time": {
"type": "number",
"minimum": 0,
"maximum": 600
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"projectId",
"time"
],
"additionalProperties": false
}inspect_scene_dependenciesREAD
Inspect actual parent, binding, graph-axis, projection and motion-path dependencies without executing expressions.
Scopes: projects.read · Widget: inspector
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"projectId"
],
"additionalProperties": false
}get_render_capabilitiesREAD
Report the actual client-side preview/export boundary without inventing server jobs or download URLs.
Scopes: Public metadata · Widget: render
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {},
"additionalProperties": false
}open_upgrade_pageREAD
Return the canonical existing pricing link. Does not purchase, start a trial, alter billing or emit a purchase event.
Scopes: Public metadata · Widget: plan
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {},
"additionalProperties": false
}open_billing_portalREAD
Open existing account billing settings; subscription changes require the normal authenticated website flow.
Scopes: profile.read · Widget: plan
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {},
"additionalProperties": false
}undo_last_mcp_changeWRITE
Restore the preceding scene for the latest revision written by this OAuth connection. Requires exact current revision; never undoes another client's edit. Undo is itself a revisioned change, so undo again toggles it back.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey"
],
"additionalProperties": false
}apply_scene_patchDESTRUCTIVE
Apply at most 25 typed object edits or removals atomically. No arbitrary code or JSON paths. Dangling dependencies reject the entire batch; no partial saves occur. Removal requires explicit confirmation.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
},
"operations": {
"minItems": 1,
"maxItems": 25,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "add_object"
},
"type": {
"type": "string",
"enum": [
"fourier_drawing",
"arc_polygon",
"cutout",
"boolean_shape",
"mathtypst",
"sample_space",
"text",
"mathtex",
"derivation",
"vector_field",
"path",
"layered_matrix",
"circle",
"ellipse",
"square",
"rectangle",
"rounded_rectangle",
"triangle",
"regular_polygon",
"polygon",
"arc",
"sector",
"line",
"arrow",
"double_arrow",
"curved_arrow",
"brace",
"angle_marker",
"venn",
"probability_tree",
"dot",
"vector",
"number_line",
"axes",
"number_plane",
"complex_plane",
"function_graph",
"parametric_function",
"polar_graph",
"implicit_curve",
"star",
"annulus",
"annular_sector",
"sphere",
"ellipsoid",
"cube",
"prism",
"cone",
"cylinder",
"torus",
"threed_axes",
"surface3d",
"line3d",
"arrow3d",
"dot3d",
"parametric_surface",
"parametric_curve3d",
"polyhedron",
"image",
"svg",
"video",
"counter",
"graph",
"table",
"code",
"matrix",
"bar_chart",
"pie_chart",
"box_plot",
"callout",
"highlight",
"group"
]
},
"properties": {
"default": {},
"type": "object",
"propertyNames": {
"type": "string",
"maxLength": 80
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"operation",
"type",
"properties"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "update_object"
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"patch": {
"type": "object",
"propertyNames": {
"type": "string",
"maxLength": 80
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"operation",
"objectId",
"patch"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "remove_object"
},
"objectId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"operation",
"objectId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"const": "remove_animation"
},
"animationId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"operation",
"animationId"
],
"additionalProperties": false
}
]
}
},
"confirmRemoval": {
"default": false,
"type": "boolean"
}
},
"required": [
"projectId",
"expectedRevision",
"requestKey",
"operations",
"confirmRemoval"
],
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
}
}list_templatesREAD
List the existing editor's actual template catalog. Creation validates every resulting object against your current plan.
Scopes: Public metadata · Widget: templates
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {},
"additionalProperties": false
}preview_templateREAD
Build a real template with shared editor builders without saving a project or charging AI quota. Template simulation is not baked by this tool.
Scopes: Public metadata · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"templateId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"templateId"
],
"additionalProperties": false
}create_project_from_templateWRITE
Build a named, editable project using the exact existing editor template builder. Current plan, quotas, dependencies and persistence validation apply. Does not silently bake physics.
Scopes: projects.read, projects.write, scenes.write, animations.write · Widget: scene
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"templateId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"requestKey": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,100}$"
}
},
"required": [
"name",
"templateId",
"requestKey"
],
"additionalProperties": false
}search_documentationREAD
Search the actual public documentation manifest with useful descriptions and working links. Does not invent unsupported features.
Scopes: Public metadata · Widget: learning
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"limit": {
"default": 6,
"type": "integer",
"minimum": 1,
"maximum": 12
}
},
"required": [
"query",
"limit"
],
"additionalProperties": false
}get_feature_documentationREAD
Read a real, manifest-validated editor guide in English or Uzbek with a canonical source URL. Missing translations explicitly fall back to English.
Scopes: Public metadata · Widget: learning
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"section": {
"type": "string",
"enum": [
"tutorials",
"how-to",
"reference",
"explanation"
]
},
"slug": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"language": {
"default": "en",
"type": "string",
"enum": [
"en",
"uz"
]
}
},
"required": [
"section",
"slug",
"language"
],
"additionalProperties": false
}