# pixinsight-connector

MCP connector that lets any AI agent operate PixInsight: a toolbox of PixInsight operations, extensible with runtime tool packs

- **Type:** MCP server
- **Trust:** 85/100 (A), scored on the package rubric
- **Verification:** verified (build provenance)
- **Version:** 2.5.0
- **Author:** Min Xie
- **License:** MIT
- **npm:** pixinsight-connector
- **Source:** https://github.com/mxcoppell/pixinsight-connector
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

85/100 (A), scored on the package rubric
- Publisher verified: no
- Build provenance: verified attestation
- npm trusted publishing (OIDC): yes
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 0 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-10-03T12:29:29.832Z
- **Version scanned:** 2.5.0
- **CVEs:** none found by OSV at scan time

## Tools

40 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `align_files` — Register image files onto a reference image file with StarAlignment, file to file (no views are opened). Targets run in
- `verify_astrometry` — Measure how well an open image's astrometric solution reproduces the sky, with the engine of PixInsight's AstrometricSolutionVerifier script (PixInsight 1.9.5 o
- `run_plate_solve`
- `copy_astrometric_solution` — 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 tar
- `catalog_stars` — List catalogue stars over a plate-solved view from PixInsight's local Gaia database: one Gaia search centred on the image,
- `combine_channels` — 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 ima
- `align_to_reference` — Align a target image to a reference image using StarAlignment. The target is replaced in place with the aligned version.
- `run_per_channel_abe` — Run AutomaticBackgroundExtractor (ABE) separately on the R, G and B channels of a color view, then recombine them into the view with ChannelCombination. Channel
- `lrgb_combine`
- `compare_images` — Compare two open views of the same width, height and channel count, pixel by pixel, over the whole image or a rectangle.
- `multi_scale_enhance` — Masked three-scale LocalHistogramEqualization on a view, in one call, with an optional HDRMultiscaleTransform pass.
- `shell_detail_enhance` — Protected high-pass detail enhancement at two scales, in place. For each scale, detail = image - Gaussian blur of sigma <scale>_sigma
- `inspect_environment` — Report what this PixInsight installation has, by asking PixInsight. gaia: Gaia get-info for DR2, EDR3, DR3 and DR3/SP
- `run_process`
- `run_pjsr_file` — 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 f
- `run_pjsr` — 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 processEve
- `run_pixelmath` — 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 belo
- `pixelmath_new_image`
- `open_image` — 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.
- `close_image` — Close an image window to free memory.
- `list_open_images` — List all currently open images in PixInsight with their dimensions and color status.
- `rename_view` — Rename an image view to a different view ID. Long XISF names can cause some PixInsight processes to fail.
- `clone_image` — 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 v
- `restore_from_clone` — Restore an image from a backup clone, replacing all changes since the clone was made.
- `crop_image` — 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,
- `get_image_dimensions` — Get dimensions, channel count, and color status for one or more views. Every channel must have identical dimensions before ChannelCombination.
- `get_image_stats` — 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).
- `export_image`
- `ensure_dir` — Create a folder, with any missing parents, inside the workspace's output folder or state folder. A relative path is resolved under <workspace>/output; an absolu
- `list_processes` — List every PixInsight process available on this installation, by its PJSR constructor name (e.g. "SCNR", "PixelMath"). Read-only; classifies by prototype chain 
- `describe_process` — 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 an
- `create_luminance_mask` — Create a luminance mask from a color view: Y = 0.2126R + 0.7152G + 0.0722B, then an optional blur and shadow clip.
- `apply_mask` — 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.
- `remove_mask` — Remove the current mask from a view.
- `close_mask` — Close and delete a mask window to free memory.
- `create_zone_masks` — 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 
- `create_adaptive_zone_masks`
- `measure_uniformity` — Measure background uniformity via 4-corner median stddev. Lower score means more uniform.
- `measure_stars` — 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,
- `measure_star_layer` — Measure a star layer (a mostly black view holding stars). Over every 4th pixel whose largest channel is above 0.005 (nonzero_pixel_count),

## Install

**Verdict: install** — No blocking findings and no open coverage gaps — safe to install as configured.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"pixinsight-connector\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"pixinsight-connector\"\n      ]\n    }\n  }\n}"
```

## Blast radius

Extensive to critical — no credential declaration found, from the publisher, the upstream registry, or the README. Known so far: runs commands; runs on your machine.
- Floor 46, ceiling 74 (tier: unknown)
- `unknown` means the floor and ceiling land in different bands — not measured enough to name one. It does not mean low.
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/pixinsight-connector
- Install plan: https://forgeregistry.com/api/v1/packages/pixinsight-connector/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/pixinsight-connector
- HTML page: https://forgeregistry.com/registry/pixinsight-connector
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
