MCP TypeScript SDK: デフォルトのサイズ制限内で送信された1つのHTTPリクエストが、検証中にサーバーのメモリを使い果たし、システムが停止する可能性がある

### 概要
影響を受けるバージョンでは、サーバーは1つのリクエストで検証する配列要素やオブジェクトのキーの数に制限を設けていませんでした。デフォルトの4MiBのサイズ制限内で送信された1つのHTTPリクエストが、サーバーのメモリを使い果たし、`JavaScript heap out of memory`というエラーでプロセスが中断される可能性があります。

認証が必要なのは、SDKにリクエストが到達する前に認証を行っている場合のみです。

### 影響はありますか?
はい、信頼できないクライアントがHTTP経由でサーバーにアクセスできる場合、影響を受ける可能性があります。特に、入力に配列またはレコードを含む`McpServer`ツールのリスクが高いです。標準入力のみを使用するサーバーは影響を受けません。

影響を受けるバージョン:

- `@modelcontextprotocol/sdk` 1.3.0から1.31.0
- `@modelcontextprotocol/server` 2.0.0から2.2.0

### 修正方法
以下のバージョンにアップグレードしてください。

- 1.x: `@modelcontextprotocol/sdk` 1.32.0以降
- 2.x: `@modelcontextprotocol/server` 2.3.0以降

**アップグレードだけでは何も変わりません。** パッチが適用されたバージョンでは、`McpServer`のオプションである`maxToolInputElements`が追加されており、デフォルトでは無効になっています。以下の両方の変更を行ってください。

1. `maxToolInputElements`を、ツールが必要とする最大の入力サイズよりもわずかに大きく設定します。例えば、`new McpServer(info, { maxToolInputElements: 10_000 })`のように設定します。これは、呼び出しの引数に含まれる配列要素とオブジェクトのキーの数をカウントします。制限を超える呼び出しの場合、`isError: true`という結果が返されます。
2. リクエストのサイズ制限を、ツールが必要とするサイズに設定します。このオプションはツールの引数のみを対象とし、サイズ制限はそれ以外のすべてを対象とします。トランスポートで`maxRequestBodySize`を設定するか、`createMcpHandler()`で設定します。ボディを自分で解析する場合(例えば、`express.json()`やFastifyを使用する場合)、そのパーサーの制限を設定してください。

まだアップグレードできない場合は、2番目の変更を行ってください。`maxRequestBodySize`を使用するには、`@modelcontentprotocol/sdk` 1.30.1または`@modelcontentprotocol/server` 2.1.0が必要です。それ以前のバージョンでは、リバースプロキシを使用してください。

影響を受けるパッケージ:
- npm (JavaScript) @modelcontextprotocol/sdk: 影響を受けるバージョンは 1.3.0 以上、1.32.0 未満。1.32.0 で修正済み。
- npm (JavaScript) @modelcontextprotocol/server: 影響を受けるバージョンは 2.0.0 以上、2.3.0 未満。2.3.0 で修正済み。