原文(日本語訳)
ストリーミング中にMCPツールが画像コンテンツを返すとクラッシュする問題を修正しました。
原文(英語)
Fixed a crash when MCP tools return image content during streaming
概要
Claude Code 2.1.39では、Model Context Protocol (MCP) ツールがストリーミング応答中に画像コンテンツを返した際にClaude Codeがクラッシュする問題が修正されました。これにより、画像処理や視覚データを扱うMCPツールをより安定して利用できるようになりました。
MCPツールと画像コンテンツ
MCPは、Claude Codeが外部ツールやデータソースと連携するためのオープンソース標準です。多くのMCPツールは、スクリーンショット、図表、データビジュアライゼーションなどの画像コンテンツを返す機能を持っています。
実践例
スクリーンショットツールの利用
bash
# MCP経由でスクリーンショットツールを使用
claude mcp add screenshot-tool
# Claude Codeセッション内で
# "Take a screenshot of the current browser window and analyze the UI"修正前は、ストリーミング中に画像が返されるとクラッシュしていましたが、修正後は正常に画像を受け取り、分析できるようになりました。
データビジュアライゼーションツール
bash
# チャート生成MCPツールの設定
claude mcp add chart-generator
# セッション内でチャートを生成
# "Generate a bar chart from the data in sales.csv and show me the result"ツールが生成したチャート画像がストリーミング応答で返される際も、クラッシュせずに正常に表示されます。
WebページのキャプチャMCPツール
json
// ~/.claude/mcp.json の設定例
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
}bash
# Puppeteer MCPサーバーを使用したスクリーンショット
claude
# "Navigate to example.com and take a screenshot"修正により、ページのスクリーンショットがストリーミングで返されても安定して動作します。
画像解析MCPツール
bash
# 画像認識MCPツールの例
claude mcp add vision-analyzer
# 複数の画像を連続で解析
# "Analyze all images in the ./screenshots directory and describe their contents"複数の画像が連続してストリーミングされる場合でも、クラッシュせずに処理が継続されます。
技術的な詳細
問題の原因
ストリーミング応答中に画像データ(通常はbase64エンコードされたデータ)が送信されると、メモリ管理やバッファリングの問題でクラッシュが発生していました。
修正内容
- 画像コンテンツの適切なバッファリング処理
- ストリーミング中の大容量データハンドリングの改善
- エラーハンドリングの強化
注意点
- 画像サイズ: 非常に大きな画像(10MB以上)を扱う場合は、パフォーマンスに影響が出る可能性があります
- ストリーミング設定: MCPツールによっては、ストリーミング動作の設定が必要な場合があります
- メモリ使用量: 複数の画像を同時に処理する際は、システムのメモリ使用量に注意してください
- MCP Tool Search: MCP Tool Search機能を有効にしている場合、画像コンテンツを返すツールが適切に検出されることを確認してください
トラブルシューティング
以前のバージョンでの問題
バージョン2.1.38以前では、以下のようなクラッシュが発生していました。
FATAL ERROR: Unexpected image content during streaming
Segmentation fault (core dumped)アップデート方法
bash
# 最新バージョンにアップデート
npm update -g @anthropic-ai/claude-code
# バージョン確認
claude --version
# 出力例: Claude Code 2.1.39MCPツールの再接続
アップデート後、MCPツールが正常に動作しない場合は再接続を試してください。
bash
# MCP接続状態の確認
claude mcp list
# 必要に応じて再接続
claude mcp reconnect