ts を優先するが、docs/samples/ のサンプルは .mjs にする。テストとツールは共通ルールどおり TypeScript--test-concurrency=1 を必ず付ける。HTTP のテストが待ち受けポートを使うので、並列にすると取り合って落ちる@変数 でスプラッティングすると何も渡らず、node --test も bun test もカレント配下を探し始めるnode_modules の中のテストを 700 件ほど走らせた$args = @('test') + $targets のように配列を組んでから渡し、要素数を確かめるInMemoryTaskStore は TTL のタイマーを持つ。transport.onclose で taskStore.cleanup() を呼ばないと、接続が切れてもプロセスが残るcapabilities.tasks は自動では付かない。McpServer の第 2 引数で明示するcallToolStream がタスクの作成を知らせるメッセージの型は taskCreated(task ではない)new UTF8Encoding(false)。既定の UTF-8 は先頭に BOM を付け、ホストが最初の行を JSON として読めなくなる