Skip to main content
Glama
playcanvas

PlayCanvas Editor MCP Server

Official
by playcanvas

modify_scene_settings

Idempotent

Update scene-wide physics and rendering settings: gravity, fog, ambient light, skybox, tonemapping, exposure, lightmapping. Only specified fields change; returns the full scene settings snapshot.

Instructions

Modify scene-wide settings such as physics gravity and rendering (fog, ambient light, skybox, tonemapping, exposure, lightmapping). Only the provided fields are changed. Returns the full resulting scene settings snapshot. When NOT to use: to change a single entity (use modify_entities) or to read settings without changing them (use query_scene_settings).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
settingsYesScene settings

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed51 schema fields changedv0.7.0
    • changedInput schema / properties / settings / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / settings / description
      Previous value: -"Scene settings."New value: +"Scene settings"
    • changedInput schema / properties / settings / properties / physics / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / settings / properties / physics / description
      Previous value: -"Physics related settings for the scene."New value: +"Physics settings"
    • changedInput schema / properties / settings / properties / physics / properties / gravity / description
      Previous value: -"An array of 3 numbers that represents the gravity force. Default: [0, -9.8, 0]"New value: +"Gravity force"
    • changedInput schema / properties / settings / properties / physics / properties / gravity / items
      Previous value: -[
      -  {
      -    "description": "X",
      -    "type": "number"
      -  },
      -  {
      -    "description": "Y",
      -    "type": "number"
      -  },
      -  {
      -    "description": "Z",
      -    "type": "number"
      -  }
      -]New value: +{
      +  "type": "number"
      +}
    • changedInput schema / properties / settings / properties / render / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / settings / properties / render / description
      Previous value: -"Render related settings for the scene."New value: +"Render settings"
    • removedInput schema / properties / settings / properties / render / properties / ambientBake / description
      Removed value: -"Enable baking the ambient lighting into lightmaps. Default: false."
    • removedInput schema / properties / settings / properties / render / properties / ambientBakeNumSamples / description
      Removed value: -"Number of samples to use when baking ambient. Default: 1."
    • removedInput schema / properties / settings / properties / render / properties / ambientBakeOcclusionBrightness / description
      Removed value: -"Specifies the ambient occlusion brightness. Typical range is -1 to 1. Default: 0."
    • removedInput schema / properties / settings / properties / render / properties / ambientBakeOcclusionContrast / description
      Removed value: -"Specifies the ambient occlusion contrast. Typical range is -1 to 1. Default: 0."
    • removedInput schema / properties / settings / properties / render / properties / ambientBakeSpherePart / description
      Removed value: -"How much of the sphere to include when baking ambient. Default: 0.4."
    • removedInput schema / properties / settings / properties / render / properties / clusteredLightingEnabled / description
      Removed value: -"Enable the clustered lighting. Default: true."
    • removedInput schema / properties / settings / properties / render / properties / exposure / description
      Removed value: -"The exposure value tweaks the overall brightness of the scene. Default: 1.0."
    • removedInput schema / properties / settings / properties / render / properties / fog / description
      Removed value: -"The type of fog used in the scene. Can be one of `pc.FOG_NONE`, `pc.FOG_LINEAR`, `pc.FOG_EXP`, `pc.FOG_EXP2`. Default: `none`."
    • changedInput schema / properties / settings / properties / render / properties / fog_color / description
      Previous value: -"An array of 3 numbers representing the color of the fog. Default: [0.0, 0.0, 0.0]."New value: +"RGB color [r,g,b] 0-1"
    • changedInput schema / properties / settings / properties / render / properties / fog_color / items
      Previous value: -[
      -  {
      -    "description": "Red",
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "description": "Green",
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "description": "Blue",
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  }
      -]New value: +{
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • removedInput schema / properties / settings / properties / render / properties / fog_density / description
      Removed value: -"The density of the fog. This property is only valid if the fog property is set to `pc.FOG_EXP` or `pc.FOG_EXP2`. Default: 0.01."
    • removedInput schema / properties / settings / properties / render / properties / fog_end / description
      Removed value: -"The distance from the viewpoint where linear fog reaches its maximum. This property is only valid if the fog property is set to `pc.FOG_LINEAR`. Default: 1000.0."
    • removedInput schema / properties / settings / properties / render / properties / fog_start / description
      Removed value: -"The distance from the viewpoint where linear fog begins. This property is only valid if the fog property is set to `pc.FOG_LINEAR`. Default: 1.0."
    • changedInput schema / properties / settings / properties / render / properties / gamma_correction / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "description": "GAMMA_NONE",
      -    "type": "number"
      -  },
      -  {
      -    "const": 1,
      -    "description": "GAMMA_SRGB",
      -    "type": "number"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "description": "None",
      +    "type": "number"
      +  },
      +  {
      +    "const": 1,
      +    "description": "sRGB",
      +    "type": "number"
      +  }
      +]
    • removedInput schema / properties / settings / properties / render / properties / gamma_correction / description
      Removed value: -"The gamma correction to apply when rendering the scene. Default: 1 (GAMMA_SRGB)."
    • changedInput schema / properties / settings / properties / render / properties / global_ambient / description
      Previous value: -"An array of 3 numbers representing the color of the scene's ambient light. Default: [0.2, 0.2, 0.2]."New value: +"Ambient light color"
    • removedInput schema / properties / settings / properties / render / properties / lightingAreaLightsEnabled / description
      Removed value: -"Cluster lights support area lights. Default: false."
    • changedInput schema / properties / settings / properties / render / properties / lightingCells / description
      Previous value: -"Number of cells along each world-space axis the space containing lights is subdivided into. Default: [10, 3, 10]."New value: +"[x,y,z]"
    • removedInput schema / properties / settings / properties / render / properties / lightingCookieAtlasResolution / description
      Removed value: -"Resolution of the atlas texture storing all non-directional cookie textures. Default: 2048."
    • removedInput schema / properties / settings / properties / render / properties / lightingCookiesEnabled / description
      Removed value: -"Cluster lights support cookies. Default: false."
    • removedInput schema / properties / settings / properties / render / properties / lightingMaxLightsPerCell / description
      Removed value: -"Maximum number of lights a cell can store. Default: 255."
    • removedInput schema / properties / settings / properties / render / properties / lightingShadowAtlasResolution / description
      Removed value: -"Resolution of the atlas texture storing all non-directional shadow textures. Default: 2048."
    • changedInput schema / properties / settings / properties / render / properties / lightingShadowType / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "description": "SHADOW_PCF3_32F",
      -    "type": "number"
      -  },
      -  {
      -    "const": 4,
      -    "description": "SHADOW_PCF5_32F",
      -    "type": "number"
      -  },
      -  {
      -    "const": 5,
      -    "description": "SHADOW_PCF1_32F",
      -    "type": "number"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "description": "PCF3_32F",
      +    "type": "number"
      +  },
      +  {
      +    "const": 4,
      +    "description": "PCF5_32F",
      +    "type": "number"
      +  },
      +  {
      +    "const": 5,
      +    "description": "PCF1_32F",
      +    "type": "number"
      +  }
      +]
    • removedInput schema / properties / settings / properties / render / properties / lightingShadowType / description
      Removed value: -"The type of shadow filtering used by all shadows. Default: 0 (SHADOW_PCF3_32F)."
    • removedInput schema / properties / settings / properties / render / properties / lightingShadowsEnabled / description
      Removed value: -"Cluster lights support shadows. Default: true."
    • removedInput schema / properties / settings / properties / render / properties / lightmapFilterEnabled / description
      Removed value: -"Enable filtering of lightmaps. Default: false."
    • removedInput schema / properties / settings / properties / render / properties / lightmapFilterRange / description
      Removed value: -"A range parameter of the bilateral filter. Default: 10."
    • removedInput schema / properties / settings / properties / render / properties / lightmapFilterSmoothness / description
      Removed value: -"A spatial parameter of the bilateral filter. Default: 0.2."
    • removedInput schema / properties / settings / properties / render / properties / lightmapMaxResolution / description
      Removed value: -"The maximum lightmap resolution. Default: 2048."
    • changedInput schema / properties / settings / properties / render / properties / lightmapMode / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "description": "BAKE_COLOR",
      -    "type": "number"
      -  },
      -  {
      -    "const": 1,
      -    "description": "BAKE_COLORDIR",
      -    "type": "number"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "description": "Color",
      +    "type": "number"
      +  },
      +  {
      +    "const": 1,
      +    "description": "ColorDir",
      +    "type": "number"
      +  }
      +]
    • removedInput schema / properties / settings / properties / render / properties / lightmapMode / description
      Removed value: -"The lightmap baking mode. Default: 1 (BAKE_COLORDIR)."
    • removedInput schema / properties / settings / properties / render / properties / lightmapSizeMultiplier / description
      Removed value: -"The lightmap resolution multiplier. Default: 16."
    • changedInput schema / properties / settings / properties / render / properties / skyCenter / description
      Previous value: -"An array of 3 numbers representing the center of the sky mesh. Default: [0.0, 0.1, 0.0]."New value: +"[x,y,z]"
    • changedInput schema / properties / settings / properties / render / properties / skyMeshPosition / description
      Previous value: -"An array of 3 numbers representing the position of the sky mesh. Default: [0.0, 0.0, 0.0]."New value: +"[x,y,z]"
    • changedInput schema / properties / settings / properties / render / properties / skyMeshRotation / description
      Previous value: -"An array of 3 numbers representing the rotation of the sky mesh. Default: [0.0, 0.0, 0.0]."New value: +"[x,y,z]"
    • changedInput schema / properties / settings / properties / render / properties / skyMeshScale / description
      Previous value: -"An array of 3 numbers representing the scale of the sky mesh. Default: [100.0, 100.0, 100.0]."New value: +"[x,y,z]"
    • removedInput schema / properties / settings / properties / render / properties / skyType / description
      Removed value: -"Type of skybox projection. Default: `infinite`."
    • changedInput schema / properties / settings / properties / render / properties / skybox / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "Asset ID",
      +    "exclusiveMinimum": 0,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / settings / properties / render / properties / skybox / description
      Previous value: -"The `id` of the cubemap texture to be used as the scene's skybox. Default: null."New value: +"Skybox cubemap"
    • removedInput schema / properties / settings / properties / render / properties / skyboxIntensity / description
      Removed value: -"Multiplier for skybox intensity. Default: 1."
    • removedInput schema / properties / settings / properties / render / properties / skyboxMip / description
      Removed value: -"The mip level of the skybox to be displayed. Only valid for prefiltered cubemap skyboxes. Default: 0."
    • changedInput schema / properties / settings / properties / render / properties / skyboxRotation / description
      Previous value: -"An array of 3 numbers representing the rotation of the skybox. Default: [0, 0, 0]."New value: +"[x,y,z]"
    • removedInput schema / properties / settings / properties / render / properties / tonemapping / description
      Removed value: -"The tonemapping transform to apply when writing fragments to the frame buffer. Default: 0."
  2. First observedv1.0.0

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the mutation/safety profile is covered. The description adds valuable behavior beyond those annotations: 'Only the provided fields are changed' clarifies partial-update semantics, and 'Returns the full resulting scene settings snapshot' discloses the return behavior even though no output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no wasted words: purpose, partial-update behavior, return value, and exclusions with alternatives. The most important usage guidance is front-loaded, and each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with a deeply nested settings schema and no output schema, the description sufficiently covers what the agent needs: what it modifies, partial-update semantics, return value, and when to use sibling tools instead. The extensive input schema covers parameter detail, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter detail is well covered by the input schema. The description adds meaning beyond the schema by stating that only provided fields are changed, which clarifies that the settings object is a partial update rather than a full replacement. This is a meaningful semantic distinction for a nested settings object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: 'Modify scene-wide settings' with concrete examples like physics gravity and rendering (fog, ambient light, skybox). It also explicitly distinguishes itself from modify_entities and query_scene_settings, so an agent can separate this from siblings without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use context ('Modify scene-wide settings') and explicit when-not-to-use guidance with named alternatives: use modify_entities for a single entity and query_scene_settings for reading without changes. This is strong routing signal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/playcanvas/editor-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server