---
summary: "mcp-ts-core ^0.13.6 → ^0.13.14: tool error results end with a request ID and no longer carry server stack traces or root-cause text, more mistyped tool arguments are repaired before validation, and the Docker image moves to the multi-arch deps-stage layout with a health check."
breaking: false
security: false
---

# 0.6.1 — 2026-10-08

## Changed

- **Tool error results end with `request <id>`** and carry `data.requestId`, the ID the server's log records for that call carry. (mcp-ts-core 0.13.10)
- **Error data no longer carries server stack traces** (0.13.7), request context (0.13.8), or `data.rootCause` (0.13.13).
- **Argument repair before validation**: an integer sent for a string field becomes its digits (0.13.9). A numeric or boolean string for a number or boolean field, a lone string for an array field, and `null` at an optional key (treated as omitted) are repaired too (0.13.14).
- **The `-32602` argument rejection is bounded in size** (0.13.14). `tools/list` is unchanged.
- **MCP SDK `@modelcontextprotocol/server` 2.0.0 → 2.2.0** through the framework: a 2026-07-28 POST without `MCP-Protocol-Version` is refused `400` (0.13.9).
- **`ctx.log` notifications honor `MCP_LOG_LEVEL` and mask sensitive fields** (0.13.11).
- **Dropped redundant `ctx.recoveryFor` forwards** in `census_compare_geographies`, `census_list_geographies`, `census_list_predicate_values`, `census_query_data`, and the variable cache. Clients receive the same hints: the framework fills a declared recovery hint for a failure carrying its reason (0.13.10).
- **Dockerfile**: dependencies install in a `deps` stage on the build platform instead of running Bun under QEMU (0.13.10), and musl-only packages are pruned (0.13.11). The image gains a `HEALTHCHECK` on `/healthz` (before: none). `MCP_FORCE_CONSOLE_LOGGING`, which nothing read, is removed (0.13.8). `scripts/install-otel.ts` and `scripts/prune-musl-packages.ts` are new.
- **`server.json`**: before, both npm entries had `"runtimeHint": "bun"` with `run start:stdio` / `run start:http` package arguments. Now both have `"runtimeHint": "npx"` with no package arguments, and the `streamable-http` entry sets `MCP_TRANSPORT_TYPE` to `"http"` (0.13.11).
- **Env and ignore files**: `.gitignore` ignores `.env*` except `.env.example`, `.env.template`, and `.env.sample`; `.dockerignore` ignores `.env*` and the MCP Registry token files. `.mcpbignore` adds `docs/idea.md`, `logs/`, `.cache/`, and `tests/`. `package.json` `files` excludes `dist/*.mcpb`.
- **`.env.example`** adds the framework block: `MCP_HTTP_RESUMABILITY*`, `MCP_LOG_RATE_LIMIT_*`, `LOG_TOOL_FAILURE_PAYLOADS`, `LOG_TOOL_FAILURE_PAYLOAD_MAX_BYTES`, `LOG_LLM_INTERACTIONS`, the OTLP traces, metrics, and logs endpoints, and `MCP_REQUEST_STATE_KEY` (documented only). `MCP_HTTP_HOST` lists `127.0.0.1` as its default.
- **CodeQL workflow** analyzes `actions` and `javascript-typescript` as separate matrix jobs, each uploading under `/language:<language>`.
- **Docs**: the README environment table gains `LOG_TOOL_FAILURE_PAYLOADS`, and the SDK badge reads `^2.2.0`. `CLAUDE.md` and `AGENTS.md` update the `ctx` table, the error-contract paragraph, the release-PR description, and add a "cut noise" convention.
- **Tooling**: `framework-skills/` and `scripts/` (`devcheck`, `lint-mcp`, `lint-packaging`, `check-skill-versions`, `check-framework-antipatterns`, `release-github`) resynced from the framework template; `devcheck.config.json` no longer allowlists `typescript` as outdated.
- **Tests**: the input-contract test sends a boolean instead of an integer for its wrong-type case, and gains a case asserting the filled recovery hint for a bare `ctx.fail`.

## 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, `@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
