Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

PixInsight Connector

NPM · PIXINSIGHT-CONNECTOR

Operate PixInsight from any MCP agent. Community project, not affiliated with Pleiades Astrophoto

+5 this week 88 Trust /100

Last scanned (23 hours ago)

Scores higher than 90% of npm servers

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to mxcoppell/pixinsight-connector). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 15 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability67
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 17706 tokens (~194/item across 91 items; 91 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
  • Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "remove_mask" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 92 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 15 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Oct 26 +3

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 57. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

  • 4 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 30 Sept 26 −15
    • Known CVEs: pass → unverified ▼ security
    • Malware scan: pass → unverified ▼ security
    • Dependency health: 0.84 → unverified ▼ functional
    • Package version: 2.3.0 → 2.5.0 functional
    • Package version: 2.3.0 → 2.4.1 functional
    • Package version: 2.3.0 → 2.4.0 functional
  • 29 Sept 26 +16
    • Malware scan: unverified → pass ▲ security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 16 Oct 2026 · Analysed npm/pixinsight-connector@2.5.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo mxcoppell/pixinsight-connector
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/mxcoppell/pixinsight-connector/.github/workflows/test.yml@refs/tags/v2.5.0
Rekor log index 3026745618
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:658333ac08c808ade203a262c4e88630b252b32c1b8b818a05afebda4b17a6d6d6fdcc91953c93a40210e150b5eb3dd680be86d5b4765f2c39fad9810

Background: How many MCP packages publish verified provenance →

Dependencies 92 packages
Packages resolved 92
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 91 exposed · ~17,602 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
pixelmath_new_image ~300

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.

NameTypeReqDescription
bluestring–Blue channel expression (color "rgb")
colorstringyes–
copy_astrometric_solutionboolean–Copy size_from's astrometric solution onto the new image when it has one
expressionstring–Single expression for color "gray"
greenstring–Green channel expression (color "rgb")
output_idstringyesId for the new image
redstring–Red channel expression (color "rgb")
size_fromstringyesA view whose width and height the new image copies
symbolsstring–PixelMath symbols; constants only, e.g. "k=0.3". Symbols cannot hold images: write image expressions inline.

No output schema declared.

No examples provided.

pixinsight_info ~38

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

remove_mask ~27

Remove the current mask from a view.

NameTypeReqDescription
target_idstringyesTarget view ID

No output schema declared.

No examples provided.

rename_view ~57

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

NameTypeReqDescription
new_idstringyesNew view ID (no spaces)
old_idstringyesCurrent view ID

No output schema declared.

No examples provided.

reproject_to_reference ~279

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 <view_id>_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.

NameTypeReqDescription
clampnumber–Clamping threshold of the Lanczos and bicubic interpolations, 0 to 1 (default 0.3)
interpolationstring–Pixel interpolation (default Lanczos3)
output_idstring–View ID of the result (default <view_id>_reprojected)
reference_idstringyesView whose size and astrometric solution the result takes (needs an astrometric solution)
view_idstringyesSource view to reproject (needs an astrometric solution)

No output schema declared.

No examples provided.

resample_image ~330

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).

NameTypeReqDescription
downsamplingstring–integer mode: how binned pixels combine (default Average)
enlargeboolean–integer mode: multiply the size by factor instead of dividing it (default false)
factornumber–integer: whole bin/zoom factor >= 2. scale: relative size factor > 0
interpolationstring–scale / to_reference: Resample interpolation; omitted, PixInsight's default
modestringyesinteger (IntegerResample), scale (Resample by a factor) or to_reference (Resample to reference_id's size)
output_idstring–Resample a copy with this view id instead of the view itself
reference_idstring–to_reference: the view whose width and height the result takes
view_idstringyesView to resample

No output schema declared.

No examples provided.

restore_from_clone ~53

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

NameTypeReqDescription
clone_idstringyesClone view ID to restore from
target_idstringyesTarget view ID to overwrite

No output schema declared.

No examples provided.

restore_star_color ~218

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.

NameTypeReqDescription
max_valuenumberyesUpper cap on each restored channel
pre_star_idstringyesReference RGB view whose colour ratios are restored (open, same dimensions)
restore_endnumberyesReference luminance at and above which the restored colour fully replaces the target; greater than restore_start
restore_startnumberyesReference luminance at and below which the target is unchanged
target_idstringyesRGB view to modify in place

No output schema declared.

No examples provided.

resume_bridge ~32

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

robust_median_stretch ~523

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.

NameTypeReqDescription
black_point_sigmanumberyesDistance of the black point below the median, in units of 1.4826·MAD (>= 0)
highlight_kneenumber–Output level above which values are compressed, strictly between 0 and 1. Given together with highlight_midtones; omitted = no highlight compression.
highlight_midtonesnumber–MTF balance applied to the segment above highlight_knee, strictly between 0.5 and 1. Given together with highlight_knee.
linkedboolean–Colour 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.
passesinteger–Number of times the whole procedure runs, each on the previous output (>= 1; omitted = 1)
target_mediannumberyesMedian of the output, strictly between 0 and 1
view_idstringyesView to stretch (modified in place)

No output schema declared.

No examples provided.

run_abe ~77

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

NameTypeReqDescription
poly_degreeinteger–Polynomial degree, 1 to 6 (default 4)
tolerancenumber–Sample rejection tolerance (default 1.0)
view_idstringyesView ID to process

No output schema declared.

No examples provided.

run_background_neutralization ~36

Run BackgroundNeutralization to equalize the background level across channels.

NameTypeReqDescription
view_idstringyesPixInsight view identifier.

No output schema declared.

No examples provided.

run_bxt ~190

Run BlurXTerminator on a view. correct_only applies PSF correction without sharpening; otherwise sharpen_nonstellar and sharpen_stellar (the process's sharpen_stars parameter) control sharpening strength. ml_version is the process's neural network model version; omitted, the process keeps its own setting.

NameTypeReqDescription
adjust_star_halosnumber–Star halo adjustment, -1 to 1 (default 0.0)
correct_onlyboolean–Correct-only mode: PSF correction with no sharpening
ml_versionnumber–Neural network model version (the process's ml_version parameter)
sharpen_nonstellarnumber–Non-stellar sharpening, 0 to 1 (default 0.50)
sharpen_stellarnumber–Stellar sharpening, 0 to 1 (default 0.50)
view_idstringyesView ID to process

No output schema declared.

No examples provided.

run_curves ~116

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".

NameTypeReqDescription
channelstringyesChannel to apply the curve to
pointsarrayyesControl points [[x,y], ...] from (0,0) to (1,1). Include endpoints.
view_idstringyesView ID to process

No output schema declared.

No examples provided.

run_gradient_correction ~34

Run GradientCorrection on a view to remove a background gradient.

NameTypeReqDescription
view_idstringyesPixInsight view identifier.

No output schema declared.

No examples provided.

run_hdrmt ~134

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

NameTypeReqDescription
invertedboolean–Inverted mode (enhances detail instead of compressing)
iterationsinteger–Number of iterations (default 1)
layersintegeryesNumber of decomposition layers, 4 to 8 (default 6)
preserve_hueboolean–Preserve hue for color images (default true)
to_lightnessboolean–Apply to lightness only for color images (default true)
view_idstringyesView ID to process

No output schema declared.

No examples provided.

run_lhe ~130

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

NameTypeReqDescription
amountnumber–Blend of the equalized result with the original, 0 to 1.
circular_kernelboolean–Circular kernel (true) or square kernel (false).
histogram_resolutionstring–Histogram resolution: 8, 10 or 12 bits.
radiusnumber–Kernel radius in pixels.
slope_limitnumber–Contrast slope limit.
view_idstringyesPixInsight view identifier.

No output schema declared.

No examples provided.

run_mgc ~247

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.

NameTypeReqDescription
filterstring–Mono only. One of L, R, G, B, Ha, OIII, SII
gradient_scalenumber–Gradient scale in pixels (default 1024)
mars_filesarray–Absolute .xmars paths (default: from PixInsight settings)
model_smoothnessnumber–Model smoothness (default 1)
show_modelboolean–Also create the gradient model window
structure_separationnumber–Structure separation (default 3)
view_idstringyesView ID to process

No output schema declared.

No examples provided.

run_nxt ~95

Run NoiseXTerminator to reduce noise on a view.

NameTypeReqDescription
denoisenumberyesDenoise strength, 0 to 1.
detailnumber–Detail preservation, 0 to 1.
ml_versionnumber–Neural network model version (the process's ml_version parameter). Omitted, the process keeps its own setting.
view_idstringyesPixInsight view identifier.

No output schema declared.

No examples provided.

run_per_channel_abe ~188

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.

NameTypeReqDescription
poly_degreeinteger–ABE polynomial degree for every channel (AutomaticBackgroundExtractor polyDegree); omitted = PixInsight default
tolerancenumber–ABE sample rejection tolerance for every channel (AutomaticBackgroundExtractor tolerance); omitted = PixInsight default
view_idstringyesRGB color view ID (modified in place)

No output schema declared.

No examples provided.

run_pixelmath ~199

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].

NameTypeReqDescription
expressionstringyesPixelMath expression using $T for current pixel value
single_expressionboolean–Apply the same expression to all channels (default true)
symbolsstring–Symbol declarations (comma-separated)
view_idstringyesView ID to process

No output schema declared.

No examples provided.

run_pjsr ~272

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.

NameTypeReqDescription
asyncboolean–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 c…
codestringyesPJSR code. The value of the last expression is returned.
includearray–Absolute 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`.

No output schema declared.

No examples provided.

run_pjsr_file ~198

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.

NameTypeReqDescription
asyncboolean–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 c…
pathstringyesAbsolute path to the PJSR source file.

No output schema declared.

No examples provided.

run_plate_solve ~443

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. The result also states whether distortion correction and recursive surface splines were on.

NameTypeReqDescription
dec_degnumber–Approximate center Dec in degrees
focal_length_mmnumber–Focal length in mm (use with pixel_size_um instead of pixel_scale)
observation_jdnumber–Julian date of the observation (only if no DATE-OBS/DATE keyword)
pixel_scalenumber–Approximate pixel scale in arcsec/pixel
pixel_size_umnumber–Pixel size in microns
ra_degnumber–Approximate center RA in degrees
recursive_splinesboolean–ImageSolver's "Recursive surface splines" distortion option (ImageSolver 6.5.0, PixInsight 1.9.5): models distortion with all matched stars as local surface splines over a quadtree. Omitted, the opti…
scale_searchboolean–Retry with wider scale seeds when the seeded solve fails (default true)
view_idstringyesView ID to plate solve

No output schema declared.

No examples provided.

run_process ~210

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 params key that is not a parameter of the installed process is refused by name, since PixInsight would otherwise ignore it. 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.

NameTypeReqDescription
namestringyesPJSR process constructor name, e.g. "SCNR".
paramsobject–Property name to JSON-valued setting, assigned on the process instance before it runs.
view_idstring–View to run the process on. Omit to run the process globally instead.

No output schema declared.

No examples provided.

run_scnr ~68

Run SCNR (Subtractive Chromatic Noise Reduction) to remove a green colour cast from a view.

NameTypeReqDescription
amountnumber–Green removal amount, 0 to 1.
protectionstring–Protection method.
view_idstringyesPixInsight view identifier.

No output schema declared.

No examples provided.

run_spcc ~521

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.

NameTypeReqDescription
blue_bandwidth_nmnumber–Narrowband mode: bandwidth of the blue channel's filter in nm (PixInsight default 3)
blue_filter_namestring–Measured B filter curve name, as listed by find_filters
blue_wavelength_nmnumber–Narrowband mode: centre wavelength of the blue channel's filter in nm (default 500.7)
green_bandwidth_nmnumber–Narrowband mode: bandwidth of the green channel's filter in nm (PixInsight default 3)
green_filter_namestring–Measured G filter curve name, as listed by find_filters
green_wavelength_nmnumber–Narrowband mode: centre wavelength of the green channel's filter in nm (default 500.7)
narrowband_modeboolean–Enable narrowband mode (default false)
qe_namestring–Camera QE curve name (find_filters channel Q)
red_bandwidth_nmnumber–Narrowband mode: bandwidth of the red channel's filter in nm (PixInsight default 3)
red_filter_namestring–Measured R filter curve name, as listed by find_filters. Set all three filters and qe_name together for a full calibration.
red_wavelength_nmnumber–Narrowband mode: centre wavelength of the red channel's filter in nm (default 656.3)
view_idstringyesView ID to calibrate (must be linear, must have a WCS/astrometric solution)
white_referencestring–White reference name from PixInsight's database, e.g. "Average Spiral Galaxy", "G2V Star"
white_reference_namestring–Same as white_reference

No output schema declared.

No examples provided.

run_spfc ~318

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).

NameTypeReqDescription
bandwidth_nmnumber–Mono: filter bandwidth in nm, if filter_name is not given
blue_filter_namestring–Color: measured B filter curve name from find_filters
filterstring–Mono only. One of L, R, G, B, Ha, OIII, SII
filter_namestring–Mono: measured filter curve name from find_filters
green_filter_namestring–Color: measured G filter curve name from find_filters
qe_namestring–Camera QE curve name (default "Ideal QE curve")
red_filter_namestring–Color: measured R filter curve name from find_filters
view_idstringyesView ID to calibrate
wavelength_nmnumber–Mono: filter center wavelength in nm, if filter_name is not given

No output schema declared.

No examples provided.

run_sxt ~182

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.

NameTypeReqDescription
is_linearbooleanyesWhether the image is linear (pre-stretch)
ml_versionnumber–Neural network model version (the process's ml_version parameter). Omitted, the process keeps its own setting.
overlapnumber–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.
view_idstringyesView ID to extract stars from (modified in place to become starless)

No output schema declared.

No examples provided.

run_wbpp ~550

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 <workspace>/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.

NameTypeReqDescription
autocropboolean–WBPP autocrop
distortion_correctionboolean–WBPP distortionCorrection
drizzle_scalenumber–Enable drizzle on every light group at this scale
extra_paramsobject–Further WBPP automation parameters, {name: value}
frame_selectionarray–Frame selection filters [{metric, value, compare}], compare less or greater (non-interactive)
generate_rejection_mapsboolean–WBPP generateRejectionMaps
image_registrationboolean–WBPP imageRegistration
input_dirsarrayyesFolders WBPP scans recursively for lights, darks, flats and bias (WBPP dir=)
integrateboolean–WBPP integrate
keywordsarray–Grouping keywords [{name, mode}], mode pre (calibration groups), post (integration groups) or prepost
local_normalizationboolean–WBPP localNormalization (run non-interactively)
optimize_darksboolean–Set dark optimization on every light group
output_dirstringyesWBPP output folder: relative to <workspace>/output, or absolute inside <workspace>/output or the state folder
plate_solveboolean–WBPP platesolve
referencestring–Automatic registration reference: one for all (auto) or one per value of reference_keyword
reference_imagestring–Registration reference image file (WBPP referenceImage, manual reference)
reference_keywordstring–Keyword for reference auto_by_keyword
rejectionstring–Pixel rejection for lights (WBPP rejection_4)
weightsstring–Subframe weighting method, or none

No output schema declared.

No examples provided.

save_and_show_preview ~249

Alias for save_preview. Save a JPEG preview of a view and return the file path.

NameTypeReqDescription
croparray–Region [x0, y0, x1, y1] of the view in pixels (x1, y1 exclusive); the whole view when omitted
downsamplenumber–Divide width and height by this factor (>= 1). Omitted: the preview is scaled down to at most 2048 px on its longer side
labelstringyesShort label for this preview (e.g. "after_stretch", "final")
stf_c0number–Shadows clipping point of the linked STF given with stf_m (0 <= c0 < 1)
stf_fromstring–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
stf_mnumber–Bake a linked STF with this midtones balance (0 < m < 1) into the JPEG; needs stf_c0
view_idstringyesPixInsight view ID

No output schema declared.

No examples provided.

save_preview ~312

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.

NameTypeReqDescription
croparray–Region [x0, y0, x1, y1] of the view in pixels (x1, y1 exclusive); the whole view when omitted
downsamplenumber–Divide width and height by this factor (>= 1). Omitted: the preview is scaled down to at most 2048 px on its longer side
labelstringyesShort label for this preview (e.g. "after_stretch", "final")
stf_c0number–Shadows clipping point of the linked STF given with stf_m (0 <= c0 < 1)
stf_fromstring–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
stf_mnumber–Bake a linked STF with this midtones balance (0 < m < 1) into the JPEG; needs stf_c0
view_idstringyesPixInsight view ID

No output schema declared.

No examples provided.

scan_workspace ~132

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

set_stf ~281

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.

NameTypeReqDescription
from_view_idstring–Copy this view's STF instead of computing one; target_bg, shadows_clipping and linked are then not allowed
linkedboolean–Colour images: true computes one set of values for R, G and B; false one per channel. Ignored for mono images
shadows_clippingnumber–Clipping point relative to the median, in units of sigma = 1.4826 × MAD
target_bgnumber–Target background level, strictly between 0 and 1
view_idstringyesView whose STF is set

No output schema declared.

No examples provided.

set_workspace ~81

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.

NameTypeReqDescription
pathstringyesThe folder: an absolute path, or one starting with ~/.

No output schema declared.

No examples provided.

shell_detail_enhance ~485

Protected high-pass detail enhancement at two scales, in place. For each scale, detail = image - Gaussian blur of sigma <scale>_sigma (locally zero-mean), and result = image + <scale>_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.

NameTypeReqDescription
auto_zoneboolean–With 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_amountnumberyesLarge-scale detail multiplier (0 skips the scale)
large_sigmanumberyesGaussian sigma of the large-scale blur, in pixels
mask_idstring–Mask view to enhance through (optional)
medium_amountnumberyesMedium-scale detail multiplier (0 skips the scale)
medium_sigmanumberyesGaussian sigma of the medium-scale blur, in pixels
protect_kneenumberyesLuminance above which the boost attenuates
protect_softnessnumberyesAttenuation rate above protect_knee (>= 0; higher = steeper)
view_idstringyesView to enhance (modified in place)

No output schema declared.

No examples provided.

star_protected_blend ~400

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.

NameTypeReqDescription
core_threshold_highnumberyesStar luminance SL at and above which the pure colour-preserving blend applies and protection is min_strength_fraction; greater than core_threshold_low
core_threshold_lownumberyesStar luminance SL at and below which the pure screen blend applies and protection is 1
max_valuenumberyesUpper cap on each channel of the colour-preserving blend, and of the colour restoration when pre_star_id is given
min_strength_fractionnumberyesProtection factor reached at core_threshold_high (strength is multiplied by it)
pre_star_idstring–Optional: RGB view whose colour ratios are restored in bright areas after the blend; empty or absent = no restoration
stars_idstringyesStars-only RGB view
strengthnumberyesMultiplier k on the star layer in the screen blend, before protection
target_idstringyesStarless RGB view, modified in place

No output schema declared.

No examples provided.

stretch_stars ~228

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.

NameTypeReqDescription
iterationsintegeryesNumber of times the MTF is applied (>= 1)
midtonenumberyesMTF midtones balance m, strictly between 0 and 1 (m < 0.5 brightens)
view_idstringyesStar image view ID

No output schema declared.

No examples provided.

verify_astrometry ~372

Measure how well an open image's astrometric solution reproduces the sky, with the engine of PixInsight's AstrometricSolutionVerifier script (PixInsight 1.9.5 or later), run without its dialog: no deviation map, graphs, files or new windows, and the image is not modified. Every detected star is PSF-fitted, placed on the sky with the image's solution and compared with its Gaia DR3 star at the observation time. The result (JSON) gives the star counts (detected, PSF-fitted, matched, rejected by sigma clipping), the catalogue and its limit magnitude, the deviations (median, sigma, rms, 90th and 99th percentile, maximum) in pixels and arcseconds over the stars kept after sigma clipping and over all matched stars, the median bias, and the grid cell with the largest median deviation (cells with fewer than 3 matched stars are skipped) with its column, row and centre in image pixels. The view needs an astrometric solution.

NameTypeReqDescription
auto_magnitudeboolean–Choose the catalogue limit magnitude automatically (script default true)
grid_cellsinteger–Number of grid cells along the largest image dimension, 1 to 255 (script default 8)
magnitudenumber–Catalogue limit magnitude used when auto_magnitude is false (script default 16)
matching_tolerancenumber–Maximum distance in pixels between a detected star and its catalogue position for a match (script default 3)
rejection_sigmanumber–Sigma-clipping factor on the deviations; matched stars beyond median + factor x sigma are left out of the retained statistics and the grid, 0 disables (script default 5)
view_idstringyesView ID to verify

No output schema declared.

No examples provided.

wbpp_status ~140

Report a run_wbpp run: running, finished (with the PixInsight exit code) or ended without an exit record; the master files in <output_dir>/master; the number of .xisf files in each subfolder of <output_dir>/registered and <output_dir>/calibrated; the WBPP log files in <output_dir>/logs; and the last lines of the instance's console output. run_id omitted: the latest run.

NameTypeReqDescription
run_idstring–Run id from run_wbpp (default: the latest run)
tail_linesinteger–Console-output lines to include (default 30)

No output schema declared.

No examples provided.

workspace_info ~66

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Install

How do I install the PixInsight Connector MCP server?

PixInsight Connector runs locally as an npm package, launched with npx -y pixinsight-connector. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · pixinsight-connector

# add to Claude Code
claude mcp add mxcoppell-pixinsight-connector -- npx -y pixinsight-connector
Common questions

What is the PixInsight Connector MCP server?

PixInsight Connector is an MCP server listed in the public MCP registry as io.github.mxcoppell/pixinsight-connector. Operate PixInsight from any MCP agent. Community project, not affiliated with Pleiades Astrophoto. This page covers its npm package (pixinsight-connector).

Is the PixInsight Connector MCP server safe to use?

PixInsight Connector scores 88 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 16 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the PixInsight Connector MCP server expose?

PixInsight Connector exposes 91 tools: align_files, verify_astrometry, run_plate_solve, copy_astrometric_solution, catalog_stars, and 86 more. Their descriptions and schemas cost roughly 17,602 tokens of context every time the server is loaded.

Is the PixInsight Connector MCP server still maintained?

PixInsight Connector is still listed as active in the MCP registry. We last reached this channel on 16 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the PixInsight Connector MCP server under?

PixInsight Connector declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.