---
summary: "Framework update to @cyanheads/mcp-ts-core 0.13.14: tool error results carry a request ID and no longer expose server internals in their data, and numeric or boolean strings and null optional values in tool arguments are repaired instead of rejected."
breaking: false
security: false
---

# 0.4.2 — 2026-10-08

## Changed

- **Tool error results carry a request ID** — `data.requestId` is the ID the server's log records for that call carry, and `content[]` ends with `request <id>` (mcp-ts-core 0.13.10, [cyanheads/mcp-ts-core#576](https://github.com/cyanheads/mcp-ts-core/issues/576)).
- **Stack traces, request context, and `data.rootCause` no longer reach client error data** — 0.13.7 ([cyanheads/mcp-ts-core#519](https://github.com/cyanheads/mcp-ts-core/issues/519)) drops stacks, 0.13.8 ([cyanheads/mcp-ts-core#548](https://github.com/cyanheads/mcp-ts-core/issues/548)) drops request context, 0.13.13 ([cyanheads/mcp-ts-core#644](https://github.com/cyanheads/mcp-ts-core/issues/644)) drops `rootCause`.
- **Tool arguments are repaired before validation** — an integer sent for a string and a JSON-stringified object are decoded (0.13.9, [cyanheads/mcp-ts-core#479](https://github.com/cyanheads/mcp-ts-core/issues/479), [#487](https://github.com/cyanheads/mcp-ts-core/issues/487)); a numeric or boolean string becomes the number or boolean (`rows: "5"` → `5`) and `null` at an optional key reads as absent (0.13.14, [cyanheads/mcp-ts-core#707](https://github.com/cyanheads/mcp-ts-core/issues/707), [#602](https://github.com/cyanheads/mcp-ts-core/issues/602), [#616](https://github.com/cyanheads/mcp-ts-core/issues/616)). A genuinely wrong type (`rows: true`) is still rejected with `-32602`.
- **The `-32602` argument rejection is bounded in size** (0.13.14, [cyanheads/mcp-ts-core#648](https://github.com/cyanheads/mcp-ts-core/issues/648)).
- **`ctx.log` lines reach the client only at or above `MCP_LOG_LEVEL`, with sensitive fields masked** (0.13.11, [cyanheads/mcp-ts-core#621](https://github.com/cyanheads/mcp-ts-core/issues/621), [#630](https://github.com/cyanheads/mcp-ts-core/issues/630)).
- **Tool handlers no longer forward `ctx.recoveryFor(...)`** — the same recovery hints still reach clients through the framework's declared-recovery fill (0.13.10, [cyanheads/mcp-ts-core#579](https://github.com/cyanheads/mcp-ts-core/issues/579)).
- **`server.json` npm entries launch through `npx`** — the `run start:*` arguments are gone and the HTTP entry sets `MCP_TRANSPORT_TYPE` to `http`, so registry clients start the HTTP entry over HTTP (0.13.11, [cyanheads/mcp-ts-core#622](https://github.com/cyanheads/mcp-ts-core/issues/622)).
- **Docker image installs production dependencies in a `deps` stage on the build platform** and drops unused musl native bindings; `scripts/install-otel.ts` and `scripts/prune-musl-packages.ts` are new, and `MCP_FORCE_CONSOLE_LOGGING` is gone from the image (0.13.10 [cyanheads/mcp-ts-core#575](https://github.com/cyanheads/mcp-ts-core/issues/575), 0.13.11 [#608](https://github.com/cyanheads/mcp-ts-core/issues/608)).
- **`.env.example` and the README document the new logging, payload-logging, OTLP, and resumability variables** — `LOG_TOOL_FAILURE_PAYLOADS` and OTLP log export stay off unless set.
- **Bundle and ignore files** — `.mcpbignore` excludes `docs/idea.md`, `logs/`, `.cache/`, and `tests/`; `.gitignore` and `.dockerignore` cover every `.env*` file and the registry token files; `package.json` `files` carries `!dist/*.mcpb`; `manifest.json` author is `cyanheads` without email or URL.
- **CodeQL runs one job per language** under default setup's category; the README badges read MCP SDK `^2.2.0` and Bun `v1.4.2`.
- **Framework skills and scripts synced to 0.13.14** — adds `lint:packaging` checks 13, 15, and 16, tag validation in `release:github`, and the portable antipattern gate.

## Dependencies

- `@cyanheads/mcp-ts-core` `^0.13.6` → `^0.13.14`; `pino-pretty` `^13.1.3` → `^13.2.0`.
- Dev: `@biomejs/biome` `^2.5.14` → `^2.5.15`, `@socketsecurity/bun-security-scanner` `^1.1.2` → `^1.1.3`, `@types/node` `^26.6.2` → `^26.6.4`, `ignore` `^7.0.9` → `^7.0.12`, `tsc-alias` `^1.9.5` → `^1.9.7`, `vitest` `^5.0.1` → `^5.0.3`.
- Bun 1.4.0 → 1.4.2 (`packageManager`, Docker base images).
