---
summary: "mcp-ts-core ^0.12.3 → ^0.13.6 — InvalidParams argument rejections with recovery hints, RequestCancelled disconnects, explicit stateless session mode, plus a manifest env-var wiring fix and forwarded recovery hints across six tools."
breaking: true
security: false
---

# 0.1.6 — 2026-09-20

## Changed

- **`@cyanheads/mcp-ts-core`** `^0.12.3` → `^0.13.6`
- An argument rejection (unknown key, wrong type, missing field) now classifies `InvalidParams` (`-32602`) instead of `ValidationError`, and carries a `reason` plus a recovery hint on both `content[]` text and `structuredContent.error.data`
- A disconnected or cancelled call now classifies `RequestCancelled` (`-32011`) instead of `InternalError`
- Tool arguments pass a pre-validation step ahead of schema checking: a client-added key outside the declared schema is dropped, and a JSON-stringified array argument is repaired and re-parsed once
- Session mode is declared `stateless` in code rather than left to `MCP_SESSION_MODE`; the server card now publishes it under `_meta`

## Fixed

- **`manifest.json`**: `MACOS_SCREENSHOT_DIR` and `MACOS_DISPLAY_LAYOUTS` were declared as `user_config` options but never wired into `mcp_config.env`, so setting them through the Claude Desktop config UI had no effect
- Several tools (`macos_control_audio`, `macos_manage_apps`, `macos_manage_displays`, `macos_manage_finder`, `macos_manage_focus`, `macos_manage_windows`) declared a recovery hint on one or more error reasons but never forwarded it — those rejections now carry the hint on both client surfaces

## Dependencies

- `@cyanheads/mcp-ts-core` `^0.12.3` → `^0.13.6`
- `zod` `^4.4.3` → `^4.6.5`
- Bun engines floor raised to `>=1.4.0`
- `@biomejs/biome` `^2.5.9` → `^2.5.14`, `@types/node` `^26.2.0` → `^26.6.1`, `ignore` `^7.0.6` → `^7.0.9`, `tsc-alias` `^1.9.2` → `^1.9.5`, `vitest` `^4.1.11` → `^5.0.1` (dev)
