Skip to main content
Glama

Run the project in the user's open R3 editor

r3_editor_run
Idempotent

Press the Run buttons of the user's open R3 editor: start physics, code, audio and music (all of them, or the ones named in systems), exactly as the user's own click does — a paused simulation resumes. Use it to TEST what you built: run it, then look with r3_editor_capture and read live values with r3_editor_inspect. Changes nothing saved. The systems serve every project open in that editor tab. The scene only moves while that tab is in front: a browser pauses a background tab, and the answer then says the scene is NOT advancing. Needs the editor:run right.

Input Schema

NameRequiredDescriptionDefault
systemsNoWhich of the editor's Run / Stop buttons: physics, code, audio, music. Leave out for all of them.
projectIdYesA project open in the user's editor (r3_whoami lists them).

Output Schema

NameRequiredDescriptionDefault
actionYes
answerYesThis answer in words: what was done, what R3 measured, decided or refused, and what to do next. The same text as the result's text block. Read it: the fields beside it are the data, this is the guidance.
editorYes
systemsYes
projectIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / editor / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "lastActiveAgoMs": {
      -        "type": "number"
      -      },
      -      "lastActiveAt": {
      -        "type": "string"
      -      },
      -      "openProjects": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "id": {
      -                  "type": "string"
      -                },
      -                "name": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "name"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "openedAt": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "openedAt",
      -      "lastActiveAt",
      -      "lastActiveAgoMs",
      -      "openProjects"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "frames": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "advancing": {
      +                "type": "boolean"
      +              },
      +              "frameSeen": {
      +                "type": "boolean"
      +              },
      +              "sceneShown": {
      +                "type": "boolean"
      +              },
      +              "visible": {
      +                "type": "boolean"
      +              }
      +            },
      +            "required": [
      +              "advancing",
      +              "visible",
      +              "sceneShown",
      +              "frameSeen"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "lastActiveAgoMs": {
      +        "type": "number"
      +      },
      +      "lastActiveAt": {
      +        "type": "string"
      +      },
      +      "openProjects": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "type": "string"
      +                },
      +                "name": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "name"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "openedAt": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "openedAt",
      +      "lastActiveAt",
      +      "lastActiveAgoMs",
      +      "openProjects"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed2 schema fields changed
    • addedOutput schema / properties / answer
      Added value: +{
      +  "description": "This answer in words: what was done, what R3 measured, decided or refused, and what to do next. The same text as the result's text block. Read it: the fields beside it are the data, this is the guidance.",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "projectId",
      -  "action",
      -  "systems",
      -  "editor"
      -]New value: +[
      +  "projectId",
      +  "action",
      +  "systems",
      +  "editor",
      +  "answer"
      +]
  3. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true), and the description adds substantial context beyond them: nothing is persisted, a paused simulation resumes, the browser pauses background tabs so the response may report the scene is NOT advancing, and the editor:run right is required. This is exactly the extra behavioral content annotations cannot express.

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

Conciseness4/5

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

Front-loaded with the verb and resource, and virtually every sentence carries distinct value (effect, workflow, persistence, tab caveat, permission). It is dense but not padded; the only minor cost is length and a few fragmentary asides like 'Needs the editor:run right.'

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 mutation-style tool with an output schema, the description still covers the things an agent needs: side-effect scope (nothing saved), permission requirement, tab-focus failure mode, resumption semantics, and the intended testing workflow. Nothing material is left to inference.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are already documented in the schema, including the systems enum of subsystems. The description only restates the default ('all of them, or the ones named in systems') without adding syntax or format detail, so the baseline 3 applies.

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?

States a specific action (press Run in the user's open R3 editor) plus the exact subsystems affected (physics, code, audio, music). It is immediately distinguishable from r3_editor_stop and from the read-oriented siblings r3_editor_capture / r3_editor_inspect.

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

Usage Guidelines4/5

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

Gives an explicit when: 'Use it to TEST what you built', followed by a concrete workflow naming the follow-up tools (r3_editor_capture, r3_editor_inspect). It also supplies a conditional caveat (scene only advances while the tab is foregrounded). No explicit when-not against r3_editor_stop or r3_factory_run, so it stops short of a full 5.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources