原文(日本語に翻訳)
MCPの大容量出力切り詰めプロンプトを改善しました。フォーマット固有のレシピ(例:JSONにはjq、テキストには計算されたReadチャンクサイズ)が提示されるようになりました。
原文(英語)
Improved MCP large-output truncation prompt to give format-specific recipes (e.g. jq for JSON, computed Read chunk sizes for text)
概要
MCPサーバーが大容量のデータを返した際に表示される切り詰めメッセージが改善されました。以前は単に「出力が切り詰められました」というメッセージだけでしたが、データのフォーマットを自動検出し、JSON出力にはjqコマンドの使い方、テキストファイルには最適なチャンクサイズでのReadツール使用方法など、具体的な対処法を提示するようになりました。
基本的な使い方
この改善は自動的に機能します。MCPツールが大容量の出力を返した際に、フォーマット別の具体的な対処法が表示されます。
JSON出力の場合
[MCP出力が切り詰められました]
この出力はJSONです。以下のアプローチを試してください:
- 特定のフィールドを取得: jq '.data.items' output.json
- 配列の最初の10件: jq '.items[:10]' output.json
- キーの一覧: jq 'keys' output.jsonテキストファイルの場合
[MCP出力が切り詰められました - 全体: 45,000行]
Readツールで分割して読み込んでください:
- 最初の2,000行: Read({ file_path: "...", limit: 2000 })
- 次の2,000行: Read({ file_path: "...", offset: 2000, limit: 2000 })実践例
大量のAPIデータをMCP経由で取得
javascript
// MCPサーバーが大量のJSONを返す場合
// → 自動的に jq レシピが提示される
// 例: ユーザーリスト(10,000件)を取得
// [切り詰め発生]
// 提案: jq '.users | length' output.json
// jq '.users[:5]' output.jsonログファイルをMCP経由で解析
// MCPがログファイルを返す場合
// → Readチャンクサイズが自動計算されて提示される
// [切り詰め発生 - 全体: 120,000行]
// 提案:
// Read({ offset: 0, limit: 2000 }) # 最初の2,000行
// Read({ offset: 118000, limit: 2000 }) # 最後の2,000行注意点
- フォーマット検出は出力内容の自動解析に基づいています
jqコマンドが利用できない環境では、提示されたコマンドが動作しない場合があります- 提示された対処法はあくまで提案であり、実際のデータ構造によって最適な方法が異なることがあります
- MCPサーバー側で出力サイズを制限することが最も根本的な対策です