Skip to main content
Glama
tylerart3d

MoonRay MCP

by tylerart3d

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation4/5

    Most tools target distinct phases: viewer control, scene inspection, render lifecycle, and comparison. A few preview/snapshot/result tools (interactive_viewer_preview vs capture_interactive_viewer_snapshot, render_preview vs render_result) could be confused, but their descriptions specify different outputs and workflows.

    Naming Consistency3/5

    All names use snake_case and mostly clear, purposeful verbs. However, the set mixes verb-first names (start_render, capture_render_snapshot) with noun-first names (render_status, render_preview, moonray_health), so the naming pattern is readable but not fully consistent.

    Tool Count3/5

    At 25 tools, this sits at the heavy end of a typical MCP server. The breadth is somewhat justified by the render/viewer/scene/comparison workflows, but several preview/capture/snapshot tools could likely be consolidated without losing capability.

    Completeness4/5

    The surface covers preflight, scene and material inspection, viewer interaction, render job lifecycle, snapshots, previews, and image comparison. Minor gaps exist, such as explicit render-settings configuration and more granular control over comparison thresholds, but agents can complete core rendering workflows.

  • Average 3.2/5 across 20 of 25 tools scored. Lowest: 2.6/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 21 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under Apache 2.0.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    No annotations are present, so the description carries the full burden of behavioral disclosure. It reveals that the image is returned 'directly to the MCP client,' which hints at inline delivery, but it does not disclose side effects, whether a fresh capture occurs, whether the viewer must be active, or what happens if no image is available.

    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?

    The description is a single concise sentence with no filler and gets the core action across immediately. It is slightly under-specified, but it is not bloated or repetitive.

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

    Completeness2/5

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

    With two parameters, no annotations, and 0% schema coverage, the description leaves important context undefined: what capture means, when this should be used, and what state the viewer must be in. The output schema helps with return shape, but it does not compensate for missing parameter and usage context.

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

    Parameters1/5

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

    Schema description coverage is 0%, so the description must compensate for undocumented parameters. It does not explain viewer_id or the capture boolean at all; 'capture' is especially ambiguous and is central to behavior. The tool description adds no meaning beyond the raw schema field names.

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

    Purpose4/5

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

    The description names a specific verb ('Return'), a resource ('visible standalone viewer image'), and a destination ('to the MCP client'), so an agent can tell this is about retrieving the current viewer image rather than configuring or stopping the viewer. It does not explicitly distinguish itself from capture_interactive_viewer_snapshot, which is a close sibling, so it loses the top score.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus alternatives like capture_interactive_viewer_snapshot or render_preview. The description gives no prerequisites (e.g., whether the standalone viewer must be running), no exclusions, and no mention of when 'preview' is appropriate.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of behavioral disclosure, and it only adds 'visible standalone interactive' qualifiers. It does not say whether the call blocks, spawns a process, requires a display, or what result the agent should expect.

    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?

    Single front-loaded sentence with no wasted words or redundant restating of the tool name. It is concise, though the brevity sacrifices explanatory content scored under other dimensions.

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

    Completeness2/5

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

    For a launch tool with eight parameters, no annotations, and no output schema, one bare sentence is insufficient. The agent lacks enough context about invocation behavior and parameter effects to use it confidently.

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

    Parameters1/5

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

    Schema description coverage is 0% and the description does not compensate for the eight parameters. Only the scene parameter is implied by 'Open a scene'; frame, camera, width, height, samples, free_camera, and execution_mode are left entirely unexplained.

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

    Purpose4/5

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

    The description states a specific action (open/launch) applied to a scene in a specific target (MoonRay's visible standalone interactive viewer). It is not tautological with the tool name and helps distinguish it from render-oriented siblings, though it does not explicitly name or contrast sibling viewer commands.

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

    Usage Guidelines2/5

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

    No when-to-use or when-not-to-use guidance is given. The description only says what the tool does and does not indicate when to prefer it over interactive_viewer_preview, render_preview, or related tools.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of disclosing behavioral traits. It mentions the action and source but does not clarify side effects (e.g., whether it terminates existing jobs), permission requirements, or what happens to the checkpoint file. This is a significant gap for a tool that starts a new job.

    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?

    The description is a single, concise sentence that front-loads the primary action. There is no fluff or redundancy, which is efficient. However, its brevity contributes to the lack of substantive guidance, so it does not earn a 5 for being optimally helpful.

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

    Completeness2/5

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

    Given the tool's complexity (a job-control function with a required parameter) and the absence of annotations and output schema, the description is far too sparse. It omits the meaning of job_id, any behavioral caveats, and how this fits into the broader rendering workflow. The agent cannot reliably call this tool correctly based solely on the description.

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

    Parameters1/5

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

    Schema coverage is 0%, and the description gives no explanation of the required 'job_id' parameter. There is no hint about its format, purpose, or how to obtain a valid value. The agent is left entirely dependent on the schema, which provides only a type and title with no semantic guidance.

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

    Purpose4/5

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

    The description states a specific verb ('Start'), a resource ('native render job'), and a source ('completed checkpoint EXR'). It clearly indicates starting a fresh job from a checkpoint, which distinguishes it from merely resuming an existing one (e.g., resume_render). However, it does not explicitly contrast with sibling tools like start_render, so it stops short of fully differentiating.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus alternatives such as resume_render, start_render, or cancel_render. The description does not mention prerequisites, scenarios, or exclusions, leaving the agent to infer usage from the tool name alone.

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

  • Behavior2/5

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

    With no annotations, the description carries the full behavioral burden, but it only says 'check' and lists items. It does not disclose whether this is read-only, what happens when a required tool or delegate is missing, what it returns, or whether it has side effects.

    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?

    A single sentence with no filler, front-loading the key verb and objects. It is appropriately sized for a simple health-check tool.

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

    Completeness2/5

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

    The tool has no output schema and no annotations, so the description should clarify the return value or success/failure semantics, but it does not. The description also lacks usage context such as when this health check is relevant relative to the other moonray and render tools.

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

    Parameters2/5

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

    Schema coverage is 0%, so the description must explain verify_delegate, but it only mentions the delegate in the resource list. The parameter title implies meaning, yet the description does not state what setting it to true or false changes about the check.

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

    Purpose4/5

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

    The description uses a specific verb and names the resources it inspects: the staged runtime, required tools, and MoonRay Hydra delegate. This distinguishes it from sibling render/viewer commands as a health/diagnostic preflight rather than a rendering or scene-inspection action. The phrase 'staged runtime' is somewhat jargon-heavy but not misleading.

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

    Usage Guidelines2/5

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

    No when-to-use guidance is given. The description does not state to run this before rendering, when troubleshooting, or instead of moonray_capabilities or moonray_resources, leaving the agent to infer the intended context from the name alone.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of disclosing side effects and edge-case behavior. It only states the return contents; it does not say what happens for a missing, incomplete, or failed job, whether it blocks, or whether it is safe/idempotent.

    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?

    One sentence, no filler, and the core verb and object are front-loaded. It is concise, though 'job report' is somewhat underspecified; a concrete definition of the report format or completion condition would make it fully effective.

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

    Completeness3/5

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

    The output schema covers return values, so the brief output listing is acceptable. However, for an agent choosing among many render-related siblings, the absence of a completion prerequisite or alternative routing leaves a meaningful gap in selecting and invoking it correctly.

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

    Parameters2/5

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

    The description never mentions job_id or explains that the single parameter identifies the job whose report is returned. With 0% schema description coverage, the description should compensate, but it only relates to the parameter indirectly through the tool's purpose; the schema's title 'Job Id' remains the main semantic cue.

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

    Purpose4/5

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

    The description uses a specific verb ('Return') and names the resources ('completed job report', 'PNG preview'), making the core purpose understandable. It does not explicitly contrast with siblings like render_status or render_preview, but the completed/report wording distinguishes it from status or intermediate preview tools.

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

    Usage Guidelines2/5

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

    There is no guidance about when to call this tool instead of render_status, render_preview, or capture_render_snapshot. The words 'completed' and 'when available' imply it should be called after job completion, but no explicit condition, prerequisite, or excluded alternative is stated.

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

  • Behavior3/5

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

    With no annotations, the description carries the full behavioral disclosure burden. 'Inspect' implies a read-only operation, and mentioning 'translated MoonRay RDL' adds useful context about what is actually being examined. However, it does not describe output behavior, errors, or whether any state changes occur.

    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?

    The description is a single focused sentence with no filler, and it front-loads the action verb. It is concise and readable, though it sacrifices useful detail for brevity.

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

    Completeness2/5

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

    The description gives a clear high-level purpose but is incomplete for a tool with no output schema, no parameter descriptions, and no annotations. The agent does not learn what the tool returns, how optional parameters behave, or whether scene and job_id are mutually exclusive or combinable.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate for the undocumented scene and job_id parameters. It only hints that a 'job' is involved via 'a job's translated MoonRay RDL' and never explains how scene maps to the described resources. The mapping is left mostly to inference.

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

    Purpose4/5

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

    The description uses a specific verb ('Inspect') and names concrete resources: source materials, textures, and a job's translated MoonRay RDL. This distinguishes it from siblings like inspect_scene and validate_scene, though the differentiation is implicit rather than explicit.

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

    Usage Guidelines2/5

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

    No guidance is given about when to use this tool versus siblings such as inspect_scene or validate_scene. There are no exclusions, prerequisites, or alternative routing hints, so the agent must infer usage entirely from the tool name and minimal description.

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

  • Behavior2/5

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

    With no annotations, the description carries the behavioral burden but only states the action and object. It does not disclose whether the render can be resumed, whether resources remain allocated, what happens if the render is not active, or any error behavior.

    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?

    A single, front-loaded sentence that states the action immediately and keeps the qualifiers ('native-host', 'MoonRay's Hydra delegate') brief. Every word contributes to identifying the tool's function.

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

    Completeness2/5

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

    For a state-changing tool with no annotations and no output schema, the description is too thin. It omits the relationship to resume_render/cancel_render and the meaning or source of job_id, leaving an agent to infer critical invocation context from sibling names.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not mention job_id or explain how to obtain it. The schema's title 'Job Id' provides the only clue, so the description adds no value for parameter understanding.

    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 uses a specific verb ('Pause') with a precise resource ('active native-host render') and names the technical path ('MoonRay's Hydra delegate'). This clearly distinguishes it from sibling operations like resume_render and cancel_render.

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

    Usage Guidelines2/5

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

    No guidance is given for when to use this tool versus alternatives such as cancel_render or resume_render. There is no mention of prerequisites (e.g., an active render started by start_render) or of the pause/resume lifecycle.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It confirms that resuming is a state-changing operation but does not mention whether it is asynchronous, what happens if the job is already running or invalid, whether it is idempotent, or what error conditions may occur.

    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?

    The description is a single front-loaded sentence with no filler, and it leads with the action before the target. It is concise, though it forgoes the opportunity to include a short usage condition or sibling reference.

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

    Completeness2/5

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

    For a no-annotation, no-output-schema tool, the description leaves out relevant operational context: how to know whether the job is in a resumable state, whether this differs from resume_from_checkpoint, and what happens after the call. A simple one-parameter tool does not need much, but the missing state and alternative guidance makes it incomplete.

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

    Parameters2/5

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

    Schema coverage is 0%, and the description does not compensate by explaining job_id semantics, format, or where to obtain it. The only implicit link is that job_id identifies the active native-host render to be resumed, which is already mostly inferable from the parameter title.

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

    Purpose4/5

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

    The description states a specific verb ('Resume') and a specific resource ('active native-host render'), so an agent can tell this is a continuation operation rather than start/cancel. It does not explicitly distinguish itself from the sibling resume_from_checkpoint, though 'active native-host render' hints at a live Hydra render rather than a checkpoint.

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

    Usage Guidelines3/5

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

    The word 'Resume' implies this tool should be used after a render has been paused or otherwise interrupted, and the phrase 'active native-host render' gives a rough precondition. However, it does not explicitly say 'use after pause_render' or discuss when not to use it, leaving the alternative routing to inference.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden of disclosing behavior. It usefully reveals that the render is asynchronous and returns immediately with a job ID, but it does not mention that a background job is created, that the operation can fail after returning, or how the job can be tracked or cancelled. Partial transparency only.

    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?

    The single sentence is front-loaded with the core action and return behavior, with no wasted words. It is efficient, though slightly too sparse to be maximally helpful.

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

    Completeness1/5

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

    This is a 10-parameter tool with no annotations, no output schema, and zero schema description coverage, yet the description only covers the start/return contract. It omits all optional parameter semantics and any guidance on how to monitor or manage the returned job, leaving the agent under-informed for a real invocation.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description mentions no parameters at all. With 10 parameters (including scene as required and options like samples, camera, backend, and checkpoint_interval_seconds), the agent receives no semantic help beyond parameter names and types, so the description fails to compensate for the schema gap.

    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 uses a specific verb ('Start') and a specific resource ('asynchronous MoonRay render') and clearly states the return value (job ID). This distinguishes it from sibling render-control tools like render_status or cancel_render, as well as interactive-viewer tools like launch_interactive_viewer.

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

    Usage Guidelines2/5

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

    There is no guidance on when to choose this tool over alternatives such as launch_interactive_viewer or render_preview, and no exclusions or conditions are stated. The word 'asynchronous' hints at batch use, but the agent is left to infer the selection criteria.

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

  • Behavior2/5

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

    With no annotations present, the description carries the full burden, yet it only states the operation's purpose. It does not disclose whether the operation is read-only, what side effects occur, how the camera is selected, or what output the agent should expect.

    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?

    The entire description is one front-loaded sentence with no wasted words. It states the main action, the target resource, and the useful camera-recommendation outcome efficiently.

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

    Completeness2/5

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

    For a tool with one parameter and no annotations or output schema, this is thin: it omits the expected response shape, what 'authored camera' means in practice, and any prerequisites such as a loaded or resolved USD stage. An agent could invoke it, but it would be guessing about behavior and return value.

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

    Parameters2/5

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

    Schema coverage is 0%, so the description must explain the lone 'scene' parameter; it adds only that the tool summarizes a 'USD stage,' giving a general domain but no format, path, or identifier requirements. The agent still has to guess what string value to pass beyond the parameter name.

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

    Purpose4/5

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

    The description names a specific action—'Summarize a USD stage'—and a concrete deliverable, 'recommend an authored camera for rendering,' so an agent can tell it apart from validation or material-inspection tools. It doesn't explicitly name sibling alternatives, so it misses the highest bar for differentiation.

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

    Usage Guidelines3/5

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

    The phrase 'for rendering' implies the tool is used when preparing a render needs a scene overview and a camera suggestion, but no explicit when-to-use or when-not-to-use guidance is provided. Siblings like validate_scene and inspect_materials are not mentioned, so the agent must infer routing.

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

  • Behavior2/5

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

    With no annotations, the description must carry the full burden of behavioral disclosure. It communicates that this is a preflight check rather than a final render, but it does not explain whether a test render is actually produced, whether the operation is read-only, what side effects may occur, or what the response looks like. The render-related parameters suggest possibly more than a pure schema check, but that is left ambiguous.

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

    Conciseness3/5

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

    The description is concise and front-loaded, with no wasted words. However, it is too sparse for a tool with 9 parameters and no annotations; the absence of necessary supporting context makes it under-sized rather than ideally concise.

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

    Completeness2/5

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

    The description captures the tool's core purpose but is incomplete for a complex invocation. It gives no sense of what a successful validation looks like, what the returned data contains, how the render-related parameters affect validation, or what 'preflight' actually evaluates. Given no output schema and no annotations, this leaves meaningful gaps for an agent.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description provides no parameter guidance. With 9 parameters including aov, backend, checkpoint_interval_seconds, samples, and denoise, an agent cannot infer the semantics of these fields from the description alone. The description does nothing to compensate for the schema's lack of documentation.

    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 uses a specific verb ('Preflight') and names the exact resource ('USD or RDL scene'). It also clearly positions the tool as a pre-render validation step, making it easy to distinguish from siblings like start_render or launch_interactive_viewer.

    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?

    'Before committing to a render' gives a clear context of when to use this tool. It does not explicitly name alternatives or exclusions, but the timing guidance is strong enough to route the agent toward validation before rendering.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden. It does disclose the core behavior and output formats, including the 'display-referred' PNG detail, which adds beyond the tool name. However, it does not mention where files are saved, whether the operation is synchronous or asynchronous, or whether it overwrites existing files.

    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?

    The description is a single, concise sentence with no filler. Every word contributes to explaining the action and the output formats, and the key information is front-loaded.

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

    Completeness2/5

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

    The tool has no annotations and no output schema, so the description must explain the operation and its effects. It covers the output formats but omits practical details such as where snapshots are written, what the tool returns after saving, and whether it requires an already-running viewer. This is a meaningful gap for an agent deciding how to invoke and interpret the result.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description does not explain the viewer_id parameter beyond implying the target viewer. This is minimal compensation for the lack of parameter documentation, though the single parameter's purpose is inferable from the tool context.

    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 uses a specific verb ('Save') and resource ('the viewer') and clearly states the output formats: a raw EXR and a display-referred PNG. This is distinct enough to separate it from sibling tools like capture_render_snapshot or interactive_viewer_preview.

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

    Usage Guidelines2/5

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

    There is no guidance about when to use this tool versus alternatives, nor any mention of prerequisites such as an active interactive viewer. The description simply states what the tool does without contextualizing it against sibling tools like capture_render_snapshot.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals that the tool requests a snapshot, but it does not disclose whether the call is blocking or asynchronous, whether it is read-only, whether a render must be actively running, or what the caller can expect in the response.

    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?

    The description is a single, front-loaded sentence with no filler. It introduces the action, the output type, and the scope without repeating schema information.

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

    Completeness2/5

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

    With no output schema and no annotations, the description should explain the return behavior and preconditions, but it leaves these implicit. The distinction from interactive-viewer snapshot tools is only implied through the phrase 'native-host render,' and no guidance is given about valid job states or failure cases.

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

    Parameters2/5

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

    The schema has a single required parameter, job_id, with 0% description coverage, and the description does not explain what job_id refers to or where the caller should obtain it. 'Native-host render' gives some context, but it does not compensate for the lack of parameter documentation.

    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 states a specific action ('Request'), a specific resource ('current-frame EXR and PNG preview'), and a specific context ('native-host render'). This clearly differentiates it from the sibling capture_interactive_viewer_snapshot, which targets an interactive viewer.

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

    Usage Guidelines3/5

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

    The phrase 'native-host render' provides a useful context cue that this tool is meant for render jobs rather than interactive viewer sessions, but it does not explicitly state when to use this tool over alternatives like capture_interactive_viewer_snapshot or render_preview, nor does it mention any exclusions or prerequisites.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the burden of explaining behavior. It states the input type, the comparison operation, and the output, which is useful but minimal. It does not disclose prerequisites, whether the operation is read-only, how channels affect the comparison, or what happens on mismatch/error.

    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?

    The description is a single, concise sentence that front-loads the core action and output. Every word earns its place, with no filler or redundancy.

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

    Completeness3/5

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

    The tool is simple and has an output schema, so return-value details are not required. However, the missing documentation for the channels parameter and the lack of usage guidance or alternative routing make the description only minimally complete for correct invocation.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It clarifies that reference and candidate are completed job IDs or image paths, but it does not explain the 'channels' parameter at all, even though it has a default of 'R,G,B' and is likely important for the comparison. This leaves one of three parameters effectively undocumented.

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

    Purpose4/5

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

    The description clearly states the action ('Compare two completed job IDs or image paths') and the result ('return a difference image'), so an agent knows what the tool does. It does not explicitly differentiate from sibling tools like run_comparison_manifest, but the purpose is specific enough to avoid confusion.

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

    Usage Guidelines3/5

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

    The description implies when to use the tool: when two completed job IDs or image paths need to be compared and a difference image is desired. However, it does not provide explicit guidance on when not to use it or mention alternatives such as run_comparison_manifest, leaving some inference to the agent.

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

  • Behavior2/5

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

    With no annotations, the description carries the behavioral disclosure burden, but it only hints at persistence via 'preserve aggregate results.' It does not disclose side effects, required setup, whether results are overwritten, authentication needs, or how output is accessed.

    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?

    A single sentence with no filler; every phrase ('Run', 'saved', 'image-comparison manifest', 'preserve aggregate results') contributes meaning and the core action is front-loaded.

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

    Completeness2/5

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

    For a tool with no output schema and no annotations, the description is too thin: it omits how results are preserved or returned, what the manifest string should contain, and how this differs from compare_renders. An agent could not reliably invoke it correctly from this description alone.

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

    Parameters2/5

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

    The schema only gives a string named 'manifest' with 0% description coverage. The description adds the minimal context that the manifest is saved and image-comparison related, but it does not specify whether the value is a path, ID, name, or inline content, leaving the agent without enough to populate the parameter correctly.

    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 states a specific action ('Run') on a specific resource ('a saved image-comparison manifest') and adds the outcome of preserving aggregate results. The phrase 'saved manifest' differentiates this from direct comparison tools like compare_renders.

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

    Usage Guidelines3/5

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

    The wording implies the tool is for executing previously saved comparison manifests, but it does not explicitly state when to choose it over sibling alternatives or list exclusions. No when-not-to-use guidance is provided.

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

  • Behavior3/5

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

    With no annotations, the description must carry the behavioral burden. 'Report whether... is still active' clearly signals a non-mutating status query, but it does not disclose behavior for invalid or stale viewer_id values, return format, or whether the status check can block or poll.

    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?

    The description is a single, front-loaded sentence with no filler. Every word contributes meaning, and it avoids repeating the tool name or schema fields.

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

    Completeness3/5

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

    For a simple one-parameter status check, the description conveys the core behavior. However, with no output schema and no annotations, it leaves gaps around the return value and viewer_id provenance, making it adequate but not fully complete.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description does not explain the viewer_id parameter beyond implying it identifies the viewer window. The parameter name is somewhat self-explanatory, but the description does not compensate for the lack of schema documentation with details on where the ID comes from or what values are valid.

    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 uses a specific verb ('Report') and a specific resource ('whether a standalone MoonRay viewer window is still active'). It clearly distinguishes this status-check tool from sibling tools like launch_interactive_viewer, stop_interactive_viewer, and capture_interactive_viewer_snapshot.

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

    Usage Guidelines2/5

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

    The description does not state when to use this tool versus alternatives, nor does it mention prerequisites such as obtaining a viewer_id from launch_interactive_viewer. Usage context is only implied by the tool's name and status-reporting behavior.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. 'Describe' strongly implies a read-only, non-mutating operation, which provides some behavioral clarity. However, it does not disclose return format, whether the call may be expensive, or any other side effects beyond the descriptive intent.

    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?

    The description is a single, tightly worded sentence with no filler. Every element—scene types, backend, reports, controls—earns its place by clarifying the tool's scope, and the main verb is front-loaded.

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

    Completeness3/5

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

    For a zero-parameter tool without an output schema, the description gives a reasonable outline of what the call will tell the agent. However, it is short on context such as when this capability report is useful, how it relates to health/resource checks, or what form the output takes, leaving some ambiguity about integration into an agent's decision flow.

    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?

    The tool has zero parameters and the schema is empty, so the baseline is 4. The description's enumeration of what will be described (scene types, backend, reports, controls) adds useful context even though there are no parameters to document.

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

    Purpose4/5

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

    The description uses a specific verb ('Describe') and a clear resource ('this build') and enumerates the content areas: scene types, backend, reports, and controls. It is distinguishable from sibling tools like moonray_health and moonray_resources because those target health and resources specifically, while this one covers general capabilities, though it doesn't explicitly compare itself to them.

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

    Usage Guidelines2/5

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

    No guidance is given about when to call this tool versus alternatives such as moonray_health, moonray_resources, or inspect_scene. The description implies it is useful for understanding build capabilities, but it never states a condition or context that would help an agent select it over siblings.

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

  • Behavior3/5

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

    With no annotations, the description carries the behavioral disclosure burden. 'Return' clearly signals a read-only operation, and the listed output categories are helpful. However, it does not disclose whether the job must be active, whether it can be polled repeatedly, or what happens for completed/failed renders.

    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?

    A single front-loaded sentence with zero filler. Every word adds useful information, and the structure is easy to scan.

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

    Completeness3/5

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

    For a simple read-only status tool the description lists the key return categories, but without an output schema, annotations, or sibling guidance it remains incomplete. An agent still lacks context about valid job_id states, polling semantics, and failure behavior.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description does not mention job_id at all. The parameter's purpose is inferable from its name, but the description adds no meaning about how the id is obtained, its format, or how it maps to a render job.

    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 uses a specific verb ('Return') and resource ('current phase, elapsed time, diagnostics, and output paths'), making it clear this is a render status query. The listed fields distinguish it from siblings like render_result, interactive_viewer_status, and render_preview without needing to inspect schemas.

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

    Usage Guidelines2/5

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

    No guidance is given on when to call this tool versus alternatives such as interactive_viewer_status, render_result, or cancel_render. There are no stated prerequisites, exclusions, or sibling differentiators beyond the implied status-polling use case.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It does convey the read-only nature ('Return') and the two-state behavior (live snapshot vs final preview), but it stays silent on failure modes, whether the call can block or refresh, and how 'newest' is determined. That is adequate but with clear gaps.

    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?

    One sentence, front-loaded with the action, and every word earns its place. The 'or' clause efficiently captures the two modes.

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

    Completeness3/5

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

    The presence of an output schema and a single required param lowers the burden, and the description covers the main mode distinction. But with no annotations and a sibling set containing interactive_viewer_preview, render_result, and capture_render_snapshot, the description lacks enough context to prevent selecting the wrong sibling.

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

    Parameters2/5

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

    The description never says what job_id refers to, how to obtain it, or how it relates to the live/final preview states. With schema_description_coverage at 0%, the description needed to compensate but does not; only the param title 'Job Id' gives any clue.

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

    Purpose4/5

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

    The description names a specific verb ('Return') and a concrete resource ('newest live snapshot' / 'final preview after completion'), so it clearly identifies a fetch operation tied to render progress. It does not explicitly distinguish itself from siblings such as interactive_viewer_preview or render_result, but the core purpose is unambiguous.

    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?

    It provides a clear conditional context: use it to get the latest live preview while a render runs, and the final preview after completion. It does not name exclusions or alternative tools, so it falls just short of full routing advice.

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

  • Behavior2/5

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

    No annotations are present, so the description carries full responsibility for disclosing behavior. It reveals the basic toggle action but omits behavioral context: whether the viewer must be running first, whether this affects only the current session, any side effects on rendering, or what happens if the viewer_id is invalid.

    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?

    A single sentence with no filler. The verb, target, and toggle behavior are all front-loaded and every word earns its place.

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

    Completeness3/5

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

    The description is minimally adequate for a simple two-parameter boolean setter: schema already supplies the required parameters and types. But with no annotations and no output schema, an agent still lacks guidance on preconditions and expected outcomes, such as whether an active viewer is required or what response indicates success.

    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 description coverage is 0%, so the description must compensate. It adds meaning by tying the action to 'live standalone viewer denoising' and clarifying 'on or off', which maps to the enabled boolean. However, it does not explicitly explain viewer_id, though that parameter is reasonably inferable from the tool name and context.

    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 uses a specific verb ('Turn') and names a clear resource ('live standalone viewer denoising') with an explicit binary action ('on or off'). This clearly distinguishes it from sibling tools like set_interactive_viewer_exposure or switch_interactive_viewer_aov.

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

    Usage Guidelines3/5

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

    The use case is implied by the action: call this when you want to explicitly enable or disable denoising in the live standalone viewer. However, it does not describe when this is appropriate versus alternatives, nor does it mention prerequisites such as an already-launched viewer.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Check...' without mentioning whether the operation is read-only, what it returns, potential side effects, or any dependencies. For a tool that likely inspects system state, this lack of detail leaves the agent guessing about the tool's behavior and output.

    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?

    The description is a single, focused sentence that states the action and scope with no unnecessary words. It is front-loaded with the core purpose and is easy to parse. Every word earns its place.

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

    Completeness3/5

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

    Given the tool has no parameters and no output schema, the description provides the basic purpose but omits key details such as the return format or how results should be interpreted. An agent may not know what to expect from the tool's response or how to act on it. The description is minimal and leaves room for ambiguity, especially without annotations to fill the gap.

    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?

    The tool has zero parameters, so the baseline is 4. The description does not need to explain parameters, and the empty schema provides no additional constraints. The description adequately covers the tool's input needs.

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

    Purpose4/5

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

    The description clearly states the action ('Check') and the specific resources (memory, disk, CPU load, conflicting renders) and the timing ('before launch'). It distinguishes itself from siblings by focusing on resource and conflict checks, although it does not explicitly name alternatives like moonray_health. The purpose is unambiguous and not a tautology.

    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?

    The description provides clear context for when to use the tool ('before launch'), indicating it is a pre-flight check. However, it does not explicitly state when not to use it or reference alternative tools, so it falls short of a 5. The contextual cue is sufficient for an agent to infer the appropriate usage.

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

  • Behavior3/5

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

    With no annotations, the description must disclose behavioral constraints on its own. It usefully restricts the operation to standalone viewers owned by the MCP process, preventing agents from attempting to close external viewers. Yet it does not describe error behavior for unknown or already-closed viewer IDs, whether closing is idempotent, or what result is returned.

    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?

    The entire description is one front-loaded sentence that states the action and its scope without filler. Every word earns its place; no unnecessary details are included.

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

    Completeness3/5

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

    For a one-parameter close operation this is minimally adequate, especially because 'owned by this MCP process' clarifies the applicable viewer set. However, with no output schema and no annotations, the description leaves the agent without guidance on return values, failure modes, or prerequisite checks such as verifying viewer status first.

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

    Parameters2/5

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

    The schema provides only a required 'viewer_id' string with no description (0% schema description coverage). The description does not mention viewer_id at all, leaving the agent to infer from the parameter name and tool name that it identifies the viewer to close; it does not explain where to obtain it or any expected format.

    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 uses a specific verb, 'Close,' and identifies the exact resource: 'a standalone MoonRay viewer owned by this MCP process.' This clearly separates the tool from sibling tools such as launch_interactive_viewer, set_interactive_viewer_exposure, and capture_interactive_viewer_snapshot, which perform different operations on the same resource type.

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

    Usage Guidelines3/5

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

    The phrase 'owned by this MCP process' implies the tool is for closing viewers that this process launched, giving some context. However, it does not explicitly state when to prefer this over alternatives, how to confirm a viewer is owned by the process, or what to do if the viewer is already closed.

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

  • Behavior3/5

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

    With no annotations provided, the description must carry the behavioral burden. It usefully discloses the valid exposure range and the fact that the operation targets the display of the standalone viewer, but it does not mention side effects, persistence, validation of out-of-range values, or the operation's response.

    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?

    A single, front-loaded sentence communicates the action, target, and constraint with no filler. Every word contributes meaning.

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

    Completeness3/5

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

    For a simple two-parameter setter, the description covers the core operation and range, but it lacks details on viewer_id semantics and post-call behavior. Given the absence of annotations and output schema, the information is adequate but not fully self-contained.

    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 description coverage is 0%, so the description must add parameter meaning. It explicitly communicates the exposure range, which goes beyond the bare schema, but it does not describe the viewer_id parameter or how to obtain it; viewer_id is only inferable from the tool name.

    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 uses a specific verb ('Set') and a precise resource ('live standalone viewer display exposure') with an explicit range of -20 to 20 stops. This clearly distinguishes it from sibling viewer controls like set_interactive_viewer_denoising or switch_interactive_viewer_aov.

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

    Usage Guidelines3/5

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

    The phrase 'live standalone viewer' gives some context about the target environment, but the description does not state when to prefer this over alternatives or mention any prerequisites. Usage is mostly implied by the tool name and target resource.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses that the tool switches AOVs, but does not mention prerequisites like whether the viewer must be running, side effects on the existing render state, or failure behavior. This is a significant gap for an action that mutates viewer state.

    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?

    The description is a single well-structured sentence with no filler. The action, target, and accepted values are all front-loaded and immediately actionable.

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

    Completeness3/5

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

    For a two-parameter switching tool, the description covers the core purpose and value domain. However, with no annotations and no output schema, it leaves the agent to infer prerequisites and behavioral effects, such as whether the viewer must already be launched and what happens if it is not live.

    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 0%, but the description compensates for the aov parameter by listing all meaningful values (beauty, albedo, normal, depth, wireframe). The viewer_id parameter is not explicitly explained, but it is reasonably clear from the term 'viewer' and the tool name.

    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 uses a specific verb ('Switch') and resource ('live standalone viewer') and enumerates the exact target values: beauty, albedo, normal, depth, or wireframe. This clearly distinguishes it from sibling tools like set_interactive_viewer_exposure or capture_interactive_viewer_snapshot.

    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?

    The phrase 'live standalone viewer' provides clear context for when this tool applies, and differentiates it from render-pipeline and snapshot/capture tools. It does not explicitly state when not to use it or name alternatives, but the intended usage is readily inferred.

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

  • Behavior4/5

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

    With no annotations, the description carries the full burden. It discloses a key behavioral trait: cancellation ensures no orphan process is left behind, which is beyond a simple 'cancel' statement. It doesn't cover error handling or reversibility, but the main side effect is addressed.

    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?

    The description is a single efficient sentence that fronts the core action ('Cancel a queued or active render') and adds a valuable behavioral guarantee. No wasted words.

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

    Completeness3/5

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

    The tool is simple (one param, no output schema), but the lack of parameter description means the agent may not fully understand how to specify the job_id. The description covers purpose and behavior but leaves the parameter semantics to inference, so it is not fully complete.

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

    Parameters2/5

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

    Schema coverage is 0%, and the description does not elaborate on the job_id parameter. It does not explain what job_id refers to or any format requirements. The agent must infer from context that it identifies the render job, but this is not explicitly stated.

    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 clearly states the tool cancels a queued or active render, specifying the verb (cancel) and resource (render). It also adds the nuance of avoiding orphan processes, which distinguishes it from just any cancellation. It distinguishes from sibling pause/resume by indicating a permanent stop.

    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?

    It provides clear context about when to use it (for queued or active renders) but does not explicitly mention alternatives like pause_render or state when not to use it. However, the context is sufficient for an agent to infer the use case.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

MoonRay MCP MCP server — quality and maintenance score on Glama

Copy to your README.md:

Score Badge

MoonRay MCP MCP server — quality and maintenance score on Glama

Copy to your README.md:

shields.io Endpoint

MoonRay MCP MCP server — quality and maintenance score on Glama

For READMEs with an existing badge row. Append &style=flat-square (or any other shields.io style) to match the rest, and &metric=tools, &metric=maintenance or &metric=claim to badge a different dimension.

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/tylerart3d/moonray_mcp'

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