# Reported issues for ilostat-mcp-server

Pod holds 11 of 11 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to [ilostat-mcp-server](/mcp/ilostat-mcp-server).

## Most discussed

### bug(ilostat_describe_indicator): "A, B" fails the schema instead of getting the one-per-call guidance

### Server version

0.1.0

### mcp-ts-core version

0.13.8

### Runtime

Node.js

### Runtime version

Node 26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

`dataset_id` admits `+`/`,`-joined IDs so that a joined value gets the "describe one dataset per call" guidance. The pattern `^[A-Z0-9_]+([+,][A-Z0-9_]+)*$` allows no whitespace around the separator, so the common `A, B` form fails validation. The message it gets ("letters, digits, and underscores") does not say what is…

[Read the thread](https://github.com/cyanheads/ilostat-mcp-server/issues/10) · 2026-09-26 · closed · 2 comments

### bug(ilostat_search_indicators): a cursor past the last match returns an empty page with no notice

### Server version

0.1.0

### mcp-ts-core version

0.13.8

### Runtime

Node.js

### Runtime version

Node 26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

The cursor carries only an offset, so a `next_cursor` reused on a narrower search (or any offset at or past `total`) returns `hits: []` with `total` still non-zero, `truncated: false`, and no `notice`. The response says "44 matching indicators" and shows none, with nothing telling the caller to drop the cursor. Every other…

[Read the thread](https://github.com/cyanheads/ilostat-mcp-server/issues/9) · 2026-09-26 · closed · 2 comments

### feat(ilostat_query_indicator): zero-row notice should name the cause it can check, not every filter set

### Use case

On zero rows, `ilostat_query_indicator` adds a fragment for every filter that is set, whether or not it can explain the empty result. In each case below the real cause is knowable locally, yet the notice also sends the caller to describe for codes and areas the dataset does cover.

| Call (`UNE_DEAP_SEX_AGE_RT_A`) | Real cause | Notice also claims |
|:--|:--|:--|
| USA, SEX_T, AGE_YTHADULT_YGE15, `time_from 1900`, `time_to 1905` | window outside 1947–2027 | may not use SEX_T,…

[Read the thread](https://github.com/cyanheads/ilostat-mcp-server/issues/8) · 2026-09-26 · closed · 2 comments

### bug(ilostat_describe_indicator): lists breakdown codes that ilostat_query_indicator rejects as unknown

### Server version

0.1.0

### mcp-ts-core version

0.13.8

### Runtime

Node.js

### Runtime version

Node 26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

Describe takes breakdown codes from the SDMX content constraint, but query validates `classif1`/`classif2` against the rplumber classif1/classif2 dictionaries. Codes present only in SDMX are advertised as "Code to pass as classif1" and then refused. They are visible in describe as the entries whose label has no `Age (…):`…

[Read the thread](https://github.com/cyanheads/ilostat-mcp-server/issues/7) · 2026-09-26 · closed · 2 comments

### bug(ilostat_search_indicators): subject example UNE is not a subject code

### Server version

0.1.0

### mcp-ts-core version

0.13.8

### Runtime

Node.js

### Runtime version

Node 26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

The `subject` input describe in `search-indicators.tool.ts` gives `e.g. UNE (unemployment)`, but no subject has that code: unemployment indicators sit under `LUU` (Unemployment and labour underutilization). A caller that follows the schema's own example gets `unknown_filter_code`.

### Steps to reproduce

1. Call…

[Read the thread](https://github.com/cyanheads/ilostat-mcp-server/issues/6) · 2026-09-26 · closed · 2 comments

### bug(ilostat_query_indicator): every multi-dataset query fails as dataset_retired

### Server version

0.1.0

### mcp-ts-core version

0.13.8

### Runtime

Node.js

### Runtime version

Node 26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

Any `ilostat_query_indicator` call with two or three `dataset_ids` fails with `dataset_retired`, so the documented 1–3 dataset support works only for one. `buildUrl` in `src/services/rplumber/rplumber-client.ts` sets params through `url.searchParams.set`, which sends the `+`-joined value as `id=A%2BB`. Upstream reads that as…

[Read the thread](https://github.com/cyanheads/ilostat-mcp-server/issues/5) · 2026-09-26 · closed · 2 comments

### bug(ilostat_get_country_profile): notice says modelled estimates are shown for keys that have none

### Server version

0.1.0

### mcp-ts-core version

0.13.8

### Runtime

Node.js

### Runtime version

Node 26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

The profile notice lists every `reported_missing` key under "the modelled estimates shown for them are ILO model output", including keys that have no modelled estimate. When every missing key lacks one, the notice contradicts itself.

### Steps to reproduce

1. Call `ilostat_get_country_profile` with `{"ref_area":"ANT"}`

###…

[Read the thread](https://github.com/cyanheads/ilostat-mcp-server/issues/4) · 2026-09-26 · closed · 2 comments

### bug(ilostat_compare_geographies): staged comparison reports truncated: false while inline rows stop early

### Server version

0.1.0

### mcp-ts-core version

0.13.8

### Runtime

Node.js

### Runtime version

Node 26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

When a comparison is staged, `rows` holds only the inline preview, but `truncated` is `false`. The output schema describes `truncated` as "True when the inline rows stop before the last area", so a reader of that field concludes it has every area. The notice names the dataframe and its row count, but never says how many rows…

[Read the thread](https://github.com/cyanheads/ilostat-mcp-server/issues/3) · 2026-09-26 · closed · 2 comments

## Most recent

### bug(latest): latest_only and the country profile drop a slice whose data ends before its indicator's

**Server version:** 0.1.1 · **mcp-ts-core:** 0.13.8 · **Runtime:** Bun · **Transport:** stdio

### Description

`ilostat_query_indicator`'s `latest_only` and every reported value in `ilostat_get_country_profile` use ILOSTAT's `latestyear=TRUE`. That flag picks the latest period per area **and indicator**, not per slice. So when two slices of one indicator are requested together, a slice whose data ends earlier is dropped.

On `UNE_DEAP_SEX_AGE_RT_A` with `sex=SEX_T`, requesting…

[Read the thread](https://github.com/cyanheads/ilostat-mcp-server/issues/12) · 2026-09-27 · open · 0 comments

### bug(ilostat_dataframe_query): CREATE TABLE / INSERT naming a new df_ table fails missing_table, not non_select_statement

### Server version

0.1.0

### mcp-ts-core version

0.13.8

### Runtime

Node.js

### Runtime version

Node 26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

A write statement whose target is an unused `df_` name is answered as a missing table, because the `missing_table` pre-check runs before the SELECT-only gate. The recovery then sends the caller to `ilostat_dataframe_describe` or to re-stage data, when the real fix is to send a SELECT (and use `register_as` to store a result).…

[Read the thread](https://github.com/cyanheads/ilostat-mcp-server/issues/2) · 2026-09-26 · closed · 2 comments

### bug(ilostat_compare_geographies): change_years widens the lookback window for the latest value

### Server version

0.1.0

### mcp-ts-core version

0.13.8

### Runtime

Node.js

### Runtime version

Node 26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

In latest mode, setting `change_years` changes which areas have a value. The request's `timefrom` is widened by `change_years` to reach the change base, but the latest value is then picked from anywhere in that wider window, so values older than `lookback_years` allows are compared. Areas picked this way also get no `change`,…

[Read the thread](https://github.com/cyanheads/ilostat-mcp-server/issues/1) · 2026-09-26 · closed · 2 comments

The remaining reports are on [the project's issue tracker](https://github.com/cyanheads/ilostat-mcp-server/issues).
