MCPサーバが十数個を超えてから、起動直後の一覧を信用しなくなりました
起動直後に「接続できません」と並ぶサーバのうち、こちらから手を打てるものは一部だけです。応答なし・起動失敗・プロトコル拒否を分けて返すプローブを実装し、14台構成で逐次22.03秒が並列5.09秒まで縮むところ、待ち時間を詰めると健全なサーバが失敗に化けるところを実測で残しました。
コネクタが使えない朝に、待つのか人に返すのかを分ける三つの状態
無人実行でコネクタに届かないとき、原因は起動途中・未認証・恒久欠落の三つに分かれます。それぞれ正しい対処が正反対になる理由と、待機予算を切り分ける判定器の実装をまとめました。
サーバーレスに置いた MCP サーバーで、listen ストリームが張り直され続けていました
エラーは何も出ていないのに、MCP サーバーへの接続だけが増え続ける。固定タイムアウトで切られるストリームと再購読が噛み合ったときの挙動を、最小の再現コードで確かめました。
400文字だけ残したはずのツール出力が、1MB を握り続けていた
自作の MCP サーバーやツールラッパーで出力を切り詰めても、Node の sliced string は元の全文を握り続けます。境界が13文字であること、平坦化が効く書き方と効かない書き方、ヒープスナップショットから親を数える監査スクリプトまで、すべて実測して記録しました。
MCPサーバーは繋がっているのに、ツールが0件で返る — 無人実行の権限劣化をツール表の差分で止める
資格情報が抜けてもMCPのハンドシェイクは成功し、tools/list は空配列を返します。例外が飛ばないまま実行が完走する構造と、期待ツール表との差分で無人実行を止めるpreflightの実装を、実測値つきで記録しました。
ツール出力10万文字の境界で消える一行 — 実測から組み立てた出力封筒の設計
エージェントのツール出力が10万文字を超えると全文はファイルへ退避され、モデルには先頭を切り取ったプレビューだけが渡ります。手元のリポジトリで実測した生存率と、判断材料を先頭へ押し出す出力封筒の実装をまとめました。
許可リストに書いた環境変数は誰の環境で展開されるのか — Managed MCP の実効ポリシーを指紋で確かめる
Managed MCP の allowlist・denylist に書いた環境変数参照の解決元が、起動時環境と managed-settings の env に変わりました。同じ設定ファイルが環境ごとに別のポリシーになる仕組みを手元で再現し、実効ポリシーを指紋で突き合わせる起動前チェックを組みました。
Mcp-Session-Id を前提にしない MCP サーバーへ — 状態の置き場所を作り直す
MCP仕様の2026-07-28リリース候補でMcp-Session-Idヘッダーの廃止が示されました。自作リモートMCPサーバーのセッション結合を監査スクリプトで数え、状態を三つに仕分けて署名付きカーソルへ移行するまでの実測記録です。移行の順番と旧方式の外し方まで具体的に書いています。
共通エージェント定義をセッション単位で差し替える運用設計
Managed Agents の agent_with_overrides を使い、1つの土台エージェントをセッションごとにモデル・プロンプト・ツール・MCP・スキルまで安全に差し替える設計パターンを、検証コードと実運用の落とし穴とともにまとめました。
宣言したMCPサーバーが一覧から消えていた — 名前空間をベンダーと共有する前提で設定を組み直す
MCPサーバー名がベンダーに予約され、自分の .mcp.json の宣言が黙って無効になる。無人実行で気づけないこの欠落を、宣言と実体を突き合わせる preflight と接頭辞規約で落とす設計をまとめました。
手元では動くのに、配ると呼び出されない — Cowork プラグインから剥がした4つの前提
自分の環境で動いていたスキル4本をプラグインにまとめて渡したところ、発火したのは1本だけでした。発火率の測り方と、配布前に剥がすべき環境依存・description・権限・命名衝突の4前提を実装込みで整理します。
テーブルが「… 2,847 more rows」で切れていた朝 — 描画上限とトークン計上を切り離して、ツール出力を設計し直す
Claude Code 2.1.209 で 200 行超の markdown テーブルは先頭 200 行+残り件数の表示になりました。省略されるのは描画だけで、モデルは全行を受け取ります。この差を測り、ツール出力を集約型へ組み替える設計をまとめます。