Comprehensive proxy diagnostics tool for testing, comparing, and using HTTP/HTTPS/SOCKS4/SOCKS5 proxies
ProxyDoctor exposes 5 tools with basic HTTP endpoints. Tool names follow verb_noun convention (get_*, start_*, stop_*), which is good. However, parameter descriptions are minimal or absent. The diagnose tool has reasonable parameter documentation (url, proxy, proxy_type with enum), but get_checks, get_local_proxy_status, start_local_proxy, and stop_local_proxy lack parameter descriptions entirely. Output schemas are not documented in the source, responses are inferred from JSON encoding but not formally specified. Error handling is present (writeJSONError) but generic ('diagnosis failed: ...'). No tool annotations (readOnlyHint, destructiveHint) are visible. The server is functional but falls short of production-grade tool definition quality.
Run a comprehensive diagnosis on a URL through a proxy or direct connection
List all available checks with their IDs, names, descriptions, categories, and dependencies
Get the status of the local forward proxy
Start a local forward proxy that forwards connections to an upstream proxy
Stop the running local forward proxy
Output schemas not documented. Tools return JSON but no formal schema is visible in source code. LLMs cannot plan downstream calls or extract fields reliably.
Parameter descriptions missing or minimal for 4 of 5 tools. get_checks, get_local_proxy_status, start_local_proxy, stop_local_proxy have empty input schemas with no field documentation.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). start_local_proxy and stop_local_proxy are state-modifying but lack destructiveHint annotation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Error messages are generic ('diagnosis failed: ...', 'invalid JSON body: ...'). No recovery guidance or error classification (retryable vs user-fixable vs fatal).
No pagination support. get_checks returns all checks without limit or offset. Large result sets could exhaust context windows.