Skip to content

原文(日本語に翻訳)

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サーバー側で出力サイズを制限することが最も根本的な対策です

関連情報