原文(日本語)
MCPツールがストリーミング中に画像コンテンツを返した際にクラッシュする問題を修正しました。
原文(英語)
Fixed a crash when MCP tools return image content during streaming
概要
Claude Code v2.1.41では、Model Context Protocol (MCP)ツールがストリーミング応答中に画像データを返した際にアプリケーションがクラッシュする問題が修正されました。これにより、MCPツールが画像を含む応答を返しても、安定して動作するようになりました。
問題の背景
MCPツールと画像コンテンツ
MCPサーバーは、外部サービスとの統合を提供し、テキストだけでなく画像などのバイナリコンテンツを返すことができます。例えば、スクリーンショット取得ツールやデータ可視化ツールなどです。
発生していた問題
ストリーミングモード(逐次応答)でMCPツールが画像を返すと、内部でのデータ処理が適切に行われず、アプリケーションがクラッシュしていました。
基本的な使い方
画像を返すMCPツールの正常な動作
修正後は、MCPツールが画像を返しても安定して動作します。
bash
# スクリーンショット取得ツール(MCP)を使用
> "ブラウザの現在の画面をキャプチャしてください"
# MCPツールが画像を返す
📸 Screenshot captured successfully
[画像が表示される]
# クラッシュせずに正常に動作実践例
Webスクレイピングツールでの画像取得
MCPサーバー経由でWebページをスクレイピングし、画像を取得する場合です。
bash
# MCPツールで商品画像を取得
> "このECサイトから商品画像をスクレイピングしてください"
# MCPツールが複数の画像を順次返す(修正前はクラッシュ)
✓ Product image 1 fetched
✓ Product image 2 fetched
✓ Product image 3 fetched
# すべての画像が正常に表示されるデータ可視化ツールでのグラフ生成
MCPツールがデータをグラフ化して画像として返す場合です。
bash
# データ分析と可視化
> "売上データを分析して、グラフで可視化してください"
# MCPツールがグラフ画像を生成して返す
📊 Generating sales chart...
[グラフ画像が表示される]
# ストリーミング中も安定して動作ブラウザ自動化ツールでのキャプチャ
Playwright/Puppeteer MCPサーバーを使用して、Webページのスクリーンショットを取得します。
bash
# ブラウザ自動化MCPツールを使用
> "https://example.com にアクセスして、ページ全体のスクリーンショットを撮影してください"
# MCPツールがブラウザを起動し、画像を返す
🌐 Navigating to https://example.com
📸 Capturing full page screenshot...
[スクリーンショット画像が表示される]
# 修正後は正常に完了画像処理パイプライン
複数のMCPツールを連携させて、画像処理を行う場合です。
bash
# 画像取得 → 加工 → 保存のパイプライン
> "ロゴ画像を取得して、リサイズしてから保存してください"
# 各ステップで画像が返される
✓ Step 1: Fetching logo image
[元画像が表示される]
✓ Step 2: Resizing to 512x512
[リサイズ後の画像が表示される]
✓ Step 3: Saved to /project/assets/logo-resized.png
# すべてのステップが安定して実行されるこの修正の利点
安定性の向上
- MCPツールが画像を返してもクラッシュしない
- ストリーミング応答中も安定して動作
- 複数の画像を連続して処理可能
MCPツールの活用範囲拡大
- スクリーンショットツールの利用が可能に
- データ可視化ツールの安定動作
- 画像処理パイプラインの構築が可能
ユーザー体験の改善
- 予期しないクラッシュの削減
- 画像を含む複雑な処理の実現
- より多様なMCPツールの活用
注意点
- この修正は自動的に適用されます
- MCPツールの設定は
~/.claude/mcp_servers.jsonで管理されます - 大きな画像を扱う場合、メモリ使用量に注意してください
- 画像のサイズ制限(最大30MB、解像度制限あり)は依然として適用されます
MCPツール開発者向けの情報
- MCPツールから画像を返す場合、適切なMIMEタイプを設定してください
- ストリーミング応答中も、画像データが正しくハンドリングされます
- Base64エンコードされた画像データにも対応しています