Skip to main content
Glama

PixInsight Connector

An MCP connector that lets any AI agent operate PixInsight: about 80 PixInsight operations as tools, for chat sessions and the skills that guide them. New here? Start with the Quick start.

Community project, not affiliated with or endorsed by Pleiades Astrophoto. PixInsight® is a registered trademark of Pleiades Astrophoto S.L.

The principle: a toolbox, not a pipeline

The connector knows how to operate PixInsight, never what makes a good picture. No pipeline, no ordering, no recommended values, no verdicts: every tool takes the values that shape the image as inputs, and every measurement returns numbers. The knowledge (which tools, in what order, with which values, what counts as good enough) lives in skills: markdown in your own repositories, public or private.

%%{init: {'theme': 'base', 'flowchart': {'wrappingWidth': 400, 'curve': 'basis', 'padding': 18}, 'themeVariables': {'fontFamily': "-apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, Helvetica, Arial, sans-serif", 'lineColor': '#94a3b8', 'textColor': '#334155', 'edgeLabelBackground': '#e2e8f0'}}}%%
flowchart TB
    classDef know fill:#0f766e,stroke:#115e59,color:#f0fdfa,stroke-width:1px,rx:12,ry:12
    classDef harness fill:#475569,stroke:#334155,color:#f8fafc,stroke-width:1px,rx:12,ry:12
    classDef tool fill:#1e293b,stroke:#64748b,color:#f8fafc,stroke-width:1px,rx:12,ry:12
    classDef app fill:#e2e8f0,stroke:#94a3b8,color:#0f172a,stroke-width:1px
    You(["You, in a chat session"]):::know
    Skills("<b>The knowledge · yours</b><br/>your skills: order, values, quality gates<br/>kept in your own repositories"):::know
    Harness("<b>Any MCP agent harness</b><br/>Claude Code · Codex · Cursor · Gemini CLI · …"):::harness
    Tools("<b>The toolbox · this connector</b><br/>~80 PixInsight operations as MCP tools<br/>measurements return numbers, never verdicts"):::tool
    Bridge("<b>File bridge + watcher script</b><br/>starts PixInsight on the first call"):::tool
    PI(["PixInsight 1.9.5+"]):::app
    You --> Harness
    Skills -. guides .-> Harness
    Harness -- MCP tool calls --> Tools
    Tools --> Bridge
    Bridge <--> PI
    linkStyle default stroke:#8b949e,stroke-width:1.5px

Related MCP server: toolbridge-mcp-server

Install

Needs Node 22+ and PixInsight 1.9.5+. The same three steps work whether you or your agent runs them.

1. Install the connector from npm:

npm install -g pixinsight-connector

2. Register it with your agent harness as the MCP server pixinsight. Claude Code:

claude mcp add -s user pixinsight -- pixinsight-connector

Any harness configured with an mcpServers JSON file (Cursor, Windsurf, Gemini CLI, Claude Desktop, Cline, Kiro):

{ "mcpServers": { "pixinsight": { "command": "pixinsight-connector" } } }

Codex, OpenCode, VS Code and Zed use other shapes; each one, and where its file lives: docs/setup.md.

3. Check the machine:

pixinsight-connector doctor

PixInsight and its watcher script start on the first tool call; there is nothing else to launch. Upgrade with npm install -g pixinsight-connector@latest. Without installing, register npx -y pixinsight-connector as the command instead (npx fetches it from npm, so the first start needs the network). From pixinsight-mcp 1.x: point your pixinsight entry at pixinsight-connector (not a second server) and npm uninstall -g pixinsight-mcp.

Where files go

The tools work in a target folder: the one set_workspace names, else PIXINSIGHT_CONNECTOR_WORKSPACE, else the folder the harness started in. The connector writes only <target>/agentic/ (scratch, the bridge, call logs) and <target>/output/, never your home folder. Details and every environment variable: docs/setup.md.

Tools, packs and skills

  • Tools: 78, grouped as images, processes, channels, tone, detail, masks, stars, narrowband, astrometry, measurement, preview, PJSR execution, introspection and session. Full list: docs/tools.md.

  • Skills hold the technique. Companion skills (environment preflight, dataset intake, a basic LRGB flow): pixinsight-connector-skills. Have one that works? Add it to COMMUNITY.md.

  • Packs are ES modules that add or replace tools at startup, listed in PIXINSIGHT_CONNECTOR_PACKS. A pack is arbitrary code running with your privileges; only packs you configure load. See CONTRIBUTING.md.

  • Models: any with vision and reliable tool calling. Start with a Sonnet-class model (Claude Sonnet 5, GPT-6 Sol, Gemini 3.8 Flash), then try cheaper ones (GPT-6 Luna, GLM-5.3-Flash, DeepSeek V4.1 Flash): prices and the list are in docs/setup.md.

Contributing

A PixInsight capability with no tool yet is one module in src/tools/, no registry: CONTRIBUTING.md. Humans and agents are both welcome; npm test needs no PixInsight.

Cross-platform

macOS, Windows and Linux are all first-class, for running this connector and for developing it. A change that works on one OS and breaks another is a bug, not a limitation.

  • No shell pipelines. No ps, grep, awk, wc, df or && in src/ or in npm scripts. OS-specific behaviour goes behind src/platform.mjs (paths) or src/process-probe.mjs (process inspection), one implementation per OS.

  • No POSIX path literals. Use path.join. Use forward slashes only when handing a path to PixInsight, which accepts them everywhere.

  • CI runs the full suite on Linux, macOS and Windows. Green on one is not green.

  • Degrade, never fail. If an OS cannot supply something optional — a memory reading, a process start time — carry on without it. Never report it as a crash.

  • Overrides always win: PIXINSIGHT_BIN for the executable, PIXINSIGHT_DIR for the install root.

Tests need no PixInsight and no astronomy software, so you can develop on any of the three.

Troubleshooting

Run pixinsight-connector doctor first. Common symptoms and fixes: docs/troubleshooting.md.

Credit and license

This project began as aescaffre/pixinsight-mcp by Alain Escaffre; parts of the original file bridge and watcher script remain. MIT licensed: see LICENSE.

Available Tools

90 tools
align_filesA

Register image files onto a reference image file with StarAlignment, file to file (no views are opened). Targets run in batches of at most batch_size (20 at most), one StarAlignment execution per batch. Registered files (.xisf) go to output_dir, which must lie inside /output (a relative path is resolved there) or the state folder. matrix_only: StarAlignment in OutputMatrix mode, reporting the registration per target without keeping any image file; its output directory is a temporary folder under /agentic/scratch/align_files that is deleted afterwards, and any file written there is listed. Per target the result gives the outputData values StarAlignment reports (output file, star pair matches, errors, transformation elements, as this PixInsight names them). Runs without geometry confirmation dialogs.

ParametersJSON Schema
NameRequiredDescriptionDefault
overwriteNoOverwrite existing registered files (default false)
batch_sizeNoTargets per StarAlignment execution, 1 to 20 (default 20)
output_dirNoFolder for registered files: relative to <workspace>/output, or absolute inside <workspace>/output or the state folder. Not used with matrix_only
matrix_onlyNoCompute the registration only; keep no image files (default false)
target_filesYesAbsolute paths of the files to register
interpolationNoStarAlignment pixel interpolation; omitted, PixInsight's default
output_postfixNoSuffix of registered file names (default "_r")
reference_fileYesAbsolute path of the reference image file
distortion_correctionNoStarAlignment distortion correction; omitted, PixInsight's default

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses batching (one StarAlignment execution per batch, max 20), that files are written to output_dir, that matrix_only's temp folder under scratch is deleted afterwards, and that it runs without geometry confirmation dialogs. It stops short of stating required permissions or error handling, but side effects and write locations are covered.

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-loads the core purpose before the mode and directory details. It is dense and somewhat run-on toward the end (matrix_only and result-format clauses are long), but every sentence carries distinct operational information rather than filler.

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

Completeness4/5

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

For a 9-parameter mutation tool with no annotations and no output schema, it covers the essentials: where outputs land, the matrix_only deletion behavior, and what the per-target result contains (StarAlignment outputData values). Minor gaps remain around permissions and failure modes.

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 coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema: output_dir must lie inside <workspace>/output or the state folder, registered names follow <name><output_postfix>.xisf, and batch_size caps StarAlignment executions rather than just being a number.

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 verb and resource: 'Register image files onto a reference image file with StarAlignment, file to file (no views are opened).' The 'file to file / no views are opened' phrasing implicitly distinguishes it from view-based siblings like align_to_reference, so an agent can route correctly.

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 explains the matrix_only alternative mode and output_dir placement rules, which helps mode selection. However it never states when to pick align_files over siblings such as align_to_reference or reproject_to_reference, so cross-tool selection is left to inference.

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

align_to_referenceA

Align a target image to a reference image using StarAlignment. The target is replaced in place with the aligned version.

ParametersJSON Schema
NameRequiredDescriptionDefault
target_idYesTarget view ID (replaced with the aligned version)
reference_idYesReference view ID (not modified)

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral transparency burden. It explicitly discloses that the target is replaced in place, which is a critical side effect. It does not mention other behaviors like persistence or error conditions, but the core destructive action is covered.

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?

Two sentences, front-loaded with the action, and no filler. The side effect is stated immediately after the action.

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

Completeness4/5

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

The description is sufficient for a simple two-parameter mutation tool. It explains what happens to the target and that the reference is untouched (via schema), and no output schema exists. It could mention prerequisites like open images, but that is not essential given the schema descriptions.

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?

Both parameters are fully described in the input schema (target_id, reference_id) with 100% coverage. The tool description adds no additional parameter semantics beyond the schema, so the baseline of 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 verb ('align'), the resource ('target image to a reference image'), and the method ('StarAlignment'). No sibling tool performs alignment, so it is well-differentiated.

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 use when the agent wants to geometrically align one view to another, but it does not explicitly state conditions or alternatives. No exclusions or 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.

apply_maskA

Apply a mask to a target view. The mask protects areas where it is black (0) and allows processing where it is white (1). Use inverted=true to flip this.

ParametersJSON Schema
NameRequiredDescriptionDefault
mask_idYesMask view ID
invertedNoInvert the mask (default false)
target_idYesTarget view ID

TDQS

A3.5/5.0
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 disclosure burden. It does explain what the mask does to processing (protect black, allow white) and how inverted changes it, which is valuable. However, it does not disclose whether applying a mask replaces an existing mask, whether it is reversible, or what side effects occur on the target view.

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?

Two sentences with no fluff. The primary action and semantics are front-loaded, and the inverted guidance is a natural follow-up. Every sentence earns its place.

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

Completeness4/5

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

The description is sufficient for a simple masking operation: it explains what the mask does, how the target view is affected, and how to invert. It does not mention how this interacts with downstream processing tools, but the phrase 'allows processing where it is white' implies the intended workflow. Given no output schema and a simple parameter set, this is nearly complete.

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 input schema already describes all three parameters with 100% coverage, so the baseline is 3. The description adds meaning by clarifying the mask value semantics (0=black protects, 1=white allows) and explicitly linking inverted=true to flipping this behavior, which goes beyond the schema text.

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 verb and resource: applying a mask to a target view, and it explains the mask's semantics (black protects, white allows processing). It does not explicitly name a sibling alternative like remove_mask, but the core action is unambiguous enough to distinguish it from create/remove/close mask 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?

The description implies the tool is used to restrict processing on a view, but it gives no explicit when-to-use or when-not-to-use guidance. It mentions inverted=true, a parameter directive, but does not describe when to prefer this over related tools such as remove_mask or create_luminance_mask.

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

auto_stretchA

Stretch a view in place with PixInsight's auto-stretch (the ScreenTransferFunction Auto Stretch computation), applied as a HistogramTransformation. Per channel, sigma = 1.4826 × MAD (the median absolute deviation from the median). A channel whose median is below 0.5 gets shadows clipping c0 = median + shadows_clipping × sigma, clamped to [0,1] (0 when sigma is 0), and midtones balance m = MTF(target_bg, median − c0), where MTF(m, x) = (m − 1)·x / ((2m − 1)·x − m); a channel whose median is above 0.5 is treated as inverted: highlights clipping c1 = median − shadows_clipping × sigma (1 when sigma is 0) and m = MTF(c1 − median, target_bg). linked: one transform for R, G and B, with c0 (or c1) the mean over channels of the per-channel clipping points (a channel with sigma 0 adds 0, or 1 for c1) and the mean median in place of the median; the image is treated as inverted only when every channel median is above 0.5. The defaults of shadows_clipping, target_bg and linked are PixInsight's auto-stretch defaults. Fails, changing nothing, when the clipping point leaves no range for a midtones balance.

ParametersJSON Schema
NameRequiredDescriptionDefault
linkedNoColour images: true computes one transform for R, G and B; false computes one per channel. Ignored for mono images
view_idYesView ID to stretch
target_bgNoTarget background level, strictly between 0 and 1
shadows_clippingNoClipping point relative to the median, in units of sigma = 1.4826 × MAD

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly. It discloses the exact formula (sigma = 1.4826 × MAD), per-channel vs linked behavior, inversion handling, clamping behavior, defaults, and failure mode ('Fails, changing nothing, when the clipping point leaves no range'). This is exemplary behavioral disclosure.

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 dense and information-rich, with every sentence contributing algorithmic detail. It is front-loaded with the main action and then details the math. It is longer than ideal, but the complexity of the algorithm justifies the length. No wasted words, though the MTF formula could be seen as heavy for a tool description.

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?

Given the tool's complexity (4 params, no output schema, no annotations), the description is remarkably complete. It covers the algorithm, parameter semantics, edge cases (sigma 0, inverted channels, linked mode), defaults, and failure behavior. An agent has everything needed to invoke it correctly and predict outcomes.

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 coverage is 100%, so the baseline is 3. The description adds significant meaning beyond the schema: it explains how shadows_clipping and target_bg are used in the MTF formula, how linked affects the computation, and the exact role of each parameter. It doesn't explicitly restate each parameter's type/default, but the schema already covers that. The added algorithmic context elevates it above baseline.

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 verb ('Stretch a view in place') and resource (PixInsight's auto-stretch via ScreenTransferFunction/HistogramTransformation), and distinguishes it from generic stretch tools by specifying the exact algorithm. It clearly identifies what the tool does and how it differs from siblings like robust_median_stretch or stretch_stars.

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 explains the algorithm and defaults, and the schema notes 'linked' is ignored for mono images. It does not explicitly state when to use this tool versus alternatives like robust_median_stretch or stretch_stars, but the detailed algorithm description implies its use case (PixInsight auto-stretch). Clear context is provided, but no explicit exclusions or alternative routing.

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

cancel_jobA

Stop a job started by run_pjsr or run_pjsr_file with async. A job PixInsight has not started yet is removed and never runs. A running job is stopped at its next processEvents() call, where an error with MCP_CANCELLED ends the script; a native process call (a single long process, a file save) cannot be interrupted, so the stop takes effect after it returns, and what the script already changed stays changed. Without job_id: the running job. job_status reports the outcome.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idNoThe id run_pjsr returned. Omit for the running job.

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: a not-yet-started job is removed and never runs, a running job stops at its next processEvents() call with an MCP_CANCELLED error, native process calls cannot be interrupted, and already-applied changes persist. These are exactly the consequences an agent needs before invoking a destructive stop.

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 action, then layered with the important state-dependent behavior. It is longer than most definitions but nearly every clause conveys a distinct operational fact; the default-target sentence could be folded in more tightly.

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 parameterless-required cancellation tool with no output schema and no annotations, the description covers targeting, timing, interruption limits, and where to read the result. Nothing an agent needs to call it safely is missing.

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 the single parameter's description already states 'Omit for the running job,' which the prose merely restates. Baseline 3 applies since the schema does the work and the description adds no new syntax or format detail.

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 verb and resource ('Stop a job') and names exactly which tools create such jobs (run_pjsr, run_pjsr_file with async), so the agent can place it precisely among siblings. It also implicitly distinguishes itself from job_status, which reports rather than cancels.

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?

Explains the trigger condition (a job started asynchronously) and the two distinct states it applies to, plus routes the agent to job_status for the outcome. It does not name an explicit when-not-to-use case, but the context is unambiguous for a one-param tool.

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

catalog_starsA

List catalogue stars over a plate-solved view from PixInsight's local Gaia database: one Gaia search centred on the image, with a radius reaching its corners (plus margin_fraction), down to mag_limit. Per star: image x, y, RA, Dec, G, BP-RP where the catalogue has them, whether it falls inside the frame, and for in-frame stars the peak luminance in a 5x5 box (with saturated = peak >= saturation_level when that is given). data_release omitted: releases are asked get-info in the order DR3/SP, DR3, EDR3, DR2 and the earliest of them that reports valid is searched; a failed search is reported, not retried on another release. supplement adds stars the catalogue lacks (marked with their name); a Gaia star within merge_px of one is replaced by it. Sorted by G, brightest at the top. The full list is written to a JSON file under /agentic/scratch/catalog; the reply carries it inline up to 200 stars.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesPlate-solved view
merge_pxNoDistance in pixels within which a Gaia star is replaced by a supplement star (default 3)
mag_limitYesFaintest G magnitude listed
supplementNoStars to add: [{ra, dec, mag, name}] in degrees and catalogue-band magnitude
data_releaseNoGaia data release to search; omitted, the earliest valid one in the order DR3/SP, DR3, EDR3, DR2
margin_fractionNoExtra search radius as a fraction of the centre-to-corner radius (default 0.05)
saturation_levelNoPeak luminance at or above which an in-frame star is flagged saturated; omitted, no flag

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations to lean on, the description carries the full behavioral burden and does so well: it discloses the data-release fallback order and that failed searches are reported rather than retried, the supplement-merge behavior with merge_px replacement, the saturated flagging rule, the G-sorted order, and the 200-star inline limit with full output written to a scratch JSON file. Failure semantics and side effects are unusually explicit.

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 purpose and search scope are front-loaded, and despite being a single dense paragraph, each clause conveys distinct information (search geometry, returned fields, release fallback, supplements, ordering, output destination). It is long but justified by the tool's complexity, with only minor packing of multiple ideas per sentence.

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 7-parameter tool with a nested supplement array and no output schema, the description fully compensates by enumerating the returned per-star fields (x, y, RA, Dec, G, BP-RP, in-frame status, peak luminance, saturation) and the file/inline output behavior. An agent has everything needed to invoke and interpret the call correctly.

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 coverage is already 100%, so the schema documents each parameter, but the description adds real semantic value beyond it: it clarifies that margin_fraction extends the center-to-corner radius, that merge_px governs replacement of a Gaia star by a supplement star, that saturation_level drives the saturated flag, and that an omitted data_release triggers an ordered fallback. This meaningfully enriches several parameters.

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

Purpose5/5

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

The description names a specific verb and resource ('List catalogue stars over a plate-solved view from PixInsight's local Gaia database') and specifies the exact scope (one Gaia search centered on the image with a corner-reaching radius). This is clearly distinguishable from siblings like measure_stars or measure_star_layer, which measure detected stars rather than querying a Gaia catalogue.

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?

Usage is implied through the precondition that the view must be plate-solved, but the description never states when to prefer this over alternatives such as measure_stars or run_plate_solve workflows. No explicit exclusions or alternative routing are given, leaving the agent to infer the use case from context.

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

clone_imageA

Clone an image to a backup view, which can be restored from later with restore_from_clone. The clone keeps the image's FITS keywords, astrometric solution and view properties.

ParametersJSON Schema
NameRequiredDescriptionDefault
clone_idYesName for the clone
source_idYesSource view ID

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden, and it does disclose real behavior: the clone preserves FITS keywords, astrometric solution and view properties, implying a faithful copy that leaves the source intact. It doesn't cover cost, memory duplication, or any workspace/permission constraints, so it stops short of full disclosure.

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?

Two tight sentences: the purpose and restore path come first, then the preserved attributes. Every clause carries information and nothing is redundant.

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

Completeness4/5

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

With only two documented parameters and no output schema, the description covers what the tool produces (a restorable backup view) and what it preserves. It omits whether the clone appears as a new open view or where it lives in the workspace, a minor gap for a low-complexity tool.

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 100% (both source_id and clone_id are documented), so the schema already does the heavy lifting. The description adds only the implicit framing of clone_id as a view name via 'backup view,' which is marginal beyond the schema.

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 verb (clone) and resource (image) and defines the outcome (a backup view). It also names the complementary sibling restore_from_clone, so an agent can distinguish this tool from other image-manipulation tools without opening a schema.

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 clearly frames the use case — creating a backup you intend to restore later — and points at restore_from_clone as the paired operation. There is no explicit when-not guidance or note about prerequisites, keeping it just below a 5.

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

close_imageA

Close an image window to free memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesView ID to close

TDQS

A3.5/5.0
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 states the outcome ('free memory') but does not mention whether closing is irreversible, whether unsaved changes are affected, or any side effects on related views, clones, or masks.

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 no filler. Every word contributes meaning: the action, the target resource, and the purpose are all present.

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 tool, the description is close to sufficient. However, since there are no annotations and no output schema, a note on how to obtain view_id (e.g., via list_open_images) or the irreversible nature of closing would improve completeness.

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?

The schema fully documents view_id with 'View ID to close', so the parameter meaning is already clear. The description adds a slight mapping between 'image window' and view_id, but no extra format, source, or usage nuance beyond the schema.

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 verb ('Close'), a clear resource ('image window'), and a rationale ('to free memory'). It is immediately distinguishable from sibling tools like close_mask and open_image.

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 an image window should be closed to release memory. However, it provides no explicit guidance about alternatives, such as using close_mask for masks, or what not to use this tool for.

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

close_maskA

Close and delete a mask window to free memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
mask_idYesMask view ID to close

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It discloses that the operation is destructive ('delete') and why it exists (free memory), which covers the key trait. However, it omits details like irreversibility, potential errors for invalid mask_id, or any effect on the underlying image, leaving some unknowns.

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 10-word sentence that is front-loaded with the primary action and resource, immediately followed by the purpose. Every word earns its place; there is no redundant terminology or filler.

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

Completeness4/5

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

For a simple one-parameter tool with full schema coverage and no output schema, the description provides everything an agent needs to invoke it correctly: what action to take, on what resource, and why. The only minor gap is absence of a note on side effects beyond memory usage, but that does not hinder correct use.

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 100% — 'mask_id' is already documented as 'Mask view ID to close'. The description's mention of 'mask window' aligns with the schema but adds no new semantic detail beyond what the input schema already provides, hence the baseline score.

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 explicit action verbs 'close and delete' with a specific resource ('mask window') and even states the purpose ('to free memory'). This clearly differentiates it from siblings like remove_mask or close_image, making the tool's unique role unambiguous.

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 'to free memory' implies a usage context (when the mask window is no longer needed and resources should be released), but the description does not explicitly state when to choose this tool over alternatives such as close_image or remove_mask, nor does it provide exclusions.

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

combine_channelsA

Combine 3 mono views into a single RGB color image using ChannelCombination. All 3 views must have identical dimensions. Returns the view ID of the combined image.

ParametersJSON Schema
NameRequiredDescriptionDefault
b_view_idYesBlue channel view ID
g_view_idYesGreen channel view ID
output_idYesDesired output view ID (the combined image is renamed to this)
r_view_idYesRed channel view ID

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It discloses the dimension precondition and the return value, but doesn't state whether the input views are modified or destroyed, or whether the operation is reversible. It implies creation of a new view (via 'renamed to'), but doesn't explicitly confirm the inputs are untouched. This is minimal but not misleading.

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 three short sentences, front-loaded with the purpose, then the constraint, then the return value. There is no fluff or redundant information. Every sentence earns its place.

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

Completeness4/5

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

Given the simplicity of the tool (4 required params, no output schema, no annotations), the description covers the essential points: purpose, constraint, and return. It doesn't mention error conditions or side effects, but those are implied by the dimension constraint. Compared to the calibration example for update_drive (which lacked permissions and reversibility), this is more complete because it gives the return and the key precondition. It's sufficient for an agent to call it correctly.

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 schema covers all parameters with descriptions (100% coverage), but the tool description adds a cross-parameter constraint: all three view IDs must have identical dimensions. This is not in the schema and adds meaning beyond what the schema provides. The description also clarifies the return value, which relates to the output_id parameter. So it adds value beyond the schema.

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 verb (Combine), the resource (3 mono views), the result (single RGB color image), and the method (ChannelCombination). It also names the return value. This clearly distinguishes it from siblings like lrgb_combine, which combines luminance with color, and create_luminance_mask, which does something different.

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 implies the tool is used when you have three mono views of identical dimensions and want to combine them into RGB. It doesn't explicitly mention alternatives or exclusions, but the purpose is clear enough that an agent would know when to select it. However, it doesn't say 'use this instead of lrgb_combine' or 'not for combining luminance', so it's not fully explicit.

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

compare_imagesA

Compare two open views of the same width, height and channel count, pixel by pixel, over the whole image or a rectangle. Per channel: maximum, mean and 99th-percentile absolute difference, and the fraction of samples outside [0, 1] in each view. "identical" is true when every absolute difference is 0. The 99th percentile is taken over at most 2,000,000 evenly spaced samples (p99Samples says how many); maximum and mean use every sample. Neither view is changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
rectNoOptional region [x0, y0, x1, y1] in pixels, x1/y1 exclusive
view_idYesFirst view (A)
reference_idYesSecond view (B), compared against A

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that neither view is mutated, that maximum and mean use every sample while p99 is taken over at most 2,000,000 evenly spaced samples, and defines when "identical" is true. It omits any note on error behavior for mismatched views, keeping it short of a 5.

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 core action, then the metrics, then the sampling caveat and the non-mutation guarantee in a single efficient closing sentence. Dense but every clause carries information; the nested quantifier/percentile detail is a touch heavy but justified.

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?

There is no output schema, so the description must explain return values — and it enumerates them: per-channel max, mean, 99th-percentile absolute difference, fraction outside [0, 1], the "identical" flag, and p99Samples. An agent knows exactly what it will get back.

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 100%, so the schema already documents view_id, reference_id, and rect (including exclusive x1/y1). The description restates the whole-image-vs-rectangle choice and defines A/B roles implicitly, adding only marginal meaning beyond the schema — the baseline 3.

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 precise verb and resource — pixel-by-pixel comparison of two open views — plus the dimensional precondition (same width, height, channel count). This clearly distinguishes it from siblings like get_image_stats or measure_sharpness, which operate on a single view.

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 conveys the applicable context (two open views of matching geometry, whole image or a rect) but never explicitly says when to pick this tool over alternatives or what to do if the views differ in size. Usage is implied rather than stated, so it lands at minimum-viable.

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

continuous_clampA

Compress bright values in place above a knee that varies per pixel. A luminance image (Rec.709 weights for colour) is blurred with a Gaussian of sigma blur_sigma and divided by its maximum, giving L in [0,1]; the knee is min_clamp + (max_clamp − min_clamp)·(1 − L), so it equals min_clamp where L = 1 and max_clamp where L = 0. mode soft: a value above the knee becomes knee + headroom·(1 − exp(−rate·(value − knee)/headroom)); mode hard: min(value, knee). The same expression is applied to every channel and the result is truncated to [0,1].

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYessoft: exponential compression above the knee; hard: values above the knee are set to the knee
rateNoSoft mode, required there: steepness of the exponential compression
view_idYesTarget view to clamp (modified in place)
headroomNoSoft mode, required there: the most the output can exceed the knee
max_clampYesKnee where the blurred luminance is 0
min_clampYesKnee where the blurred luminance is at its maximum
blur_sigmaNoGaussian blur sigma of the luminance mask, in pixels; omitted = max(60, round(image width / 100))

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and fully pays it: it reveals in-place mutation, Rec.709 luminance weighting, Gaussian blur normalization, the exact knee formula, both mode equations, per-channel application, and final truncation to [0,1].

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 main intent is front-loaded, and the remaining sentences are dense with necessary mathematical detail rather than filler. Despite its length, it is an efficient specification for a complex operation.

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?

The algorithmic behavior and all seven parameters are covered, and in-place modification makes a return-value description less important. The formula, modes, parameter roles, and side effects are self-contained enough for an agent to invoke the tool correctly.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds substantial parameter meaning: it maps min_clamp/max_clamp to the knee endpoints, explains blur_sigma's role in the mask, and defines how rate and headroom shape the soft-mode curve. This goes well beyond the short schema descriptions.

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 opening sentence states a specific verb and resource: it compresses bright values in place above a per-pixel knee. The detailed luminance/blur/knee formula further distinguishes this from generic curve/clamp siblings, so an agent can tell exactly what it does.

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 gives no when-to-use guidance or alternatives. It never says when continuous_clamp should be chosen over run_curves, run_pixelmath, or auto_stretch, and it does not mention prerequisites or excluded cases.

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

continuum_subtract_haA

Subtract the scaled R channel of an RGB view from an Ha view, in place. Ha = max(0, Ha - continuum_factor * R). Runs as 64-bit PixelMath truncated to [0,1]; reports the new median and max.

ParametersJSON Schema
NameRequiredDescriptionDefault
ha_idYesHa view (mono), modified in place
rgb_idYesRGB view whose R channel is subtracted (same dimensions)
continuum_factorYesMultiplier on R subtracted from Ha

TDQS

A3.8/5.0
Behavior4/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, and it does well: it discloses in-place mutation, the exact mathematical operation, 64-bit PixelMath execution, truncation to [0,1], and the reported median and max. It does not cover failure modes, but core behavior is clearly visible.

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?

Two dense sentences capture the operation, the exact formula, the processing mode, and the result reporting. There is no filler, and the action is front-loaded.

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

Completeness4/5

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

Given no annotations and no output schema, the description provides enough operational detail to invoke the tool: the in-place target, the source channel, the factor semantics, numeric clamping, and the reported outputs. It omits explicit error cases and alternative-selection guidance, but is otherwise complete.

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 100%, so the baseline is 3. The description reinforces the meaning of continuum_factor and the roles of ha_id and rgb_id through the formula, but adds little beyond what the schema already states.

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 precise verb and resource: subtract the scaled R channel from an Ha view, in place. The explicit formula Ha = max(0, Ha - continuum_factor * R) makes the operation unambiguous and distinguishes it from related narrowband tools like ha_inject_red.

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 gives no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. With a large sibling set containing similar narrowband operations, an agent gets no routing help beyond inferring from the formula.

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

copy_astrometric_solutionA

Copy the astrometric solution (WCS) and observation keywords from a source image file to a target view. Source and target must have the same dimensions; the target's pixels are unchanged.

ParametersJSON Schema
NameRequiredDescriptionDefault
target_idYesTarget view ID to receive the WCS
source_fileYesAbsolute path to the source image file that carries the WCS

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It discloses that the target's pixels are unchanged and that dimensions must match, which is useful. However, it doesn't state whether the target's existing WCS is overwritten, whether observation keywords are merged or replaced, or whether the source file must be open. These are meaningful behavioral gaps for a metadata-mutation tool.

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?

Two sentences, no filler. The core action is front-loaded, the constraint is stated, and the non-destructive nature is clarified. Every sentence 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?

For a 2-parameter tool with full schema coverage, the description is mostly complete. The main gaps are behavioral: overwrite semantics for existing WCS/keywords and whether the source must be an open image or just a file path. These are relevant for an agent deciding whether to call this tool and what to expect afterward.

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 100%, so the schema already documents both parameters. The description adds the relationship between them (source carries the WCS, target receives it) and the dimension constraint, but doesn't add format or path details beyond the schema. Baseline 3 is appropriate.

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 verb ('Copy'), a specific resource ('astrometric solution (WCS) and observation keywords'), and the source/target relationship. It also clarifies what is NOT copied ('the target's pixels are unchanged'), which distinguishes it from image-copying tools like clone_image or crop_image.

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 gives a clear precondition ('Source and target must have the same dimensions') and implies the use case: transferring WCS/observation metadata from a file to a view. It doesn't explicitly name alternatives like run_plate_solve, but the sibling list shows plate solving is the alternative for creating a WCS, while this tool copies an existing one. The context is clear enough for an agent to select it.

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

create_adaptive_zone_masksA

Create three masks from percentiles of the image's own luminance. Subject pixels are those brighter than the background median + 5 MAD, sampled inside a circle of radius 0.35 * min(width, height) around their brightness-weighted centroid. Core = above the subject percentile 85 + 10 * core_bias; shell = a triangular ramp between the 25th percentile and the core level, peaking at their midpoint; outer = subject level up to the 25th percentile. Each is feathered over 20 px outside the circle and Gaussian-blurred with sigma 5, 10 and 20. Creates views azone_core, azone_shell and azone_outer, replacing views of those names; fewer than 50 sampled subject pixels is an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesSource view the masks are computed from
core_biasNoPosition of the core threshold on its 0-1 scale: 0 = percentile 85, 1 = percentile 95 (default 0.5, the middle of the scale)

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly. It discloses the exact mathematical thresholds (median + 5 MAD, percentile 85 + 10 * core_bias), the sampling circle radius, feathering and blur parameters, the fact that it replaces existing views of those names, and the error condition (fewer than 50 sampled subject pixels). This is exemplary behavioral disclosure.

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 dense and information-rich, with every sentence contributing a specific algorithmic detail. It is front-loaded with the core purpose and then details the mask construction. It could be slightly more structured (e.g., separating the error condition), but it is appropriately sized for the complexity.

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?

Given the tool's complexity (three masks, multiple thresholds, blur, view replacement), the description is remarkably complete. It covers inputs, algorithm, outputs, side effects (replacing views), and error conditions. No output schema exists, but the description fully explains what the tool creates, so nothing critical is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining how core_bias shifts the core threshold on the percentile scale (0 = percentile 85, 1 = percentile 95) and how view_id is the source for the masks. It doesn't restate the schema but enriches it with the algorithm's 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 states a specific verb ('Create') and resource ('three masks from percentiles of the image's own luminance'), and names the exact output views (azone_core, azone_shell, azone_outer). It clearly distinguishes itself from the sibling create_zone_masks by specifying the adaptive, luminance-based algorithm and the three named outputs.

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 implies when to use this tool: when you need adaptive zone masks based on the image's own luminance distribution. It does not explicitly state when not to use it or name alternatives like create_zone_masks, but the detailed algorithm and output names make the usage context clear. A brief exclusion note would push it to 5.

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

create_luminance_maskB

Create a luminance mask from a color view: Y = 0.2126R + 0.7152G + 0.0722B, then an optional blur and shadow clip.

ParametersJSON Schema
NameRequiredDescriptionDefault
blurNoBlur sigma applied to the mask (default 5)
gammaNoGamma curve applied to the mask (default 1.0)
mask_idYesName for the mask
clip_lowNoShadow clip threshold, below which the mask is 0 (default 0.10)
source_idYesSource color view ID

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden. It discloses the mathematical operation and optional processing steps (blur and shadow clip), which is useful. However, it doesn't mention that this creates a new mask view (mutation), potential side effects on existing masks, or whether the operation is reversible. Basic behavioral context is present but not comprehensive.

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 that packs the core formula, optional processing, and the purpose. It is efficient and begins with the primary action. Could arguably be split for readability, but it's not verbose.

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 5 parameters, no output schema, and no annotations, the description is reasonably complete for a creation tool. It explains the main calculation and optional post-processing, but lacks details on what happens to existing masks, potential required prerequisites (e.g., a color view must be open), and clear usage context. It's sufficient but not exhaustive.

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%, so parameters are already documented. The description adds formula details (Y = 0.2126R + 0.7152G + 0.0722B) and mentions blur and shadow clip, which map to blur and clip_low parameters. But it doesn't explain the gamma parameter or how the shadow clip threshold is applied beyond the schema's description. Baseline 3 is appropriate since schema covers most semantics.

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?

States a specific verb, resource (luminance mask), and the underlying math formula, plus optional blur and shadow clip. It distinguishes from create_zone_masks and create_adaptive_zone_masks by implying a luminance-based mask rather than zone masks, though it doesn't explicitly name the difference.

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 on when to use this tool versus alternatives like create_adaptive_zone_masks or create_synthetic_luminance. The description implies a use case (creating a luminance mask from a color view) but doesn't state when it's preferred or when to avoid it.

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

create_synthetic_luminanceA

Create a mono view from a weighted sum of Ha and OIII. It is ha_weight * Ha + oiii_weight * OIII, replacing any view of that name; with max_value the result is min(…, max_value); it is then truncated to [0,1]. Reports the new view's median and max.

ParametersJSON Schema
NameRequiredDescriptionDefault
ha_idYesHa view (mono)
oiii_idYesOIII view (mono, same dimensions)
ha_weightYesMultiplier on Ha
max_valueNoOptional: upper cap on the result. Omitted = truncation to [0,1] only
output_idNoName of the view to create; omitted = SYNTH_L
oiii_weightYesMultiplier on OIII

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses the exact calculation, the replacement of an existing view of the same name, the optional max_value cap, truncation to [0,1], and the reported median/max statistics. This is substantive but stops short of describing edge cases or 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?

The description is compact and front-loaded: the first sentence states the purpose and formula, and the second covers capping, truncation, and output reporting. Every sentence contributes meaningful information without redundancy.

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

Completeness4/5

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

For a 6-parameter tool with no output schema, the description covers the core formula, optional cap, truncation behavior, view replacement, default naming, and returned statistics. It is nearly complete; only minor details like handling of invalid dimensions or negative weights are absent, but these are inferable from the schema.

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 coverage is 100%, so the baseline is 3, but the description adds real meaning by explaining how ha_weight and oiii_weight combine, how max_value caps the result, and the default output name. This goes beyond the schema's field-level descriptions.

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 tool creates a mono view from a weighted sum of Ha and OIII, with a precise formula. It does not explicitly compare itself to sibling tools such as lrgb_combine or pixelmath_new_image, so it lacks explicit sibling differentiation.

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 provides no guidance on when to use this tool versus alternatives like lrgb_combine, pixelmath_new_image, or other view-creation tools. The intended use is only implied by the formula and the tool name, not stated explicitly.

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

create_zone_masksA

Create core, shell and halo masks from three fixed luminance thresholds. Luminance is the Rec.709 luma of a color view, the samples of a gray one: core = above core_clip, shell = shell_clip to core_clip, halo = halo_clip to shell_clip, each ramped linearly from 0 to 1 across its band and Gaussian-blurred with sigma 8, 12 and 20. Creates views mask_core, mask_shell and mask_halo, replacing views of those names. Requires halo_clip < shell_clip < core_clip < 1.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesSource view the masks are computed from
core_clipYesLuminance above which a pixel is in the core mask (0-1)
halo_clipYesLuminance above which a pixel, up to shell_clip, is in the halo mask (0-1)
shell_clipYesLuminance above which a pixel, up to core_clip, is in the shell mask (0-1)

TDQS

A4.5/5.0
Behavior5/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 goes well beyond the schema by explaining how masks are computed, that they are linearly ramped and Gaussian-blurred with specific sigmas, and that views mask_core, mask_shell, and mask_halo are created and replaced. This is unusually transparent about 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?

The description is dense but efficient: the first sentence states the core action, the second provides the algorithm details, and the final sentence states the required constraint. Every clause contributes useful information with no filler.

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 tool with no output schema and no annotations, the description is remarkably complete. It names the output views, describes the computation, discloses the replacement behavior, and mandates the threshold ordering. An agent has enough to invoke it correctly.

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 100%, so the baseline is 3. The description reinforces the parameter meanings by mapping each clip threshold to its band, but it does not add substantial new meaning beyond the schema's own parameter descriptions.

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 leads with a specific verb and resource: 'Create core, shell and halo masks from three fixed luminance thresholds.' It clearly distinguishes this tool from sibling tools like create_adaptive_zone_masks by emphasizing 'fixed' thresholds and naming the exact masks produced.

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 operational context: it defines the three threshold bands, the linear ramp, the Gaussian blur sigmas, and the required ordering halo_clip < shell_clip < core_clip < 1. It does not explicitly name alternatives or state when not to use it, but the 'fixed thresholds' phrasing implies the contrast with an adaptive sibling.

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

crop_imageA

Crop pixels off the edges of an image, in place. Amounts are pixels to remove from each side. All four amounts 0 (or omitted) runs nothing and leaves the image, and its astrometric solution, unchanged. Crop runs with noGUIMessages, so PixInsight writes its warnings to the Process Console instead of opening a confirmation dialog. A crop deletes the image's astrometric solution (PixInsight behaviour); the result says when one was removed.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoPixels to remove from the top edge
leftNoPixels to remove from the left edge
rightNoPixels to remove from the right edge
bottomNoPixels to remove from the bottom edge
view_idYesView ID to crop

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses in-place mutation, the noGUIMessages behavior routing warnings to the Process Console, and the destructive side effect of deleting the astrometric solution. It stops short of stating limits (e.g., cropping past image bounds) or auth/permission needs, so not a 5.

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?

Four sentences, each carrying distinct payload, with the core operation front-loaded before the side-effect details. Slightly dense but no filler.

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

Completeness4/5

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

For a mutation tool with no annotations and no output schema, the description covers the important behaviors (in-place edit, astrometric-solution loss, no-op case) and hints at the result reporting a removed solution. Missing only edge-case limits and failure conditions.

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 coverage is 100%, giving a baseline of 3, and the description adds real meaning: it clarifies the amounts are pixels removed per side and that the zero/omitted default across all four amounts produces no change. This relational/edge-case semantics goes beyond the per-field schema text.

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 verb (crop) and resource (image edges), plus the scope constraint 'in place.' An agent can distinguish it from siblings like resample_image or reproject_to_reference without opening any schema.

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?

It describes the no-op case (all amounts 0 or omitted leaves the image unchanged), which is useful behavioral guidance, but never names an alternative tool or states when to prefer this over resampling/reprojecting. Usage context is only implied.

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

describe_processA

Describe one PixInsight process by its PJSR constructor name: whether it can run on a view and/or globally, its current parameter values and their types, and any named numeric constants it exposes for those parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPJSR process constructor name, e.g. "SCNR".

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It conveys that the tool is introspective ('Describe... whether it can run...') and lists what data is inspected, which implies a read-only operation. However, it never explicitly states that it does not execute or modify the process, and it does not describe error behavior for unknown constructor names.

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, information-dense sentence with no filler. The core action and scoping ('Describe one PixInsight process by its PJSR constructor name') are front-loaded, and every subsequent clause adds a distinct piece of expected output.

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

Completeness4/5

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

For a one-parameter introspection tool with no output schema, the description does a good job enumerating what will be returned: view/global execution capability, parameter values/types, and named constants. It would be more complete if it stated the result format or behavior for invalid/unavailable process names, but an agent can still call the tool correctly from this description.

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 100%, so the schema already defines 'name' as a PJSR process constructor name. The description repeats this and adds only a concrete example ('SCNR') and a link to the returned information, which is helpful but not substantial new semantic content.

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, 'Describe', and a specific resource, 'one PixInsight process by its PJSR constructor name'. It enumerates the exact information returned (view/global run capability, parameter values/types, numeric constants), which clearly differentiates it from execution-oriented siblings like run_process or enumeration-oriented list_processes.

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 usage guidance is given. The description does not say when to prefer describe_process over list_processes, run_process, or run_pjsr, nor does it mention any prerequisites or common scenarios such as inspecting a process before running it. The agent is left to infer the tool's role from its name and output description.

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

dynamic_narrowband_blendA

Add Ha and OIII (mono views) to an RGB view in place, through a temporary luminance mask. R += ha_strength * Ha; B += oiii_strength * OIII; G += f * ha_strength * g_ha_fraction * Ha + (1 - f) * g_strength * OIII, with f = (OIIIHa)^(1-OIIIHa). Each channel above max_output becomes max_output + (x - max_output) * rolloff. The mask is the Rec.709 luminance of the target, Gaussian-blurred with sigma mask_blur, then 0 below mask_clip and (x - mask_clip) / (1 - mask_clip) above it; it is removed afterwards. Runs as 64-bit PixelMath truncated to [0,1]; reports the median and the R and B maxima.

ParametersJSON Schema
NameRequiredDescriptionDefault
ha_idYesHa view (mono, same dimensions)
oiii_idYesOIII view (mono, same dimensions)
rolloffYesFraction of the excess above max_output that is kept
mask_blurYesGaussian sigma (pixels) of the luminance mask blur
mask_clipYesMask level below which the blend does not apply; 0 = no clip
target_idYesTarget RGB view, modified in place
g_strengthYesMultiplier on OIII in the G term
max_outputYesPer-channel level above which the soft clamp compresses
ha_strengthYesMultiplier on Ha added to R
g_ha_fractionYesFraction of ha_strength applied to Ha in the G term
oiii_strengthYesMultiplier on OIII added to B

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description fully carries the transparency burden and succeeds: it discloses that the target is modified in place, the mask is temporary and removed afterward, the computation runs in 64-bit PixelMath truncated to [0,1], and it reports median and channel maxima. This is exactly the kind of behavioral context an agent needs.

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 dense but every sentence earns its place: summary, explicit channel formulas, soft-clamp behavior, mask construction, mask removal, numeric precision, and output reporting. No filler, no redundancy, and the most important behavioral facts come first.

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 an 11-required-parameter tool with no annotations and no output schema, this description is remarkably complete. It fully specifies the algorithm, the mask lifecycle, the numeric domain, and the reported output values, leaving no critical ambiguity for an agent deciding whether and how to invoke it.

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

Parameters5/5

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

Although schema coverage is 100%, the description significantly enriches parameter meaning by embedding each parameter in the actual equations (e.g., g_ha_fraction's role in the G term, rolloff as the fraction of excess kept, mask_blur as Gaussian sigma). This bridges the gap between telling an agent what a parameter is and how it behaves.

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 opens with a precise statement: 'Add Ha and OIII (mono views) to an RGB view in place, through a temporary luminance mask.' This names the specific operation, resources, and mechanism, and is clearly distinguishable from siblings like ha_inject_red or lrgb_combine.

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 detailed math and mask behavior make the intended use context unambiguous: this is the tool for a dynamic Ha+OIII blend into RGB with a luminance mask. However, it does not explicitly compare itself to alternatives (e.g., ha_inject_red, synthetic luminance) or state when not to use it, so it falls short of a 5.

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

ensure_dirA

Create a folder, with any missing parents, inside the workspace's output folder or state folder. A relative path is resolved under /output; an absolute one must lie inside /output or the state folder (/agentic by default), and a path anywhere else is refused. An existing folder is left as it is. Returns the absolute path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFolder path: relative to <workspace>/output, or absolute inside <workspace>/output or the state folder

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so well: it discloses parent creation, relative vs. absolute path resolution, refusal of out-of-scope paths, idempotent behavior for existing folders, and the return value.

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

Conciseness5/5

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

Three tightly written sentences with no waste. The core action and path behavior are front-loaded, and the return value is stated last as useful closing information.

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 one-parameter directory-creation tool with no annotations and no output schema, the description is complete: it covers path rules, idempotency, side effects, and the return value. Nothing essential for correct invocation is missing.

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 100%, so the single parameter is already fully documented in the schema. The description reinforces the path rules but adds no syntax or format details beyond what the schema provides, making the baseline 3 appropriate.

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 gives a specific verb and resource: create a folder, including missing parents, within the workspace output or state folder. It is unambiguous and clearly distinguishable from the many process-running and image-operation siblings.

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 clearly states the allowed path scopes and that paths outside them are refused, plus that an existing folder is left alone. It does not explicitly name alternatives or say when this tool should be preferred over other filesystem-related tools, but the usage context is clear.

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

export_imageA

Write an image to a file in the workspace's output or state folder. A relative file_path is resolved under /output; an absolute one must lie inside /output or the state folder (/agentic by default), and a path anywhere else is refused. Format comes from the extension: .tif/.tiff, .png, .jpg/.jpeg, .xisf, .fits. TIFF and PNG default to 16-bit, JPEG to 8-bit; use 32 for float. The file keeps the image's FITS keywords, astrometric solution and view properties (formats that cannot store them drop them). The working image is not changed. Missing parent folders are created.

ParametersJSON Schema
NameRequiredDescriptionDefault
bitsNoSample depth for tif/png/xisf/fits (default 16 for tif/png, 32 otherwise)
view_idYesView ID to export
file_pathYesOutput file path: relative to <workspace>/output, or absolute inside <workspace>/output or the state folder

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so well: it discloses the path sandbox and refusal behavior, that the working image is unchanged, that parent folders are auto-created, and that FITS keywords/astrometric solutions/view properties are preserved or dropped depending on format. These are non-obvious behavioral traits an agent needs.

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?

It is a dense single paragraph but every sentence carries load and the core action is front-loaded. Length is justified by the amount of genuinely useful constraint detail, though it could be split for readability.

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?

No output schema or annotations exist, and the description fully compensates by covering path rules, format-from-extension mapping, bit-depth defaults, metadata preservation, and non-mutation of the source image. Nothing an agent needs to call it correctly appears missing.

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

Parameters4/5

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

Schema coverage is already 100%, so the baseline is 3, but the description adds real meaning: relative paths resolve under <workspace>/output, absolute paths must lie in output or the state folder, and bit-depth defaults per format map onto the 'bits' enum. It goes beyond restating the schema.

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 opens with a specific verb and resource: "Write an image to a file in the workspace's output or state folder," which clearly distinguishes it from read-only image tools and from preview siblings like save_preview. An agent can identify the core action without opening the schema.

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?

It gives detailed conditional rules for path resolution and format selection, which implicitly guides correct invocation, but it never states when to prefer this tool over alternatives such as save_preview or save_and_show_preview. Usage is implied rather than explicitly contrasted against siblings.

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

extract_pseudo_oiiiA

Create a mono view from the B channel of an RGB view minus its scaled R channel. OIII = max(0, B - continuum_factor * R); any view of that name is replaced. Reports the new view's median and max.

ParametersJSON Schema
NameRequiredDescriptionDefault
rgb_idYesSource RGB view
output_idNoName of the view to create; omitted = OIII_pseudo
continuum_factorYesMultiplier on R subtracted from B

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It transparently warns that any existing view of the target name is replaced, explains the clipping behavior, and states that median and max are reported. It does not state whether the source view remains untouched, but the creation semantics imply it.

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

Conciseness5/5

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

Three short sentences: the first states the action, the second gives the formula and destruction warning, and the third states what is returned. There is no filler and no unnecessary restatement of the schema.

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

Completeness4/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 provides the algorithm, the destructive side effect, and the returned statistics. The only missing context is a prerequisite that the source view be a valid RGB view, which is lightly implied by the schema parameter description.

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 coverage is 100%, so the baseline is 3. The description adds meaning by tying continuum_factor to the formula, clarifying output_id replacement when the view already exists, and explaining that the result is mono and clipped, which goes beyond the raw parameter 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 operation ('Create a mono view'), gives the exact formula (max(0, B - continuum_factor * R)), and states the output type. It does not explicitly differentiate from siblings like continuum_subtract_ha, but the B-minus-scaled-R formula makes the intent clear.

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 gives a clear algorithm and result, so the use case (extracting pseudo-OIII from an RGB view) is inferable. It does not, however, state when to prefer this over sibling tools such as continuum_subtract_ha or dynamic_narrowband_blend, so explicit routing guidance is missing.

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

find_filtersA

Search PixInsight's built-in filter and camera QE database by name (case-insensitive substring). A grouped name also matches each name it stands for ("Sony IMX411/455/461/533/571" matches "IMX533"); results are ordered exact name, then substring, then grouped-name matches. Use it to pick exact names for run_spfc or run_spcc. Sensor QE curves have channel Q.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoe.g. "Astronomik", "Ha", "IMX533", "Chroma"
channelNoOptional: R, G, B, L, PAN (multiband OSC) or Q (sensor QE)

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses case-insensitive substring matching, grouped-name expansion with a concrete example, result ordering (exact, substring, grouped), and that Q channel curves are returned. It does not mention cost, limits, or result size, but for a read-only search this is substantial.

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?

Four tight sentences, front-loaded with what and how it matches, then the routing advice, then a niche detail. No filler.

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

Completeness4/5

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

For a two-param read-only lookup with no output schema, the description covers matching behavior, ordering, and when to use it. It could say what a result row contains (name only? name+QE curve?), which would matter for an agent parsing the response, but nothing essential is missing.

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

Parameters4/5

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

Schema coverage is already 100% with examples for both params, so baseline is 3; the description adds real meaning beyond the schema, namely the case-insensitive substring semantics of 'query' and the grouped-name matching rule, plus the Q-channel note relevant to 'channel'.

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?

Names a specific verb (search) and resource (PixInsight's built-in filter and camera QE database) with the exact lookup key (name, case-insensitive substring). An agent can distinguish it from all the run_*/measure_* siblings at a glance.

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?

Explicitly states the purpose: 'Use it to pick exact names for run_spfc or run_spcc,' which maps this lookup tool onto the two downstream tools that consume its output. It does not state when-not to use it, but for a benign lookup tool the context is clear.

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

get_image_dimensionsA

Get dimensions, channel count, and color status for one or more views. Every channel must have identical dimensions before ChannelCombination.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idsYesView IDs to check

TDQS

A4/5.0
Behavior3/5

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

There are no annotations, so the description carries the behavioral burden. The verb 'Get' signals a read-only operation, and the output scope is clear, but the description does not disclose behavior for missing/invalid view IDs, whether multiple views are validated independently, or what 'color status' precisely means. For a simple getter this is acceptable but not richly transparent.

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 two sentences, front-loads the main function, and then adds a single high-value domain constraint. Every sentence earns its place; there is no fluff or repetition of the schema.

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

Completeness4/5

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

For a single-parameter read-only tool with no output schema, the description is largely sufficient: it states the resource, scope, and an important use condition. It could mention error behavior or return shape, but those are minor for this simple API.

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 100% for the only parameter, view_ids, with the schema already saying 'View IDs to check.' The description adds that it works for 'one or more views' and connects the parameter to the ChannelCombination precondition, but it does not add significant format or semantics beyond the schema.

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 and resource: 'Get dimensions, channel count, and color status for one or more views.' This clearly identifies what the tool returns and is distinct from sibling tools like combine_channels or get_image_stats, so an agent can select it accurately without open the schema.

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 gives a concrete usage context: 'Every channel must have identical dimensions before ChannelCombination,' which implies this tool is the right precondition check before combine_channels. It does not explicitly name alternatives or say when not to use it, so it stops short of full routing guidance.

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

get_image_statsB

Get image statistics: median, MAD, min, max, per-channel medians, and per channel the fraction of samples at exactly 0 and at exactly 1 (clampFractions).

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesPixInsight view ID

TDQS

B3.4/5.0
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. It discloses what is computed (median, MAD, min/max, per-channel medians, clampFractions), which is meaningful behavioral detail, but says nothing about cost, whether the view must be open, or side effects. Adequate but leaves gaps for a no-annotation tool.

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 lists the verb, resource, and all returned statistics with zero padding. Every clause earns its place.

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

Completeness4/5

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

With no output schema, the description compensates by enumerating the exact returned values including the non-obvious clampFractions. It is close to complete for a read-only stats tool, missing only access/prerequisite context.

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?

Only one parameter (view_id) and schema description coverage is 100%, with the schema documenting it as a PixInsight view ID. The description adds no further parameter meaning, which matches the baseline when the schema does the work.

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?

States a specific verb (get) and resource (image statistics) and enumerates the exact statistics returned. It is distinct from measurement siblings like measure_sharpness or measure_saturation, though it does not explicitly say how it differs from 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?

There is no guidance on when to prefer this tool over the many measure_* siblings (measure_core_clipping, measure_clipped_blocks, etc.), nor any prerequisites such as the view needing to be open. Usage is only implied by the tool name and stat list.

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

ha_inject_luminanceA

Raise the luminance of an RGB view in place where Ha exceeds it, keeping colour ratios. With Y the Rec.709 luminance, each channel is multiplied by (Y + strength * max(Ha - Y, 0)) / Y. Runs as 64-bit PixelMath truncated to [0,1].

ParametersJSON Schema
NameRequiredDescriptionDefault
ha_idYesHa view (mono, same dimensions)
strengthYesFraction of the Ha excess over the luminance that is added
target_idYesTarget RGB view, modified in place

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden, and it does well: it discloses in-place modification, the exact per-channel formula, 64-bit PixelMath execution, and truncation to [0,1]. It does not mention edge cases like no-op behavior when Ha never exceeds Y, but the core mutation behavior is transparent.

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 compact and front-loaded with the purpose, then gives the formula and execution detail. Every sentence carries meaningful information; there is no filler or redundancy.

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

Completeness4/5

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

For a three-parameter in-place transform with no output schema, the description is nearly complete: it defines the operation, the math, the precision, and the clipping behavior. A minor gap is that it does not state prerequisites like the target being an open RGB view or the result of the in-place operation, though these are partially implied by the schema.

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 100%, so the schema already documents all three parameters clearly. The description adds the formula context around 'strength' and the Rec.709 luminance definition, but it does not substantially enrich parameter meaning beyond the schema.

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 verb ('Raise the luminance'), a precise resource ('an RGB view'), and the exact condition ('where Ha exceeds it'). It distinguishes itself from sibling ha_inject_red by targeting luminance while preserving colour ratios, so an agent can tell them apart.

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 explains the mechanism but gives no explicit guidance on when to use this tool versus alternatives like ha_inject_red, extract_pseudo_oiii, or create_synthetic_luminance. Usage context is only implied by the mathematical behavior, not stated.

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

ha_inject_redA

Add Ha to the red channel of an RGB view in place, where Ha exceeds R by a given fraction. Where Ha > R * (1 + brightness_limit), R becomes R + strength * (Ha - R); elsewhere R, and G and B everywhere, are unchanged. With max_output and rolloff, R above max_output becomes max_output + (R - max_output) * rolloff. Runs as 64-bit PixelMath truncated to [0,1]; reports the new R maximum and the image median and max.

ParametersJSON Schema
NameRequiredDescriptionDefault
ha_idYesHa view (mono, same dimensions)
rolloffNoFraction of the excess above max_output that is kept; given together with max_output
strengthYesFraction of the Ha excess over R added to R
target_idYesTarget RGB view, modified in place
max_outputNoOptional: R level above which the soft clamp compresses; given together with rolloff. Omitted = no clamp
brightness_limitYesHa is added only where Ha > R * (1 + brightness_limit)

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses that the operation modifies the target in place, runs as 64-bit PixelMath truncated to [0,1], and reports the new R maximum and image median/max. With no annotations provided, this is substantial behavioral disclosure. It could add side-effect warnings (e.g., irreversible modification) but the in-place mutation is already stated.

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

Conciseness5/5

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

Three sentences, each dense with information: the core transformation, the optional clamp, and the execution/reporting behavior. No filler or repetition of schema content.

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

Completeness4/5

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

For a 6-parameter mutation tool with no output schema and no annotations, the description covers the transformation, the optional clamp, the in-place behavior, and the reported outputs. It does not explicitly state prerequisites (e.g., matching dimensions, mono Ha view) but the schema already notes 'same dimensions' for ha_id. The main gap is lack of explicit warning about irreversibility, but the in-place statement covers the critical part.

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 100%, so the schema already documents all six parameters. The description adds the formula context that ties the parameters together (e.g., how strength and brightness_limit interact), but it does not add per-parameter details beyond the schema. Baseline 3 is appropriate.

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 verb ('Add Ha to the red channel'), the resource (RGB view), the condition (where Ha exceeds R by a given fraction), and the exact transformation formula. It clearly distinguishes itself from the sibling ha_inject_luminance by targeting the red channel rather than luminance.

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 explains the mathematical condition and the optional clamp behavior, giving an agent enough context to decide when to use it. It does not explicitly name alternatives or state when not to use it, but the precise formula and the sibling name ha_inject_luminance make the intended use case clear.

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

inspect_environmentA

Report what this PixInsight installation has, by asking PixInsight. gaia: Gaia get-info for DR2, EDR3, DR3 and DR3/SP (valid, database files, magnitude range, mean spectra) and a 0.1-degree search on the lowest valid release. mars: one MultiscaleGradientCorrection run per MARS file (from PixInsight settings, or mars_files) on a temporary synthetic plate-solved image; per file: readable, missing or corrupt, and how many MARS reference images cover the probe position. xterminators: BlurXTerminator, NoiseXTerminator and StarXTerminator run once each on a temporary 64x64 image; reports version, ML model version and gpu/cpu from their console banner (null when not printed). system: free and total memory, free space on the workspace volume. Temporary images are closed; open images are not touched. Without ra_deg/dec_deg the probe position is RA 0, Dec 0 and coverage is reported as null.

ParametersJSON Schema
NameRequiredDescriptionDefault
ra_degNoProbe position right ascension, degrees [0, 360). Given with dec_deg.
dec_degNoProbe position declination, degrees [-90, 90]. Given with ra_deg.
sectionsNoSections to run (default: all)
mars_filesNoAbsolute .xmars paths to test instead of the configured ones

TDQS

A4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses side effects (temporary synthetic/64x64 images are created and then closed), an explicit safety guarantee ('open images are not touched'), per-file error semantics (readable/missing/corrupt), and the null-coverage fallback when ra_deg/dec_deg are omitted. This is exactly the behavioral context an agent needs.

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 core purpose, then one clause-group per section, so the structure is scannable despite being a dense single paragraph. It is appropriately sized for a four-section diagnostic, though the run-on enumeration of per-section behaviour could be tightened.

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

Completeness4/5

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

No output schema exists, so the description must describe return content, and it mostly does: magnitudes/spectra for gaia, per-file status and coverage for mars, version/model/gpu-cpu for xterminators, memory and disk for system. A few return details (e.g. precise field names, failure modes when PixInsight sections error) remain implicit, keeping it short of a 5.

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 coverage is already 100%, so baseline is 3, but the description adds real meaning: it explains that sections default to all, that mars_files overrides the configured MARS files, and that omitting the ra/dec pair makes the probe position (0,0) and coverage null. This goes beyond the schema text.

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?

States a clear specific verb and resource: 'Report what this PixInsight installation has', and enumerates exactly what is probed (gaia, mars, xterminators, system). It is easy to distinguish from measure_* tools, but it never names its closest siblings (pixinsight_info, workspace_info, list_packs), leaving differentiation to inference.

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 this is a one-shot diagnostic and explains each section's behavior, but it never states when to run it versus alternatives like pixinsight_info or workspace_info, nor any prerequisites or warnings about cost. Usage context is implied rather than stated.

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

job_statusA

Report on a job started by run_pjsr or run_pjsr_file with async: its state (queued, running, ending = stopped in PixInsight with its result not yet collected, done, failed, cancelled, stopped), elapsed time, seconds since the running script last called processEvents(), its latest mcpProgress() text, and, once it has ended, its result or error and PixInsight console errors. Without job_id: the running job, else the most recent one. Read-only; it does not use PixInsight, so it answers while a job runs.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idNoThe id run_pjsr returned. Omit for the running or most recent job.

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it declares the tool read-only, explains that it does not use PixInsight and therefore answers while a job runs, and enumerates every state value plus the ancillary data (elapsed time, processEvents interval, mcpProgress text, result/error, console errors).

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 dense but well-structured sentence lists the return fields, followed by a short default-behavior sentence and a short read-only caveat; nothing is redundant, though the first sentence is long enough to be slightly heavy.

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?

There is no output schema and no annotations, so the description must cover both behavior and return shape; it does, describing the state set, timing metrics, progress text, and terminal result/error content. Nothing an agent needs to call it correctly is missing.

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 100% and the single job_id parameter is fully documented there. The description's note that omitting job_id returns the running or most recent job restates the schema rather than adding format or ID-provenance 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?

The description names a specific verb (report on) and resource (a job started by run_pjsr/run_pjsr_file with async), and enumerates the exact fields reported, so an agent can distinguish it from cancel_job or wbpp_status without opening any schema.

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 gives a clear trigger (a job started by run_pjsr or run_pjsr_file using async) and explains the no-argument default behavior. It never names an explicit alternative sibling (e.g., cancel_job, wbpp_status) or states when not to use it, so it falls short of full routing guidance.

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

linear_fitB

Run LinearFit to scale a linear image to match a reference view. The reference is not modified.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesPixInsight view identifier.
reject_lowNoLow rejection threshold.
reject_highNoHigh rejection threshold.
reference_idYesReference view ID.

TDQS

B3.2/5.0
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. It only states that the reference is not modified, but it never states that the target view is modified in place, what happens to rejection thresholds, or how failures are reported. This is a meaningful transparency gap for a process that likely mutates the input view.

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 two sentences with no wasted words. The primary action is stated first, and the important caveat about the reference view is included succinctly.

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?

This is a mutating process with no annotations and no output schema, so the description must do more. It omits whether the target view is changed in place, what the result of the operation is, and any guidance on how reject_low/reject_high affect the fit. The description is too sparse to fully support correct invocation.

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 100%, so the schema already documents all four parameters and their defaults. The description adds only the conceptual purpose of view_id and reference_id ('match a reference view') but no additional format, interaction, or edge-case details, so the baseline 3 is appropriate.

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 names a specific process (LinearFit), states its action ('scale a linear image'), and identifies the target/reference relationship. It also distinguishes an important boundary ('The reference is not modified'). It does not explicitly differentiate from the similarly named sibling align_to_reference, but the 'scale' wording implies intensity matching.

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 provides a clear context for when to use the tool: when a linear image needs intensity scaling to match a reference view. However, it gives no when-not-to-use guidance and does not explicitly route away from sibling tools such as align_to_reference, leaving the comparison to inference.

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

list_open_imagesA

List all currently open images in PixInsight with their dimensions and color status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. 'List' makes the read-only nature clear, and the description states what data is returned. It does not discuss empty states, ordering, or failure behavior, but these are minor for a simple inventory operation.

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 sentence with no filler. It front-loads the action and resource, and every word contributes useful information.

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

Completeness4/5

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

For a zero-parameter, read-only list operation, the description is nearly complete: it identifies the resource and the returned attributes. It does not describe output serialization or edge-case behavior, but these are not necessary for correct invocation.

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 input schema is empty, so there are no parameter semantics for the description to add. It correctly avoids inventing parameters, and the zero-parameter baseline of 4 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?

The description states a specific verb and resource: 'List all currently open images in PixInsight'. It also specifies the returned data ('dimensions and color status'), and this distinguishes it from sibling tools like get_image_dimensions, which target a single image.

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 usage context is implied: use this tool when you need an inventory of open images. However, the description does not explicitly state when to prefer this over alternatives such as get_image_dimensions or workspace_info, and it gives no exclusions or routing guidance.

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

list_packsA

List the runtime tool packs discovered at server startup, with load status, tool counts, why any pack was skipped, and which core tools packs replaced. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations at all, the description carries the transparency burden and does so well: it explicitly declares 'Read-only' and notes that the listing reflects server startup discovery, implying a static snapshot rather than live state. It also pre-announces the diagnostic content (load status, why skipped), which sets expectations beyond the empty schema.

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 well-structured sentence that front-loads the primary purpose, then adds the specific details in a parallel clause and closes with a one-word safety qualifier. Every segment earns its place and there is no filler.

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 zero-parameter, read-only listing tool with no output schema, the description is sufficient: it specifies the full scope of returned information (status, counts, skip reasons, replacements) and the read-only nature. An agent can invoke and interpret the result without needing further clarification.

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 input schema is an empty object with 100% schema description coverage, so the baseline for parameter semantics is 4. The description reinforces that no input is needed by focusing entirely on the returned information.

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

Purpose5/5

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

The description names the resource ('runtime tool packs discovered at server startup'), a specific action ('List'), and enumerates the exact information returned (load status, tool counts, skip reasons, replaced core tools). This clearly distinguishes it from sibling tools like list_processes or workspace_info, which target different resources.

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 makes the tool's intended context clear by scoping it to startup-discovered runtime tool packs, so an agent knows when it applies. However, it does not explicitly name alternatives such as list_processes or pixinsight_info or state when not to use this tool, leaving that distinction implicit.

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

list_processesA

List every PixInsight process available on this installation, by its PJSR constructor name (e.g. "SCNR", "PixelMath"). Read-only; classifies by prototype chain and never instantiates a process to build the list.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden, and it explicitly discloses that the operation is read-only, that it classifies by prototype chain, and that it never instantiates a process. This goes beyond the basic 'list' phrasing and gives meaningful behavioral assurance.

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 two sentences: the first states the purpose and output, the second adds behavioral detail. There is no filler, and the most important information is front-loaded.

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 zero-parameter, read-only listing tool with no output schema, the description is complete. It explains what is listed, the output format, examples, and the internal method, which gives an agent everything needed to invoke and interpret the tool correctly.

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 an empty input schema, so the description does not need to explain parameter meanings. The description adds useful context about what the returned names represent, which is sufficient for a no-parameter tool.

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 the exact action ('List every PixInsight process available on this installation') and the output format ('PJSR constructor name'), with concrete examples like 'SCNR' and 'PixelMath'. This clearly distinguishes it from sibling tools such as list_open_images or describe_process, which operate on different resources.

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 makes it clear that this tool is for enumerating all installed processes, which is a distinct use case. It does not explicitly name alternative tools or exclusion criteria, but the context and scope are clear enough for an agent to select it when needing the full process list.

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

lrgb_combineA

Replace the lightness of an RGB view with a grayscale L view using LRGBCombination, in place on the RGB view. Only the L channel is enabled, so the RGB view keeps its own color channels. lightness and saturation are LRGBCombination's transfer-function midtones balances mL and mc (0.5 leaves that component unchanged). When linear_fit_reject_high is given, the call also runs LinearFit on the L view (modified in place, ahead of the combination) against a temporary luminance image 0.2126 R + 0.7152 G + 0.0722 B of the RGB view; when it is omitted, no LinearFit runs. Chrominance noise reduction and highlight clipping are left at PixInsight's defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault
l_idYesGrayscale luminance view ID with the same dimensions as rgb_id
rgb_idYesRGB color view ID (modified in place)
lightnessYesMidtones balance of the lightness transfer function (LRGBCombination mL), 0 to 1
saturationYesMidtones balance of the saturation transfer function (LRGBCombination mc), 0 to 1
linear_fit_reject_highNoLinearFit rejectHigh for the fit of L to the RGB luminance; omitted = no LinearFit

TDQS

A4.5/5.0
Behavior5/5

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

Despite no annotations, the description discloses key behaviors: in-place modification of the RGB view, the conditional LinearFit on the L view (with a modified-in-place note), the effect of lightness/saturation values (0.5 leaves unchanged), and that chrominance noise reduction and highlight clipping remain at defaults. This is thorough and goes beyond basic parameter descriptions.

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 dense and well-structured, with each sentence adding new information. It front-loads the primary purpose, then clarifies channel behavior, parameter semantics, conditional logic, and defaults. No repetition or fluff; all parts contribute to understanding.

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

Completeness4/5

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

For a tool without an output schema, the description covers the operation, side effects, and parameter behavior thoroughly. However, it does not explicitly state what the tool returns or whether it returns a modified view or a status. Given its in-place nature, this is a minor gap, but with no output schema, a note on return behavior would make it fully complete.

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

Parameters5/5

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

While schema coverage is 100%, the description adds significant meaning beyond the schema. It explains the relationship of lightness and saturation to mL/mc, the neutral value 0.5, and provides a detailed explanation of the optional linear_fit_reject_high parameter (what it does, what it fits against, and the coefficient formula). This is invaluable for correct invocation.

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 action ('Replace the lightness of an RGB view with a grayscale L view') and the specific process (LRGBCombination). It is unambiguous about the operation and distinguishes it from generic combine tools by describing the in-place modification and the L channel handling.

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 explains the operation but does not explicitly state when to use this tool over alternatives. It mentions conditional behavior for the optional parameter, but no direct comparison to sibling tools (e.g., combine_channels, run_pixelmath). Usage context is implied through the detailed description.

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

measure_bright_chromaA

Measure chroma, (max - min) / max, of the bright pixels of a colour view: every 8th pixel whose mean of R, G and B is above brightness_threshold. Returns JSON: median_chroma, mean_chroma, p25_chroma, p75_chroma, bright_pixel_count. A mono view is an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesColour view to measure
brightness_thresholdYesMean of R, G and B above which a pixel is measured

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full disclosure burden, and it succeeds: it reveals the sampling scheme (every 8th pixel), the selection condition, the exact return JSON keys, and the mono-view error condition. This gives an agent a clear model of what will happen when the tool is invoked.

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?

Two sentences deliver the essential information with no filler: formula, pixel filtering, output shape, and error condition. The metric definition is front-loaded and the return format follows logically.

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?

Despite having no output schema, the description lists the exact JSON fields returned. Both required parameters are documented, the sampling behavior is specified, and the only obvious error case (mono view) is stated. For a simple read-only measurement tool with two parameters, this is complete.

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?

The input schema already covers both parameters with 100% description coverage, so the baseline is 3. The description largely restates the schema's meaning for brightness_threshold and view_id, adding only the sampling behavior rather than new per-parameter semantics.

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

Purpose5/5

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

The description names a specific operation (measure chroma), a precise metric formula ((max - min) / max), a target population (bright pixels in a colour view), and an explicit sampling rule (every 8th pixel). This clearly differentiates it from sibling measurement tools and leaves no ambiguity about what the tool does.

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?

Usage is reasonably implied: call this when you need chroma statistics from bright pixels of a colour view, and the description explicitly warns that a mono view is an error. However, it does not compare against similar siblings such as measure_saturation or measure_uniformity, nor does it state when one should be chosen over another.

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

measure_clipped_blocksA

Count image blocks with pixels above a level. Tiles the image in block_size px blocks and samples every 3rd pixel; a sample counts when its luminance or any channel is above level, and a block counts when more than block_fraction of its samples do. Returns JSON: blocks_over, total_blocks, locations (up to 10 counted blocks in descending fraction order: x, y, fraction). luminance is 0.2126R + 0.7152G + 0.0722B.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYesPixel level; a sample whose luminance or any channel is above it counts
view_idYesView to measure
block_sizeNoBlock edge in pixels (default 50)
block_fractionYesFraction of a block's samples (0-1) that must be above level for the block to count

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly. It discloses the sampling strategy (every 3rd pixel), the counting condition (luminance or any channel above level), the block_fraction threshold, and the exact JSON return format including the luminance formula. This provides an agent with full visibility into the tool's behavior and approximation nature.

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, dense paragraph that efficiently conveys the purpose, algorithm, and output. It is front-loaded with the core purpose and then details the method and return format. While not overly long, it packs a lot of information; it could be slightly more structured with bullets but remains readable and concise.

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?

Given the tool's complexity (tiling, sampling, threshold, output), the description covers all essential aspects: the algorithm, the parameters, the output schema (even without an output schema, it explains the JSON fields), and the luminance formula. An agent has everything needed to call this tool correctly and interpret results. No major gaps identified.

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 coverage is 100%, so all parameters are described. The description adds significant value by explaining how parameters interact: block_size default (50), block_fraction as a 0-1 fraction, and the sampling rule that ties level to the counting condition. This goes beyond the schema's basic descriptions and clarifies the algorithm's dependency on these inputs.

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 a specific verb (count) and resource (image blocks above a level). It distinguishes from sibling measurement tools by specifying the exact counting method and output structure. An agent can immediately understand what this tool does and how it differs from measure_core_clipping or measure_uniformity.

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 explains the internal algorithm and output but does not explicitly state when to use this tool versus alternatives. It implies usage for detecting clipped or bright regions but lacks guidance on when to prefer it over other measurement tools. There is no 'when not to use' or reference to siblings, leaving the agent to infer the best context.

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

measure_core_clippingA

Measure how much of the brightest region is above a level. Around the brightest 64 px block (mean luminance), counts pixels with any channel above level in a 128 px box (every 2nd pixel) and a 32 px box (every pixel), both centred on that block and held inside the image. Returns JSON: fraction_above_wide, fraction_above_inner, peak (largest luminance in the wide box), core_center [x, y], wide_box, inner_box. luminance is 0.2126R + 0.7152G + 0.0722B.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYesPixel level; a pixel with any channel above it is counted
view_idYesView to measure

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It thoroughly explains the algorithm: how the brightest block is found, how boxes are sampled (every 2nd pixel vs every pixel), that boxes are centered and clamped to the image, and the exact output fields including the luminance formula. It does not explicitly state it is read-only, but the measurement nature and lack of mutation verbs make this clear.

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 dense and information-rich, with every sentence serving a purpose: defining the measurement, specifying the algorithm, and listing return values. It is not overly verbose, but the technical detail makes it slightly longer than the minimum; still well-organized and front-loaded with the core purpose.

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 measurement tool with only two parameters and no output schema, the description is complete: it defines the sampling strategy, the exact return fields, and the luminance formula. An agent can invoke it correctly without additional information, making it self-sufficient.

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 100%: both level and view_id have descriptive comments. The description adds the luminance formula and algorithmic context but does not materially extend the parameter meanings beyond what the schema already states. Baseline 3 is appropriate as the schema already carries the semantic load.

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 a specific verb and resource: it measures how much of the brightest region exceeds a given level, with precise algorithmic details (64px block, 128px and 32px boxes, sampling pattern). This distinguishes it from sibling measurement tools like measure_clipped_blocks or measure_highlight_texture, which target different phenomena.

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 provides clear context for what the tool measures but does not explicitly compare it to alternatives or state when not to use it. It implies usage for clipping analysis in the brightest region, but an agent would need to infer selection from the tool name and description rather than explicit routing guidance.

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

measure_highlight_textureA

Measure the texture of the bright subject zone. Subject pixels have luminance above median + 5 x (median |luminance - median| on a 32 px grid). The ROI is a circle around the luminance-weighted centroid of compact subject pixels (8 px grid, at least 2 of 4 neighbours 3 px away also subject), radius = their 90th-percentile distance held to [50 px, 0.45 x min(width, height)]. The shell zone is the P20..P92 band of the subject pixels in the ROI (every 4th pixel). local_stddev = median luminance stddev of 16 px blocks in the ROI whose samples are at least 40% shell; tonal_span = P90 - P10 of the shell pixels; gradient_energy = mean Sobel energy on shell pixels. With reference_id, the reference is measured over the same ROI and retention is current / reference for each value (null where the reference value is at most 0.0001, or 0.001 for tonal_span). Returns JSON: current, reference, retention, shell_zone, roi, shell_pixel_count, block_count. Fewer than 100 subject pixels in the ROI of either view is an error. luminance is 0.2126R + 0.7152G + 0.0722B.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesView to measure
reference_idNoOptional second view measured over the same ROI, for the retention ratios

TDQS

A3.8/5.0
Behavior5/5

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

With no annotations present, the description fully discloses the operation: subject-pixel criteria, ROI construction, shell-zone definition, metric formulas, reference-handling behavior, error thresholds, and the luminance formula. This goes well beyond a simple 'measure texture' statement and leaves little hidden behavior.

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 purpose is front-loaded in the first sentence, and every subsequent sentence provides a necessary computational detail. The description is long, but the algorithmic complexity justifies its length; there is no filler or repetition.

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

Completeness4/5

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

Despite lacking an output schema, the description lists the returned JSON keys, explains the reference/retention semantics, and states the error condition. Some minor ambiguity remains about how 'current' maps to the three metrics, but the description is sufficient for an agent to invoke the tool correctly.

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 schema already documents both parameters completely, so the baseline is 3. The description adds material meaning for reference_id by specifying that the reference is measured over the same ROI and that retention ratios are computed with null-rules, and it also clarifies the error condition involving either view. This exceeds the baseline.

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 opens with a specific action and target: 'Measure the texture of the bright subject zone.' It then enumerates exact metrics and a precise subject-pixel definition, so an agent can tell what resource is being measured. However, it does not explicitly differentiate this from sibling measurement tools such as measure_subject_detail or measure_sharpness.

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 provided about when to use this tool versus alternative measurement tools, nor are there exclusions or prerequisites. The algorithmic detail implies a bright-zone texture context, but there is no explicit selection heuristic for an agent to follow.

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

measure_ringingA

Measure concentric oscillation around the brightest region. The centre is the middle of the brightest 64 px block (mean luminance); the radial luminance profile is averaged over 36 angles for radii 1..150 px (held inside the image). Along the profile, derivatives within ±0.001 carry no sign; at each sign change the summed |derivative| of the run it ends is its amplitude, and it is counted when that amplitude is above min_amplitude. Returns JSON: oscillations, max_amplitude (of the counted ones), center [x, y], profile_sample (the profile at radii 1..30). luminance is 0.2126R + 0.7152G + 0.0722B.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesView to measure
min_amplitudeYesAmplitude (summed |derivative| of a run) above which a sign change is counted as an oscillation

TDQS

A3.8/5.0
Behavior4/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. It discloses the algorithm step-by-step (centre definition, radial profile, sign-change counting), output JSON structure, and the luminance formula. However, it does not explicitly state that the tool is read-only or has no side effects, though 'measure' implies it.

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 dense and logically ordered: purpose, algorithm, output, formula. Each sentence carries technical substance with no filler, though it is longer than strictly necessary. The main purpose is front-loaded.

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

Completeness4/5

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

The description fully explains the algorithm and return values (oscillations, max_amplitude, center, profile_sample), compensating for the lack of an output schema. It does not cover edge cases (e.g., empty region, brightness threshold) or failure modes, but given the tool's complexity, it is comparatively complete.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds significant meaning beyond the schema: it explains min_amplitude as 'summed |derivative| of a run' and how it filters oscillations, and clarifies view_id as the target image. This algorithmic detail is not present in the schema.

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 and resource: 'Measure concentric oscillation around the brightest region.' It provides detailed algorithmic context, but does not explicitly differentiate from sibling tools like measure_stars or measure_sharpness, leaving some ambiguity about when this specific measurement is intended.

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 its many siblings (e.g., measure_uniformity, measure_core_clipping). No exclusions or alternative routing are mentioned; usage context must be inferred from the name and algorithm.

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

measure_saturationA

Measure HSV saturation, (max - min) / max, of subject pixels of a colour view: every 8th pixel whose luminance is above the luminance of the channel medians + 5 x (median |luminance - that| on a 32 px grid). Returns JSON: median, p90, p99, max, subject_pixel_count. A mono view is an error. luminance is 0.2126R + 0.7152G + 0.0722B.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesColour view to measure

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description must carry the behavioral burden. It does so by disclosing the exact sampling strategy, luminance formula, output JSON fields, and error condition for mono views. It does not explicitly state it is read-only, but 'Measure... Returns JSON' strongly implies no mutation.

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 two dense sentences with no filler. Every clause provides necessary technical detail: formula, sampling, output, error condition, and luminance coefficients.

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?

There is no output schema, so listing the exact JSON fields is essential and provided. The error condition, sampling rule, and formula fully equip an agent to invoke and interpret the result for a single-argument tool.

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 coverage is 100% and the only parameter view_id already has a basic description. The tool description adds meaningful semantics: the view must be a colour viewcars and mono views are invalid, which goes beyond the schema.

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

Purpose5/5

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

The description names a specific verb and resource: 'Measure HSV saturation' of subject pixels in a colour view. It includes the exact formula and the return values, making it clearly distinct from sibling measurement tools like measure_bright_chroma or measure_uniformity.

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 clearly states this applies to colour views only and that a mono view is an error, which is a strong when-not signal. It does not explicitly name sibling alternatives, so guidance on when to prefer this over measure_bright_chroma or measure_subject_detail is absent, but the technical definition gives sufficient context.

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

measure_sharpnessA

Measure sharpness as the mean Sobel gradient energy (gx² + gy²) of luminance over every 4th pixel of a region. The region is roi_x/roi_y/roi_w/roi_h when all four are given (it must lie inside the image), else the central half of the image in each dimension. Returns JSON: sharpness, samples, roi {x, y, w, h}. luminance is 0.2126R + 0.7152G + 0.0722B.

ParametersJSON Schema
NameRequiredDescriptionDefault
roi_hNoRegion height in pixels
roi_wNoRegion width in pixels
roi_xNoRegion left edge in pixels (all four ROI values together, or none: the central half)
roi_yNoRegion top edge in pixels
view_idYesView to measure

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries full behavioral disclosure: it names the exact algorithm, the pixel sampling strategy, ROI fallback behavior, output JSON structure, and luminance weighting. This is far more transparent than typical tool descriptions.

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

Conciseness5/5

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

Three dense sentences deliver the formula, ROI behavior, and return format without redundancy. Critical information is front-loaded, and every clause earns its place.

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

Completeness5/5

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

For a measurement tool with no output schema and no annotations, the description is complete: algorithm, sampling, ROI semantics, constraints, and return fields are all specified. Nothing essential is missing for correct invocation and interpretation.

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 coverage is 100%, so the baseline is 3. The description adds genuine meaning by explaining that ROI parameters must all be provided together or omitted for the central-half default, and that the region must lie inside the image.

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 verb and resource: 'Measure sharpness' via a precise formula (mean Sobel gradient energy). It also clarifies the region selection rules eliminating ambiguity against other measure_* sibling tools like measure_uniformity or measure_stars.

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 tool's purpose clearly implies when to use it: when sharpness of a region or central half is needed. However, it does not explicitly compare to sibling tools or state when not to use it, leaving alternatives to inference.

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

measure_star_layerA

Measure a star layer (a mostly black view holding stars). Over every 4th pixel whose largest channel is above 0.005 (nonzero_pixel_count), reports the fraction whose largest channel is above each of the given levels, the interquartile range of their HSV saturation (color_diversity), and the median (max - min) / max of the 20 brightest by R+G+B (bright_star_chroma). Also the largest channel value (max) and the image median (the mean of the channel medians for colour). Returns JSON: max, median, fraction_above {level: fraction}, color_diversity, bright_star_chroma, nonzero_pixel_count.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelsYesPixel levels; for each, the fraction of star pixels whose largest channel is above it is reported
view_idYesStar layer view to measure

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and succeeds: it discloses the subsampling scheme ('every 4th pixel'), the selection threshold ('largest channel ... above 0.005'), the precise diversity and chroma formulas, and the exact JSON return fields. No contradiction with annotations since none exist.

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 purpose is front-loaded and nearly every clause earns its place given the tool's six outputs. However, the opening sentence is a long run-on with nested parentheticals; tighter sentence structure would merit a 5.

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

Completeness4/5

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

With no output schema, the description rightly specifies the full return JSON, the sampling behavior, and the metric definitions, so an agent can call the tool correctly from text alone. Minor gaps remain: expected value range for levels and prerequisites for producing a star layer are not stated.

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%, so the baseline is 3. The description adds only modest param-level meaning: it ties levels to the fraction_above {level: fraction} output key structure, but otherwise largely restates what the schema already says about view_id and levels.

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 verb ('Measure') and a defined resource ('a star layer (a mostly black view holding stars)') and enumerates the exact metrics computed: fraction above levels, color_diversity, bright_star_chroma, max, and median. The algorithmic specificity distinguishes it from the sibling measure_stars without ambiguity.

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 star-layer definition implies the intended input context, but the description never states when to choose this tool over siblings like measure_stars, measure_sharpness, or measure_bright_chroma, and gives no exclusions or alternatives. Usage context is present only implicitly.

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

measure_starsA

Measure the stars of a view by pixel sampling. Candidates are local maxima of luminance found by a 16 px grid scan above median + 5 x MAD, refined within 5x5, de-duplicated within 20 px (at most 100 kept); the 30 brightest are measured. FWHM of a star = 2 x the mean radius, over the four axis directions (up to 10 px), where luminance drops below half its peak, located to a fraction of a pixel by linear interpolation between the samples either side; colour diversity of a star = max - min of its peak RGB divided by the largest channel. Returns JSON: median_fwhm_px, color_diversity (median), stars_found, stars_measured, median_peak, p25_peak, background_median, star_background_contrast (median_peak / background_median, 0 when background_median <= 0.001), and up to 10 samples of each. luminance is 0.2126R + 0.7152G + 0.0722B.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesView to measure

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses the sampling method, thresholds, de-duplication, FWHM calculation, color diversity, and the exact return fields. It lacks explicit side-effect or error info but is highly transparent about its process 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.

Conciseness4/5

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

The description is long but each sentence adds necessary technical detail. The purpose is front-loaded, followed by a logical breakdown of the algorithm and return values. It is dense but not wasteful.

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 single-parameter tool with no output schema, the description is exceptionally complete. It defines the algorithm, thresholds, return fields, and even the luminance formula, leaving no ambiguity for correct invocation.

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?

The schema already describes view_id as 'View to measure' with 100% coverage. The description does not add any extra semantics, format constraints, or usage hints for this parameter. 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?

The description clearly states 'Measure the stars of a view by pixel sampling' with a specific verb and resource. It goes further to describe the exact algorithm, distinguishing it from sibling measurement tools like measure_star_layer or measure_ringing.

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. It does not mention conditions, exclusions, or trade-offs. An agent would have to infer its use case from the technical details alone.

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

measure_subject_detailA

Measure subject brightness, detail and contrast. The image is split into 32 px blocks; a block is subject when its luminance median is above median + 8 x 1.4826 x MAD. subject_brightness = median of subject block medians; background_median = median of the other block medians; contrast_ratio = subject_brightness / background_median (0 when that is at most 0.001); detail_score = mean Sobel energy of luminance over every 4th pixel of up to 50 subject blocks; subject_count = subject blocks; subject_threshold = median + 3 x 1.4826 x MAD. Returns JSON: subject_brightness, detail_score, contrast_ratio, subject_count, background_median, subject_threshold. luminance is 0.2126R + 0.7152G + 0.0722B.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesView to measure

TDQS

A4.2/5.0
Behavior5/5

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

No annotations exist, so the description carries the full behavioral burden and delivers extensively: the 32px block segmentation, the subject-selection threshold (median + 8 × 1.4826 × MAD), exact formulas for every metric, the contrast_ratio edge case (0 when at most 0.001), the returned JSON keys, and the Rec. 709 luminance weights. This is far beyond what annotations would typically provide.

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 purpose is front-loaded in the first sentence, followed by a methodical progression: algorithm, metric definitions, edge case, return format, luminance formula. Every sentence earns its place for a tool this complex, though the density of mathematical detail (constants, Sobel sampling, formula chains) pushes it near the upper bound of length.

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 single-parameter tool with no annotations and no output schema, the description is complete: it defines the computation, handles edge cases, enumerates all six JSON return values, and gives the luminance formula needed to interpret results. An agent can invoke the tool and correctly interpret its output with nothing else.

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 100% for the single view_id parameter, so the schema already documents what it is ("View to measure"). The description adds no additional per-parameter meaning, but with full coverage the baseline of 3 is appropriate — nothing critical is missing.

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 opening sentence "Measure subject brightness, detail and contrast" pairs a specific verb with a specific resource, and the algorithmic detail (subject vs. background blocks) makes it unmistakably distinct from sibling tools like measure_stars, measure_sharpness, and measure_uniformity. An agent can tell exactly what this tool quantifies and which siblings it does not overlap with.

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?

Usage context is implied through the metric definitions — an agent can infer this tool is for subject/background analysis, not star measurement or sharpness measurement. However, with roughly ten measure_* siblings, the description never explicitly states when to choose this tool or names alternatives to exclude, leaving routing to inference rather than guidance.

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

measure_tonal_presenceA

Measure subject and background tones. Every 8th pixel is subject when its luminance is above the background (luminance of the channel medians) + 5 x (median |luminance - background| on a 32 px grid) and at least 2 of its 4 neighbours 3 px away are too; every other sample is background. separation = subject median / background median; core_brightness = mean of the brightest 5% of subject samples; core_to_disk = core_brightness / subject median; faint_structure_visibility = (subject P10 - background P90) / background P90; subject_fraction = subject samples / all samples; roi_mode is compound_roi when a second luminance-weighted cluster, outside 0.15 x width of the centroid and holding over 15% of the weight, lies more than 0.25 x width away, else single. Denominators are held to at least 0.001. Returns JSON: separation, subject_median, background_median, core_brightness, faint_structure_visibility, core_to_disk, subject_fraction, roi_mode, subject_pixel_count. luminance is 0.2126R + 0.7152G + 0.0722B.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesView to measure

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does an unusually thorough job: it specifies pixel classification thresholds, all output metrics, denominator clamping, and the exact luminance formula. The only gap is that it never explicitly states whether the operation is read-only or modifies the view, which is relevant given annotations are absent.

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 long but every sentence carries substantive algorithmic content; it is front-loaded with the core purpose and then systematically details the calculation. It could be more readable with structure, but for the complexity involved there is little waste.

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

Completeness4/5

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

The description fully enumerates return fields, defines formulas, handles edge cases like denominators clamped to 0.001, and specifies the luminance formula, compensating for the lack of an output schema. It is incomplete only in not stating prerequisites or when to select this tool among the extensive sibling measurement family.

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?

The schema already provides 100% coverage for the single parameter view_id by describing it as 'View to measure', so the baseline is 3. The description adds no additional parameter-level guidance, such as whether the view must be open or what type of image is expected.

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 and resource: 'Measure subject and background tones', and then provides a precise algorithm and metric definitions. It does not explicitly contrast itself with sibling measurement tools, but the subject/background framing and metric names make the tool's function reasonably unambiguous.

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 implies the tool is for measuring tonal separation between subject and background, but it gives no explicit guidance on when to use this tool versus the many sibling measure_* tools, nor any prerequisites or exclusions. An agent would have to infer selection criteria from the algorithm alone.

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

measure_uniformityA

Measure background uniformity via 4-corner median stddev. Lower score means more uniform.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesPixInsight view ID
sample_sizeNoCorner sample size in pixels (default 200)

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden Committee. It goes beyond the schema by explaining the computation method ('4-corner median stddev') and the score direction ('Lower score means more uniform'). However, it does not disclose failure modes, return format details, or explicitly confirm read-only 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?

Two short sentences with no filler. The core purpose and score interpretation are front-loaded, and every phrase adds value.

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

Completeness4/5

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

This is a simple two-parameter measurement, and the description covers what is measured, the method, and how to interpret the result. The lack of an output schema is partly offset by the word 'score', though an explicit return-type note would make it fully complete.

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 100%, so both view_id and sample_size are already documented. The description does not add meaning beyond the schema; it merely implies the corner-sampling context that the schema already states for sample_size.

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 ('Measure'), a clear resource ('background uniformity'), and a distinctive method ('4-corner median stddev'). This distinguishes it from sibling measurement tools such as measure_stars, measure_ringing, and measure_sharpness.

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 the many other measure_* siblings, nor any preconditions like needing an open view. The intended use is only implied by the tool name and the phrase 'background uniformity'.

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

multi_scale_enhanceA

Masked three-scale LocalHistogramEqualization on a view, in one call, with an optional HDRMultiscaleTransform pass. The mask is the image lightness (CIE L* for colour, the image itself for mono) mapped as max((L - mask_clip_low) / (1 - mask_clip_low), 0), raised to the power 1/mask_gamma and blurred with a Gaussian of sigma mask_blur (0 = no blur). LHE then runs at the large, mid and fine radius in that order through the mask; the large and mid scales use lhe_slope_limit, the fine scale lhe_fine_slope_limit; other LHE parameters are PixInsight's defaults. Giving hdrmt_layers adds an HDRMultiscaleTransform pass through the same mask. The mask is closed afterwards. Reports a detail score before and after: the mean squared Sobel gradient of luminance (Rec.709 weights) over pixels brighter than median + 8 x 1.4826 x MAD, sampled every 8 pixels.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesView ID to enhance (modified in place)
mask_blurYesGaussian blur sigma of the mask in pixels (0 = no blur)
mask_gammaYesMask gamma: the rescaled mask is raised to the power 1/mask_gamma (1 = unchanged)
hdrmt_layersNoHDRMultiscaleTransform number of layers. Giving it runs the HDRMT pass; omitted, no HDRMT runs
mask_clip_lowYesLightness mapped to 0 in the mask; values above it are rescaled to 0-1
hdrmt_invertedNoHDRMT inverted iterations (needs hdrmt_layers; omitted = PixInsight default)
lhe_mid_amountYesMid-scale LHE amount, 0 to 1
lhe_mid_radiusYesMid-scale LHE kernel radius in pixels
lhe_fine_amountYesFine-scale LHE amount, 0 to 1
lhe_fine_radiusYesFine-scale LHE kernel radius in pixels
lhe_slope_limitYesLHE contrast slope limit of the large and mid scales
hdrmt_iterationsNoHDRMT number of iterations (needs hdrmt_layers; omitted = PixInsight default)
lhe_large_amountYesLarge-scale LHE amount, 0 to 1
lhe_large_radiusYesLarge-scale LHE kernel radius in pixels
hdrmt_to_lightnessNoHDRMT toLightness: on a colour image, apply the transform to the lightness only (needs hdrmt_layers; omitted = PixInsight default)
lhe_fine_slope_limitYesLHE contrast slope limit of the fine scale
hdrmt_median_transformNoHDRMT median transform instead of the wavelet transform (needs hdrmt_layers; omitted = PixInsight default)

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and exceeds it: it gives the exact mask formula using mask_clip_low, mask_gamma and mask_blur; describes the scale order and slope-limit assignment; explains the optional HDRMT pass; discloses that the mask is closed afterwards; and even specifies the Sobel-gradient detail score calculation. This is far beyond a generic 'enhances the image.'

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 dense, front-loaded paragraph: the core purpose is stated in the first sentence, then each subsequent sentence adds necessary algorithmic detail—mask construction, LHE scale behavior, optional HDRMT, mask closing, and the detail score. There is no filler or repetition.

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

Completeness4/5

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

For a 17-parameter tool with no annotations and no output schema, this description is highly complete: it covers the algorithm, mask side effects, and the scoring behavior. The main gaps are that it does not specify the format in which the detail score is returned nor prerequisites such as the view needing to be open, but these are minor against the overall depth.

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 coverage is 100%, so the baseline is 3, but the description adds relational value by tying mask_clip_low, mask_gamma and mask_blur into a concrete formula, assigning lhe_slope_limit to large/mid scales and lhe_fine_slope_limit to the fine scale, and clarifying that hdrmt_layers triggers the HDRMT pass. Some HDRMT-specific parameters remain schema-only, which is acceptable given full schema coverage.

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 opens with 'Masked three-scale LocalHistogramEqualization on a view, in one call, with an optional HDRMultiscaleTransform pass,' which is a specific verb-resource pairing and immediately distinguishes it from sibling tools like run_lhe and run_hdrmt by emphasizing the composite, masked, multi-scale nature.

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 a masked three-scale LHE with optional HDRMT is desired in a single call—but never explicitly names alternatives or exclusion criteria. The phrase 'in one call' hints at a separate-call alternative, but there is no direct routing guidance like 'for single-scale LHE use run_lhe.'

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

open_imageA

Open an XISF/FITS image file in PixInsight. Returns the view ID assigned by PixInsight. Automatically closes any crop_mask windows that come with XISF files.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesAbsolute path to the image file

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden. It discloses the return value and the notable side effect of automatically closing crop_mask windows that come with XISF files, adding value beyond the bare purpose.

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?

Two concise sentences with no redundant wording. The primary action is front-loaded, and the important side effect is included without extraneous detail.

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 low-complexity tool with one parameter and no output schema, the description is complete: it states what to provide, what happens, and what the agent will receive in return. No critical operational behavior is omitted.

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 100% and the only parameter, file_path, is already documented as an absolute path. The description adds the supported file formats (XISF/FITS), but otherwise adds little beyond the schema baseline.

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 verb ('open'), resource ('XISF/FITS image file in PixInsight'), and the return value (view ID). This clearly distinguishes it from siblings like close_image, clone_image, and export_image.

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 intended use is implied: load an image file before further processing in PixInsight. However, it does not explicitly state when to choose this over alternatives or 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.

pixelmath_new_imageA

Run PixelMath to create a NEW image from expressions that reference other open views by id. Color "rgb" takes red/green/blue expressions; color "gray" takes a single expression. The new image is truncated to [0,1]; the reply gives, per channel, the fraction of samples that were below 0 or above 1 before truncation. When size_from has an astrometric solution it is copied onto the new image (same geometry), unless copy_astrometric_solution is false. View ids used inside expressions must be simple identifiers (rename_view renames a view). No pow() — use exp(exponent*ln(base)) or the ^ operator.

ParametersJSON Schema
NameRequiredDescriptionDefault
redNoRed channel expression (color "rgb")
blueNoBlue channel expression (color "rgb")
colorYes
greenNoGreen channel expression (color "rgb")
symbolsNoPixelMath symbols; constants only, e.g. "k=0.3". Symbols cannot hold images: write image expressions inline.
output_idYesId for the new image
size_fromYesA view whose width and height the new image copies
expressionNoSingle expression for color "gray"
copy_astrometric_solutionNoCopy size_from's astrometric solution onto the new image when it has one

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and delivers: output is truncated to [0,1], the reply reports per-channel fraction of pre-truncation out-of-range samples, the astrometric solution is copied only when size_from has one (and only unless copy_astrometric_solution is false), view ids must be simple identifiers, and pow() is unavailable. These are exactly the behavioral facts an agent cannot infer from schema or annotations.

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?

Information-dense and front-loaded, with the tool's core action first and constraints after. It is a single long paragraph of interrelated clauses rather than a run-on, but the lack of any structural break makes it heavier to scan than it needs to be.

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

Completeness4/5

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

For a 9-parameter mutation tool with no output schema, the description supplies the return information (per-channel clipping fractions) and the key behavioral caveats, so an agent can call it correctly. It does not say what happens on failure (e.g., bad expression or unknown size_from) or whether the new image is opened/shown.

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 coverage is 89%, so the baseline is 3, and the description adds real meaning on top: which parameters pair with which color mode, the semantics of size_from's astrometric propagation, and that symbols may hold constants only. It does not explain expression syntax operators beyond the pow() caveat or the exact meaning of each channel expression.

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 verb and resource ('Run PixelMath to create a NEW image from expressions that reference other open views by id'), which separates it from run_pixelmath, run_pjsr, and the measure_* siblings at a glance. The 'NEW image' framing tells an agent this constructs a view rather than modifying one in place.

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 covers in-tool conditions (color 'rgb' takes red/green/blue, color 'gray' takes a single expression) and constraints on expression syntax, but never says when to choose this tool over the sibling run_pixelmath or run_pjsr. Usage is implied by the expressions-and-new-image framing rather than stated.

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

pixinsight_infoA

Report the resolved PixInsight installation paths for this platform and the connector version. Read-only. For live process status, use the doctor command.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations, the description carries the safety burden, and it explicitly labels itself 'Read-only.' It does not describe error cases or whether PixInsight must be installed, but for a zero-argument informational probe this is a meaningful and sufficient behavioral disclosure.

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?

Two short sentences with no waste. The core purpose is front-loaded, the read-only guarantee is immediate, and the alternative-tool pointer is kept to a single clause.

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 low-complexity, zero-parameter tool with no output schema, the description tells an agent everything needed to invoke it correctly: the result content, the read-only nature, and the neighboring live-status case. Nothing important is missing.

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

Parameters4/5

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

The input schema is empty and parameter coverage is 100%, so there are no parameters to document. The description adds useful context by stating what is reported (paths and connector version), which is the full semantic picture for a no-argument call.

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 verb ('Report') and resource ('resolved PixInsight installation paths... and the connector version'). This clearly differentiates it from the many image-processing sibling tools and from the workspace-oriented info tools.

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

Usage Guidelines5/5

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

It explicitly redirects one relevant alternative case: 'For live process status, use the doctor command.' This tells an agent when not to use this tool and names the intended alternative, matching the best-practice pattern.

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

remove_maskB

Remove the current mask from a view.

ParametersJSON Schema
NameRequiredDescriptionDefault
target_idYesTarget view ID

TDQS

B3.1/5.0
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 states that the mask is removed, implying a destructive action, but does not disclose prerequisites (e.g., whether a mask must exist), side effects, reversibility, or what happens if no mask is present. This is minimal behavioral transparency for a mutation tool.

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 sentence with no wasted words. The action and object are front-loaded, and it is appropriately sized for the simplicity of the tool.

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 tool with no output schema, the description is minimally viable but leaves gaps. It doesn't mention what happens if no mask exists, whether the view must have a mask, or any error conditions. These gaps are notable because the description is the sole source of behavioral context, but they are not severe enough to make the tool unusable.

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 the only parameter target_id is already described as 'Target view ID'. The description adds no additional meaning beyond the schema, but with full schema coverage, a baseline of 3 is appropriate – the schema does the heavy lifting.

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 ('Remove') and the resource ('current mask from a view'), which is specific and unambiguous. However, it does not explicitly distinguish this from the sibling tool close_mask, which might also be interpreted as removing a mask from a view, so it lacks explicit sibling differentiation.

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 provided on when to use this tool versus alternatives such as close_mask or apply_mask. The description only states what the tool does, leaving the agent to infer the appropriate context without any explicit conditions or exclusions.

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

rename_viewA

Rename an image view to a different view ID. Long XISF names can cause some PixInsight processes to fail.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_idYesNew view ID (no spaces)
old_idYesCurrent view ID

TDQS

A3.5/5.0
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 only states the action and a motivation for renaming, but does not disclose side effects, reversibility, error conditions, or the return value. For a mutation tool, this is a notable omission.

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 extremely concise, with two short sentences. The primary action is front-loaded, and the second sentence provides useful context about the purpose of renaming. No extraneous 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?

For a simple rename tool with only two string parameters, the description covers the core purpose and a reason to use it. However, without annotations, it lacks details about required preconditions (e.g., view must be open), potential failure modes, or what happens after renaming. It is minimally complete but not thorough.

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 100%, with both parameters already described ('Current view ID' and 'New view ID (no spaces)'). The description adds no additional semantic information beyond restating the renaming action, so it meets the baseline but does not enhance 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 clearly states the verb 'rename' and the resource 'image view', specifying the action as changing the view ID. No sibling tool appears to offer a rename operation, so it stands out on its own.

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 explains a specific context for using the tool: long XISF names can cause some PixInsight processes to fail, implying renaming might help avoid this. However, it does not explicitly state when to use it vs. alternatives or provide exclusions, leaving some usage decisions to inference.

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

reproject_to_referenceA

Resample a plate-solved image onto the pixel grid of another plate-solved image, using the two astrometric solutions (PixInsight's astrometric reprojection): the result has the reference's size and solution and comes from a single interpolation of the source. Use it to bring a master from another telescope or session onto a reference grid; both views need a solution (run_plate_solve). The source is not changed; the result is a new 32-bit float view (output_id, default _reprojected). It reports the size, the time and whether the result is empty (the two fields do not overlap). Registration accuracy is set by the two solutions, so check the star-centroid residual of the result against the reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
clampNoClamping threshold of the Lanczos and bicubic interpolations, 0 to 1 (default 0.3)
view_idYesSource view to reproject (needs an astrometric solution)
output_idNoView ID of the result (default <view_id>_reprojected)
reference_idYesView whose size and astrometric solution the result takes (needs an astrometric solution)
interpolationNoPixel interpolation (default Lanczos3)

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it states the source is not changed, the result is a new 32-bit float view with a default naming convention, and the call reports size, time, and whether the result is empty when fields do not overlap. It also flags the accuracy caveat (registration set by the solutions; verify residual against the reference).

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?

Information is front-loaded (what it does, then when to use, then side effects), and every sentence adds something. It is dense but slightly over-packed into the first long sentence with nested parentheticals.

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

Completeness4/5

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

For a no-output-schema mutation-of-a-new-view tool, the description covers prerequisites, side effects, defaults, and a summary of returned facts. It stops short of describing the return structure in detail, though the reported fields are named.

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 100%, so the schema already documents all five parameters including defaults and the interpolation enum. The description adds only a behavioral note that the result comes from a single interpolation of the source, and says nothing about clamp or the enum choices beyond that.

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?

It states a precise verb and resource (resample onto another image's pixel grid via the two astrometric solutions) and clarifies the outcome (result takes the reference's size and solution). It does not explicitly contrast with siblings like align_to_reference or resample_image, so an agent still has to infer the boundary between them.

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 a concrete use case (bring a master from another telescope/session onto a reference grid) and a hard prerequisite (both views need a solution, run_plate_solve). It names no exclusion or alternative tool, so the when-not side is left implicit.

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

resample_imageA

Change an image's pixel dimensions. mode "integer": IntegerResample by a whole factor (factor 2 bins 2x2 into one pixel with the given downsampling combination; enlarge: true multiplies the size instead). mode "scale": Resample by a relative factor (0.5 halves each side). mode "to_reference": Resample to exactly the width and height of reference_id. Runs in place, or on a copy named output_id that carries the keywords, astrometric solution and view properties. FITS keywords are kept. PixInsight removes the astrometric solution in these processes; the result states whether a solution was present before and after. Runs without the geometry confirmation dialog (noGUIMessages).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesinteger (IntegerResample), scale (Resample by a factor) or to_reference (Resample to reference_id's size)
factorNointeger: whole bin/zoom factor >= 2. scale: relative size factor > 0
enlargeNointeger mode: multiply the size by factor instead of dividing it (default false)
view_idYesView to resample
output_idNoResample a copy with this view id instead of the view itself
downsamplingNointeger mode: how binned pixels combine (default Average)
reference_idNoto_reference: the view whose width and height the result takes
interpolationNoscale / to_reference: Resample interpolation; omitted, PixInsight's default

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so well: it discloses that it runs in place or on a copy (output_id) that carries keywords/solution/view properties, that FITS keywords are kept, that PixInsight removes the astrometric solution and reports its before/after presence, and that the geometry dialog is suppressed (noGUIMessages). This is rich, mutation-relevant detail.

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 core purpose and in-place/copy distinction are front-loaded, and every sentence carries information (mode semantics, side effects, astrometric behavior). It is a dense single block rather than cleanly sectioned, which keeps it just short of top marks.

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

Completeness4/5

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

For an 8-parameter mutation tool with no output schema, the description covers modes, in-place vs copy behavior, preservation of keywords, astrometric-solution removal, and even what the result reports. Minor gaps remain (no pagination/return-structure concerns here, but interpolation choice reasoning against siblings is absent), so a 4.

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 coverage is 100%, so baseline is 3, but the description adds real meaning beyond the schema: 'factor 2 bins 2x2 into one pixel with the given downsampling combination' concretizes integer mode, and 'enlarge: true multiplies the size instead' clarifies direction semantics the schema only states tersely.

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?

Starts with a specific verb+resource ('Change an image's pixel dimensions') and names the three operating modes, each with a concrete behavior (2x2 binning, relative factor, match reference size). An agent can distinguish this from crop_image, reproject_to_reference, and align_to_reference from the description alone.

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 explains what each of the three modes does, which helps an agent pick a mode, but it never states when to prefer this tool over siblings like crop_image or reproject_to_reference, nor any prerequisites. Mode selection guidance is present; tool-vs-alternative guidance is not.

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

restore_from_cloneA

Restore an image from a backup clone, replacing all changes since the clone was made.

ParametersJSON Schema
NameRequiredDescriptionDefault
clone_idYesClone view ID to restore from
target_idYesTarget view ID to overwrite

TDQS

A4/5.0
Behavior4/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 destructive behavior. 'Replacing all changes since the clone was made' clearly signals that the target image will be overwritten, which is essential safety information for an agent.

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, well-structured sentence states the action, source, and consequence with no wasted words. It is front-loaded and easy to parse.

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

Completeness4/5

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

For a two-parameter destructive operation with no output schema, the description plus schema provide adequate context: what happens, which parameters are needed, and what the effect will be. Minor lack of explicit alternative guidance prevents a perfect score.

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 100%, and both parameters are already documented in the input schema. The description adds no additional meaning beyond identifying the operation's overall purpose.

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 identifies the action ('Restore'), the resource ('an image'), and the source ('a backup clone'), while distinguishing it from sibling tools like clone_image. The phrase 'replacing all changes since the clone was made' adds a precise outcome.

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: restore when you want to revert an image to a previously cloned state. However, it does not explicitly name alternatives or state when not to use it, leaving the routing decision partially inferential.

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

restore_star_colorA

Restore the colour ratios of a reference view in the bright areas of a target, in place, keeping the target's luminance. Per channel: restored = min(reference[c] * Lt / max(Lr, 0.001), max_value), where Lt and Lr are the target's and the reference's channel means; it is weighted in linearly from 0 at reference luminance restore_start to 1 at restore_end. Runs as 64-bit PixelMath truncated to [0,1]; reports the target's median and max before and after.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_valueYesUpper cap on each restored channel
target_idYesRGB view to modify in place
pre_star_idYesReference RGB view whose colour ratios are restored (open, same dimensions)
restore_endYesReference luminance at and above which the restored colour fully replaces the target; greater than restore_start
restore_startYesReference luminance at and below which the target is unchanged

TDQS

A4.8/5.0
Behavior5/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 fully delivers: it states the in-place mutation, the exact per-channel formula, linear weighting behavior, 64-bit PixelMath execution, truncation to [0,1], and the reporting of median/max before and after. This gives an agent a complete behavioral model beyond the schema.

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 dense but every clause earns its place: purpose, formula, weighting, numeric precision, and reporting. It is front-loaded with the core action and then clarifies mechanics, making it efficient without filler.

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 tool with no output schema and no annotations, the description is remarkably complete. It covers inputs, the algorithmic transformation, edge-case behavior, execution mode, and observable output (before/after stats). An agent has enough information to invoke the tool correctly and interpret its side effects.

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

Parameters5/5

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

Even though schema coverage is 100%, the description adds significant semantic depth by tying parameters directly into the formula: max_value as the upper cap, restore_start and restore_end as the linear weighting range, and target_id/pre_star_id as the target and reference. It also explains edge behavior, such as the max(Lr, 0.001) denominator, which is not present in the schema.

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 verb ('Restore'), the resource ('the colour ratios of a reference view'), and the precise scope ('in the bright areas of a target'), while also noting it is in-place and preserves luminance. This clearly distinguishes it from generic tools like run_pixelmath and from other star-related tools by specifying the exact operation and domain.

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 clearly implies when to use the tool: when you need to restore reference color ratios in bright areas while keeping the target's luminance. It does not explicitly name alternatives or provide when-not-to-use guidance, so it falls short of a 5, but the context is unambiguous enough for selection among the large sibling list.

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

resume_bridgeA

Allow PixInsight commands again after the user pressed Pause/Abort. Call ONLY when the user explicitly tells you to continue.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden for behavioral disclosure. It indicates that the tool resumes command execution after a pause/abort, which is a behavioral state change. However, it doesn't disclose side effects (e.g., whether queued commands resume automatically) or any potential state changes beyond enabling commands. A clearer note on what exactly resumes would be more helpful.

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 extremely brief yet information-dense: two sentences, each earning its place. The first defines the action and context, the second specifies the prerequisite. No wasted words.

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

Completeness4/5

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

For a zero-parameter, state-transition tool with no output schema, the description is nearly complete. It explains the trigger condition and the effect. The only minor gap is that it doesn't describe what the user should expect after the call (e.g., a confirmation or how to verify that commands are enabled again), but given the simplicity, this is a minor omission.

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 correctly shows an empty object with 100% coverage. The description doesn't need to add parameter meaning since there are none, and it implicitly confirms that. This is a clear case where the baseline 4 is appropriate for no-parameter tools.

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 clear verb ('allow') and a specific resource ('PixInsight commands'), and clarifies it is a resume operation after a pause/abort. It distinguishes itself from the broader set of process-control tools, though it doesn't name a specific sibling alternative.

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 gives explicit usage guidance: 'Call ONLY when the user explicitly tells you to continue,' which clearly sets the condition. It doesn't explicitly mention when not to use it beyond caveating the condition, but that is sufficient.

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

robust_median_stretchA

Stretch a linear view in place so its median lands on target_median. Per pass: from the median M and the unnormalized median absolute deviation D of the image (range clipping off, alpha excluded), sigma = 1.4826·D and the black point c0 = max(0, M − black_point_sigma·sigma); samples are rescaled to u = clamp((x − c0)/(1 − c0), 0, 1), and the midtones transfer function MTF(m, u) = (m − 1)·u / ((2m − 1)·u − m) is applied with the balance m solved so that MTF(m, u(M)) = target_median exactly. linked true takes one set of statistics over all channels jointly; false takes them per channel. Each further pass repeats this on the previous output, re-measuring the statistics; passes before the last run on a scratch copy, so the view is written once and is left unmodified when any pass cannot be solved (a median on the black point, e.g. D = 0). With highlight_knee h and highlight_midtones mh, values y above h become h + (1 − h)·MTF(mh, (y − h)/(1 − h)) after the last pass. The result is JSON: per pass and per statistics group M, D, sigma, c0, the rescaled median xbar and m.

ParametersJSON Schema
NameRequiredDescriptionDefault
linkedNoColour images only, required for them: true = joint statistics over all channels and one transform for all; false = statistics and transform per channel. Ignored for a grayscale image.
passesNoNumber of times the whole procedure runs, each on the previous output (>= 1; omitted = 1)
view_idYesView to stretch (modified in place)
target_medianYesMedian of the output, strictly between 0 and 1
highlight_kneeNoOutput level above which values are compressed, strictly between 0 and 1. Given together with highlight_midtones; omitted = no highlight compression.
black_point_sigmaYesDistance of the black point below the median, in units of 1.4826·MAD (>= 0)
highlight_midtonesNoMTF balance applied to the segment above highlight_knee, strictly between 0.5 and 1. Given together with highlight_knee.

TDQS

A4.6/5.0
Behavior5/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, and it does so thoroughly. It discloses that the view is modified in place, that passes before the last run on a scratch copy, that the view is left unmodified when any pass cannot be solved (e.g., D = 0), and that the result is JSON with per-pass statistics. It also explains the exact mathematical transform, including the MTF function and highlight compression. This is far beyond what annotations would typically provide.

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 dense and information-rich, with the core purpose front-loaded in the first sentence. Every sentence adds technical detail that an agent needs to understand the algorithm. It is long, but the complexity of the tool justifies the length. It could be slightly more concise by trimming some mathematical notation, but the structure is logical: purpose, algorithm, parameters, edge cases, output.

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

Completeness5/5

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

For a complex 7-parameter image processing tool with no annotations and no output schema, the description is remarkably complete. It covers the algorithm, parameter semantics, edge cases (D = 0, unsolvable passes), the in-place mutation behavior, the scratch copy behavior, and the JSON return format. An agent could invoke this tool correctly with high confidence based on the description alone.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents all 7 parameters. The description adds significant meaning beyond the schema: it explains how black_point_sigma relates to sigma = 1.4826·D, how passes interact with the previous output, how linked affects statistics grouping, and how highlight_knee/highlight_midtones are applied after the last pass. The only minor gap is that the description doesn't explicitly restate each parameter's constraints, but the schema already does that.

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 opens with a specific verb and resource: 'Stretch a linear view in place so its median lands on target_median.' It names the exact operation, the in-place mutation, and the target condition. It also distinguishes itself from siblings like run_curves, auto_stretch, and stretch_stars by describing a precise median-targeting algorithm rather than a generic stretch.

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 explains the algorithm's behavior in detail, including per-pass statistics, the linked parameter for color vs grayscale, and the highlight_knee/highlight_midtones optional compression. It does not explicitly name sibling alternatives or state when to choose this over run_curves or auto_stretch, but the detailed mathematical behavior gives an agent enough context to know when this tool is appropriate. The 'linked true takes one set of statistics over all channels jointly; false takes them per channel' line is a clear usage condition for color images.

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

run_abeB

Run AutomaticBackgroundExtractor (ABE) on a view, replacing it in place with the corrected result.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesView ID to process
toleranceNoSample rejection tolerance (default 1.0)
poly_degreeNoPolynomial degree, 1 to 6 (default 4)

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It does disclose that the view is 'replacing it in place', indicating a destructive mutation, which is critical. However, it does not mention potential side effects, reversibility, or any conditions under which the operation might fail. The single disclosed behavior is important but not comprehensive.

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 action and side effect. It is efficient with no wasted words. However, it could slightly expand on usage context without sacrificing conciseness, so it loses a point for being too terse in an area that matters.

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 mutates a view and has no output schema; the description covers the core action and side effect. Yet it lacks usage guidelines and differentiation from sibling tools, which are essential for an agent to decide when to use it. The information is adequate for a trivial call but incomplete for correct selection among similar tools.

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 100%, so each parameter (view_id, tolerance, poly_degree) already has a textual description. The tool description adds no additional meaning or context for these parameters beyond the schema. Per the rubric, the baseline is 3 when schema coverage is high and the description does not enrich the semantics.

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 runs AutomaticBackgroundExtractor (ABE) on a view and replaces it in place, which is a specific verb-resource combination. It distinguishes from siblings like run_per_channel_abe (which processes per channel) and run_bxt (a different background extraction tool). The action and scope are unambiguous.

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 offers no guidance on when to use ABE versus alternatives such as run_bxt, run_gradient_correction, or run_background_neutralization. It does not mention prerequisites, intended context, or exclusions. An agent cannot determine when this tool is preferred over its siblings.

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

run_background_neutralizationB

Run BackgroundNeutralization to equalize the background level across channels.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesPixInsight view identifier.

TDQS

B3.2/5.0
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. It only states the intended effect but does not disclose that this mutates the target image, whether it is reversible, what happens on failure, or whether it requires a color image. This is a significant transparency gap for a process-invoking tool.

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 compact sentence and is easy to parse. However, the opening 'Run BackgroundNeutralization' largely repeats the tool name, so it is not maximally economical.

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 schema is simple and the tool is callable with just view_id, but the description lacks behavioral context and does not explain how this relates to sibling background-correction tools. Since there are no annotations or output schema, the description should have done more.

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 100%: view_id is described as a PixInsight view identifier. The description adds no additional parameter meaning beyond the schema, so the baseline of 3 applies.

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 ('Run') and resource ('BackgroundNeutralization') with a clear outcome: equalize background level across channels. It is clear about what the tool does, but it does not differentiate it from sibling background-related tools like run_abe or run_gradient_correction.

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?

Usage context is implied: use this when you need background levels equalized across channels. However, there is no explicit guidance about when not to use it or which alternative to choose among background/gradient-related sibling tools.

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

run_bxtA

Run BlurXTerminator on a view. correct_only applies PSF correction without sharpening; otherwise sharpen_nonstellar and sharpen_stellar control sharpening strength.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesView ID to process
correct_onlyNoCorrect-only mode: PSF correction with no sharpening
sharpen_stellarNoStellar sharpening, 0 to 1 (default 0.50)
adjust_star_halosNoStar halo adjustment, -1 to 1 (default 0.0)
sharpen_nonstellarNoNon-stellar sharpening, 0 to 1 (default 0.50)

TDQS

A3.6/5.0
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 behavior. It explains the functional modes (PSF correction vs. sharpening) but does not state whether the operation modifies the view in-place, is reversible, requires specific image conditions, or what the tool returns. It omits side effects and any state changes, which is a significant gap for a process tool.

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?

Two sentences with no filler. The purpose is front-loaded, and the parameter clarification is concise. Every word earns its place, and the structure is efficient for an agent to parse quickly.

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 5 parameters, no output schema, and no annotations, the description leaves important gaps: it does not mention the adjust_star_halos parameter (though the schema covers it), does not state what happens to the view (in-place modification?), whether processing is destructive, or what the expected return value is. An agent would need to infer too much to use this confidently.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds value by clarifying the conditional relationship: correct_only applies PSF correction without sharpening, and otherwise the sharpen parameters control strength. This helps the agent understand how the boolean and numbers interact, exceeding the schema's isolated definitions.

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 runs BlurXTerminator on a view, and distinguishes it from sibling tools like run_sxt (StarXTerminator) and run_nxt by specifying the exact process. It also names the key mode (correct_only) and the sharpening parameters, making the purpose unambiguous.

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 provides guidance on when to use correct_only versus the sharpening controls, but it does not explicitly mention when to choose this tool over alternatives such as run_sxt, run_nxt, or other processing tools. There is no exclusion or alternative recommendation, leaving some usage ambiguity in a tool list with many similar process tools.

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

run_curvesA

Apply a CurvesTransformation to a view. Provide control points as [[x,y], ...] for the desired channel: "RGB" (all), "L" (lightness), "S" (saturation), "R", "G", "B".

ParametersJSON Schema
NameRequiredDescriptionDefault
pointsYesControl points [[x,y], ...] from (0,0) to (1,1). Include endpoints.
channelYesChannel to apply the curve to
view_idYesView ID to process

TDQS

A3.5/5.0
Behavior2/5

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

The description only restates the operation; it does not disclose whether the view is modified in place or a new view is returned, whether the operation is reversible, or what response to expect. With no annotations supplied, the description carries the full burden of behavioral disclosure and does not meet it.

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?

Two short sentences with the core action first and the channel/coordinate clarification second. No filler, and each piece of information 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 required inputs are fully covered by the schema and the description, so the agent can form a valid call. However, with no output schema and no annotations, the absence of any statement about return value or side effects leaves a modest but real 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 schema already documents all three parameters, and the description adds useful semantic detail by mapping channel names to meanings ('L' = lightness, 'S' = saturation) and clarifying the coordinate-list format. This goes beyond the bare schema but is not extensive.

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 ('Apply a CurvesTransformation') and a clear target ('to a view'), and the subject matter is distinct from generic sibling process tools. It also enumerates channels, so the agent knows exactly what resource and mode the tool operates on.

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 on when to choose this over siblings such as run_process, run_pixelmath, or run_lhe. The description does not describe preconditions (e.g., an open view) or conditions under which curves adjustment is appropriate.

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

run_gradient_correctionB

Run GradientCorrection on a view to remove a background gradient.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesPixInsight view identifier.

TDQS

B3.2/5.0
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 only says the tool 'removes' a background gradient, which implies mutation, but it does not state whether the view is modified in place, whether the operation is reversible, or what prerequisites exist.

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 sentence that is front-loaded with the action and purpose. It contains no filler, repetition of schema details, or unnecessary context.

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 simple one-parameter tool the description is minimal, but with no annotations and no output schema, it leaves important operational context uncovered. It does not explain side effects, relationship to alternative gradient-correction tools, or required view state, so an agent could invoke it in the wrong context.

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?

The input schema already documents the single parameter view_id with 100% coverage. The description adds no additional parameter semantics, so the baseline score of 3 is appropriate.

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 and resource: 'Run GradientCorrection on a view to remove a background gradient.' It clearly identifies the operation and its intended outcome. However, it does not explicitly differentiate this from sibling tools like run_abe or run_per_channel_abe that also address background gradients.

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 'to remove a background gradient' provides an implied usage context. There are no explicit when-to-use or when-not-to-use instructions, and no alternatives are named despite many sibling tools that may overlap in purpose.

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

run_hdrmtA

Run HDRMultiscaleTransform on a view. Inverted mode enhances detail; normal mode compresses dynamic range.

ParametersJSON Schema
NameRequiredDescriptionDefault
layersYesNumber of decomposition layers, 4 to 8 (default 6)
view_idYesView ID to process
invertedNoInverted mode (enhances detail instead of compressing)
iterationsNoNumber of iterations (default 1)
preserve_hueNoPreserve hue for color images (default true)
to_lightnessNoApply to lightness only for color images (default true)

TDQS

A3.5/5.0
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 disclosing side effects. It explains mode effects but does not state whether the view is modified in place, whether a new view is created, or whether the operation is reversible. This is a significant gap for a processing tool.

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?

Two short sentences, both informative, with the main action first and mode semantics second. There is no filler or repetition of schema information.

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?

With no annotations and no output schema, the description is somewhat thin for a six-parameter processing tool. The schema covers parameters and the description covers the algorithm and mode intent, but side effects and result behavior are left unspecified, so it is only minimally complete.

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 100%, so parameters are already documented in the schema. The description adds a little semantic context by connecting inverted mode to detail enhancement and normal mode to dynamic-range compression, but does not go beyond that baseline.

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

Purpose5/5

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

The description names a specific operation, HDRMultiscaleTransform, and its target, a view. It also distinguishes the two modes (inverted vs normal), so an agent can identify the tool's role among many image-processing siblings.

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 mode sentence gives some selection guidance (use inverted for detail enhancement, normal for dynamic-range compression), but there is no explicit statement of when to prefer this tool over alternatives or any exclusions. Usage context is only implied by the algorithm name.

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

run_lheA

Run LocalHistogramEqualization (contrast-limited local histogram equalization) on a view. Omitted parameters keep PixInsight's defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNoBlend of the equalized result with the original, 0 to 1.
radiusNoKernel radius in pixels.
view_idYesPixInsight view identifier.
slope_limitNoContrast slope limit.
circular_kernelNoCircular kernel (true) or square kernel (false).
histogram_resolutionNoHistogram resolution: 8, 10 or 12 bits.

TDQS

A3.5/5.0
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 adds the useful fact that omitted parameters use PixInsight defaults, but it does not state whether the view is modified in place, whether a new view is created, whether undo or a preview is involved, or any other 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?

Two short sentences, no filler, and the core operation is front-loaded. Every sentence 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?

For a six-parameter process tool with no output schema and no annotations, the description plus the complete schema is sufficient for basic invocation. However, it omits behavioral context such as in-place mutation, output behavior, or prerequisites, 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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description's default-value note adds a useful behavioral hint but does not add per-parameter meaning beyond what the schema already provides.

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

Purpose5/5

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

The description names a specific verb ('Run'), a specific resource ('LocalHistogramEqualization'), and the target ('a view'), with a clarifying parenthetical. This makes it clearly distinct from the many generic run_* sibling tools.

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?

Usage is implied by the process name: an agent should call this when local histogram equalization is requested on a view. The description does not explicitly state when to prefer this over alternative tools or provide exclusions, but it does add the practical note that omitted parameters fall back to PixInsight defaults.

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

run_mgcA

Run MultiscaleGradientCorrection using the MARS reference database. The image must be plate-solved and linear; a mono image also needs the flux metadata run_spfc writes. For a mono image pass filter (L, R, G, B, Ha, OIII, SII); a mono image without filter is refused, since MGC would then fit its model against a MARS band that is not the image's. For a color image leave it out (R, G, B bands are used). MARS files default to the ones configured in PixInsight.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoMono only. One of L, R, G, B, Ha, OIII, SII
view_idYesView ID to process
mars_filesNoAbsolute .xmars paths (default: from PixInsight settings)
show_modelNoAlso create the gradient model window
gradient_scaleNoGradient scale in pixels (default 1024)
model_smoothnessNoModel smoothness (default 1)
structure_separationNoStructure separation (default 3)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the refusal condition for a mono image without a filter, the prerequisite metadata, and the default source of MARS files. It stops short of saying the target view is modified in place or what the returned result is.

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?

Four tight sentences, front-loaded with the operation and its hard prerequisites before the conditional filter rules. The final sentence about MARS defaults lightly repeats the schema default but is not wasteful.

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

Completeness4/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 process tool with 7 parameters, the description covers prerequisites, conditional parameter behavior, and defaults adequately. The remaining gap is that it never states the target view is mutated in place.

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 coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema: it explains that filter applies to mono only, lists the allowed values, and justifies why omitting it on mono is fatal (band/model mismatch). That reasoning is not in the schema.

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?

Names a specific verb and resource ("Run MultiscaleGradientCorrection") and immediately scopes it with the MARS reference database. It does not, however, differentiate itself from the sibling gradient-correction tools (run_gradient_correction, run_abe, run_per_channel_abe), which an agent would need to disambiguate among.

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

Usage Guidelines5/5

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

Explicit preconditions are given (must be plate-solved and linear; mono requires flux metadata written by run_spfc), plus a clear when-to-pass-filter rule for mono vs color and a stated refusal case with the reason behind it. This is close to a complete routing guide for the tool.

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

run_nxtC

Run NoiseXTerminator to reduce noise on a view.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNoDetail preservation, 0 to 1.
denoiseYesDenoise strength, 0 to 1.
view_idYesPixInsight view identifier.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are completely absent, so the description carries the full burden of behavioral disclosure. The description only says 'run to reduce noise', which is minimal. It does not disclose that this is a heavy computation, requires a view to be open, or what happens to the view (e.g., modifies it in place). No information about side effects, performance, or limitations. Given the absence of annotations, this is insufficient.

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 sentence with no fluff. It is concise and front-loaded with the action. However, given the lack of usage guidelines and behavior details, some additional sentences would be justified, so it could be slightly under-specified, but for what it covers, it is efficient.

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 annotations, no output schema, and a moderately complex 3-parameter set, the description is incomplete. It fails to explain the interplay between denoise and detail, the expected result (reduced noise), any prerequisites (e.g., view must be open), or how it differs from alternatives. An agent needs more context to invoke it correctly.

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 100%, with each parameter having a description. The description adds only the context that the tool reduces noise, which implies that 'denoise' and 'detail' are noise reduction parameters. However, it does not add new meaning beyond the schema: 'detail preservation' and 'denoise strength' are self-explanatory. Baseline 3 is appropriate because the schema already explains them well.

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 (Run NoiseXTerminator to reduce noise) and the target (a view). It is specific enough to distinguish from general purpose tools like run_process or run_pjsr, though it doesn't explicitly name siblings. The verb 'run' and resource 'view' are present. Could be improved by mentioning it's specifically for noise reduction, which it already does. Distinguishes from noisy counterparts like run_sxt or run_bxt slightly, but those are similar noise reduction 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?

The description does not specify when to use this tool versus alternatives like run_sxt (which is likely a synonym) or other noise reduction tools. It does not provide context on when noise reduction is appropriate or when to use other processes. No exclusions or alternatives are mentioned. This is a gap: an agent might struggle to decide between run_nxt and run_sxt if both exist.

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

run_per_channel_abeA

Run AutomaticBackgroundExtractor (ABE) separately on the R, G and B channels of a color view, then recombine them into the view with ChannelCombination. ChannelExtraction writes the channels to the temporary views __pca_R, __pca_G and __pca_B; ABE subtracts its model from each in place and discards the model; the temporary views and any other view the call opened are closed afterwards. An ABE parameter that is not given is left at PixInsight's default, as run_abe does.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesRGB color view ID (modified in place)
toleranceNoABE sample rejection tolerance for every channel (AutomaticBackgroundExtractor tolerance); omitted = PixInsight default
poly_degreeNoABE polynomial degree for every channel (AutomaticBackgroundExtractor polyDegree); omitted = PixInsight default

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations present, the description carries the full burden and does so excellently. It discloses that ChannelExtraction writes named temporary views, ABE subtracts its model in place and discards it, and all opened views are closed afterwards, including side effects on the target view.

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

Conciseness5/5

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

Three dense sentences, each earning its place: the first states the core operation, the second explains the intermediate and cleanup behavior, and the third clarifies default handling. No filler or repetition.

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 multi-step stateful tool with no annotations and no output schema, the description is remarkably complete. It covers the full pipeline, temporary view names, in-place mutation, model disposal, cleanup, and defaults, leaving no critical operational gap for an agent.

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%, so baseline is 3. The description reinforces that both tolerance and poly_degree apply to every channel and that omitted values follow PixInsight defaults, but this mostly echoes the schema's existing 'omitted = PixInsight default' notes rather than adding substantial new meaning.

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 and resource: it runs ABE on the R, G, and B channels of a color view and recombines them. It clearly distinguishes itself from sibling run_abe by explaining the per-channel workflow.

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 clearly states the context: a color view, processed per-channel rather than whole-view. It references run_abe for default behavior, giving a useful point of comparison. It does not explicitly state when not to use it or name alternatives as exclusions, but the context is clear enough.

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

run_pixelmathA

Run an arbitrary PixelMath expression in place on a view. The result is truncated to [0,1]; the reply gives, per channel, the fraction of samples that were below 0 or above 1 before truncation, and their min and max. RULES: (1) NO pow() — use exp(exponent*ln(base)). (2) Channel access is $T[0] for R, $T[1] for G, $T[2] for B — NOT $T.R or $T.B. (3) For other images use viewId[0], viewId[1], viewId[2].

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsNoSymbol declarations (comma-separated)
view_idYesView ID to process
expressionYesPixelMath expression using $T for current pixel value
single_expressionNoApply the same expression to all channels (default true)

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the in-place mutation, that output is truncated to [0,1], and that the reply reports per-channel out-of-range fractions plus min/max. It omits whether the underlying image data is permanently altered versus a preview copy.

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-loads the purpose, then behavior, then a compact numbered rule list. Dense but every sentence serves a purpose with no filler.

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

Completeness4/5

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

For a 4-parameter tool with no output schema and no annotations, the description covers mutation semantics, return contents, and expression syntax pitfalls. It lacks error/precondition details (e.g., whether the view must already be open) but is largely self-sufficient.

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 coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema by specifying channel access syntax ($T[0] vs $T.R) and viewId[0] referencing, which directly governs how the expression parameter must be written.

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?

States a specific verb (Run), resource (arbitrary PixelMath expression) and scope (in place on a view). The 'in place' qualifier implicitly distinguishes it from the sibling pixelmath_new_image, though that sibling is never named.

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?

Usage is strongly implied by the operation itself, but there is no explicit when-to-use guidance and no routing to alternatives such as pixelmath_new_image for non-destructive work. The agent must infer the choice.

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

run_pjsrA

Run a PJSR (JavaScript, V8 engine) snippet inside PixInsight and return its console output. Last resort for things the other tools do not cover. Call processEvents() before each long process (BXT, NXT, SXT) so Pause/Abort works. No ES6 module syntax; the snippet is eval-ed as a script, so #include does not work and a top-level return is a syntax error; include prepends files instead. Code that does not parse is refused with its line number before anything reaches PixInsight.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesPJSR code. The value of the last expression is returned.
asyncNoRun as a job: the call returns a job id at once and the code runs in PixInsight in the background. job_status reports on the job and returns its result; cancel_job stops it. While a job runs, other calls that use PixInsight are refused. The running code can call mcpProgress(text) to report progress and mcpCancelRequested() to see whether cancel_job was called.
includeNoAbsolute paths of PJSR source files whose contents run before `code`, in this order, in the same scope, so functions they define can be called from `code`.

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: the snippet is eval-ed as a script, ES6 module syntax and #include fail, a top-level return is a syntax error, include prepends files, and non-parsing code is refused with a line number before reaching PixInsight. These execution and failure semantics are exactly what an agent needs before writing code.

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 purpose, then routing, then execution caveats, then syntax constraints, with no filler. It is dense but every sentence delivers actionable information.

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

Completeness4/5

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

Covers return value (console output / last expression), parse-error behavior, and execution constraints even though there is no output schema. It leaves the async job lifecycle largely to the schema, which is acceptable since the schema documents it fully.

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 100%, so the schema already documents code, async, and include thoroughly (job id, job_status, cancel_job, mcpProgress, mcpCancelRequested). The description only adds the processEvents() caveat, which is behavioral rather than parameter-specific, 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 verb and resource ('Run a PJSR snippet inside PixInsight and return its console output'), and the note that it is a 'last resort' distinguishes it from the many dedicated run_* siblings. An agent can tell what it does without opening the schema.

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?

Explicit routing guidance: 'Last resort for things the other tools do not cover,' plus a concrete rule to call processEvents() before long processes so Pause/Abort works. It does not explicitly name run_pjsr_file as the file-based alternative, so the when-not side is slightly under-specified.

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

run_pjsr_fileA

Run a PJSR (JavaScript, V8 engine) source file from disk inside PixInsight and return its console output. Same execution model as run_pjsr, with the code read from a file instead of passed inline. No ES6 module syntax; the file content is eval-ed, so #include does not work. Code that does not parse is refused with its line number before anything reaches PixInsight.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the PJSR source file.
asyncNoRun as a job: the call returns a job id at once and the code runs in PixInsight in the background. job_status reports on the job and returns its result; cancel_job stops it. While a job runs, other calls that use PixInsight are refused. The running code can call mcpProgress(text) to report progress and mcpCancelRequested() to see whether cancel_job was called.

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that content is eval-ed, no ES6 module syntax, #include does not work, and parse failures are refused with a line number before reaching PixInsight. The async behavior (job id, background execution, blocking other PixInsight calls, mcpProgress/mcpCancelRequested) is described, though much of it is duplicated in the schema's async property.

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?

Four sentences, front-loaded with purpose and the sibling comparison, then the two key execution constraints. Every sentence carries information, though the async description slightly overlaps the schema text.

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

Completeness4/5

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

No output schema exists, and the description does state the return ('console output'), plus parse-error behavior and the async result path via job_status. Combined with 100% schema coverage, an agent has what it needs to call this correctly; only minor details (e.g., output formatting/truncation) are unaddressed.

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 100%, so both parameters are already fully documented by the schema itself, including the async job semantics. The description adds execution-model context but no additional per-parameter meaning, so the baseline of 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 verb (run) and resource (a PJSR JavaScript source file from disk), and clarifies the return ('return its console output'). It explicitly distinguishes itself from the closest sibling by noting it is 'Same execution model as run_pjsr, with the code read from a file instead of passed inline.'

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 inline-vs-file contrast with run_pjsr gives clear routing guidance, and the async paragraph explains the job model and the sibling tools job_status/cancel_job. It lacks an explicit exclusion (e.g., 'use run_pjsr instead when the code is not on disk'), so it is strong but not fully exhaustive.

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

run_plate_solveA

Plate solve an open image with ImageSolver against the local Gaia DR3/SP database (offline). Adds the astrometric solution needed by run_spfc, run_mgc and run_spcc. Needs an approximate position (ra_deg, dec_deg; within a fraction of the field is enough) and scale (pixel_scale in arcsec/px, or focal_length_mm + pixel_size_um) unless the image keywords already carry RA, DEC and FOCALLEN/XPIXSZ. If the seeded solve fails, it is retried with the scale seed multiplied by 0.5, 2, 1/3 and 3 in turn (scale_search false tries the seed only). The result gives the solved scale from the solution, the expected scale (the seed, or the one the keywords give) and their ratio, which is far from 1 for a master a stacker resampled or drizzled. Observation time is read from DATE-OBS/DATE, else today.

ParametersJSON Schema
NameRequiredDescriptionDefault
ra_degNoApproximate center RA in degrees
dec_degNoApproximate center Dec in degrees
view_idYesView ID to plate solve
pixel_scaleNoApproximate pixel scale in arcsec/pixel
scale_searchNoRetry with wider scale seeds when the seeded solve fails (default true)
pixel_size_umNoPixel size in microns
observation_jdNoJulian date of the observation (only if no DATE-OBS/DATE keyword)
focal_length_mmNoFocal length in mm (use with pixel_size_um instead of pixel_scale)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that solving is offline against a local catalog, that it mutates the image by adding an astrometric solution, and the exact retry ladder (0.5x, 2x, 1/3x, 3x, disabled by scale_search=false). It does not say whether the call blocks or runs as a background job, which matters given siblings like job_status/cancel_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?

Front-loaded purpose, then prerequisites, then fallback behavior. Six dense sentences, each carrying new information (keyword fallback, retry multipliers, ratio interpretation, time source), though the retry-ladder detail is verbose enough that it could be tightened.

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

Completeness4/5

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

No output schema exists, and the description compensates by explaining the returned solved scale, expected scale and their ratio, plus the failure/retry behavior. The only missing piece is execution semantics (synchronous vs job-based) for what is likely a long solve.

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 coverage is 100%, so baseline is 3, but the description adds real semantics beyond the schema: the tolerance on ra_deg/dec_deg, the mutual exclusivity of pixel_scale vs focal_length_mm+pixel_size_um, the meaning of scale_search=false, and the DATE-OBS/DATE fallback for the observation time.

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?

Opens with a specific verb+resource ('Plate solve an open image with ImageSolver') and narrows scope to the offline local Gaia DR3/SP database. It also situates itself in the pipeline by naming the downstream consumers (run_spfc, run_mgc, run_spcc), which no sibling ambiguity leaves open.

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?

Explicit prerequisites: an approximate position within a fraction of the field and a scale seed, with the keyword-based exemption (RA/DEC/FOCALLEN/XPIXSZ) spelled out, plus the pixel_scale vs focal_length_mm+pixel_size_um alternative. It does not state when NOT to use it or what to do if the solve ultimately fails.

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

run_processA

Instantiate any PixInsight process by its PJSR constructor name, assign JSON-valued parameters onto the instance, and execute it on a view (when view_id is given) or globally (when it is omitted). Generic fallback for processes with no dedicated tool. A process that has the noGUIMessages property (Crop, DynamicCrop, Resample, IntegerResample, Rotation, FastRotation, ChannelMatch and others) runs with it set to true unless params sets it, so its confirmations and warnings go to the Process Console instead of a dialog.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPJSR process constructor name, e.g. "SCNR".
paramsNoProperty name to JSON-valued setting, assigned on the process instance before it runs.
view_idNoView to run the process on. Omit to run the process globally instead.

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden and does so meaningfully: it discloses the side effect of setting noGUIMessages=true for named processes (Crop, DynamicCrop, Resample, etc.), explaining that confirmations/warnings are redirected to the Process Console unless params overrides it. It does not cover error behavior, permissions, or failure modes, but this is a solid, non-obvious behavioral disclosure.

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?

Three sentences, front-loaded with the core action (instantiate, assign, execute), followed by the fallback positioning and the noGUIMessages detail. The parenthetical process list is slightly verbose but earns its place as a concrete example set. Efficient overall.

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

Completeness4/5

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

For a generic exec-style tool with nested-object params, no annotations, and no output schema, the description covers purpose, scoping semantics, and a key behavioral side effect. It leaves error handling and return-value expectations implicit, but the core call-correctness information is present.

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 the schema already documents all three parameters (name, params, view_id). The description adds the semantic that params are 'assigned onto the instance' and that omitting view_id means global execution, but it largely echoes what the schema already states. Baseline 3 is appropriate when schema does the heavy lifting.

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 verb+resource (instantiate a PixInsight process by PJSR constructor name, assign params, execute) and explicitly positions itself as the 'generic fallback for processes with no dedicated tool', which distinguishes it from siblings like run_mgc, run_lhe, run_bxt, run_abe, etc.

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 clearly states when to use this tool: as a fallback when no dedicated tool exists, and describes when to pass view_id (view) vs omit it (global). It does not name a concrete alternative or list explicit exclusions, but the fallback framing gives clear selection context.

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

run_scnrB

Run SCNR (Subtractive Chromatic Noise Reduction) to remove a green colour cast from a view.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNoGreen removal amount, 0 to 1.
view_idYesPixInsight view identifier.
protectionNoProtection method.AverageNeutral

TDQS

B3.1/5.0
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 only states the high-level purpose and does not say whether the tool mutates the view in place, requires an open view, or returns any result. This is a significant transparency gap for a process-runner tool.

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. It introduces the acronym expansion and states the tool's purpose without 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 schema fully documents parameters above, making invocation feasible impossible, and the purpose is clear. However, the absence of annotations and an output schema means the description should provide more context about the operation's effect on the view and any prerequisites, so the definition is only minimally complete.

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 100%, so the schema already documents all three parameters and their defaults. The description adds no parameter-level meaning beyond the schema, which meets the baseline but does not improve it.

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 ('Run') and names the exact process (SCNR), plus its intended effect ('remove a green colour cast from a view'). It is clear, though it does not explicitly differentiate itself from sibling color-correction 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?

The description implies when to use the tool (when a green cast exists) but provides no explicit guidance about when to prefer it over alternatives like run_background_neutralization, restore_star_color, or run_curves. No exclusions or alternative routing is given.

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

run_spccA

Run SpectrophotometricColorCalibration (SPCC). Requires the image to have an astrometric solution (run_plate_solve adds one) and to be linear (not stretched). Narrowband mode (narrowband_mode true) calibrates each channel as a narrow band: give the real filter centre and width per channel (red_/green_/blue_wavelength_nm and _bandwidth_nm; PixInsight's defaults are 656.3 / 500.7 / 500.7 nm and 3 nm for every band, wrong for a 5 nm H-alpha filter). The white reference matters for star colour: use a solar-type reference such as "G2V Star"; the default "Average Spiral Galaxy" makes a galaxy neutral and tints stars.

ParametersJSON Schema
NameRequiredDescriptionDefault
qe_nameNoCamera QE curve name (find_filters channel Q)
view_idYesView ID to calibrate (must be linear, must have a WCS/astrometric solution)
narrowband_modeNoEnable narrowband mode (default false)
red_filter_nameNoMeasured R filter curve name, as listed by find_filters. Set all three filters and qe_name together for a full calibration.
white_referenceNoWhite reference name from PixInsight's database, e.g. "Average Spiral Galaxy", "G2V Star"
blue_filter_nameNoMeasured B filter curve name, as listed by find_filters
red_bandwidth_nmNoNarrowband mode: bandwidth of the red channel's filter in nm (PixInsight default 3)
blue_bandwidth_nmNoNarrowband mode: bandwidth of the blue channel's filter in nm (PixInsight default 3)
green_filter_nameNoMeasured G filter curve name, as listed by find_filters
red_wavelength_nmNoNarrowband mode: centre wavelength of the red channel's filter in nm (default 656.3)
blue_wavelength_nmNoNarrowband mode: centre wavelength of the blue channel's filter in nm (default 500.7)
green_bandwidth_nmNoNarrowband mode: bandwidth of the green channel's filter in nm (PixInsight default 3)
green_wavelength_nmNoNarrowband mode: centre wavelength of the green channel's filter in nm (default 500.7)
white_reference_nameNoSame as white_reference

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does add real behavioral context: linearity/WCS prerequisites, the fact that PixInsight's narrowband defaults are wrong for real filters, and the downstream effect of the white reference on star colour. It does not state whether the view is modified in place or whether a new image is produced, which is the one notable gap for a mutation tool.

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 dense paragraph that front-loads the verb and then layers prerequisites, narrowband usage, and the white-reference caveat in that order. Every sentence carries information, though the white-reference clause at the end is slightly buried and could be split for scanability.

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

Completeness4/5

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

For a 14-parameter calibration tool with no annotations and no output schema, the description covers prerequisites, narrowband mode and white-reference behavior well enough to invoke it correctly. It omits the in-place mutation behavior and does not address the duplicated white_reference/white_reference_name fields, which leaves minor gaps.

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 coverage is 100%, so the 3 baseline applies, but the description goes beyond it by explaining the semantics of narrowband_mode, the per-channel wavelength/bandwidth pairing, and why the default centre/width values (656.3/500.7 nm, 3 nm) are often wrong. This adds genuine meaning over the schema's field-level text.

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 verb and named resource (Run SpectrophotometricColorCalibration), and distinguishes itself from the generic run_process/run_spfc siblings by naming the exact process and its calibration intent. An agent can tell this tool apart from the other run_* wrappers without opening the schema.

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?

Explicitly gives preconditions: the image must have an astrometric solution (with a concrete pointer to run_plate_solve) and must be linear, not stretched. It also explains when to set narrowband_mode true and how to supply per-channel values. It stops short of naming when NOT to use it versus run_spfc, so it is a little less than fully routing.

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

run_spfcA

Run SpectrophotometricFluxCalibration: writes the flux metadata that run_mgc requires. The image must be plate-solved and linear. Needs the camera QE curve (default "Ideal QE curve"; pass qe_name for the real sensor, see find_filters) and the filter curve. MONO image: pass filter (L, R, G, B, Ha, OIII, SII) and optionally filter_name (a measured curve from the database; otherwise a flat passband from wavelength_nm/bandwidth_nm is used). COLOR image: omit filter and pass red_filter_name, green_filter_name, blue_filter_name (otherwise flat R/G/B passbands).

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoMono only. One of L, R, G, B, Ha, OIII, SII
qe_nameNoCamera QE curve name (default "Ideal QE curve")
view_idYesView ID to calibrate
filter_nameNoMono: measured filter curve name from find_filters
bandwidth_nmNoMono: filter bandwidth in nm, if filter_name is not given
wavelength_nmNoMono: filter center wavelength in nm, if filter_name is not given
red_filter_nameNoColor: measured R filter curve name from find_filters
blue_filter_nameNoColor: measured B filter curve name from find_filters
green_filter_nameNoColor: measured G filter curve name from find_filters

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden, and it discloses that the tool writes metadata, has prerequisites, uses a default Ideal QE curve, and falls back to flat passbands when no measured filter curve is given. It does not mention overwrite/idempotency or possible failure modes, which keeps it slightly below a 5.

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

Conciseness5/5

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

Three dense sentences front-load the purpose before prerequisites and options. Every clause carries information, and the MONO/COLOR split makes a 9-parameter tool navigable without redundancy.

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

Completeness4/5

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

For a 9-parameter tool with no annotations or output schema, this is unusually complete: it covers prerequisites, dependencies, parameter selection rules, and defaults. The only gap is the absence of any statement about return values, overwriting existing metadata, or failure behavior.

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

Parameters5/5

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

Schema coverage is 100%, but the description goes beyond the schema by explaining the MONO vs COLOR parameter family, the rule to omit filter for color images, and the flat-passband default when filter_name is absent. This is meaningful semantic guidance that cannot be fully inferred from the property descriptions alone.

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 an action verb 'Run' with the expanded resource SpectrophotometricFluxCalibration and the concrete effect 'writes the flux metadata that run_mgc requires.' This distinguishes it from sibling calibration tools by naming its downstream consumer, so an agent can tell what it does and why.

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

Usage Guidelines5/5

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

Gives explicit prerequisites ('must be plate-solved and linear'), required inputs (QE curve, filter curve), and a branching rule for mono vs color images. It also routes the agent to find_filters for curve names and positions this as the step before run_mgc, providing clear when-to-use context.

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

run_sxtA

Run StarXTerminator to separate stars from a view, replacing it in place with the starless result and producing a separate stars view. is_linear selects the unscreen mode: off for linear (pre-stretch) data, on for non-linear (stretched) data.

ParametersJSON Schema
NameRequiredDescriptionDefault
overlapNoTile overlap (default 0.5). The former default 0.10 left a faint rectangular tile grid (cells of about 470 px) in linear starless images; 0.5 did not.
view_idYesView ID to extract stars from (modified in place to become starless)
is_linearYesWhether the image is linear (pre-stretch)

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full behavioral burden. It usefully discloses the in-place mutation (view becomes starless) and creation of a separate stars view, but omits permissions, reversibility, overwrite behavior, and process cost.

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?

Two sentences, front-loaded with the core action and followed by concise parameter guidance. No wasted words or redundant restatement.

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 no annotations and no output schema, the description covers the core operation and key side effects. However, for an in-place mutating tool it lacks prerequisites, naming/overwrite details for the stars view, and failure/undo context, leaving it only adequately complete.

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 coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema for is_linear by mapping the boolean to unscreen mode (off for linear, on for non-linear), though overlap and view_id are left entirely to the schema.

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 verb and resource (run StarXTerminator) and spells out the transformation: stars separated from a view, view replaced in place with starless result, and a separate stars view produced. This clearly distinguishes it from sibling run_* and star-related 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?

Provides selection guidance for the is_linear parameter (off for linear, on for non-linear), but never states when to choose run_sxt over sibling star tools such as stretch_stars, star_protected_blend, or restore_star_color. No alternatives, prerequisites, or when-not conditions are named.

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

run_wbppA

Start WeightedBatchPreprocessing (WBPP) headless in a separate PixInsight instance (PixInsight -n --automation-mode --force-exit) over input_dirs, writing into output_dir, and return a run id at once; wbpp_status reports the run. output_dir must lie inside /output (a relative path is resolved there) or the state folder. Only the WBPP parameters given are passed; WBPP's own settings apply to the rest. Interactive local normalization and frame selection are turned off so nothing waits for a click. optimize_darks and drizzle_scale are applied to every light group by a generated pipeline-builder script. extra_params passes further WBPP automation parameters by name (BPP-Automation.js lists them). Refuses while the GUI instance runs a command for this workspace, and while an earlier run_wbpp run of this workspace is running. Tools that use the GUI instance keep working while WBPP runs.

ParametersJSON Schema
NameRequiredDescriptionDefault
weightsNoSubframe weighting method, or none
autocropNoWBPP autocrop
keywordsNoGrouping keywords [{name, mode}], mode pre (calibration groups), post (integration groups) or prepost
integrateNoWBPP integrate
referenceNoAutomatic registration reference: one for all (auto) or one per value of reference_keyword
rejectionNoPixel rejection for lights (WBPP rejection_4)
input_dirsYesFolders WBPP scans recursively for lights, darks, flats and bias (WBPP dir=)
output_dirYesWBPP output folder: relative to <workspace>/output, or absolute inside <workspace>/output or the state folder
plate_solveNoWBPP platesolve
extra_paramsNoFurther WBPP automation parameters, {name: value}
drizzle_scaleNoEnable drizzle on every light group at this scale
optimize_darksNoSet dark optimization on every light group
frame_selectionNoFrame selection filters [{metric, value, compare}], compare less or greater (non-interactive)
reference_imageNoRegistration reference image file (WBPP referenceImage, manual reference)
reference_keywordNoKeyword for reference auto_by_keyword
image_registrationNoWBPP imageRegistration
local_normalizationNoWBPP localNormalization (run non-interactively)
distortion_correctionNoWBPP distortionCorrection
generate_rejection_mapsNoWBPP generateRejectionMaps

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so richly: it explains the separate PixInsight invocation with automation flags, asynchronous return of a run id, output_dir constraints, that only supplied WBPP parameters are passed, that interactive local normalization and frame selection are disabled, that optimize_darks and drizzle_scale apply to every light group via a generated script, and the exact refusal conditions. This is far beyond what the schema alone would convey.

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 front-loaded: the first sentence states what the tool does and that it returns a run id immediately. Every sentence adds operational detail relevant to a complex 19-parameter tool, though the dense prose could be easier to scan if split into short bullet-like clauses.

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?

Given the complexity, 19 parameters, no output schema, and no annotations, the description is complete enough to invoke correctly. It explains the asynchronous run-id return, how to check status via wbpp_status, output_dir constraints, non-interactive behavior, parameter passing rules, and refusal conditions, while the 100%-covered schema handles per-parameter details.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema: 'Only the WBPP parameters given are passed; WBPP's own settings apply to the rest,' 'optimize_darks and drizzle_scale are applied to every light group by a generated pipeline-builder script,' and extra_params is explained as further WBPP automation parameters listed in BPP-Automation.js. These details clarify how several parameters interact with WBPP behavior.

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 begins with a specific verb and resource: 'Start WeightedBatchPreprocessing (WBPP) headless in a separate PixInsight instance.' It also names the sibling tool wbpp_status that reports the run, so an agent can distinguish this tool from related status and processing siblings without opening schemas.

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 gives clear operational context: output_dir must be inside <workspace>/output or the state folder, and the tool refuses while the GUI instance runs a workspace command or while an earlier run_wbpp is running. It also points to wbpp_status for run reporting. However, it does not explicitly compare run_wbpp against alternative processing tools like run_process or run_pjsr for non-WBPP workflows.

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

save_and_show_previewC

Alias for save_preview. Save a JPEG preview of a view and return the file path.

ParametersJSON Schema
NameRequiredDescriptionDefault
cropNoRegion [x0, y0, x1, y1] of the view in pixels (x1, y1 exclusive); the whole view when omitted
labelYesShort label for this preview (e.g. "after_stretch", "final")
stf_mNoBake a linked STF with this midtones balance (0 < m < 1) into the JPEG; needs stf_c0
stf_c0NoShadows clipping point of the linked STF given with stf_m (0 <= c0 < 1)
view_idYesPixInsight view ID
stf_fromNoBake this view's STF (its display stretch) into the JPEG; the view may be view_id itself. Several previews given the same stf_from are stretched identically
downsampleNoDivide width and height by this factor (>= 1). Omitted: the preview is scaled down to at most 2048 px on its longer side

TDQS

C2.9/5.0
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 behavioral burden. It discloses only that the tool returns a file path; nothing is said about where files are written, whether existing previews are overwritten, or what side effects occur. For a save/write operation with zero annotation coverage, this is a substantial gap.

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?

Two short sentences, front-loaded with the alias relationship before the action. No wasted words; it is appropriately sized for what it conveys, though it is arguably too terse given the tool's complexity.

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 7-parameter mutation tool with no annotations and no output schema, the description omits the save semantics (destination, overwrite behavior) that the agent most needs. The fully documented schema compensates for the parameters, but the writing/aliasing behavior around save_preview remains unexplained.

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 100%, so all seven parameters (crop, stf_m, stf_c0, stf_from, downsample, view_id, label) are already documented in the schema. The description adds no syntax or format detail beyond that, so the baseline 3 applies.

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?

States a specific verb and resource ("Save a JPEG preview of a view") and explicitly identifies itself as an alias of save_preview, so an agent knows what it does. It does not explain how it differs from save_preview beyond being an alias, but the core action 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 Guidelines2/5

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

The description gives no when-to-use guidance, no prerequisites, and no condition for choosing this over the sibling save_preview. Calling it an "alias" implies equivalence but leaves the agent to infer whether either tool is preferred.

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

save_previewA

Save a JPEG preview of a view and return the file path. Optionally a crop region, a downsample factor, and an STF (display stretch) baked into the pixels: the STF of a view (stf_from) or a linked one given as stf_m and stf_c0. Without an STF the JPEG holds the view's pixel values as they are. The view itself is not changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
cropNoRegion [x0, y0, x1, y1] of the view in pixels (x1, y1 exclusive); the whole view when omitted
labelYesShort label for this preview (e.g. "after_stretch", "final")
stf_mNoBake a linked STF with this midtones balance (0 < m < 1) into the JPEG; needs stf_c0
stf_c0NoShadows clipping point of the linked STF given with stf_m (0 <= c0 < 1)
view_idYesPixInsight view ID
stf_fromNoBake this view's STF (its display stretch) into the JPEG; the view may be view_id itself. Several previews given the same stf_from are stretched identically
downsampleNoDivide width and height by this factor (>= 1). Omitted: the preview is scaled down to at most 2048 px on its longer side

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does meaningfully: it states the return value (file path), the non-destructive guarantee ('The view itself is not changed'), and the default behavior absent an STF ('the JPEG holds the view's pixel values as they are'). It omits details like where the file lands or overwrite behavior, so it is not exhaustive.

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?

Four economical sentences that are front-loaded with the primary action and outcome before detailing optional behavior. No filler, though the STF sentence is slightly dense.

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 7-parameter write-to-disk tool with no annotations and no output schema, the description covers the return value and non-mutation well but leaves gaps on destination path, file naming/overwrite behavior, and error conditions. Adequate but not fully complete.

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 coverage is 100%, so baseline is 3, and the description adds real semantic value by explaining the STF concept (stf_from vs. the linked stf_m/stf_c0 pair) and what baking an STF does to the pixels. This goes beyond restating 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 opens with a specific verb+resource: 'Save a JPEG preview of a view and return the file path.' An agent immediately knows the output artifact and location. However, it never distinguishes itself from close siblings like save_and_show_preview or export_image, so differentiation is left to inference.

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?

Usage is implied (previews, optional STF/downsample) but there is no explicit when-to-use statement and no named alternative for the many sibling preview/export tools. The 'Optionally...' phrasing guides parameter choices, but not tool selection.

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

scan_workspaceA

Scan the working folder (recursively, any subfolder name) for XISF/FITS files and report each one's FILTER header value, geometry, exposure, whether it has an astrometric solution (WCS keywords CTYPE/CRVAL with a CD, CDELT or PC matrix, or PixInsight's PCL:AstrometricSolution properties), and its INSTRUME, TELESCOP, FOCALLEN, XPIXSZ, YPIXSZ and XBINNING keywords verbatim (null when absent). The connector's own state and output folders are not scanned. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/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 explicitly states 'Read-only' and details that the scan is recursive and excludes connector folders. It also specifies that keywords are reported verbatim and null when absent, which is useful behavioral context. However, it does not mention performance implications, permissions, or the exact output structure, though the lack of side effects is well covered.

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, information-dense sentence that front-loads the purpose ('Scan the working folder...') before detailing specifics. Every phrase adds value—the file types, the list of attributes, the astrometric solution detection, and the exclusions. It is not overly verbose, though the long list of keywords makes it a bit dense; it could be broken into a structured list for readability, but it remains efficient.

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

Completeness4/5

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

Given there is no output schema, the description must fully explain what the tool returns. It lists the exact header values and the astrometric solution check, plus the null-when-absent behavior. It also states the scan is recursive and read-only. This is complete enough for an agent to understand the tool's purpose and likely output, though the exact return format (e.g., JSON shape) is not specified—acceptable without an output schema.

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 schema describes none. The description adds no parameter semantics because there are none to explain. Per the rubric, with 0 params the baseline is 4. The description adds value by explaining the output rather than parameters, which is appropriate.

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 precise verb ('scan') and resource (working folder for XISF/FITS files) and enumerates exactly what it reports per file (FILTER, geometry, exposure, astrometric solution presence, and six specific keywords). It also distinguishes itself from sibling tools like find_filters by focusing on header extraction rather than filter discovery.

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 clearly states the scope of the scan and what it does, but it does not explicitly say when to use this tool versus alternatives (e.g., workspace_info, find_filters). There is no mention of when not to use it or which sibling might be better for a different purpose. The only constraint given is that connector state/output folders are excluded, which is a behavioral note, not usage guidance.

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

set_stfA

Set the ScreenTransferFunction (display stretch) of a view without changing its pixels, and return it as rows [m, c0, c1, r0, r1] for R, G, B (K for mono) and luminance. Either copy the STF of from_view_id, or compute PixInsight's auto-stretch exactly as auto_stretch does (per channel sigma = 1.4826 × MAD; c0 = median + shadows_clipping × sigma; m = MTF(target_bg, median − c0); linked: one set of values for R, G and B from the mean clipping point and mean median). An STF is stored with the view and saved in XISF files.

ParametersJSON Schema
NameRequiredDescriptionDefault
linkedNoColour images: true computes one set of values for R, G and B; false one per channel. Ignored for mono images
view_idYesView whose STF is set
target_bgNoTarget background level, strictly between 0 and 1
from_view_idNoCopy this view's STF instead of computing one; target_bg, shadows_clipping and linked are then not allowed
shadows_clippingNoClipping point relative to the median, in units of sigma = 1.4826 × MAD

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does well: it discloses that pixels are untouched (display-only mutation), the exact return row layout, and that the STF persists with the view and in XISF files. It omits permission/error behavior, keeping it short of a 5.

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-loads the core purpose before the mode details, and every sentence contributes. The embedded formula is dense but justified for a precision-sensitive stretch operation, though it slightly lengthens the definition.

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?

No output schema exists, yet the description explicitly documents the return value ([m, c0, c1, r0, r1] per channel). Combined with behavior, parameter math, and persistence notes, an agent has everything needed to call it correctly.

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 coverage is 100% (baseline 3), but the description goes further by explaining the underlying math for shadows_clipping (sigma = 1.4826 × MAD), target_bg (MTF target), and linked (one set of R/G/B values from mean clipping point and median). This adds real meaning beyond the schema's field descriptions.

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 verb (Set) and resource (the ScreenTransferFunction/display stretch of a view), plus a key scope qualifier (without changing its pixels). An agent can distinguish this from siblings like auto_stretch and robust_median_stretch without opening any schema.

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?

Clearly lays out the two operational modes ('Either copy the STF of from_view_id, or compute ... exactly as auto_stretch does') and the mutual exclusion captured in the schema. It gives strong context but does not explicitly state when to prefer this tool over the referenced sibling auto_stretch.

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

set_workspaceA

Set the workspace folder this session's files go under (scratch files, the bridge, call logs). path must name an existing, writable folder, absolute or starting with ~/, other than the filesystem root or the home directory itself. Returns the new workspace_info.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe folder: an absolute path, or one starting with ~/.

TDQS

A4.2/5.0
Behavior4/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 discloses that this is a state-changing operation (sets the workspace), scopes the effect to session files, imposes explicit validation rules (existing, writable, not root/home), and notes the return type. This is substantial, though it does not mention failure behavior or reversibility. The stated validation and effect coverage merit a strong score.

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?

Two sentences with no filler. The first sentence states the primary purpose, the second covers constraints and return. Information is front-loaded and every clause earns its place. This is an exemplary concise definition.

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

Completeness4/5

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

For a simple one-parameter setter with no output schema, the description covers the essential points: purpose, constraints, return type, and session scope. It omits error handling details, but given the simplicity and the constraints already provided, an agent has sufficient information to call it correctly. Minor gaps remain, such as effects on existing files, but overall it is well-rounded.

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 already describes the path parameter, so baseline is 3. The description adds meaningful constraints beyond the schema: 'existing, writable', 'other than the filesystem root or the home directory itself'. This enriches the parameter's meaning and helps the agent avoid invalid inputs, exceeding what the schema alone provides.

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 verb 'Set' and the resource 'workspace folder', and specifies what files it affects (scratch files, bridge, call logs). This distinguishes it from likely read-only siblings like workspace_info or scan_workspace, leaving no ambiguity about its function.

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 provides constraints for the path (existing, writable, not root/home) and states the return value, giving some usage context. However, it does not explicitly contrast with sibling tools like workspace_info (to query) or scan_workspace (to scan), nor does it indicate when in a workflow it should be called. The intended usage is implied rather than spelled out.

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

shell_detail_enhanceA

Protected high-pass detail enhancement at two scales, in place. For each scale, detail = image - Gaussian blur of sigma _sigma (locally zero-mean), and result = image + _amount x detail x protection, where protection = exp(-protect_softness x max(0, L - protect_knee) / max(1 - protect_knee, 0.01)) and L is Rec.709 luminance, so the boost attenuates above protect_knee. A scale with amount 0 is skipped. Output is truncated to [0, 1]. It does not hold the peak fixed: the added detail can raise the image maximum (the result reports the image maximum before and after, from full image statistics). With mask_id the enhancement runs through that mask; with auto_zone and no mask_id it builds the adaptive shell zone mask (as create_adaptive_zone_masks with its default core_bias), uses it and closes it, and fails without changing the view if that mask cannot be built; with neither it runs unmasked. Reports before/after texture metrics over pixels between median + 5 x 1.4826 x MAD and 0.98, sampled every 8 pixels: mean squared Sobel gradient, median local standard deviation of 16-pixel blocks that are at least 30% such pixels, and the share of them where protection is below 0.5.

ParametersJSON Schema
NameRequiredDescriptionDefault
mask_idNoMask view to enhance through (optional)
view_idYesView to enhance (modified in place)
auto_zoneNoWith no mask_id: build the adaptive shell zone mask and enhance through it. If it cannot be built the call fails and the view is not modified
large_sigmaYesGaussian sigma of the large-scale blur, in pixels
large_amountYesLarge-scale detail multiplier (0 skips the scale)
medium_sigmaYesGaussian sigma of the medium-scale blur, in pixels
protect_kneeYesLuminance above which the boost attenuates
medium_amountYesMedium-scale detail multiplier (0 skips the scale)
protect_softnessYesAttenuation rate above protect_knee (>= 0; higher = steeper)

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and covers side effects in detail: in-place modification, truncation to [0,1], failure behavior for mask building, peak not held fixed, and the exact protection formula. This is unusually transparent for a mutating image-processing tool.

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 dense and run-on, but nearly every sentence carries needed behavioral information and it opens with the core purpose. Minor structural formatting would help readability, but content is well-earned.

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 9-parameter mutating tool with no annotations and no output schema, this description is remarkably complete: it covers masking modes, failure semantics, luminance math, output bounds, and the exact metrics returned. Nothing essential is left unspecified.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds substantial meaning: the formula linking protect_softness, protect_knee, and luminance; the rule that amount 0 skips a scale; and how auto_zone affects mask_id. This goes well beyond the baseline supplied by the schema.

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 opening line 'Protected high-pass detail enhancement at two scales, in place' uses a specific verb and resource and clearly identifies the operation. It distinguishes this from siblings like multi_scale_enhance by emphasizing two-scale, protected, and in-place behavior.

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 states exactly how the tool behaves under mask_id, auto_zone, and neither, from which an agent can infer appropriate use cases. It does not explicitly say when to prefer this over sibling tools or when not to use it, so guidance remains implied rather than explicit.

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

star_protected_blendA

Blend a stars-only image into a starless one in place, as a screen blend that turns colour-preserving in bright star cores. The mode follows, per pixel, the star layer's own luminance SL (the mean of its three channels). Below core_threshold_low: per-channel screen blend 1 - (1 - target) * (1 - stars * k). Above core_threshold_high: luminance-only screen blend, the target's colour scaled by the new over the old luminance and capped at max_value. Between them the two blend linearly. k = strength * prot, where prot falls linearly from 1 at core_threshold_low to min_strength_fraction at core_threshold_high. With pre_star_id, the bright-area colour ratios of that view are then restored over the same luminance ramp (see restore_star_color). Runs as 64-bit PixelMath truncated to [0,1]; reports the target's median and max before and after.

ParametersJSON Schema
NameRequiredDescriptionDefault
stars_idYesStars-only RGB view
strengthYesMultiplier k on the star layer in the screen blend, before protection
max_valueYesUpper cap on each channel of the colour-preserving blend, and of the colour restoration when pre_star_id is given
target_idYesStarless RGB view, modified in place
pre_star_idNoOptional: RGB view whose colour ratios are restored in bright areas after the blend; empty or absent = no restoration
core_threshold_lowYesStar luminance SL at and below which the pure screen blend applies and protection is 1
core_threshold_highYesStar luminance SL at and above which the pure colour-preserving blend applies and protection is min_strength_fraction; greater than core_threshold_low
min_strength_fractionYesProtection factor reached at core_threshold_high (strength is multiplied by it)

TDQS

A4.5/5.0
Behavior5/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 - and it excels. It fully discloses: in-place mutation, the exact blend formulas per luminance range, the strength/protection scaling, the optional colour restoration behavior, 64-bit PixelMath execution, truncation to [0,1], and reporting of median/max before and after. Nothing is hidden, and no contradiction exists with annotations since none are present.

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 dense and technical but every sentence earns its place: the core operation is front-loaded, then the luminance-dependent behavior, formulas, strength scaling, optional restoration, and execution details follow in a logical order. It is long because the tool is genuinely complex, not because of padding. A half-point is lost for the heavy formula density that could be slightly better organized into bullets or an example.

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 an 8-parameter, formula-driven tool with no output schema, the description is remarkably complete. It covers the response behavior (median/max reporting), side effects (in-place modification), parameter interrelationships, edge cases (threshold ramps, capping), and optional behavior (pre_star_id). An agent has everything needed to invoke the tool correctly.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds substantial meaning beyond the schema: it defines k as strength * prot, explains how prot ramps between thresholds, clarifies max_value's role as a cap in both the blend and colour restoration, and describes how pre_star_id interacts with the luminance ramp. This transforms a list of parameter names into an actionable mental model.

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 precise verb ('Blend'), specific resources ('stars-only image into a starless one'), and the in-place mutation behavior. It also names the closely related restore_star_color, which helps an agent distinguish this from a sibling rather than confusing them.

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 you want to blend a stars-only image into a starless one while protecting bright star cores. However, it does not explicitly state when not to use it or name alternatives beyond a passing reference to restore_star_color. The usage context is clear but not contrasted with sibling tools.

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

stretch_starsA

Stretch a linear star image in place with a pedestal subtraction and a repeated midtones transfer function. When the image median is above 1e-5 it is subtracted as a pedestal and the rest rescaled, max(0, (x − median)/(1 − median)); then the midtones transfer function MTF(m, x) = (1 − m)·x / ((1 − 2m)·x + m) is applied iterations times with m = midtone. Results are truncated to [0,1]. The result reports the pedestal, the final median and maximum, and high_fraction: among pixels sampled every 16 pixels whose value (the channel maximum) exceeds 0.005 before the stretch, the fraction above 0.5.

ParametersJSON Schema
NameRequiredDescriptionDefault
midtoneYesMTF midtones balance m, strictly between 0 and 1 (m < 0.5 brightens)
view_idYesStar image view ID
iterationsYesNumber of times the MTF is applied (>= 1)

TDQS

A3.9/5.0
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 the pedestal threshold (median > 1e-5), the exact formula, truncation, and the output metrics. It clearly states the operation is a stretch and modifies the image in place. No contradictions.

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 moderately long but every sentence adds detail: algorithm steps, threshold, exact formula, and output metrics. It is front-loaded with the main purpose and then explains mechanics. No fluff, but could be slightly tightened.

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

Completeness4/5

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

Given the complexity (two-step algorithm, iterations, pedestal handling) and lack of annotations or output schema, the description covers all essential behavior and return metrics. Minor gaps: no mention of required image state (e.g., must be linear) and no performance notes, but sufficient for calling.

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% (all 3 parameters are documented in the schema, including types and brief meanings). The description adds the m < 0.5 brightens note and clarifies the MTF application, but essentially repeats parameter meanings. Baseline of 3 is appropriate.

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 verb ('stretch') and resource ('linear star image'), and details the exact two-step algorithm. It clearly differentiates from siblings like auto_stretch and robust_median_stretch by naming the specific transfer function and pedestal subtraction.

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?

Implies use for linear star images needing a specific midtones stretch, but does not explicitly state when to use this versus auto_stretch or robust_median_stretch. No alternatives are named or excluded.

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

wbpp_statusA

Report a run_wbpp run: running, finished (with the PixInsight exit code) or ended without an exit record; the master files in /master; the number of .xisf files in each subfolder of /registered and /calibrated; the WBPP log files in /logs; and the last lines of the instance's console output. run_id omitted: the latest run.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idNoRun id from run_wbpp (default: the latest run)
tail_linesNoConsole-output lines to include (default 30)

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does so well: it discloses the possible run states (running, finished with exit code, ended without exit record) and the full contents of what is reported. It does not cover failure modes (e.g., unknown run_id) or whether output is read-only, but for a status-report tool this is solid disclosure.

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?

Effectively a single front-loaded sentence that leads with the action and the run states, then enumerates return contents. The long list is dense but every element earns its place; minor room for tightening.

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

Completeness4/5

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

No output schema exists, so the description appropriately explains return values in detail, which is exactly what is needed here. It is largely complete, with only minor gaps around edge cases such as an invalid or missing run_id.

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 100%, with both run_id and tail_lines fully documented including defaults. The description restates the run_id default (latest run) but adds no syntax or format detail beyond the schema, 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 verb (Report) and resource (a run_wbpp run) and enumerates exactly what is reported: status states, exit code, master files, per-subfolder .xisf counts, logs, and console tail. This clearly distinguishes it from the sibling run_wbpp (which executes the run) and job_status.

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?

It provides useful context that omitting run_id reports the latest run, which implicitly tells the agent this is the status-checking counterpart to run_wbpp. However, it gives no explicit when-to-use/when-not-to-use guidance, no prerequisites, and does not clarify its relationship to the sibling job_status.

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

workspace_infoA

Report the workspace folder, the state directories under it (scratch, bridge, logs) and the output folder. Also reports where the folder came from (set_workspace, PIXINSIGHT_CONNECTOR_WORKSPACE or the launch folder) and, when it cannot be used, why. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/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. It discloses that the operation is read-only and that it reports errors (when the workspace cannot be used). It also details what information is returned. This is adequate for a simple query tool, though it does not mention any potential side effects (there are none) or performance characteristics.

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 three concise sentences, front-loaded with the primary purpose and then enumerating the specific details returned. Every sentence adds value: main output, additional context (origin and error reason), and a clear read-only declaration. No waste.

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?

Given zero parameters and no output schema, the description fully specifies what the tool returns (workspace folder, state directories, output folder, origin, and failure reason). An agent can confidently call this tool and interpret the result without ambiguity. Nothing essential is missing.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description adds no parameter information because none exist. This is appropriate and complete for a no-argument tool.

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 verb ('Report') and a precise resource (workspace folder, state directories, output folder, origin, and failure reason). It clearly distinguishes itself from siblings like set_workspace (which configures) and scan_workspace (which likely scans images). The purpose is unambiguous and scoped.

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 implicitly conveys when to use this tool: whenever an agent needs to inspect the workspace configuration or diagnose why the workspace is unusable. It does not explicitly name alternatives or exclusions, but the context is clear from the sibling set and the read-only nature. No misleading guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 20 tool updatesv2.4.1
    • Addedalign_files
    • Addedcancel_job
    • Addedcatalog_stars
    • Addedcompare_images
    • Addedensure_dir
    • Addedinspect_environment
    • Addedjob_status
    • Changedpixelmath_new_image1 field changed
      • addedInput schema / properties / copy_astrometric_solution
        Added value: +{
        +  "default": true,
        +  "description": "Copy size_from's astrometric solution onto the new image when it has one",
        +  "type": "boolean"
        +}
    • Addedreproject_to_reference
    • Addedresample_image
    • Changedrun_pjsr1 field changed
      • addedInput schema / properties / async
        Added value: +{
        +  "description": "Run as a job: the call returns a job id at once and the code runs in PixInsight in the background. job_status reports on the job and returns its result; cancel_job stops it. While a job runs, other calls that use PixInsight are refused. The running code can call mcpProgress(text) to report progress and mcpCancelRequested() to see whether cancel_job was called.",
        +  "type": "boolean"
        +}
    • Changedrun_pjsr_file1 field changed
      • addedInput schema / properties / async
        Added value: +{
        +  "description": "Run as a job: the call returns a job id at once and the code runs in PixInsight in the background. job_status reports on the job and returns its result; cancel_job stops it. While a job runs, other calls that use PixInsight are refused. The running code can call mcpProgress(text) to report progress and mcpCancelRequested() to see whether cancel_job was called.",
        +  "type": "boolean"
        +}
    • Changedrun_plate_solve1 field changed
      • addedInput schema / properties / scale_search
        Added value: +{
        +  "description": "Retry with wider scale seeds when the seeded solve fails (default true)",
        +  "type": "boolean"
        +}
    • Changedrun_spcc6 fields changed
      • addedInput schema / properties / blue_bandwidth_nm
        Added value: +{
        +  "description": "Narrowband mode: bandwidth of the blue channel's filter in nm (PixInsight default 3)",
        +  "type": "number"
        +}
      • addedInput schema / properties / blue_wavelength_nm
        Added value: +{
        +  "description": "Narrowband mode: centre wavelength of the blue channel's filter in nm (default 500.7)",
        +  "type": "number"
        +}
      • addedInput schema / properties / green_bandwidth_nm
        Added value: +{
        +  "description": "Narrowband mode: bandwidth of the green channel's filter in nm (PixInsight default 3)",
        +  "type": "number"
        +}
      • addedInput schema / properties / green_wavelength_nm
        Added value: +{
        +  "description": "Narrowband mode: centre wavelength of the green channel's filter in nm (default 500.7)",
        +  "type": "number"
        +}
      • addedInput schema / properties / red_bandwidth_nm
        Added value: +{
        +  "description": "Narrowband mode: bandwidth of the red channel's filter in nm (PixInsight default 3)",
        +  "type": "number"
        +}
      • addedInput schema / properties / red_wavelength_nm
        Added value: +{
        +  "description": "Narrowband mode: centre wavelength of the red channel's filter in nm (default 656.3)",
        +  "type": "number"
        +}
    • Changedrun_sxt1 field changed
      • changedInput schema / properties / overlap / description
        Previous value: -"Star overlap parameter (default 0.10)"New value: +"Tile overlap (default 0.5). The former default 0.10 left a faint rectangular tile grid (cells of about 470 px) in linear starless images; 0.5 did not."
    • Addedrun_wbpp
    • Changedsave_and_show_preview5 fields changed
      • addedInput schema / properties / crop
        Added value: +{
        +  "description": "Region [x0, y0, x1, y1] of the view in pixels (x1, y1 exclusive); the whole view when omitted",
        +  "items": {
        +    "type": "number"
        +  },
        +  "maxItems": 4,
        +  "minItems": 4,
        +  "type": "array"
        +}
      • addedInput schema / properties / downsample
        Added value: +{
        +  "description": "Divide width and height by this factor (>= 1). Omitted: the preview is scaled down to at most 2048 px on its longer side",
        +  "type": "number"
        +}
      • addedInput schema / properties / stf_c0
        Added value: +{
        +  "description": "Shadows clipping point of the linked STF given with stf_m (0 <= c0 < 1)",
        +  "type": "number"
        +}
      • addedInput schema / properties / stf_from
        Added value: +{
        +  "description": "Bake this view's STF (its display stretch) into the JPEG; the view may be view_id itself. Several previews given the same stf_from are stretched identically",
        +  "type": "string"
        +}
      • addedInput schema / properties / stf_m
        Added value: +{
        +  "description": "Bake a linked STF with this midtones balance (0 < m < 1) into the JPEG; needs stf_c0",
        +  "type": "number"
        +}
    • Changedsave_preview5 fields changed
      • addedInput schema / properties / crop
        Added value: +{
        +  "description": "Region [x0, y0, x1, y1] of the view in pixels (x1, y1 exclusive); the whole view when omitted",
        +  "items": {
        +    "type": "number"
        +  },
        +  "maxItems": 4,
        +  "minItems": 4,
        +  "type": "array"
        +}
      • addedInput schema / properties / downsample
        Added value: +{
        +  "description": "Divide width and height by this factor (>= 1). Omitted: the preview is scaled down to at most 2048 px on its longer side",
        +  "type": "number"
        +}
      • addedInput schema / properties / stf_c0
        Added value: +{
        +  "description": "Shadows clipping point of the linked STF given with stf_m (0 <= c0 < 1)",
        +  "type": "number"
        +}
      • addedInput schema / properties / stf_from
        Added value: +{
        +  "description": "Bake this view's STF (its display stretch) into the JPEG; the view may be view_id itself. Several previews given the same stf_from are stretched identically",
        +  "type": "string"
        +}
      • addedInput schema / properties / stf_m
        Added value: +{
        +  "description": "Bake a linked STF with this midtones balance (0 < m < 1) into the JPEG; needs stf_c0",
        +  "type": "number"
        +}
    • Addedset_stf
    • Addedwbpp_status
  2. 78 tool updatesv2.1.0
    • First observedalign_to_reference
    • First observedapply_mask
    • First observedauto_stretch
    • First observedclone_image
    • First observedclose_image
    • First observedclose_mask
    • First observedcombine_channels
    • First observedcontinuous_clamp
    • First observedcontinuum_subtract_ha
    • First observedcopy_astrometric_solution
    • First observedcreate_adaptive_zone_masks
    • First observedcreate_luminance_mask
    • First observedcreate_synthetic_luminance
    • First observedcreate_zone_masks
    • First observedcrop_image
    • First observeddescribe_process
    • First observeddynamic_narrowband_blend
    • First observedexport_image
    • First observedextract_pseudo_oiii
    • First observedfind_filters
    • First observedget_image_dimensions
    • First observedget_image_stats
    • First observedha_inject_luminance
    • First observedha_inject_red
    • First observedlinear_fit
    • First observedlist_open_images
    • First observedlist_packs
    • First observedlist_processes
    • First observedlrgb_combine
    • First observedmeasure_bright_chroma
    • First observedmeasure_clipped_blocks
    • First observedmeasure_core_clipping
    • First observedmeasure_highlight_texture
    • First observedmeasure_ringing
    • First observedmeasure_saturation
    • First observedmeasure_sharpness
    • First observedmeasure_star_layer
    • First observedmeasure_stars
    • First observedmeasure_subject_detail
    • First observedmeasure_tonal_presence
    • First observedmeasure_uniformity
    • First observedmulti_scale_enhance
    • First observedopen_image
    • First observedpixelmath_new_image
    • First observedpixinsight_info
    • First observedremove_mask
    • First observedrename_view
    • First observedrestore_from_clone
    • First observedrestore_star_color
    • First observedresume_bridge
    • First observedrobust_median_stretch
    • First observedrun_abe
    • First observedrun_background_neutralization
    • First observedrun_bxt
    • First observedrun_curves
    • First observedrun_gradient_correction
    • First observedrun_hdrmt
    • First observedrun_lhe
    • First observedrun_mgc
    • First observedrun_nxt
    • First observedrun_per_channel_abe
    • First observedrun_pixelmath
    • First observedrun_pjsr
    • First observedrun_pjsr_file
    • First observedrun_plate_solve
    • First observedrun_process
    • First observedrun_scnr
    • First observedrun_spcc
    • First observedrun_spfc
    • First observedrun_sxt
    • First observedsave_and_show_preview
    • First observedsave_preview
    • First observedscan_workspace
    • First observedset_workspace
    • First observedshell_detail_enhance
    • First observedstar_protected_blend
    • First observedstretch_stars
    • First observedworkspace_info

TDQS

A3.5/5.0

Scored across 90 tools

Disambiguation3/5

Many tools have overlapping purposes—background correction (run_abe, run_per_channel_abe, run_gradient_correction, run_mgc), detail enhancement (run_lhe, multi_scale_enhance, shell_detail_enhance), and multiple measurement/stretching tools. Descriptions are unusually detailed and help, but the sheer number of similar-sounding tools leaves real potential for misselection.

Naming Consistency4/5

Mostly consistent snake_case with clear verb_noun patterns (run_*, measure_*, create_*, align_*, list_*), but a few noun-first info/status tools (workspace_info, job_status, pixinsight_info) and an explicit alias (save_and_show_preview) break uniformity.

Tool Count1/5

90 tools far exceeds the practical 3-15 range; despite the broad PixInsight domain, many dedicated wrappers duplicate what run_process and run_pjsr can already do, making the set unwieldy for an agent.

Completeness5/5

The surface covers image I/O, processing, calibration, stacking, measurement, masks, workspace, and scripting, with generic run_process/run_pjsr fallbacks that close almost any gap. Only minor file-management operations appear absent, but agents can work around them.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to interact with PixInsight's image processing capabilities through a local HTTP/SSE server, allowing listing processes, invoking them, viewing images, and more.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for the INDIGO astronomy automation protocol, enabling AI agents to control telescopes, cameras, focusers, filter wheels, domes, and other observatory equipment through natural language.
    MIT