mcpField
P
Proxy Doctor

Proxy Doctor

ローカル
github.com/Jiansen開発ツール135 週間前に更新

Proxy Doctor について

Proxy Doctorは、AIコーディングツールに影響するプロキシ設定を診断します。macOSを全面的にサポートし、Linuxにも一部対応しています。開発者やAIエージェントは原因と修正案を確認でき、既定ではシステム設定を変更しません。

主な機能

  1. 015層のプロキシ検査
  2. 02停止ポートと残存設定の検出
  3. 03エディター設定とログの確認
  4. 04バックグラウンド監視
  5. 05選択式の修正適用

活用シーン

  1. 01ブラウザーは動くのにAIエディターが使えない原因の調査
  2. 02Cursor、VS Code、Windsurfのプロキシ状態確認
  3. 03適用前の修正案の確認

MCP 対応

プロキシ設定の診断、修正案の一覧表示、対応エディターの確認を行うツールを備えたMCPサーバーを提供します。修正は自動適用されません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"proxy-doctor": {
"command": "uvx",
"args": [
"proxy-doctor"
]
}
}
}
起動コマンドuvx proxy-doctor

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiproxy-doctor0.2.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

proxy-doctor ロゴ

proxy-doctor

PyPI ライセンス プラットフォーム Python GitHub スター

AI コーディングツールを動作不能にするプロキシ設定の誤りを診断します。

ブラウザーは正常に動作するのに、Cursor / VS Code / Windsurf の AI 機能が動作しない場合、proxy-doctor が原因と解決方法を正確に知らせます。

問題

AI コーディングツール(Cursor、Copilot を搭載した VS Code、Windsurf)は、次のような場合に問題が発生する、長時間維持されるストリーミング接続(SSE/HTTP2)に依存しています。

  • システムプロキシの接続先が、何も待ち受けていない localhost ポートになっている
  • VPN /プロキシアプリを終了した後も、その設定が macOS のシステム環境設定に残っている
  • エディターが launchctl の古いプロキシ環境変数を引き継いでいる
  • プロキシは動作しているものの、ストリーミング応答をバッファリングするため、AI による補完が中断される

その結果、**「ブラウザーは動作するのに、AI エディターは動作しない」**という、開発者によくある非常に厄介な状況になります。

チェック項目

proxy-doctor は macOS のプロキシ設定を 5 つのレイヤーで調べます。

レイヤー内容方法
1. システムプロキシすべてのネットワークサービスの Web / HTTPS / SOCKS プロキシnetworksetup
2. 残存値無効化されているが、古い localhost アドレスが残っているプロキシ無効なのに値が設定されている項目を解析
3. ポートの状態参照先のプロキシポートが実際に待ち受けているかsocket.connect()
4. エディター設定settings.json、argv.json、最近のエラーログファイルの読み取り+パターン照合
5. GUI 環境GUI アプリのコンテキストにおける http_proxy/https_proxylaunchctl getenv

クイックスタート

CLI
# Install
pip install proxy-doctor

# Run diagnosis (JSON output — default, optimized for AI agents)
proxy-doctor check

# Run diagnosis (human-readable output)
proxy-doctor check --human

# Show recommended fixes
proxy-doctor fix

# Check a different editor
proxy-doctor check --editor vscode
MCP ツールとして使う(AI エージェント向け)

proxy-doctor は、AI エージェントから直接呼び出せる MCP サーバーとして提供されています。

# Install with MCP support
pip install proxy-doctor[mcp]

# Run MCP server
python -m proxy_doctor.mcp_server

MCP の設定に追加します(例:Cursor の ~/.cursor/mcp.json)。

{
  "mcpServers": {
    "proxy-doctor": {
      "command": "python3",
      "args": ["-m", "proxy_doctor.mcp_server"]
    }
  }
}

注: "command" には、proxy-doctor[mcp] がインストールされている Python のパスを指定する必要があります。python3 が動作しない場合は、絶対パスを使用してください(which python3 または python3 -c "import sys; print(sys.executable)" を実行すると確認できます)。

これで、AI エージェントから次のツールを呼び出せます。

  • diagnose_proxy(editor="cursor") — 証拠を含む 5 レイヤーの完全な診断
  • list_fixes(editor="cursor") — 実行可能なコマンドを含む推奨修正方法
  • supported_editors() — 利用可能なエディターの一覧
AI エージェント向け:クイックインストール

ワンライナー(AI エージェントに貼り付けてください):

proxy-doctor をインストール(pip install proxy-doctor[mcp])し、コマンド python -m proxy_doctor.mcp_server を指定して MCP 設定に追加してください。その後、diagnose_proxy ツールを使ってプロキシの状態を確認してください。

ユーザーのために proxy-doctor を設定する AI エージェントの場合:

# 1. Install
pip install proxy-doctor[mcp]

# 2. Find the Python path
python3 -c "import sys; print(sys.executable)"

# 3. Add to ~/.cursor/mcp.json (use the path from step 2)
# {
#   "mcpServers": {
#     "proxy-doctor": {
#       "command": "<python-path-from-step-2>",
#       "args": ["-m", "proxy_doctor.mcp_server"]
#     }
#   }
# }

# 4. If MCP is not available, use CLI directly (zero dependencies):
proxy-doctor check          # JSON output
proxy-doctor check --human  # human-readable
proxy-doctor fix            # show fixes (read-only)
proxy-doctor fix --apply    # apply fixes (asks for confirmation)
デーモンモード(v0.2+)

proxy-doctor を常駐バックグラウンドサービスとして実行し、状態を自動監視します。

# Start daemon (installs as macOS launchd service)
proxy-doctor daemon start

# Check daemon status
proxy-doctor daemon status

# Stop daemon
proxy-doctor daemon stop

# Check for updates
proxy-doctor update

デーモンは 5 分ごとに実行され、前回のチェック結果と比較し、状態が変化した場合(例:正常 → 異常)に macOS の通知を送信します。

メニューバー(SwiftBar)
# If SwiftBar is installed
cp plugins/swiftbar/proxy-doctor.5m.sh ~/Library/Application\ Support/SwiftBar/Plugins/
chmod +x ~/Library/Application\ Support/SwiftBar/Plugins/proxy-doctor.5m.sh

メニューバーに緑/赤/オレンジのインジケーターを表示し、ワンクリックで診断できます。

出力例

異常(ケース A:プロキシポートが応答しない)
{
  "status": "unhealthy",
  "diagnosis": {
    "case": "A",
    "root_cause": "Editor is configured to use proxy at 127.0.0.1:10903, but no process is listening on that port.",
    "confidence": "high",
    "source": "system proxy (Wi-Fi (http))",
    "browser_explanation": "Browser may use a different proxy path (e.g. browser-only mode) or fall back to a direct connection."
  },
  "fixes": [
    {
      "fix_id": "clear-system-http-wi-fi",
      "description": "Disable http proxy on Wi-Fi",
      "command": "networksetup -setwebproxystate \"Wi-Fi\" off",
      "risk": "low"
    }
  ]
}
正常
proxy-doctor v0.2.0
Editor: cursor | Platform: Darwin

Status: HEALTHY

No proxy contamination detected.

対応エディター

エディター設定の検出ログのスキャン状態
Cursorありあり対応済み
VS Codeありあり対応済み
Windsurfありあり対応済み
Claude Desktop予定—今後対応
Zed予定予定今後対応

仕組み

proxy-doctor は、次の3つの障害パターンを特定します。

ケース A — プロキシポートが応答しない(高い確度): システムまたはエディターが 127.0.0.1:port を参照していますが、何も待ち受けていません。VPN/プロキシアプリを終了しても、その設定が残っている場合に発生します。

ケース B — ストリーミングが機能しない(中程度の確度): プロキシは稼働していますが、AI エディターが依存する SSE/ストリーミング接続をバッファリングしています。ブラウザーのみを対象とするプロキシモードでよく見られます。

ケース C — パスの不一致(中程度の確度): ブラウザーとエディターで異なるプロキシパスが使われています。ブラウザーは専用のプロキシ経路を使って動作していますが、エディターは古い、または互換性のないプロキシ設定を引き継いでいます。

プラットフォームのサポート

  • macOS:完全サポート(システムプロキシ、launchctl、networksetup)
  • Linux:部分サポート(エディター設定と環境変数。networksetup は非対応)
  • Windows:未対応

信頼と権限

proxy-doctor は、デフォルトで読み取り専用の設計を採用しています。明示的に許可しない限り、システムに変更は加えません。

デフォルトの動作(読み取り専用)
アクセス内容理由
読み取りシステムプロキシ設定、エディター設定ファイル、launchctl 環境変数、ローカルポートの状態コアとなる診断機能
書き込み~/.proxy-doctor/ のみ(キャッシュ、ログ、更新状態)デーモンの状態を永続化
ネットワークpypi.org(バージョン確認のみ)自動更新機能
実行しないことプロキシ設定の変更、エディター設定の変更、テレメトリーの送信、認証情報へのアクセス設計上の仕様
オプトインによる修正の適用

proxy-doctor fix は推奨コマンドを表示しますが、実行はしません。

修正を適用するには、proxy-doctor fix --apply を使用します。

  • 各修正について、コマンドとリスクレベルが表示されます
  • 修正ごとに個別に確認を求められます([y/N])
  • デフォルトはNoです。y と入力しない限り、何も実行されません
  • Ctrl+C を押せば、いつでも中止できます

この2段階の仕組みにより、AI エージェントは MCP 経由で list_fixes() を安全に呼び出して必要な修正を確認し、ユーザーの承認を得るためにコマンドを提示できます。

フィードバック

バグを見つけましたか?改善案がありますか?診断が役に立ちませんでしたか?

AI エージェントがプログラムからフィードバックを送る場合(依存関係ゼロ):

# Create a GitHub issue via CLI (requires gh)
proxy-doctor check | gh issue create --repo Jiansen/proxy-doctor \
  --title "Diagnosis report: [describe issue]" --body-file -

# Or simply: copy the JSON output into a new issue at
# https://github.com/Jiansen/proxy-doctor/issues/new

開発

git clone https://github.com/Jiansen/proxy-doctor.git
cd proxy-doctor

# Install in development mode
pip install -e ".[dev,mcp]"

# Run tests
make test

# Run linter
make lint

proxy-doctor がプロキシの問題解決に役立った場合は、GitHub でスターを付けていただけると幸いです。ほかの人がこのツールを見つけやすくなります。

GitHub でスターを付ける

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。