rba-mcp 0.1.8 — customer-flow audit fixes
0.1.8 (2026-05-12)
Customer-flow audit fixes — surfaced when running rba-mcp against Claude
Desktop end-to-end. Two real UX gaps + a major distribution-side warning.
- Fix:
start_dateandend_dateaccept int years. MCP / LLM clients
often send a year as a JSON number (start_date=2024) instead of a
string ("2024"). Pre-0.1.8 this errored at the Pydantic boundary
with a verbose "Input should be a valid string" message. Now: the
Annotated type isstr | int | Noneand_validate_periodcoerces
int → str transparently. Bool is explicitly excluded from coercion
(sinceisinstance(True, int)isTruein Python) soTrue/False
still raise a clean type error rather than becoming "1"/"0". - Fix:
describe_tablepopulatesSeriesDetail.start_datefor
curated tables. The non-curated branch already fetched the CSV and
randf[sid].first_valid_index(); the curated branch shortcut to
YAML metadata only and leftstart_datenull on every curated
series. The LLM needs this to pick a sensible date range without
trial-and-error queries — e.g. F11 starts 2010, F11.1 starts 2023.
Now both branches populate the field. - README + example configs: recommend
uvx --upgrade rba-mcpfor
Claude Desktop / Cursor. Plainuvx rba-mcp(no flag) uses
whatever wheel is cached and the long-lived MCP child process holds
it — new PyPI releases never reach a running install until the user
manuallyuvx --refreshes and fully quits Claude Desktop. Found in
the wild during a customer-flow audit: an install was running 0.1.2
against PyPI 0.1.7, five releases of fixes never adopted.--upgrade
makes uvx check PyPI on each launch. Same fix shipped to abs-mcp's
example configs. - Tests: +4 regressions in
tests/test_stress_regressions.py
(int year accepted; int = str equivalence; bool still rejected;
curatedstart_datepopulated). 107 unit tests now (was 103).