# Reported issues for ato-mcp

Pod holds 9 of 9 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 [ato-mcp](/mcp/ato-mcp).

## Most discussed

### [hardening] Vercel KV rate-limit + RLS-isolation CI test

Two production-hardening items for a public launch handling PII:
- **Rate limit is in-memory** (`packages/backend/api/_middleware.ts`, `Map` keyed by minute) — does not survive multiple function instances/cold starts. Swap to Vercel KV (already a documented TODO).
- **RLS isolation is untested in CI** — `0004_rls.sql` policies exist but the "user A cannot read user B's facts/events" test was never wired (design §7 calls it the test that protects the privacy promise). Add it against a real Postgr

[Read the thread](https://github.com/william-laverty/ato-mcp/issues/11) · 2026-06-06 · closed · 1 comment

### [v1.0] Open-source launch readiness: LICENSE, README, end-user docs, disclaimer legal review

Per the original design (`2026-05-25-ato-mcp-design.md` §9), v1.0 = open-source launch readiness. Currently missing:
- **No `LICENSE`** file (the design calls the project open-sourceable end-to-end).
- **No `README`** / end-user docs (install, modes, tool reference).
- **Disclaimer legal review** — design §8 open question: a tax-aware lawyer should review the disclaimer wording before a public launch of a tax tool. Genuine 1.0 gate.
- Privacy policy + terms already exist (schema-driven `/privacy

[Read the thread](https://github.com/william-laverty/ato-mcp/issues/10) · 2026-06-06 · closed · 1 comment

### [v1.0] Publish @ato-mcp/mcp to npm + finalize the install story

`@ato-mcp/mcp` is **not published to npm** (404) and `package.json` is `version 0.1.0` while the server reports `0.3.0` (version drift). Without a published, installable package there is no `npx ato-mcp` / plugin-install path for users.

**What:** reconcile the version, add an npm-publish GitHub Action (and/or Claude Code plugin-marketplace listing), publish, and document the install in the README.

[Read the thread](https://github.com/william-laverty/ato-mcp/issues/9) · 2026-06-06 · closed · 1 comment

### [v1.0] Local-mode corpus: publish a corpus release, or scope local mode out of v1

`gh release list` is empty — there are **no published corpus releases**, so a local-mode install has nothing to download. Only **hosted mode** actually works for a new user today, yet local mode (privacy/offline) is a headline differentiator.

`.github/workflows/corpus-build.yml` exists and *does* `gh release create` (tag `v0.2.*`) on a monthly cron, but has never produced a release (and the tag/version is stale).

**Decide for 1.0:** either (a) run the corpus-build workflow to publish a current

[Read the thread](https://github.com/william-laverty/ato-mcp/issues/8) · 2026-06-06 · closed · 1 comment

### [v0.4 follow-up] Close v0.4 unit-test coverage gaps

The v0.4 holistic review flagged acceptable-but-real coverage gaps:
- `audit_risk_check`: ~6 of 13 detectors lack a direct unit test (car_near_cap, clothing_high, self_education_present, rental_interest_vs_income, rental_repairs_large, no_prior_year_lodged).
- `depreciation_helper`: the `sbe_pool`, GST-exclusivity-note, and car-limit-note branches aren't driven end-to-end through the tool wrapper (the maths is unit-tested directly).
- Backend handler happy-paths are untestable under the null-ret

[Read the thread](https://github.com/william-laverty/ato-mcp/issues/7) · 2026-06-06 · closed · 1 comment

### [v0.4 follow-up] Verify the authenticated hosted path for the four v0.4 tools

The four new prod routes return 401 unauthenticated (deployed + auth-gated), but no **authenticated** call has exercised the hosted path end-to-end: RemoteToolForwarder → backend → `WasmEmbedder.load()` (cold-start model fetch to `/tmp`) → Supabase RPC (vector + keyword + `get_threshold`).

**What:** with a real bearer token, fire one call per tool against `api.ato-mcp.com.au` and confirm real cited results (not just a 200). Watch for cold-start timeouts / OOM on the embedder. This is the gate b

[Read the thread](https://github.com/william-laverty/ato-mcp/issues/6) · 2026-06-06 · closed · 1 comment

### [v0.5] Consolidate backend tool endpoints into one dynamic api/[tool].ts dispatcher

**Why:** v0.4 took the backend to 16 serverless functions, which exceeds the Vercel Hobby 12-function cap (forced a Pro upgrade). Each new tool adds another function, and each bundles the heavy embedder stack (@xenova/transformers + onnxruntime-node + sharp), pushing toward the 250 MB per-function limit.

**What:** Replace the per-tool `packages/backend/api/*.ts` handlers with a single dynamic `api/[tool].ts` dispatcher (mirroring `packages/mcp/src/server.ts` `dispatch()`), keeping non-tool endp

[Read the thread](https://github.com/william-laverty/ato-mcp/issues/4) · 2026-06-06 · closed · 1 comment

### [Client]: Invalid/expired token errors lack recovery guidance

### Description
When a token is invalid or revoked, the API responds 401 and the client surfaces the raw message with no guidance on how to recover. The missing-token path correctly points users to onboarding; the invalid-token path does not, which is inconsistent with the project rule that token errors must carry user guidance.

### Observed Behaviour
- A bad token produces `Backend stats: HTTP 401 — invalid_token` (formatted in `packages/mcp/src/lib/remote-tools.ts`).
- Backend validation erro

[Read the thread](https://github.com/william-laverty/ato-mcp/issues/40) · 2026-07-02 · closed · 0 comments

## Most recent

### [Client]: MCP serverInfo reports stale hardcoded version

### Description
The MCP server advertises a hardcoded version string that has drifted from the package version. The `initialize` handshake reports `1.1.0` while the published package is `1.1.1`.

### Root Cause
- `packages/mcp/src/server.ts` sets `serverInfo` to `{ name: "ato-mcp", version: "1.1.0" }` as a literal.
- `packages/mcp/package.json` is at `1.1.1`, so the two diverge on every release.

### Observed Behaviour
- `initialize` returns `serverInfo.version: "1.1.0"` when running the publish

[Read the thread](https://github.com/william-laverty/ato-mcp/issues/39) · 2026-07-02 · closed · 0 comments

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