# Reported issues for CLIO Scientific Catalog

Pod holds 17 of 27 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [CLIO Scientific Catalog](/mcp/clio-scientific-catalog).

## Most discussed

### Campaign: server code health + MCP tasks semantics + scientific-catalog eviction

# [clio-kit] Campaign: server code health + MCP tasks semantics + scientific-catalog eviction

## Why (owner findings, 2026-08-10)

The kit's MCP servers accreted into mega-files with no size guard; the four
infrastructure servers negotiate MCP 2026-07-28 but expose zero tasks
semantics for long-running operations; and `scientific-catalog` entered the
kit (2.4.0, #297) without design approval. One unified campaign — the
refactor and the tasks work touch the same files and land together, not as
s

[Read the thread](https://github.com/iowarp/clio-kit/issues/362) · 2026-08-11 · open · 2 comments

### MCP environment cache: no eviction — 72 venvs for 11 servers (43.5 GB); needs LRU/max-per-server + uv cache prune

Storage audit on a heavy-use dev box (clio-agent, one month): `~/.cache/clio-kit` held **43.5 GB** — `uv-cache` 33.9 GB and `mcp-environments` 9.45 GB comprising **72 full venvs for only 11 distinct servers** (jarvis ×19, spack ×16, slurm ×7, adios ×7, scientific-catalog ×7...). Each spec/version change builds a NEW env keyed by spec-hash and never deletes the old one; heavy envs are 200–434 MB each, re-installing the same pandas/numpy/rasterio/pyproj/matplotlib stack. The private uv-cache accum

[Read the thread](https://github.com/iowarp/clio-kit/issues/334) · 2026-07-20 · closed · 2 comments

### jarvis MCP: interceptor/preloader target-binding lost - add_step cannot express what Darshan wraps (blocks agent I/O instrumentation; contract v3.7.1)

Verified 2026-08-19 (owner recalled the special case; the code is gone):

- The relay jarvis contract v3.7 (jarvis-user-v3.7.json) has NO
  interceptor/preloader vocabulary: jarvis_add_step takes only
  pipeline_id/step_id/package_name/config - an interceptor cannot declare
  the package it wraps through the wire schema.
- clio-kit's jarvis MCP (jarvis_handler.py append_pkg) appends every
  package generically; the only interceptor awareness is a passive read of
  the pipeline's `interceptors` l

[Read the thread](https://github.com/iowarp/clio-kit/issues/376) · 2026-08-19 · open · 1 comment

### spack server: the agent provisioning loop — typed not-installed → lookup → HITL-approved install-as-task → redeploy

Owner design spec (2026-08-11). The spack MCP exists so that **the agent can build packages**. The intended product loop:

1. A deploy attempt on a package whose runtime is absent returns a **typed "package not installed" error** — not a hang, not an ambiguous probe status, not a silent empty result.
2. The agent looks the package up on the remote spack (search/info: does a recipe exist, what versions/variants, what would an install entail).
3. The agent **asks the user** for approval to install

[Read the thread](https://github.com/iowarp/clio-kit/issues/370) · 2026-08-12 · open · 1 comment

### Packaging

A dicsussion shoudl be had around packaging
- Official MCP marketplace protocol
- Claude Marketplaces
- Agent Plugings: https://developers.googleblog.com/agent-plugins-package-your-skills-tools-and-more/
   - https://agent-plugins.org/compatible-clients
- self-managed?

[Read the thread](https://github.com/iowarp/clio-kit/issues/360) · 2026-08-10 · open · 1 comment

### JARVIS package search never indexes declared configuration — stageable-input packages are unreachable by capability queries

## Summary

`jarvis_mcp/server.py::_package_search_rank` ranks a package only over `_PackageInventoryEntry` = name + short_name + the module docstring scraped by `_first_docstring_or_comment`. A package's declared settings — including `ConfigurationInputBinding` declarations, the ONLY signal that a setting is a stageable local-file input — are not in the search corpus at all.

Live consequence (correct-shape relay deployment, 69-package inventory): the only shell package with a stageable `script

[Read the thread](https://github.com/iowarp/clio-kit/issues/353) · 2026-08-07 · closed · 1 comment

### Support partial installations with optional dependencies

Add support for installing only specific MCP servers using optional dependencies:

```bash
uv pip install iowarp-agent-toolkit[hdf5,adios,parquet]
```

This would install only the selected servers and their dependencies instead of all 15 servers.

Then run with:
```bash
uvx iowarp-agent-toolkit mcp-server hdf5
```

**Benefits:**
- Smaller installation footprint
- Faster install times  
- Only install what you need

**Implementation:**
Add `[project.optional-dependencies]` to root pyproject.toml 

[Read the thread](https://github.com/iowarp/clio-kit/issues/282) · 2025-11-16 · open · 1 comment

### Add BP5 Variable Chunking Support: Adios MCP

## Problem Statement

  The current `read_variable_at_step` tool loads entire variables into memory, causing significant issues when working with large scientific datasets:

  - **Memory Exhaustion**: Variables with huge elements cause out-of-memory errors
  - **AI Token Limits**: Large arrays overwhelm AI context windows, making analysis impossible
  - **Performance Issues**: Loading massive multi-dimensional datasets blocks processing
  - **Scalability Problems**: Time-series and spatial data 

[Read the thread](https://github.com/iowarp/clio-kit/issues/254) · 2025-07-29 · open · 1 comment

## Most recent

### jarvis_add_step: config-level 'target' key collides with the top-level target parameter - raw TypeError instead of a typed refusal

## Defect (found live on ares during the clio-relay v1.7.0 darshan acceptance run, kit 2.10.6 / jarvis-cd 1.8.1)

`jarvis_add_step` with an interceptor-class package requires the v3.7.2 top-level `target` parameter — correct. But if a caller ALSO carries `target` inside the step `config` object (the natural fallback for a client whose tool schema predates v3.7.2), the server crashes with:

```
append_pkg() got multiple values for keyword argument 'target'
```

instead of a typed refusal. The han

[Read the thread](https://github.com/iowarp/clio-kit/issues/385) · 2026-08-28 · open · 0 comments

### lmod server: the third provisioning leg — module discovery + env resolution as data, same contract as spack/native

Owner direction (2026-08-11): the provisioning story has three legs, and the 2026-08-11 missions proved two of them — **spack** (LAMMPS: spack DB → resolved prefixes → jarvis environment.yaml snapshot applied as data) and **natively-installed apps** (gray-scott: absolute executable path + RPATH-baked binary, zero env injection needed). The third leg is **module-managed apps via Lmod** — the standard mechanism on HPC clusters for natively-installed software — and the owner planned to use the exis

[Read the thread](https://github.com/iowarp/clio-kit/issues/371) · 2026-08-12 · open · 0 comments

### ndp: inner 3x30s retry loop silently burns the caller's timeout budget against a single hardcoded plain-HTTP host

## Evidence (2026-08-06, clio-agent round-9 live run)

All three parallel ndp children timed out at ~181s on `ndp_search_datasets` (clio-agent's outer asyncio ceiling is 180s), tightly clustered — then the same call reproduced at ~1.1s 25 minutes later. Mechanism (ndp/src/ndp_mcp/server.py:219-262, `NDPClient._make_request`):

- Single hardcoded plain-HTTP host `http://155.101.6.191:8003` (NDP pilot), no fallback.
- `httpx.Timeout(30.0)` with an internal 3-attempt exponential-backoff retry ON EV

[Read the thread](https://github.com/iowarp/clio-kit/issues/351) · 2026-08-06 · open · 0 comments

### Declare MCP tool titles (spec 2025-06-18 tool.title) on every server's tools

## Problem

No clio-kit server declares MCP tool display titles. `title` appears in plot only as a plot-content parameter (`plot_mcp/server.py` — "Custom title for the plot"), not as tool metadata. Clients therefore render raw identifiers (`plot_line_plot`, `pandas_load_data`), and namespacing clients double the prefix (`plot_plot_timeline_series`).

MCP added a dedicated display-name field in the 2025-06-18 revision: `tool.title` (with `tool.annotations.title` as the older 2025-03-26 location).

[Read the thread](https://github.com/iowarp/clio-kit/issues/347) · 2026-08-05 · open · 0 comments

### plot server parses the full CSV before applying max_rows — 50MB file needs 180s+ or times out

Live evidence (clio-agent P5 demo runs, 2026-08-04): `plot_plot_timeseries` against a staged 50,424,246-byte EarthScope CSV (`MTA1.CI.LY_.30.csv`) timed out at a 30s call ceiling twice WITH `max_rows: 500` — the row cap does not reduce the read/parse cost, so the server evidently loads/parses the whole file before slicing. With the ceiling raised to 180s the default-cap attempt still timed out and only a 500-row retry succeeded, so the delivered plot covers 500 of 250,000 rows.

Asks:
1. Apply t

[Read the thread](https://github.com/iowarp/clio-kit/issues/346) · 2026-08-04 · open · 0 comments

### Feature: a cheap resolve probe for locked MCP servers (print the launch plan without spawning)

## Context
clio-agent is eliminating the resident launcher overhead of MCP fleets (iowarp/clio-agent#934, campaign iowarp/clio-agent#930). On Windows, `clio-kit mcp-server <name>` stays resident as a 7-process chain per server (trampoline → bootstrap python → clio-kit CLI → `uv run` → venv shim → venv python → server): ~90 MB of wrapper overhead per namespace for the life of the fleet, of which only the leaf (~110-180 MB) is the server.

clio-agent now learns the leaf argv from a live chain and 

[Read the thread](https://github.com/iowarp/clio-kit/issues/296) · 2026-07-15 · open · 0 comments

### Modernize remaining MCPs with agent-oriented contracts and independent server versions

## Goal

Modernize the remaining clio-kit MCP servers from one-tool-per-API/CLI wrappers into compact contracts designed around how an agent reasons about a native resource.

JARVIS v3 and Slurm v3 are reference implementations, but the lesson is not simply "fewer tools." The design process is:

1. Separate user intent from operator, compatibility, and low-level API operations.
2. Group related verbs and views around the native resource an agent is managing.
3. Preserve the authoritative native 

[Read the thread](https://github.com/iowarp/clio-kit/issues/291) · 2026-07-12 · open · 0 comments

### NDP

Please update the readme to be complaint with the expectations of the automated documentation script and the requirments of the repo

Update the main readme to add the new mcp

[Read the thread](https://github.com/iowarp/clio-kit/issues/269) · 2025-08-21 · closed · 0 comments

### Data Fusion MCP

Researcb following topics
[Apache Arrow](https://context7.com/apache/arrow)
[Apache DataFusion](https://context7.com/apache/datafusion)
[Apache Parquet](https://context7.com/apache/parquet-site)

Next steps in to integrate it with the Parquet MCP

[Read the thread](https://github.com/iowarp/clio-kit/issues/263) · 2025-08-04 · open · outside contributor · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/iowarp/clio-kit/issues).
