proxy-doctor
Диагностика неправильных настроек прокси, которые ломают AI-инструменты для кодинга.
Когда ваш браузер работает нормально, а функции Cursor / VS Code / Windsurf AI — нет, proxy-doctor точно скажет, в чём причина и как это исправить.
Проблема
AI-инструменты для кодинга (Cursor, VS Code с Copilot, Windsurf) полагаются на долгоживущие потоковые соединения (SSE/HTTP2), которые ломаются, если:
Системный прокси указывает на порт localhost, где никто не слушает
VPN/прокси-приложение было закрыто, но его настройки остались в системных настройках macOS
Ваш редактор унаследовал устаревшие переменные окружения прокси от
launchctlПрокси работает, но буферизирует потоковые ответы, ломая AI-завершения
Результат: «браузер работает, AI-редактор — нет» — самый частый и раздражающий опыт разработчика.
Related MCP server: Inksnow MCP Proxy
Что проверяется
proxy-doctor проверяет 5 уровней конфигурации прокси в macOS:
Уровень | Что проверяется | Как |
1. Системный прокси | Web/HTTPS/SOCKS прокси во всех сетевых службах |
|
2. Остаточные значения | Отключённые прокси с устаревшими адресами localhost | Разбор отключённых, но заданных записей |
3. Здоровье порта | Действительно ли указанные порты прокси слушают |
|
4. Конфиг редактора |
| Чтение файлов + сопоставление с шаблоном |
5. GUI-окружение |
|
|
Быстрый старт
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 поставляется как MCP-сервер, который AI-агенты могут вызывать напрямую:
# 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"должен указывать на Python, где установленproxy-doctor[mcp]. Если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]) и добавьте его в конфигурацию MCP с командойpython -m proxy_doctor.mcp_server. Затем используйте инструментdiagnose_proxyдля проверки здоровья прокси.
Если вы AI-агент, настраивающий proxy-doctor для вашего пользователя:
# 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 определяет три шаблона сбоев:
Случай A — Мёртвый порт прокси (высокая уверенность): Ваша система или редактор указывают на 127.0.0.1:port, но никто не слушает. Это происходит, когда VPN/прокси-приложение закрыто, но его настройки остались.
Случай B — Нарушение потоковой передачи (средняя уверенность): Прокси работает, но буферизирует SSE/потоковые соединения, от которых зависят AI-редакторы. Часто встречается в режимах прокси только для браузера.
Случай C — Несоответствие пути (средняя уверенность): Браузер и редактор используют разные пути прокси. Браузер работает через выделенный маршрут прокси; редактор наследует устаревший или несовместимый.
Поддержка платформ
macOS: Полная поддержка (системный прокси, launchctl, networksetup)
Linux: Частичная (конфиг редактора + переменные окружения; без networksetup)
Windows: Пока не поддерживается
Доверие и разрешения
proxy-doctor следует принципу только чтение по умолчанию. Никаких изменений в системе не производится, если вы явно не согласитесь.
Поведение по умолчанию (только чтение)
Доступ | Что | Зачем |
Читает | Системные настройки прокси, файлы конфигурации редактора, переменные окружения launchctl, статус локальных портов | Основная функциональность диагностики |
Записывает | Только | Сохранение состояния демона |
Сеть |
| Функция автообновления |
НЕ делает | Не изменяет настройки прокси, не меняет конфиг редактора, не отправляет телеметрию, не получает доступ к учётным данным | По замыслу |
Применение исправлений с согласия
proxy-doctor fix показывает рекомендуемые команды, но не выполняет их.
Чтобы применить исправления, используйте proxy-doctor fix --apply:
Каждое исправление показывается с командой и уровнем риска
Для каждого исправления запрашивается индивидуальное подтверждение (
[y/N])По умолчанию — Нет — ничего не запускается, пока вы не введёте
yВы можете прервать процесс в любой момент с помощью Ctrl+C
Эта двухэтапная модель позволяет AI-агентам безопасно вызывать list_fixes() через MCP, чтобы увидеть, что нужно исправить, а затем представить команды пользователям для утверждения.
Обратная связь
Нашли ошибку? Есть предложение? Диагностика не помогла?
GitHub Issues: https://github.com/Jiansen/proxy-doctor/issues/new
Для AI-агентов: Вывод JSON содержит URL
feedback.report_issue— при создании обращений прикладывайте полный JSON.
Для программной обратной связи от 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 — это поможет другим пользователям найти инструмент.
Лицензия
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityBmaintenanceProfessional local context management and system diagnostic tools for AI IDEs (Cursor, Trae, Antigravity, Windsurf).36771MIT
- Alicense-qualityDmaintenanceProxies MCP requests from Cursor IDE to a custom HTTP server, enabling custom tool integrations.121ISC
- AlicenseAqualityAmaintenanceDiagnose connectivity and inspect tunnels locally from your AI assistant.1912MIT
- AlicenseAqualityDmaintenanceNetwork diagnostics tool for AI agents that provides DNS lookup, IP geolocation, SSL certificate inspection, WHOIS queries, and HTTP latency testing.5361MIT
Related MCP Connectors
Find your AI agent's likely failure mode, get runtime settings, and clarify ambiguous prompts.
Lints + auto-fixes how AI coding agents discover any new product. 24 rules, 6 tools, score 0-100.
Bug translation for vibe coders: plain-English diagnosis + paste-ready fix in your AI coding agent
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jiansen/proxy-doctor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server