# MCP TypeScript SDK 2.4.0 adds Skills over MCP and tightens tool schema checks

published: 2026-10-23T19:05:28.518Z
topic: mcp
source: https://github.com/modelcontextprotocol/typescript-sdk/releases/tag/v2.4.0
url: https://aiagentnews.io/stories/mcp-typescript-sdk-2-4-0-adds-skills-over-mcp-and-tightens-tool-schema-checks

The Model Context Protocol TypeScript SDK released version 2.4.0, which adds Skills over MCP and changes how some tool schemas are handled. Developers upgrading should check their x-mcp-header annotations and outputSchema results first.

Version 2.4.0 of the TypeScript SDK updates the client, server, core, server-legacy and codemod packages, and @modelcontextprotocol/node moves to 2.1.2. The release adds Skills over MCP (SEP-2640): servers publish a skills folder with loadSkills(folder) and skills.attach(server), and clients list, read and verify them with SkillsClient. The attach method is marked experimental.

Some changes can break existing code. An x-mcp-header annotation on a number parameter is now rejected, so affected tools are hidden from clients and calls return -32020; use z.int() or remove the annotation. Results from outputSchema defined with z.object(...).meta({ id }) are no longer wrapped in { result } on 2025-11-25 connections.

The bundled Ajv validator now uses fast-uri 3.1.8 and rejects $id or $ref values with invalid URI schemes. Smaller additions include an opt-in scopeForRefresh hook for servers that require scope on token refresh, along with several bug fixes.

## Why it matters if you build agents

Teams building on the TypeScript SDK should audit tool definitions for number-typed x-mcp-header parameters, and any code that unwraps result from structured output, before upgrading. Agents that publish or consume skills now have a built-in path for it, though attach may change in a minor release.
