Skip to content

uxarray-mcp 2026.10.0

Choose a tag to compare

@rajeeja rajeeja released this 27 Oct 02:04
· 3 commits to main since this release
9b68a21

Mirrors uxarray 2026.10.0.

Verified on two live MPICH clusters — Chrysalis 9/10, Casper 13/14. The one
failure on each is the conservative remap this release teaches the server to
diagnose.

Added

  • subset_advanced — select faces near a point, by radius or by neighbour
    count. An empty selection is refused with the mesh extent.
  • regrid_elements — move a field between nodes, edges and faces. This is
    what makes node-centred output usable by the face-centred operations.
  • A recorded inventory of which UXarray surface this server reaches, and which
    it deliberately does not. Tested against the installed library, so a new or
    renamed method upstream fails until someone decides about it.

Both tools came from replaying the
uxarray-community notebooks
through the server. They are separate tools rather than new run_analysis
operations, which #89 already measures as too large.

Fixed

  • A YAC remap that loses its worker now says MPI, not memory. Importing
    YAC calls MPI_Init, which MPICH aborts; the abort arrives as a lost worker
    with nothing mentioning MPI. The old advice — check mesh size, subset first —
    cannot fix it. Measured: the identical remap runs in 0.09s in a worker
    subprocess and kills the worker in-process.
  • check_remote_yac reported "YAC OK" on a worker where every conservative
    remap died.
    It only ran nearest_neighbor, which never calls into YAC.
    conservative_ok now separates "YAC is broken" from "YAC cannot run in this
    process". Same fix in chrysalis_endpoint.sh check-yac.
  • Tool annotations reach clients on mcp 1.x, not only 2.x. At the declared
    floor the shim attached nothing, so readOnlyHint — what a client reads to
    decide what it may auto-approve — was absent exactly where it is documented
    as present.
  • Our annotations outrank inferred ones. toolregistry-server 0.7 began
    marking manage_session and resume_workflow read-only; both change state.
  • get_capabilities now says which of what it lists is executable.
  • The "not face-centered" refusals name regrid_elements as the repair.
  • The oversized-SCRIP test fixture no longer needs 8 GiB (7.45 → 1.67 GiB).

Changed

  • Floors uxarray>=2026.10.0, toolregistry>=0.19, toolregistry-server>=0.7.
    0.19 carries the union fix, so lat_spec serves number | array<number>.
  • The container declares its Python version once, so a base-image bump cannot
    half-apply.
  • SETUP.sh reproduces CI. It had drifted to a bare uv sync and an
    unfiltered pytest, giving 19 failures that were all missing optional
    dependencies.

Documentation

  • New globus-basics.md — what Globus is, which
    part you need, and why the identity must be the institutional one. The
    explanation existed, buried mid-page where the README routed people past it.
  • Endpoints are per-user: a colleague's working endpoint gives you nothing.

Security

Clears 55 advisories in transitively-resolved packages, including a 9.1
Critical in certifi — the trust store behind every outbound HTTPS call this
server makes.


Full detail in CHANGELOG.md.