原文(日本語に翻訳)
-p モード向けに MCP_CONNECTION_NONBLOCKING=true を追加し、MCP接続の待機を完全にスキップ。また --mcp-config サーバー接続を最も遅いサーバーへのブロッキングではなく5秒で上限を設定
原文(英語)
Added MCP_CONNECTION_NONBLOCKING=true for -p mode to skip the MCP connection wait entirely, and bounded --mcp-config server connections at 5s instead of blocking on the slowest server
概要
ヘッドレスモード(-p フラグ)での起動高速化のため、MCP_CONNECTION_NONBLOCKING=true 環境変数が追加されました。この設定を有効にするとMCPサーバーへの接続待機を完全にスキップし、即座に処理を開始できます。また、--mcp-config を使用した場合のサーバー接続タイムアウトが5秒に制限されるようになり、応答の遅いMCPサーバーがあっても他のサーバーへのアクセスがブロックされなくなりました。
基本的な使い方
bash
# MCP接続待機を完全スキップ(-p モード専用)
MCP_CONNECTION_NONBLOCKING=true claude -p "コードを分析してください"
# --mcp-config と組み合わせる場合(タイムアウトは自動で5秒に制限)
claude -p --mcp-config ./mcp-servers.json "タスクを実行してください"実践例
CI/CDパイプラインでの高速実行
yaml
# .github/workflows/claude-analysis.yml
name: Claude Code Analysis
on: [push]
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Claude analysis
env:
MCP_CONNECTION_NONBLOCKING: "true"
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
# MCPの接続待機をスキップして高速実行
claude -p "変更されたファイルを分析してレポートを生成してください"複数MCPサーバー設定でのタイムアウト制御
json
// mcp-servers.json
{
"mcpServers": {
"fast-server": {
"command": "fast-mcp-server",
"args": []
},
"slow-server": {
"command": "slow-mcp-server",
"args": []
},
"another-server": {
"command": "another-mcp-server",
"args": []
}
}
}bash
# v2.1.89以前: slow-serverの応答を無制限に待機していた
# v2.1.89以降: 各サーバーへの接続は最大5秒でタイムアウト
claude -p --mcp-config mcp-servers.json "タスクを実行"スクリプトからの高速バッチ処理
bash
#!/bin/bash
# batch-process.sh
export MCP_CONNECTION_NONBLOCKING=true
FILES=($(git diff --name-only HEAD~1))
for file in "${FILES[@]}"; do
echo "分析中: $file"
claude -p "以下のファイルの変更点を要約してください: $file" \
--output-format json >> analysis-results.jsonl
done
echo "バッチ処理完了: ${#FILES[@]}件のファイルを分析"Pythonスクリプトでの自動化
python
import subprocess
import os
def run_claude_analysis(prompt: str, mcp_config: str = None) -> str:
"""MCP非ブロッキングモードでClaudeを実行"""
env = os.environ.copy()
env["MCP_CONNECTION_NONBLOCKING"] = "true"
cmd = ["claude", "-p", prompt]
if mcp_config:
cmd.extend(["--mcp-config", mcp_config])
result = subprocess.run(
cmd,
env=env,
capture_output=True,
text=True
)
return result.stdout注意点
MCP_CONNECTION_NONBLOCKING=trueは-p(ヘッドレス)モード専用です。インタラクティブセッションでは効果がありません- 非ブロッキングモードでは、MCPサーバーが完全に起動する前にClaudeが処理を開始するため、MCP依存のツールが最初のリクエストで利用できない場合があります
--mcp-configの5秒タイムアウトは接続確立のみに適用されます。接続確立後の個々のリクエストには適用されません- 応答の遅いMCPサーバーでタイムアウトが頻発する場合は、そのサーバーのパフォーマンスを見直すことを推奨します