Coverage report

|  |  | Statements |  | Branches |  | Total
--- | --- | --- | --- | --- | --- | --- | ---
File | function |  | coverage | statements | missing | excluded |  | coverage | branches | partial |  | coverage
src / npm_mcp / __init__.py | (no function) |  | 100% | 4 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.__init__ |  | 100% | 4 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient._validate_config |  | 50% | 6 | 3 | 0 |  | 50% | 6 | 3 |  | 50%
src / npm_mcp / client.py | NPMClient._get_token |  | 47% | 19 | 10 | 0 |  | 50% | 4 | 0 |  | 48%
src / npm_mcp / client.py | NPMClient._request |  | 62% | 16 | 6 | 0 |  | 100% | 2 | 0 |  | 67%
src / npm_mcp / client.py | NPMClient.list_proxy_hosts |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.get_proxy_host |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.create_proxy_host |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.update_proxy_host |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.delete_proxy_host |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.enable_proxy_host |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.disable_proxy_host |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.list_certificates |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.request_certificate |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.get_certificate |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.delete_certificate |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.renew_certificate |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.list_dns_providers |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.test_http_challenge |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.list_access_lists |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.create_access_list |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.update_access_list |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.get_access_list |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.delete_access_list |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.list_redirection_hosts |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.get_redirection_host |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.create_redirection_host |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.update_redirection_host |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.delete_redirection_host |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.enable_redirection_host |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.disable_redirection_host |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.list_streams |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.get_stream |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.create_stream |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.update_stream |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.delete_stream |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.enable_stream |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.disable_stream |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.list_dead_hosts |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.get_dead_host |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.create_dead_host |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.update_dead_host |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.delete_dead_host |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.enable_dead_host |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.disable_dead_host |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.list_users |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.get_user |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.create_user |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.update_user |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.delete_user |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.list_settings |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.get_setting |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.update_setting |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.list_audit_log |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.get_host_report |  | 100% | 2 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | NPMClient.close |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / client.py | create_client_from_env |  | 0% | 2 | 2 | 0 |  | 100% | 0 | 0 |  | 0%
src / npm_mcp / client.py | (no function) |  | 100% | 69 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / models.py | (no function) |  | 100% | 104 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / server.py | _id_schema |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / server.py | _empty_schema |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / server.py | list_tools |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / server.py | _json_response |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / server.py | _model_response |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / server.py | _list_response |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / server.py | _msg_response |  | 100% | 1 | 0 | 0 |  | 100% | 0 | 0 |  | 100%
src / npm_mcp / server.py | call_tool |  | 99% | 149 | 1 | 0 |  | 99% | 102 | 1 |  | 99%
src / npm_mcp / server.py | async_main |  | 0% | 2 | 2 | 0 |  | 100% | 0 | 0 |  | 0%
src / npm_mcp / server.py | main |  | 0% | 1 | 1 | 0 |  | 100% | 0 | 0 |  | 0%
src / npm_mcp / server.py | (no function) |  | 100% | 22 | 0 | 2 |  | 100% | 0 | 0 |  | 100%
Total |  |  | 95% | 491 | 25 | 2 |  | 95% | 114 | 4 |  | 95%

No items found using the specified filter.