Coverage report: 99%

Files Functions Classes

coverage.py v7.13.4, created at 2026-03-09 03:05 +0000

File function   statements missing excluded   coverage
mcpgateway / __init__.py (no function)   8 0 0   100%
mcpgateway / admin.py _normalize_ui_hide_values   18 0 0   100%
mcpgateway / admin.py get_ui_visibility_config   21 0 0   100%
mcpgateway / admin.py set_logging_service   2 0 0   100%
mcpgateway / admin.py load_sri_hashes   8 0 0   100%
mcpgateway / admin.py _normalize_team_id   6 0 0   100%
mcpgateway / admin.py _validated_team_id_param   4 0 0   100%
mcpgateway / admin.py _build_admin_redirect   13 0 0   100%
mcpgateway / admin.py get_client_ip   7 0 0   100%
mcpgateway / admin.py get_user_agent   1 0 0   100%
mcpgateway / admin.py rate_limit   2 0 0   100%
mcpgateway / admin.py rate_limit.decorator   5 0 0   100%
mcpgateway / admin.py rate_limit.decorator.wrapper   12 0 0   100%
mcpgateway / admin.py get_user_email   7 0 0   100%
mcpgateway / admin.py _get_user_team_roles   1 0 0   100%
mcpgateway / admin.py _adjust_pagination_for_conversion_failures   5 0 0   100%
mcpgateway / admin.py _get_span_entity_performance   23 0 0   100%
mcpgateway / admin.py _get_span_entity_performance.percentile   6 0 0   100%
mcpgateway / admin.py get_user_id   3 0 0   100%
mcpgateway / admin.py serialize_datetime   3 0 0   100%
mcpgateway / admin.py validate_password_strength   19 0 0   100%
mcpgateway / admin.py _resolve_root_path   7 0 0   100%
mcpgateway / admin.py _admin_cookie_path   2 0 0   100%
mcpgateway / admin.py _normalize_origin_parts   7 0 0   100%
mcpgateway / admin.py _request_origin_matches   36 0 0   100%
mcpgateway / admin.py _set_admin_csrf_cookie   6 0 0   100%
mcpgateway / admin.py _clear_admin_csrf_cookie   2 0 0   100%
mcpgateway / admin.py enforce_admin_csrf   23 0 0   100%
mcpgateway / admin.py _escape_like   1 0 0   100%
mcpgateway / admin.py _like_contains   1 0 0   100%
mcpgateway / admin.py _get_user_team_ids   19 0 0   100%
mcpgateway / admin.py _check_public_visibility_allowed   2 0 0   100%
mcpgateway / admin.py _is_explicit_token_team_scope   3 1 0   67%
mcpgateway / admin.py _owner_access_condition   5 0 0   100%
mcpgateway / admin.py _has_permission   2 0 0   100%
mcpgateway / admin.py _normalize_search_query   10 0 0   100%
mcpgateway / admin.py _normalize_tags_query   10 0 0   100%
mcpgateway / admin.py _normalize_int_query   9 0 0   100%
mcpgateway / admin.py _parse_tag_filter_groups   10 0 0   100%
mcpgateway / admin.py _apply_tag_filter_groups   8 0 0   100%
mcpgateway / admin.py _build_search_response   2 0 0   100%
mcpgateway / admin.py get_overview_partial   57 0 0   100%
mcpgateway / admin.py get_global_passthrough_headers   2 0 0   100%
mcpgateway / admin.py update_global_passthrough_headers   18 0 0   100%
mcpgateway / admin.py invalidate_passthrough_headers_cache   3 0 0   100%
mcpgateway / admin.py get_passthrough_headers_cache_stats   1 0 0   100%
mcpgateway / admin.py invalidate_a2a_stats_cache   3 0 0   100%
mcpgateway / admin.py get_a2a_stats_cache_stats   1 0 0   100%
mcpgateway / admin.py get_mcp_session_pool_metrics   8 0 0   100%
mcpgateway / admin.py get_configuration_settings   3 0 0   100%
mcpgateway / admin.py get_configuration_settings.mask_sensitive   7 0 0   100%
mcpgateway / admin.py admin_list_servers   5 0 0   100%
mcpgateway / admin.py admin_servers_partial_html   60 0 0   100%
mcpgateway / admin.py admin_get_server   9 0 0   100%
mcpgateway / admin.py admin_add_server   74 0 0   100%
mcpgateway / admin.py admin_edit_server   77 0 0   100%
mcpgateway / admin.py admin_set_server_state   21 0 0   100%
mcpgateway / admin.py admin_delete_server   18 0 0   100%
mcpgateway / admin.py admin_list_resources   4 0 0   100%
mcpgateway / admin.py admin_list_prompts   4 0 0   100%
mcpgateway / admin.py admin_list_gateways   4 0 0   100%
mcpgateway / admin.py admin_set_gateway_state   18 0 0   100%
mcpgateway / admin.py admin_ui   165 1 0   99%
mcpgateway / admin.py admin_ui._call_list_with_team_support   7 0 0   100%
mcpgateway / admin.py admin_ui._matches_selected_team   25 0 2   100%
mcpgateway / admin.py admin_ui._to_dict_and_filter   17 0 0   100%
mcpgateway / admin.py admin_login_page   11 0 0   100%
mcpgateway / admin.py admin_login_handler   88 0 0   100%
mcpgateway / admin.py admin_forgot_password_page   6 0 0   100%
mcpgateway / admin.py admin_forgot_password_handler   19 0 0   100%
mcpgateway / admin.py admin_reset_password_page   16 0 0   100%
mcpgateway / admin.py admin_reset_password_handler   28 0 0   100%
mcpgateway / admin.py _admin_logout   19 0 0   100%
mcpgateway / admin.py _admin_logout._extract_auth_provider_from_jwt_cookie   22 0 0   100%
mcpgateway / admin.py _admin_logout._build_absolute_login_url   10 0 0   100%
mcpgateway / admin.py _admin_logout._build_keycloak_logout_url   29 2 0   93%
mcpgateway / admin.py admin_logout_get   1 0 0   100%
mcpgateway / admin.py admin_logout_post   1 0 0   100%
mcpgateway / admin.py change_password_required_page   7 0 0   100%
mcpgateway / admin.py change_password_required_handler   76 0 0   100%
mcpgateway / admin.py _generate_unified_teams_view   63 0 0   100%
mcpgateway / admin.py admin_get_all_team_ids   21 0 0   100%
mcpgateway / admin.py admin_search_teams   25 0 0   100%
mcpgateway / admin.py admin_teams_partial_html   97 0 0   100%
mcpgateway / admin.py admin_list_teams   35 0 0   100%
mcpgateway / admin.py admin_create_team   45 0 0   100%
mcpgateway / admin.py admin_view_team_members   26 0 0   100%
mcpgateway / admin.py admin_add_team_members_view   22 0 0   100%
mcpgateway / admin.py admin_get_team_edit   17 0 0   100%
mcpgateway / admin.py admin_update_team   73 0 0   100%
mcpgateway / admin.py admin_delete_team   21 0 0   100%
mcpgateway / admin.py admin_add_team_members   118 0 0   100%
mcpgateway / admin.py admin_update_team_member_role   28 0 0   100%
mcpgateway / admin.py admin_remove_team_member   29 0 0   100%
mcpgateway / admin.py admin_leave_team   27 0 0   100%
mcpgateway / admin.py admin_create_join_request   27 0 0   100%
mcpgateway / admin.py admin_cancel_join_request   14 0 0   100%
mcpgateway / admin.py admin_list_join_requests   25 0 0   100%
mcpgateway / admin.py admin_approve_join_request   17 0 0   100%
mcpgateway / admin.py admin_reject_join_request   17 0 0   100%
mcpgateway / admin.py _render_user_card_html   37 0 0   100%
mcpgateway / admin.py admin_list_users   13 0 0   100%
mcpgateway / admin.py admin_users_partial_html   45 0 0   100%
mcpgateway / admin.py admin_team_members_partial_html   30 0 0   100%
mcpgateway / admin.py admin_team_non_members_partial_html   30 0 0   100%
mcpgateway / admin.py admin_search_users   12 0 0   100%
mcpgateway / admin.py admin_create_user   19 0 0   100%
mcpgateway / admin.py admin_get_user_edit   30 0 0   100%
mcpgateway / admin.py admin_update_user   36 0 0   100%
mcpgateway / admin.py admin_activate_user   13 0 0   100%
mcpgateway / admin.py admin_deactivate_user   17 0 0   100%
mcpgateway / admin.py admin_delete_user   15 0 0   100%
mcpgateway / admin.py admin_unlock_user   15 0 0   100%
mcpgateway / admin.py admin_force_password_change   18 0 0   100%
mcpgateway / admin.py admin_list_tools   7 0 0   100%
mcpgateway / admin.py admin_tools_partial_html   76 0 0   100%
mcpgateway / admin.py admin_tool_ops_partial   40 0 0   100%
mcpgateway / admin.py admin_get_all_tool_ids   33 0 0   100%
mcpgateway / admin.py admin_search_tools   51 0 0   100%
mcpgateway / admin.py admin_prompts_partial_html   84 0 0   100%
mcpgateway / admin.py admin_gateways_partial_html   63 0 0   100%
mcpgateway / admin.py admin_get_all_gateways_ids   22 0 0   100%
mcpgateway / admin.py admin_search_gateways   38 0 0   100%
mcpgateway / admin.py admin_get_all_server_ids   20 0 0   100%
mcpgateway / admin.py admin_search_servers   36 0 0   100%
mcpgateway / admin.py admin_resources_partial_html   85 0 0   100%
mcpgateway / admin.py admin_get_all_prompt_ids   33 0 0   100%
mcpgateway / admin.py admin_get_all_resource_ids   33 0 0   100%
mcpgateway / admin.py admin_search_resources   51 0 0   100%
mcpgateway / admin.py admin_search_prompts   51 0 0   100%
mcpgateway / admin.py admin_tokens_partial_html   46 0 0   100%
mcpgateway / admin.py admin_search_tokens   24 0 0   100%
mcpgateway / admin.py admin_a2a_partial_html   69 0 0   100%
mcpgateway / admin.py admin_get_all_agent_ids   20 0 0   100%
mcpgateway / admin.py admin_search_a2a_agents   36 0 0   100%
mcpgateway / admin.py admin_unified_search   72 0 0   100%
mcpgateway / admin.py admin_unified_search._safe_entity_search   6 0 0   100%
mcpgateway / admin.py admin_get_tool   12 0 0   100%
mcpgateway / admin.py _build_auth_obj_from_form   34 0 0   100%
mcpgateway / admin.py admin_add_tool   47 0 0   100%
mcpgateway / admin.py admin_edit_tool   48 0 0   100%
mcpgateway / admin.py admin_delete_tool   18 0 0   100%
mcpgateway / admin.py admin_set_tool_state   21 0 0   100%
mcpgateway / admin.py admin_get_gateway   9 0 0   100%
mcpgateway / admin.py admin_add_gateway   133 0 0   100%
mcpgateway / admin.py admin_edit_gateway   99 4 0   96%
mcpgateway / admin.py admin_delete_gateway   17 0 0   100%
mcpgateway / admin.py admin_test_resource   11 0 0   100%
mcpgateway / admin.py admin_get_resource   9 0 0   100%
mcpgateway / admin.py admin_add_resource   41 0 0   100%
mcpgateway / admin.py admin_edit_resource   29 0 0   100%
mcpgateway / admin.py admin_delete_resource   18 0 0   100%
mcpgateway / admin.py admin_set_resource_state   18 0 0   100%
mcpgateway / admin.py admin_get_prompt   10 0 0   100%
mcpgateway / admin.py admin_add_prompt   33 0 0   100%
mcpgateway / admin.py admin_edit_prompt   35 0 0   100%
mcpgateway / admin.py admin_delete_prompt   18 0 0   100%
mcpgateway / admin.py admin_set_prompt_state   18 0 0   100%
mcpgateway / admin.py admin_export_root   16 0 0   100%
mcpgateway / admin.py admin_get_root   9 0 0   100%
mcpgateway / admin.py admin_add_root   26 0 0   100%
mcpgateway / admin.py admin_update_root   18 0 0   100%
mcpgateway / admin.py admin_delete_root   8 0 0   100%
mcpgateway / admin.py get_aggregated_metrics   2 0 0   100%
mcpgateway / admin.py admin_metrics_partial_html   20 0 0   100%
mcpgateway / admin.py admin_reset_metrics   6 0 0   100%
mcpgateway / admin.py admin_test_gateway   74 2 0   97%
mcpgateway / admin.py admin_events   5 0 0   100%
mcpgateway / admin.py admin_events.stream_to_queue   5 0 0   100%
mcpgateway / admin.py admin_events.event_generator   26 0 0   100%
mcpgateway / admin.py admin_list_tags   22 0 0   100%
mcpgateway / admin.py _read_request_json   7 0 0   100%
mcpgateway / admin.py admin_import_tools   78 0 0   100%
mcpgateway / admin.py admin_get_logs   25 0 0   100%
mcpgateway / admin.py admin_stream_logs   11 0 0   100%
mcpgateway / admin.py admin_stream_logs.generate   21 0 0   100%
mcpgateway / admin.py admin_get_log_file   47 0 0   100%
mcpgateway / admin.py admin_export_logs   39 0 0   100%
mcpgateway / admin.py admin_export_configuration   24 0 0   100%
mcpgateway / admin.py admin_export_selective   18 0 0   100%
mcpgateway / admin.py admin_import_preview   21 3 0   86%
mcpgateway / admin.py admin_import_configuration   26 3 0   88%
mcpgateway / admin.py admin_get_import_status   5 0 0   100%
mcpgateway / admin.py admin_list_import_statuses   3 0 0   100%
mcpgateway / admin.py admin_get_agent   9 0 0   100%
mcpgateway / admin.py admin_list_a2a_agents   7 0 0   100%
mcpgateway / admin.py admin_add_a2a_agent   107 0 0   100%
mcpgateway / admin.py admin_edit_a2a_agent   102 0 0   100%
mcpgateway / admin.py admin_set_a2a_agent_state   26 0 0   100%
mcpgateway / admin.py admin_delete_a2a_agent   25 0 0   100%
mcpgateway / admin.py admin_test_a2a_agent   19 0 0   100%
mcpgateway / admin.py admin_list_grpc_services   5 0 0   100%
mcpgateway / admin.py admin_create_grpc_service   13 0 0   100%
mcpgateway / admin.py admin_get_grpc_service   7 0 0   100%
mcpgateway / admin.py admin_update_grpc_service   15 0 0   100%
mcpgateway / admin.py admin_set_grpc_service_state   10 0 0   100%
mcpgateway / admin.py admin_delete_grpc_service   7 0 0   100%
mcpgateway / admin.py admin_reflect_grpc_service   10 0 0   100%
mcpgateway / admin.py admin_get_grpc_methods   7 0 0   100%
mcpgateway / admin.py get_resources_section   18 0 0   100%
mcpgateway / admin.py get_prompts_section   18 0 0   100%
mcpgateway / admin.py get_servers_section   18 0 0   100%
mcpgateway / admin.py get_gateways_section   19 0 0   100%
mcpgateway / admin.py get_plugins_partial   14 0 0   100%
mcpgateway / admin.py list_plugins   18 0 0   100%
mcpgateway / admin.py get_plugin_stats   14 0 0   100%
mcpgateway / admin.py get_plugin_details   21 0 0   100%
mcpgateway / admin.py list_catalog_servers   4 0 0   100%
mcpgateway / admin.py register_catalog_server   21 0 0   100%
mcpgateway / admin.py check_catalog_server_status   3 0 0   100%
mcpgateway / admin.py bulk_register_catalog_servers   3 0 0   100%
mcpgateway / admin.py catalog_partial   23 0 0   100%
mcpgateway / admin.py get_system_stats   12 0 0   100%
mcpgateway / admin.py admin_generate_support_bundle   14 0 0   100%
mcpgateway / admin.py get_maintenance_partial   3 0 0   100%
mcpgateway / admin.py get_observability_partial   2 0 0   100%
mcpgateway / admin.py get_observability_metrics_partial   2 0 0   100%
mcpgateway / admin.py get_observability_stats   9 0 0   100%
mcpgateway / admin.py get_observability_traces   30 0 0   100%
mcpgateway / admin.py get_observability_trace_detail   10 0 0   100%
mcpgateway / admin.py save_observability_query   15 0 0   100%
mcpgateway / admin.py list_observability_queries   8 0 0   100%
mcpgateway / admin.py get_observability_query   10 0 0   100%
mcpgateway / admin.py update_observability_query   26 0 0   100%
mcpgateway / admin.py delete_observability_query   11 0 0   100%
mcpgateway / admin.py track_query_usage   20 0 0   100%
mcpgateway / admin.py get_latency_percentiles   13 0 0   100%
mcpgateway / admin.py _get_latency_percentiles_postgresql   17 0 0   100%
mcpgateway / admin.py _get_latency_percentiles_python   28 0 0   100%
mcpgateway / admin.py _get_latency_percentiles_python.percentile_cont   6 0 0   100%
mcpgateway / admin.py get_timeseries_metrics   13 0 0   100%
mcpgateway / admin.py _get_timeseries_metrics_postgresql   20 0 0   100%
mcpgateway / admin.py _get_timeseries_metrics_python   31 0 0   100%
mcpgateway / admin.py _get_latency_heatmap_postgresql   30 0 0   100%
mcpgateway / admin.py _get_latency_heatmap_python   29 0 0   100%
mcpgateway / admin.py get_top_slow_endpoints   14 0 0   100%
mcpgateway / admin.py get_top_volume_endpoints   14 0 0   100%
mcpgateway / admin.py get_top_error_endpoints   15 0 0   100%
mcpgateway / admin.py get_latency_heatmap   13 0 0   100%
mcpgateway / admin.py get_tool_usage   16 0 0   100%
mcpgateway / admin.py get_tool_performance   12 0 0   100%
mcpgateway / admin.py get_tool_errors   15 0 0   100%
mcpgateway / admin.py get_tool_chains   26 0 0   100%
mcpgateway / admin.py get_tools_partial   2 0 0   100%
mcpgateway / admin.py get_prompt_usage   16 0 0   100%
mcpgateway / admin.py get_prompt_performance   12 0 0   100%
mcpgateway / admin.py get_prompts_errors   19 0 0   100%
mcpgateway / admin.py get_prompts_partial   2 0 0   100%
mcpgateway / admin.py get_resource_usage   16 0 0   100%
mcpgateway / admin.py get_resource_performance   12 0 0   100%
mcpgateway / admin.py get_resources_errors   19 0 0   100%
mcpgateway / admin.py get_resources_partial   2 0 0   100%
mcpgateway / admin.py get_performance_stats   22 0 0   100%
mcpgateway / admin.py get_performance_system   5 0 0   100%
mcpgateway / admin.py get_performance_workers   5 0 0   100%
mcpgateway / admin.py get_performance_requests   5 0 0   100%
mcpgateway / admin.py get_performance_cache   5 0 0   100%
mcpgateway / admin.py get_performance_history   6 0 0   100%
mcpgateway / admin.py (no function)   768 0 0   100%
mcpgateway / auth.py _log_auth_event   8 0 0   100%
mcpgateway / auth.py get_db   14 0 0   100%
mcpgateway / auth.py _get_personal_team_sync   6 0 0   100%
mcpgateway / auth.py _get_user_team_ids_sync   5 0 0   100%
mcpgateway / auth.py get_user_team_roles   6 0 0   100%
mcpgateway / auth.py _resolve_teams_from_db_sync   20 0 0   100%
mcpgateway / auth.py _resolve_teams_from_db   17 0 0   100%
mcpgateway / auth.py normalize_token_teams   20 0 0   100%
mcpgateway / auth.py get_team_from_token   7 0 0   100%
mcpgateway / auth.py _check_token_revoked_sync   5 0 0   100%
mcpgateway / auth.py _lookup_api_token_sync   16 0 0   100%
mcpgateway / auth.py _get_sync_redis_client   21 0 0   100%
mcpgateway / auth.py _update_api_token_last_used_sync   46 0 0   100%
mcpgateway / auth.py _is_api_token_jti_sync   9 0 0   100%
mcpgateway / auth.py _get_user_by_email_sync   7 0 0   100%
mcpgateway / auth.py _resolve_plugin_authenticated_user_sync   9 0 0   100%
mcpgateway / auth.py _get_auth_context_batched_sync   18 0 0   100%
mcpgateway / auth.py _user_from_cached_dict   1 0 0   100%
mcpgateway / auth.py get_current_user   231 1 0   99%
mcpgateway / auth.py get_current_user._set_auth_method_from_payload   30 1 0   97%
mcpgateway / auth.py _inject_userinfo_instate   18 0 0   100%
mcpgateway / auth.py (no function)   42 0 0   100%
mcpgateway / bootstrap_db.py _column_exists   4 0 0   100%
mcpgateway / bootstrap_db.py _schema_looks_current   1 0 0   100%
mcpgateway / bootstrap_db.py advisory_lock   23 0 0   100%
mcpgateway / bootstrap_db.py bootstrap_admin_user   29 0 0   100%
mcpgateway / bootstrap_db.py bootstrap_default_roles   76 0 0   100%
mcpgateway / bootstrap_db.py normalize_team_visibility   15 0 0   100%
mcpgateway / bootstrap_db.py bootstrap_resource_assignments   37 0 0   100%
mcpgateway / bootstrap_db.py main   47 0 0   100%
mcpgateway / bootstrap_db.py (no function)   30 0 2   100%
mcpgateway / cache / __init__.py __getattr__   32 16 0   50%
mcpgateway / cache / __init__.py (no function)   3 0 10   100%
mcpgateway / cache / a2a_stats_cache.py A2AStatsCache.__init__   6 0 0   100%
mcpgateway / cache / a2a_stats_cache.py A2AStatsCache.get_counts   16 0 0   100%
mcpgateway / cache / a2a_stats_cache.py A2AStatsCache.invalidate   4 0 0   100%
mcpgateway / cache / a2a_stats_cache.py A2AStatsCache.stats   2 0 0   100%
mcpgateway / cache / a2a_stats_cache.py (no function)   12 0 0   100%
mcpgateway / cache / admin_stats_cache.py CacheEntry.is_expired   1 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.__init__   30 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache._get_redis_key   3 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache._get_redis_client   14 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.get_system_stats   22 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.set_system_stats   12 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.get_observability_stats   22 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.set_observability_stats   12 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.get_users_list   22 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.set_users_list   12 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.get_teams_list   22 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.set_teams_list   12 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.get_tags   22 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.set_tags   12 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.get_plugin_stats   22 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.set_plugin_stats   12 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.get_performance_history   22 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.set_performance_history   12 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.invalidate_system_stats   2 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.invalidate_observability_stats   2 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.invalidate_users   2 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.invalidate_teams   2 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.invalidate_tags   2 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.invalidate_plugins   2 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.invalidate_performance   2 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache._invalidate_prefix   14 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.invalidate_all   3 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.stats   3 0 0   100%
mcpgateway / cache / admin_stats_cache.py AdminStatsCache.reset_stats   4 0 0   100%
mcpgateway / cache / admin_stats_cache.py get_admin_stats_cache   3 0 0   100%
mcpgateway / cache / admin_stats_cache.py (no function)   43 0 0   100%
mcpgateway / cache / auth_cache.py CacheEntry.is_expired   1 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.__init__   34 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache._get_redis_key   1 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache._get_redis_client   14 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.get_auth_context   44 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.set_auth_context   15 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.invalidate_user   22 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.invalidate_revocation   18 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.invalidate_team   16 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.get_user_role   25 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.set_user_role   13 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.invalidate_user_role   11 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.invalidate_team_roles   14 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.get_user_teams   24 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.set_user_teams   12 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.invalidate_user_teams   12 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.get_team_membership_valid_sync   10 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.set_team_membership_valid_sync   6 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.get_team_membership_valid   26 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.set_team_membership_valid   13 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.invalidate_team_membership   14 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.is_token_revoked   23 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.sync_revoked_tokens   18 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.sync_revoked_tokens._load_revoked_jtis   3 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.invalidate_all   8 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.stats   3 0 0   100%
mcpgateway / cache / auth_cache.py AuthCache.reset_stats   4 0 0   100%
mcpgateway / cache / auth_cache.py get_auth_cache   3 0 0   100%
mcpgateway / cache / auth_cache.py (no function)   48 0 0   100%
mcpgateway / cache / global_config_cache.py GlobalConfigCache.__init__   6 0 0   100%
mcpgateway / cache / global_config_cache.py GlobalConfigCache.get   16 0 0   100%
mcpgateway / cache / global_config_cache.py GlobalConfigCache.get_passthrough_headers   18 0 0   100%
mcpgateway / cache / global_config_cache.py GlobalConfigCache.invalidate   4 0 0   100%
mcpgateway / cache / global_config_cache.py GlobalConfigCache.stats   2 0 0   100%
mcpgateway / cache / global_config_cache.py (no function)   12 0 0   100%
mcpgateway / cache / metrics_cache.py MetricsCache.__init__   6 0 0   100%
mcpgateway / cache / metrics_cache.py MetricsCache.get   8 0 0   100%
mcpgateway / cache / metrics_cache.py MetricsCache.set   3 0 0   100%
mcpgateway / cache / metrics_cache.py MetricsCache.invalidate   8 0 0   100%
mcpgateway / cache / metrics_cache.py MetricsCache.invalidate_prefix   7 0 0   100%
mcpgateway / cache / metrics_cache.py MetricsCache.stats   4 0 0   100%
mcpgateway / cache / metrics_cache.py MetricsCache.reset_stats   2 0 0   100%
mcpgateway / cache / metrics_cache.py _create_metrics_cache   6 0 0   100%
mcpgateway / cache / metrics_cache.py is_cache_enabled   5 0 0   100%
mcpgateway / cache / metrics_cache.py (no function)   18 0 0   100%
mcpgateway / cache / registry_cache.py _get_cleanup_timeout   5 0 0   100%
mcpgateway / cache / registry_cache.py CacheEntry.is_expired   1 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.__init__   31 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache._get_redis_key   3 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.hash_filters   3 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache._get_redis_client   14 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.get   22 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.set   15 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.invalidate   15 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.invalidate_tools   1 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.invalidate_prompts   1 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.invalidate_resources   1 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.invalidate_agents   1 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.invalidate_servers   1 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.invalidate_gateways   1 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.invalidate_catalog   1 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.invalidate_all   3 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.stats   3 0 0   100%
mcpgateway / cache / registry_cache.py RegistryCache.reset_stats   4 0 0   100%
mcpgateway / cache / registry_cache.py get_registry_cache   3 0 0   100%
mcpgateway / cache / registry_cache.py CacheInvalidationSubscriber.__init__   5 0 0   100%
mcpgateway / cache / registry_cache.py CacheInvalidationSubscriber.start   29 0 0   100%
mcpgateway / cache / registry_cache.py CacheInvalidationSubscriber.stop   31 0 0   100%
mcpgateway / cache / registry_cache.py CacheInvalidationSubscriber._listen_loop   25 0 0   100%
mcpgateway / cache / registry_cache.py CacheInvalidationSubscriber._process_invalidation   41 0 0   100%
mcpgateway / cache / registry_cache.py CacheInvalidationSubscriber._evict_keys   4 0 0   100%
mcpgateway / cache / registry_cache.py CacheInvalidationSubscriber._process_auth_invalidation   43 0 0   100%
mcpgateway / cache / registry_cache.py get_cache_invalidation_subscriber   3 0 0   100%
mcpgateway / cache / registry_cache.py (no function)   60 0 0   100%
mcpgateway / cache / resource_cache.py ResourceCache.__init__   6 0 0   100%
mcpgateway / cache / resource_cache.py ResourceCache.initialize   2 0 0   100%
mcpgateway / cache / resource_cache.py ResourceCache.shutdown   8 0 0   100%
mcpgateway / cache / resource_cache.py ResourceCache.get   10 0 0   100%
mcpgateway / cache / resource_cache.py ResourceCache.set   8 0 0   100%
mcpgateway / cache / resource_cache.py ResourceCache.delete   2 0 0   100%
mcpgateway / cache / resource_cache.py ResourceCache.clear   3 0 0   100%
mcpgateway / cache / resource_cache.py ResourceCache._cleanup_loop   4 0 0   100%
mcpgateway / cache / resource_cache.py ResourceCache._cleanup_loop._run_once   4 0 0   100%
mcpgateway / cache / resource_cache.py ResourceCache._cleanup_once   15 0 0   100%
mcpgateway / cache / resource_cache.py ResourceCache._compact_heap   11 0 0   100%
mcpgateway / cache / resource_cache.py ResourceCache.__len__   2 0 0   100%
mcpgateway / cache / resource_cache.py (no function)   26 0 0   100%
mcpgateway / cache / session_registry.py SessionBackend.__init__   20 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.__init__   10 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.register_respond_task   2 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry._cancel_respond_task   50 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry._reap_stuck_tasks   41 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.initialize   17 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.shutdown   49 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.add_session   29 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry._session_owner_key   1 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.set_session_owner   46 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.claim_session_owner   54 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.claim_session_owner._db_claim_owner   40 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.get_session_owner   30 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.get_session_owner._db_get_owner   14 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.session_exists   23 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.session_exists._db_exists   5 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.get_session   35 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.remove_session   43 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.broadcast   32 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.broadcast._build_payload   2 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry._register_session_mapping   28 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.get_all_session_ids   2 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.get_session_sync   3 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.respond   123 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry._refresh_redis_sessions   15 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry._db_cleanup_task   15 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry._db_cleanup_task._db_cleanup   10 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry._refresh_session_db   12 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry._cleanup_database_sessions   23 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry._cleanup_database_sessions.bounded_refresh   2 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry._memory_cleanup_task   20 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry._get_oauth_experimental_config   21 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.handle_initialize_logic   16 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.store_client_capabilities   3 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.get_client_capabilities   2 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.has_elicitation_capability   4 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.get_elicitation_capable_sessions   7 0 0   100%
mcpgateway / cache / session_registry.py SessionRegistry.generate_response   47 0 0   100%
mcpgateway / cache / session_registry.py (no function)   70 0 0   100%
mcpgateway / cache / tool_lookup_cache.py CacheEntry.is_expired   1 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache.__init__   24 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache.enabled   1 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache._redis_key   1 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache._gateway_set_key   1 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache._get_redis_client   14 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache._get_l1   10 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache._set_l1   6 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache.get   19 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache.set   15 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache.set_negative   2 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache.invalidate   14 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache.invalidate_gateway   19 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache.invalidate_all_local   2 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache.stats   3 0 0   100%
mcpgateway / cache / tool_lookup_cache.py ToolLookupCache.reset_stats   4 0 0   100%
mcpgateway / cache / tool_lookup_cache.py (no function)   32 0 0   100%
mcpgateway / cli.py _needs_app   1 0 0   100%
mcpgateway / cli.py _insert_defaults   9 0 0   100%
mcpgateway / cli.py _handle_validate_config   7 0 0   100%
mcpgateway / cli.py _handle_config_schema   7 0 0   100%
mcpgateway / cli.py _handle_support_bundle   14 0 0   100%
mcpgateway / cli.py main   48 0 0   100%
mcpgateway / cli.py (no function)   19 0 2   100%
mcpgateway / cli_export_import.py get_auth_token   7 0 0   100%
mcpgateway / cli_export_import.py make_authenticated_request   19 0 0   100%
mcpgateway / cli_export_import.py export_command   38 0 0   100%
mcpgateway / cli_export_import.py import_command   56 0 0   100%
mcpgateway / cli_export_import.py create_parser   21 0 0   100%
mcpgateway / cli_export_import.py main_with_subcommands   15 0 0   100%
mcpgateway / cli_export_import.py (no function)   22 0 2   100%
mcpgateway / common / __init__.py (no function)   0 0 0   100%
mcpgateway / common / models.py FileUrl.__eq__   3 1 0   67%
mcpgateway / common / models.py (no function)   341 0 0   100%
mcpgateway / common / oauth.py is_sensitive_oauth_key   1 0 0   100%
mcpgateway / common / oauth.py (no function)   3 0 0   100%
mcpgateway / common / validators.py _iter_template_expressions   27 0 0   100%
mcpgateway / common / validators.py _has_simple_template_expression   5 0 0   100%
mcpgateway / common / validators.py _TagStripper.__init__   4 0 0   100%
mcpgateway / common / validators.py _TagStripper.handle_data   1 0 0   100%
mcpgateway / common / validators.py _TagStripper.get_data   1 0 0   100%
mcpgateway / common / validators.py _strip_html_tags   4 0 0   100%
mcpgateway / common / validators.py SecurityValidator.sanitize_display_text   11 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_name   9 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_identifier   9 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_uri   11 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_tool_name   9 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_uuid   8 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_template   27 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_url   44 0 0   100%
mcpgateway / common / validators.py SecurityValidator._validate_ssrf   51 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_no_xss   4 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_json_depth   12 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_mime_type   10 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_shell_parameter   8 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_path   16 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_sql_parameter   8 0 0   100%
mcpgateway / common / validators.py SecurityValidator.validate_parameter_length   4 0 0   100%
mcpgateway / common / validators.py SecurityValidator.sanitize_text   5 0 0   100%
mcpgateway / common / validators.py SecurityValidator.sanitize_json_response   7 0 0   100%
mcpgateway / common / validators.py validate_core_url   1 0 0   100%
mcpgateway / common / validators.py (no function)   85 0 0   100%
mcpgateway / config.py _normalize_env_list_vars   17 0 0   100%
mcpgateway / config.py Settings.normalize_x_frame_options   6 0 0   100%
mcpgateway / config.py Settings.parse_allowed_roots   12 0 0   100%
mcpgateway / config.py Settings.validate_secrets   13 0 0   100%
mcpgateway / config.py Settings.validate_admin_password   17 0 0   100%
mcpgateway / config.py Settings.validate_cors_origins   12 0 0   100%
mcpgateway / config.py Settings.validate_database_url   7 0 0   100%
mcpgateway / config.py Settings.validate_security_combinations   6 0 2   100%
mcpgateway / config.py Settings.get_security_warnings   18 0 2   100%
mcpgateway / config.py Settings.get_security_status   2 0 0   100%
mcpgateway / config.py Settings._parse_allowed_origins   10 0 0   100%
mcpgateway / config.py Settings.validate_log_level   5 0 0   100%
mcpgateway / config.py Settings.parse_issuers   16 0 0   100%
mcpgateway / config.py Settings.must_be_allowed_sep   4 0 0   100%
mcpgateway / config.py Settings.custom_well_known_files   5 0 0   100%
mcpgateway / config.py Settings._auto_enable_security_txt   3 0 0   100%
mcpgateway / config.py Settings._parse_list_from_env   16 0 0   100%
mcpgateway / config.py Settings._validate_ui_hide_sections   14 1 0   93%
mcpgateway / config.py Settings._validate_ui_hide_header_items   13 1 0   92%
mcpgateway / config.py Settings.api_key   1 0 0   100%
mcpgateway / config.py Settings.supports_http   1 0 0   100%
mcpgateway / config.py Settings.supports_websocket   1 0 0   100%
mcpgateway / config.py Settings.supports_sse   1 0 0   100%
mcpgateway / config.py Settings.database_settings   1 0 0   100%
mcpgateway / config.py Settings.cors_settings   1 0 0   100%
mcpgateway / config.py Settings.validate_transport   3 0 0   100%
mcpgateway / config.py Settings.validate_database   5 0 0   100%
mcpgateway / config.py Settings.derive_public_keys   16 0 0   100%
mcpgateway / config.py Settings.__init__   30 0 0   100%
mcpgateway / config.py Settings.log_summary   2 0 0   100%
mcpgateway / config.py get_settings   4 0 0   100%
mcpgateway / config.py generate_settings_schema   1 0 0   100%
mcpgateway / config.py LazySettingsWrapper.plugins   2 0 0   100%
mcpgateway / config.py LazySettingsWrapper.__getattr__   1 0 0   100%
mcpgateway / config.py (no function)   674 0 6   100%
mcpgateway / db.py build_engine   33 0 0   100%
mcpgateway / db.py utc_now   1 0 0   100%
mcpgateway / db.py EncryptedText.python_type   1 0 0   100%
mcpgateway / db.py EncryptedText._get_encryption   9 0 0   100%
mcpgateway / db.py EncryptedText.process_literal_param   2 0 0   100%
mcpgateway / db.py EncryptedText.process_bind_param   13 0 0   100%
mcpgateway / db.py EncryptedText.process_result_value   14 0 0   100%
mcpgateway / db.py set_sqlite_pragma   7 0 0   100%
mcpgateway / db.py ResilientSession._is_connection_error   8 0 0   100%
mcpgateway / db.py ResilientSession._safe_rollback   7 0 0   100%
mcpgateway / db.py ResilientSession.execute   7 0 0   100%
mcpgateway / db.py ResilientSession.scalar   7 0 0   100%
mcpgateway / db.py ResilientSession.scalars   7 0 0   100%
mcpgateway / db.py end_transaction_cleanup   0 0 0   100%
mcpgateway / db.py before_commit_handler   1 0 0   100%
mcpgateway / db.py handle_pool_error   16 0 0   100%
mcpgateway / db.py reset_connection_on_checkin   8 0 0   100%
mcpgateway / db.py reset_connection_on_reset   4 0 0   100%
mcpgateway / db.py _refresh_gateway_slugs_batched   18 0 0   100%
mcpgateway / db.py _refresh_tool_names_batched   24 0 0   100%
mcpgateway / db.py _refresh_prompt_names_batched   24 0 0   100%
mcpgateway / db.py refresh_slugs_on_startup   20 0 0   100%
mcpgateway / db.py Role.get_effective_permissions   4 0 0   100%
mcpgateway / db.py UserRole.is_expired   3 0 0   100%
mcpgateway / db.py Permissions.get_all_permissions   7 0 0   100%
mcpgateway / db.py Permissions.get_permissions_by_resource   11 0 0   100%
mcpgateway / db.py EmailUser.__repr__   0 0 6   100%
mcpgateway / db.py EmailUser.is_email_verified   1 0 0   100%
mcpgateway / db.py EmailUser.is_account_locked   10 0 0   100%
mcpgateway / db.py EmailUser.get_display_name   3 0 0   100%
mcpgateway / db.py EmailUser.reset_failed_attempts   3 0 0   100%
mcpgateway / db.py EmailUser.increment_failed_attempts   5 0 0   100%
mcpgateway / db.py EmailUser.get_teams   1 0 0   100%
mcpgateway / db.py EmailUser.get_personal_team   4 0 0   100%
mcpgateway / db.py EmailUser.is_team_member   1 0 0   100%
mcpgateway / db.py EmailUser.get_team_role   4 0 0   100%
mcpgateway / db.py EmailAuthEvent.__repr__   0 0 6   100%
mcpgateway / db.py EmailAuthEvent.create_login_attempt   1 0 0   100%
mcpgateway / db.py EmailAuthEvent.create_registration_event   1 0 0   100%
mcpgateway / db.py EmailAuthEvent.create_password_change_event   1 0 0   100%
mcpgateway / db.py PasswordResetToken.is_expired   1 0 0   100%
mcpgateway / db.py PasswordResetToken.is_used   1 0 0   100%
mcpgateway / db.py EmailTeam.__repr__   0 0 6   100%
mcpgateway / db.py EmailTeam.get_member_count   6 0 0   100%
mcpgateway / db.py EmailTeam.is_member   6 0 0   100%
mcpgateway / db.py EmailTeam.get_member_role   9 0 0   100%
mcpgateway / db.py EmailTeamMember.__repr__   0 0 6   100%
mcpgateway / db.py EmailTeamMemberHistory.__repr__   0 0 21   100%
mcpgateway / db.py EmailTeamInvitation.__repr__   0 0 6   100%
mcpgateway / db.py EmailTeamInvitation.is_expired   7 0 0   100%
mcpgateway / db.py EmailTeamInvitation.is_valid   1 0 0   100%
mcpgateway / db.py EmailTeamJoinRequest.__repr__   0 0 6   100%
mcpgateway / db.py EmailTeamJoinRequest.is_expired   7 0 0   100%
mcpgateway / db.py EmailTeamJoinRequest.is_pending   1 0 0   100%
mcpgateway / db.py PendingUserApproval.__repr__   0 0 6   100%
mcpgateway / db.py PendingUserApproval.is_expired   7 0 0   100%
mcpgateway / db.py PendingUserApproval.approve   4 0 0   100%
mcpgateway / db.py PendingUserApproval.reject   5 0 0   100%
mcpgateway / db.py Tool.team   1 0 0   100%
mcpgateway / db.py Tool.name   7 0 0   100%
mcpgateway / db.py Tool.name   1 0 0   100%
mcpgateway / db.py Tool.name   1 0 0   100%
mcpgateway / db.py Tool.gateway_slug   1 0 0   100%
mcpgateway / db.py Tool.gateway_slug   1 0 0   100%
mcpgateway / db.py Tool._metrics_loaded   1 0 0   100%
mcpgateway / db.py Tool._get_metric_counts   17 0 0   100%
mcpgateway / db.py Tool.execution_count   1 0 0   100%
mcpgateway / db.py Tool.execution_count   1 0 0   100%
mcpgateway / db.py Tool.successful_executions   1 0 0   100%
mcpgateway / db.py Tool.failed_executions   1 0 0   100%
mcpgateway / db.py Tool.failure_rate   2 0 0   100%
mcpgateway / db.py Tool.min_response_time   4 0 0   100%
mcpgateway / db.py Tool.max_response_time   4 0 0   100%
mcpgateway / db.py Tool.avg_response_time   4 0 0   100%
mcpgateway / db.py Tool.last_execution_time   5 0 0   100%
mcpgateway / db.py Tool.metrics_summary   31 0 0   100%
mcpgateway / db.py Resource.content   6 0 0   100%
mcpgateway / db.py Resource._metrics_loaded   1 0 0   100%
mcpgateway / db.py Resource._get_metric_counts   17 0 0   100%
mcpgateway / db.py Resource.execution_count   1 0 0   100%
mcpgateway / db.py Resource.execution_count   1 0 0   100%
mcpgateway / db.py Resource.successful_executions   1 0 0   100%
mcpgateway / db.py Resource.failed_executions   1 0 0   100%
mcpgateway / db.py Resource.failure_rate   2 0 0   100%
mcpgateway / db.py Resource.min_response_time   4 0 0   100%
mcpgateway / db.py Resource.max_response_time   4 0 0   100%
mcpgateway / db.py Resource.avg_response_time   4 0 0   100%
mcpgateway / db.py Resource.last_execution_time   5 0 0   100%
mcpgateway / db.py Resource.metrics_summary   31 0 0   100%
mcpgateway / db.py Prompt.gateway_slug   1 0 0   100%
mcpgateway / db.py Prompt.gateway_slug   1 0 0   100%
mcpgateway / db.py Prompt.validate_arguments   4 0 0   100%
mcpgateway / db.py Prompt._metrics_loaded   1 0 0   100%
mcpgateway / db.py Prompt._get_metric_counts   17 0 0   100%
mcpgateway / db.py Prompt.execution_count   1 0 0   100%
mcpgateway / db.py Prompt.execution_count   1 0 0   100%
mcpgateway / db.py Prompt.successful_executions   1 0 0   100%
mcpgateway / db.py Prompt.failed_executions   1 0 0   100%
mcpgateway / db.py Prompt.failure_rate   2 0 0   100%
mcpgateway / db.py Prompt.min_response_time   4 0 0   100%
mcpgateway / db.py Prompt.max_response_time   4 0 0   100%
mcpgateway / db.py Prompt.avg_response_time   4 0 0   100%
mcpgateway / db.py Prompt.last_execution_time   5 0 0   100%
mcpgateway / db.py Prompt.metrics_summary   31 0 0   100%
mcpgateway / db.py Server._metrics_loaded   1 0 0   100%
mcpgateway / db.py Server._get_metric_counts   17 0 0   100%
mcpgateway / db.py Server.execution_count   1 0 0   100%
mcpgateway / db.py Server.execution_count   1 0 0   100%
mcpgateway / db.py Server.successful_executions   1 0 0   100%
mcpgateway / db.py Server.failed_executions   1 0 0   100%
mcpgateway / db.py Server.failure_rate   2 0 0   100%
mcpgateway / db.py Server.min_response_time   4 0 0   100%
mcpgateway / db.py Server.max_response_time   4 0 0   100%
mcpgateway / db.py Server.avg_response_time   4 0 0   100%
mcpgateway / db.py Server.last_execution_time   5 0 0   100%
mcpgateway / db.py Server.metrics_summary   31 0 0   100%
mcpgateway / db.py Server.team   1 0 0   100%
mcpgateway / db.py Gateway.team   1 0 0   100%
mcpgateway / db.py update_tool_names_on_gateway_update   8 0 0   100%
mcpgateway / db.py update_prompt_names_on_gateway_update   8 0 0   100%
mcpgateway / db.py A2AAgent._metrics_loaded   1 0 0   100%
mcpgateway / db.py A2AAgent.execution_count   3 0 0   100%
mcpgateway / db.py A2AAgent.successful_executions   3 0 0   100%
mcpgateway / db.py A2AAgent.failed_executions   3 0 0   100%
mcpgateway / db.py A2AAgent.failure_rate   5 0 0   100%
mcpgateway / db.py A2AAgent.avg_response_time   5 0 0   100%
mcpgateway / db.py A2AAgent.last_execution_time   5 0 0   100%
mcpgateway / db.py A2AAgent.__repr__   0 0 11   100%
mcpgateway / db.py GrpcService.__repr__   0 0 6   100%
mcpgateway / db.py EmailApiToken.is_scoped_to_server   1 0 0   100%
mcpgateway / db.py EmailApiToken.has_permission   1 0 0   100%
mcpgateway / db.py EmailApiToken.is_team_token   1 0 0   100%
mcpgateway / db.py EmailApiToken.get_effective_permissions   3 0 0   100%
mcpgateway / db.py EmailApiToken.is_expired   3 0 0   100%
mcpgateway / db.py EmailApiToken.is_valid   1 0 0   100%
mcpgateway / db.py SSOProvider.__repr__   0 0 6   100%
mcpgateway / db.py SSOAuthSession.is_expired   7 0 0   100%
mcpgateway / db.py SSOAuthSession.__repr__   0 0 6   100%
mcpgateway / db.py validate_tool_schema   18 0 0   100%
mcpgateway / db.py validate_tool_name   7 0 0   100%
mcpgateway / db.py validate_prompt_schema   18 0 0   100%
mcpgateway / db.py get_db   14 0 0   100%
mcpgateway / db.py get_for_update   20 0 0   100%
mcpgateway / db.py patch_string_columns_for_mariadb   6 0 0   100%
mcpgateway / db.py extract_json_field   5 0 0   100%
mcpgateway / db.py init_db   5 0 0   100%
mcpgateway / db.py LLMProviderType.get_all_types   1 0 0   100%
mcpgateway / db.py LLMProviderType.get_provider_defaults   1 0 0   100%
mcpgateway / db.py LLMProvider.__repr__   0 0 6   100%
mcpgateway / db.py LLMModel.__repr__   0 0 6   100%
mcpgateway / db.py set_gateway_slug   1 0 0   100%
mcpgateway / db.py set_a2a_agent_slug   1 0 0   100%
mcpgateway / db.py set_grpc_service_slug   1 0 0   100%
mcpgateway / db.py set_llm_provider_slug   1 0 0   100%
mcpgateway / db.py set_email_team_slug   2 0 0   100%
mcpgateway / db.py set_custom_name_and_slug   22 0 0   100%
mcpgateway / db.py set_prompt_name_and_slug   24 0 0   100%
mcpgateway / db.py (no function)   1393 0 19   100%
mcpgateway / handlers / __init__.py (no function)   2 0 0   100%
mcpgateway / handlers / sampling.py SamplingHandler.__init__   1 0 0   100%
mcpgateway / handlers / sampling.py SamplingHandler.initialize   1 0 0   100%
mcpgateway / handlers / sampling.py SamplingHandler.shutdown   1 0 0   100%
mcpgateway / handlers / sampling.py SamplingHandler.create_message   22 1 0   95%
mcpgateway / handlers / sampling.py SamplingHandler._select_model   18 0 0   100%
mcpgateway / handlers / sampling.py SamplingHandler._add_context   1 0 0   100%
mcpgateway / handlers / sampling.py SamplingHandler._validate_message   14 0 0   100%
mcpgateway / handlers / sampling.py SamplingHandler._mock_sample   14 0 0   100%
mcpgateway / handlers / sampling.py (no function)   16 0 0   100%
mcpgateway / instrumentation / __init__.py (no function)   2 0 0   100%
mcpgateway / instrumentation / sqlalchemy.py _write_span_to_db   16 0 0   100%
mcpgateway / instrumentation / sqlalchemy.py _span_writer_worker   12 0 0   100%
mcpgateway / instrumentation / sqlalchemy.py instrument_sqlalchemy   7 0 0   100%
mcpgateway / instrumentation / sqlalchemy.py _before_cursor_execute   2 0 0   100%
mcpgateway / instrumentation / sqlalchemy.py _after_cursor_execute   23 0 0   100%
mcpgateway / instrumentation / sqlalchemy.py _create_query_span   11 0 0   100%
mcpgateway / instrumentation / sqlalchemy.py attach_trace_to_session   4 0 0   100%
mcpgateway / instrumentation / sqlalchemy.py (no function)   20 0 0   100%
mcpgateway / llm_provider_configs.py get_provider_config   1 0 0   100%
mcpgateway / llm_provider_configs.py get_all_provider_configs   1 0 0   100%
mcpgateway / llm_provider_configs.py (no function)   58 0 0   100%
mcpgateway / llm_schemas.py LLMProviderBase._validate_name   1 0 0   100%
mcpgateway / llm_schemas.py LLMProviderBase._validate_description   3 0 0   100%
mcpgateway / llm_schemas.py LLMProviderBase._validate_api_base   3 0 0   100%
mcpgateway / llm_schemas.py LLMProviderBase._validate_config   2 0 0   100%
mcpgateway / llm_schemas.py LLMProviderBase.validate_provider_config   7 0 0   100%
mcpgateway / llm_schemas.py LLMProviderUpdate._validate_name   3 0 0   100%
mcpgateway / llm_schemas.py LLMProviderUpdate._validate_description   3 0 0   100%
mcpgateway / llm_schemas.py LLMProviderUpdate._validate_api_base   3 0 0   100%
mcpgateway / llm_schemas.py LLMProviderUpdate._validate_config   4 0 0   100%
mcpgateway / llm_schemas.py LLMModelBase._validate_model_id   1 0 0   100%
mcpgateway / llm_schemas.py LLMModelBase._validate_model_name   1 0 0   100%
mcpgateway / llm_schemas.py LLMModelBase._validate_model_alias   3 0 0   100%
mcpgateway / llm_schemas.py LLMModelBase._validate_description   3 0 0   100%
mcpgateway / llm_schemas.py LLMModelUpdate._validate_model_id   3 0 0   100%
mcpgateway / llm_schemas.py LLMModelUpdate._validate_model_name   3 0 0   100%
mcpgateway / llm_schemas.py LLMModelUpdate._validate_model_alias   3 0 0   100%
mcpgateway / llm_schemas.py LLMModelUpdate._validate_description   3 0 0   100%
mcpgateway / llm_schemas.py (no function)   270 0 0   100%
mcpgateway / main.py get_user_email   3 0 0   100%
mcpgateway / main.py _normalize_token_teams   11 0 0   100%
mcpgateway / main.py _get_token_teams_from_request   10 0 0   100%
mcpgateway / main.py _get_rpc_filter_context   15 0 0   100%
mcpgateway / main.py _has_verified_jwt_payload   2 0 0   100%
mcpgateway / main.py _get_request_identity   10 0 0   100%
mcpgateway / main.py _get_scoped_resource_access_context   10 0 0   100%
mcpgateway / main.py _build_rpc_permission_user   5 0 0   100%
mcpgateway / main.py _extract_scoped_permissions   13 0 0   100%
mcpgateway / main.py _ensure_rpc_permission   10 0 0   100%
mcpgateway / main.py _enforce_scoped_resource_access   6 0 0   100%
mcpgateway / main.py _assert_session_owner_or_admin   12 0 0   100%
mcpgateway / main.py _authorize_run_cancellation   15 0 0   100%
mcpgateway / main.py _parse_jsonpath   1 0 0   100%
mcpgateway / main.py jsonpath_modifier   16 0 0   100%
mcpgateway / main.py transform_data_with_mappings   21 0 0   100%
mcpgateway / main.py attempt_to_bootstrap_sso_providers   6 0 0   100%
mcpgateway / main.py lifespan   149 0 0   100%
mcpgateway / main.py lifespan.run_log_backfill   6 0 2   100%
mcpgateway / main.py lifespan.run_log_aggregation_loop   14 0 2   100%
mcpgateway / main.py shutdown_services   5 0 0   100%
mcpgateway / main.py setup_passthrough_headers   10 0 0   100%
mcpgateway / main.py validate_security_configuration   20 0 0   100%
mcpgateway / main.py log_security_warnings   7 0 0   100%
mcpgateway / main.py log_critical_issues   17 0 0   100%
mcpgateway / main.py log_security_recommendations   15 0 0   100%
mcpgateway / main.py validation_exception_handler   1 0 0   100%
mcpgateway / main.py request_validation_exception_handler   15 0 0   100%
mcpgateway / main.py database_exception_handler   1 0 0   100%
mcpgateway / main.py plugin_violation_exception_handler   16 0 0   100%
mcpgateway / main.py plugin_exception_handler   12 0 0   100%
mcpgateway / main.py _normalize_scope_path   7 0 0   100%
mcpgateway / main.py DocsAuthMiddleware.dispatch   15 0 0   100%
mcpgateway / main.py AdminAuthMiddleware._error_response   10 0 0   100%
mcpgateway / main.py AdminAuthMiddleware.dispatch   94 0 0   100%
mcpgateway / main.py MCPPathRewriteMiddleware.__init__   2 0 0   100%
mcpgateway / main.py MCPPathRewriteMiddleware.__call__   12 0 0   100%
mcpgateway / main.py MCPPathRewriteMiddleware.__call__.call_next   1 0 0   100%
mcpgateway / main.py MCPPathRewriteMiddleware._call_streamable_http   11 0 0   100%
mcpgateway / main.py decode_html_entities   3 1 0   67%
mcpgateway / main.py tojson_attr   3 0 0   100%
mcpgateway / main.py get_db   15 0 0   100%
mcpgateway / main.py _read_request_json   7 0 0   100%
mcpgateway / main.py require_api_key   4 0 0   100%
mcpgateway / main.py invalidate_resource_cache   3 0 0   100%
mcpgateway / main.py get_protocol_from_request   4 0 0   100%
mcpgateway / main.py update_url_protocol   4 0 0   100%
mcpgateway / main.py initialize   6 0 0   100%
mcpgateway / main.py ping   12 0 0   100%
mcpgateway / main.py handle_notification   17 0 0   100%
mcpgateway / main.py handle_completion   8 0 0   100%
mcpgateway / main.py handle_sampling   3 0 0   100%
mcpgateway / main.py list_servers   15 0 0   100%
mcpgateway / main.py get_server   7 0 0   100%
mcpgateway / main.py create_server   28 0 0   100%
mcpgateway / main.py update_server   22 0 0   100%
mcpgateway / main.py set_server_state   12 0 0   100%
mcpgateway / main.py toggle_server_status   2 0 0   100%
mcpgateway / main.py delete_server   14 0 0   100%
mcpgateway / main.py sse_endpoint   57 0 0   100%
mcpgateway / main.py sse_endpoint.on_disconnect_cleanup   5 0 0   100%
mcpgateway / main.py message_endpoint   35 0 0   100%
mcpgateway / main.py server_get_tools   11 0 0   100%
mcpgateway / main.py server_get_resources   9 0 0   100%
mcpgateway / main.py server_get_prompts   9 0 0   100%
mcpgateway / main.py list_a2a_agents   19 0 0   100%
mcpgateway / main.py get_a2a_agent   12 0 0   100%
mcpgateway / main.py create_a2a_agent   27 0 0   100%
mcpgateway / main.py update_a2a_agent   21 0 0   100%
mcpgateway / main.py set_a2a_agent_state   12 0 0   100%
mcpgateway / main.py toggle_a2a_agent_status   2 0 0   100%
mcpgateway / main.py delete_a2a_agent   13 0 0   100%
mcpgateway / main.py invoke_a2a_agent   18 0 0   100%
mcpgateway / main.py list_tools   23 0 0   100%
mcpgateway / main.py create_tool   34 0 0   100%
mcpgateway / main.py get_tool   14 0 0   100%
mcpgateway / main.py update_tool   25 0 0   100%
mcpgateway / main.py delete_tool   13 0 0   100%
mcpgateway / main.py set_tool_state   13 0 0   100%
mcpgateway / main.py toggle_tool_status   2 0 0   100%
mcpgateway / main.py list_resource_templates   11 0 0   100%
mcpgateway / main.py set_resource_state   13 0 0   100%
mcpgateway / main.py toggle_resource_status   2 0 0   100%
mcpgateway / main.py list_resources   19 0 0   100%
mcpgateway / main.py create_resource   28 0 0   100%
mcpgateway / main.py read_resource   30 0 0   100%
mcpgateway / main.py get_resource_info   7 0 0   100%
mcpgateway / main.py update_resource   21 0 0   100%
mcpgateway / main.py delete_resource   14 0 0   100%
mcpgateway / main.py subscribe_resource   3 0 0   100%
mcpgateway / main.py set_prompt_state   13 0 0   100%
mcpgateway / main.py toggle_prompt_status   2 0 0   100%
mcpgateway / main.py list_prompts   19 0 0   100%
mcpgateway / main.py create_prompt   31 0 0   100%
mcpgateway / main.py get_prompt   19 0 0   100%
mcpgateway / main.py get_prompt_no_args   13 0 0   100%
mcpgateway / main.py update_prompt   25 0 0   100%
mcpgateway / main.py delete_prompt   16 0 0   100%
mcpgateway / main.py set_gateway_state   11 0 0   100%
mcpgateway / main.py toggle_gateway_status   2 0 0   100%
mcpgateway / main.py list_gateways   15 0 0   100%
mcpgateway / main.py register_gateway   34 0 0   100%
mcpgateway / main.py get_gateway   7 0 0   100%
mcpgateway / main.py update_gateway   28 0 0   100%
mcpgateway / main.py delete_gateway   17 0 0   100%
mcpgateway / main.py refresh_gateway_tools   11 0 0   100%
mcpgateway / main.py list_roots   2 0 0   100%
mcpgateway / main.py export_root   17 0 0   100%
mcpgateway / main.py subscribe_roots_changes   3 0 0   100%
mcpgateway / main.py subscribe_roots_changes.generate_events   2 0 0   100%
mcpgateway / main.py get_root_by_uri   9 0 0   100%
mcpgateway / main.py add_root   2 0 0   100%
mcpgateway / main.py update_root   9 0 0   100%
mcpgateway / main.py remove_root   3 0 0   100%
mcpgateway / main.py handle_rpc   426 3 0   99%
mcpgateway / main.py _get_websocket_bearer_token   1 0 0   100%
mcpgateway / main.py _authenticate_websocket_user   27 0 0   100%
mcpgateway / main.py websocket_endpoint   38 0 0   100%
mcpgateway / main.py utility_sse_endpoint   50 0 0   100%
mcpgateway / main.py utility_sse_endpoint.on_disconnect_cleanup   5 0 0   100%
mcpgateway / main.py utility_message_endpoint   18 0 0   100%
mcpgateway / main.py set_log_level   4 0 0   100%
mcpgateway / main.py get_metrics   9 0 0   100%
mcpgateway / main.py reset_metrics   22 0 0   100%
mcpgateway / main.py healthcheck   17 0 0   100%
mcpgateway / main.py readiness_check   7 0 0   100%
mcpgateway / main.py readiness_check._check_db   15 0 0   100%
mcpgateway / main.py security_health   7 0 0   100%
mcpgateway / main.py list_tags   15 0 0   100%
mcpgateway / main.py get_entities_by_tag   15 0 0   100%
mcpgateway / main.py export_configuration   27 0 0   100%
mcpgateway / main.py export_selective_configuration   17 0 0   100%
mcpgateway / main.py import_configuration   25 0 0   100%
mcpgateway / main.py get_import_status   5 0 0   100%
mcpgateway / main.py list_import_statuses   3 0 0   100%
mcpgateway / main.py cleanup_import_statuses   3 0 0   100%
mcpgateway / main.py root_redirect   3 0 0   100%
mcpgateway / main.py favicon_redirect   2 0 0   100%
mcpgateway / main.py (no function)   670 2 0   99%
mcpgateway / middleware / __init__.py (no function)   2 0 0   100%
mcpgateway / middleware / auth_middleware.py _should_log_auth_success   1 0 0   100%
mcpgateway / middleware / auth_middleware.py _should_log_auth_failure   1 0 0   100%
mcpgateway / middleware / auth_middleware.py AuthContextMiddleware.dispatch   71 0 0   100%
mcpgateway / middleware / auth_middleware.py (no function)   19 0 0   100%
mcpgateway / middleware / compression.py SSEAwareCompressMiddleware.__init__   6 0 0   100%
mcpgateway / middleware / compression.py SSEAwareCompressMiddleware._is_mcp_path   1 0 0   100%
mcpgateway / middleware / compression.py SSEAwareCompressMiddleware.__call__   8 0 0   100%
mcpgateway / middleware / compression.py (no function)   7 0 0   100%
mcpgateway / middleware / correlation_id.py CorrelationIDMiddleware.__init__   4 0 0   100%
mcpgateway / middleware / correlation_id.py CorrelationIDMiddleware.dispatch   14 0 0   100%
mcpgateway / middleware / correlation_id.py (no function)   10 0 0   100%
mcpgateway / middleware / db_query_logging.py _normalize_query   5 0 0   100%
mcpgateway / middleware / db_query_logging.py _extract_table_name   4 0 0   100%
mcpgateway / middleware / db_query_logging.py _detect_n1_patterns   12 0 0   100%
mcpgateway / middleware / db_query_logging.py _format_text_log   43 0 0   100%
mcpgateway / middleware / db_query_logging.py _format_json_log   3 0 0   100%
mcpgateway / middleware / db_query_logging.py _write_logs   18 0 0   100%
mcpgateway / middleware / db_query_logging.py _before_cursor_execute   4 0 0   100%
mcpgateway / middleware / db_query_logging.py _should_exclude_query   5 0 0   100%
mcpgateway / middleware / db_query_logging.py _after_cursor_execute   13 0 0   100%
mcpgateway / middleware / db_query_logging.py instrument_engine_for_logging   7 0 0   100%
mcpgateway / middleware / db_query_logging.py DBQueryLoggingMiddleware.dispatch   24 0 0   100%
mcpgateway / middleware / db_query_logging.py setup_query_logging   6 0 0   100%
mcpgateway / middleware / db_query_logging.py (no function)   39 0 0   100%
mcpgateway / middleware / http_auth_middleware.py HttpAuthMiddleware.__init__   2 0 0   100%
mcpgateway / middleware / http_auth_middleware.py HttpAuthMiddleware.dispatch   51 0 0   100%
mcpgateway / middleware / http_auth_middleware.py (no function)   10 0 0   100%
mcpgateway / middleware / observability_middleware.py ObservabilityMiddleware.__init__   4 0 0   100%
mcpgateway / middleware / observability_middleware.py ObservabilityMiddleware.dispatch   75 0 0   100%
mcpgateway / middleware / observability_middleware.py (no function)   17 0 0   100%
mcpgateway / middleware / path_filter.py _matches_prefix   1 0 0   100%
mcpgateway / middleware / path_filter.py _matches_any_regex   1 0 0   100%
mcpgateway / middleware / path_filter.py _get_observability_include_regex   7 0 0   100%
mcpgateway / middleware / path_filter.py _get_observability_exclude_regex   7 0 0   100%
mcpgateway / middleware / path_filter.py should_skip_observability   8 0 0   100%
mcpgateway / middleware / path_filter.py should_skip_auth_context   1 0 0   100%
mcpgateway / middleware / path_filter.py should_skip_request_logging   1 0 0   100%
mcpgateway / middleware / path_filter.py should_skip_db_query_logging   1 0 0   100%
mcpgateway / middleware / path_filter.py clear_all_caches   6 0 0   100%
mcpgateway / middleware / path_filter.py (no function)   28 0 0   100%
mcpgateway / middleware / protocol_version.py MCPProtocolVersionMiddleware.dispatch   13 0 0   100%
mcpgateway / middleware / protocol_version.py MCPProtocolVersionMiddleware._is_mcp_endpoint   5 0 0   100%
mcpgateway / middleware / protocol_version.py (no function)   13 0 0   100%
mcpgateway / middleware / rbac.py get_db   14 0 0   100%
mcpgateway / middleware / rbac.py get_permission_service   1 0 0   100%
mcpgateway / middleware / rbac.py get_current_user_with_permissions   82 0 0   100%
mcpgateway / middleware / rbac.py _get_resource_param_to_model   2 0 0   100%
mcpgateway / middleware / rbac.py _derive_team_from_resource   12 0 0   100%
mcpgateway / middleware / rbac.py _derive_team_from_payload   18 0 0   100%
mcpgateway / middleware / rbac.py _is_mutate_permission   5 0 0   100%
mcpgateway / middleware / rbac.py require_permission   2 0 0   100%
mcpgateway / middleware / rbac.py require_permission.decorator   3 0 0   100%
mcpgateway / middleware / rbac.py require_permission.decorator.wrapper   56 0 0   100%
mcpgateway / middleware / rbac.py require_admin_permission   2 0 0   100%
mcpgateway / middleware / rbac.py require_admin_permission.decorator   3 0 0   100%
mcpgateway / middleware / rbac.py require_admin_permission.decorator.wrapper   14 0 0   100%
mcpgateway / middleware / rbac.py require_any_permission   2 0 0   100%
mcpgateway / middleware / rbac.py require_any_permission.decorator   3 0 0   100%
mcpgateway / middleware / rbac.py require_any_permission.decorator.wrapper   34 0 0   100%
mcpgateway / middleware / rbac.py PermissionChecker.__init__   2 0 0   100%
mcpgateway / middleware / rbac.py PermissionChecker.has_permission   6 0 0   100%
mcpgateway / middleware / rbac.py PermissionChecker.has_admin_permission   6 0 0   100%
mcpgateway / middleware / rbac.py PermissionChecker.has_any_permission   12 0 0   100%
mcpgateway / middleware / rbac.py PermissionChecker.require_permission   3 0 0   100%
mcpgateway / middleware / rbac.py (no function)   34 0 0   100%
mcpgateway / middleware / request_context.py get_request_path   5 0 0   100%
mcpgateway / middleware / request_context.py (no function)   2 0 0   100%
mcpgateway / middleware / request_logging_middleware.py _normalize_key_for_masking   3 0 0   100%
mcpgateway / middleware / request_logging_middleware.py _is_sensitive_key   11 0 0   100%
mcpgateway / middleware / request_logging_middleware.py mask_sensitive_data   7 0 0   100%
mcpgateway / middleware / request_logging_middleware.py mask_jwt_in_cookies   13 0 0   100%
mcpgateway / middleware / request_logging_middleware.py mask_sensitive_headers   9 0 0   100%
mcpgateway / middleware / request_logging_middleware.py RequestLoggingMiddleware.__init__   9 0 0   100%
mcpgateway / middleware / request_logging_middleware.py RequestLoggingMiddleware._resolve_user_identity   23 0 0   100%
mcpgateway / middleware / request_logging_middleware.py RequestLoggingMiddleware.dispatch   127 0 0   100%
mcpgateway / middleware / request_logging_middleware.py RequestLoggingMiddleware._categorize_response_time   7 0 0   100%
mcpgateway / middleware / request_logging_middleware.py (no function)   34 0 0   100%
mcpgateway / middleware / security_headers.py SecurityHeadersMiddleware.dispatch   56 0 0   100%
mcpgateway / middleware / security_headers.py (no function)   6 0 0   100%
mcpgateway / middleware / token_scoping.py _normalize_llm_api_prefix   4 1 0   75%
mcpgateway / middleware / token_scoping.py _normalize_scope_path   7 0 0   100%
mcpgateway / middleware / token_scoping.py _get_llm_permission_patterns   3 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware.__init__   0 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._normalize_teams   11 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._normalize_path_for_matching   4 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._get_normalized_request_path   9 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._extract_jwt_token_from_request   14 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._extract_token_scopes   10 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._get_client_ip   1 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._check_ip_restrictions   17 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._check_time_restrictions   10 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._parse_positive_limit   5 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._check_usage_limits   27 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._check_server_restriction   15 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._check_permission_restrictions   22 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._check_team_membership   34 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware._check_resource_team_ownership   175 0 0   100%
mcpgateway / middleware / token_scoping.py TokenScopingMiddleware.__call__   72 0 0   100%
mcpgateway / middleware / token_scoping.py (no function)   46 0 0   100%
mcpgateway / middleware / token_usage_middleware.py TokenUsageMiddleware.__init__   1 0 0   100%
mcpgateway / middleware / token_usage_middleware.py TokenUsageMiddleware.__call__   89 0 0   100%
mcpgateway / middleware / token_usage_middleware.py TokenUsageMiddleware.__call__.send_wrapper   3 0 0   100%
mcpgateway / middleware / token_usage_middleware.py (no function)   15 0 0   100%
mcpgateway / middleware / validation_middleware.py is_path_traversal   1 0 0   100%
mcpgateway / middleware / validation_middleware.py ValidationMiddleware.__init__   6 0 0   100%
mcpgateway / middleware / validation_middleware.py ValidationMiddleware.dispatch   15 0 0   100%
mcpgateway / middleware / validation_middleware.py ValidationMiddleware._validate_request   13 0 0   100%
mcpgateway / middleware / validation_middleware.py ValidationMiddleware._validate_parameter   11 0 0   100%
mcpgateway / middleware / validation_middleware.py ValidationMiddleware._validate_json_data   9 0 0   100%
mcpgateway / middleware / validation_middleware.py ValidationMiddleware.validate_resource_path   15 0 0   100%
mcpgateway / middleware / validation_middleware.py ValidationMiddleware._sanitize_response   12 0 0   100%
mcpgateway / middleware / validation_middleware.py (no function)   18 0 0   100%
mcpgateway / observability.py init_telemetry   97 10 0   90%
mcpgateway / observability.py init_telemetry.ResourceAttributeSpanProcessor.__init__   2 0 0   100%
mcpgateway / observability.py init_telemetry.ResourceAttributeSpanProcessor.on_start   8 0 0   100%
mcpgateway / observability.py init_telemetry.ResourceAttributeSpanProcessor.on_end   1 1 0   0%
mcpgateway / observability.py trace_operation   2 0 0   100%
mcpgateway / observability.py trace_operation.decorator   2 0 0   100%
mcpgateway / observability.py trace_operation.decorator.wrapper   15 0 0   100%
mcpgateway / observability.py create_span   21 0 0   100%
mcpgateway / observability.py create_span.SpanWithAttributes.__init__   3 0 0   100%
mcpgateway / observability.py create_span.SpanWithAttributes.__enter__   6 0 0   100%
mcpgateway / observability.py create_span.SpanWithAttributes.__exit__   11 0 0   100%
mcpgateway / observability.py (no function)   70 7 7   90%
mcpgateway / plugins / __init__.py (no function)   0 0 0   100%
mcpgateway / plugins / framework / __init__.py get_plugin_manager   6 0 0   100%
mcpgateway / plugins / framework / __init__.py (no function)   19 0 0   100%
mcpgateway / plugins / framework / base.py Plugin.__init__   3 0 0   100%
mcpgateway / plugins / framework / base.py Plugin.priority   1 0 0   100%
mcpgateway / plugins / framework / base.py Plugin.config   1 0 0   100%
mcpgateway / plugins / framework / base.py Plugin.mode   1 0 0   100%
mcpgateway / plugins / framework / base.py Plugin.name   1 0 0   100%
mcpgateway / plugins / framework / base.py Plugin.hooks   1 0 0   100%
mcpgateway / plugins / framework / base.py Plugin.tags   1 0 0   100%
mcpgateway / plugins / framework / base.py Plugin.conditions   1 0 0   100%
mcpgateway / plugins / framework / base.py Plugin.initialize   0 0 0   100%
mcpgateway / plugins / framework / base.py Plugin.shutdown   0 0 0   100%
mcpgateway / plugins / framework / base.py Plugin.json_to_payload   12 0 0   100%
mcpgateway / plugins / framework / base.py Plugin.json_to_result   12 0 0   100%
mcpgateway / plugins / framework / base.py PluginRef.__init__   2 0 0   100%
mcpgateway / plugins / framework / base.py PluginRef.plugin   1 0 0   100%
mcpgateway / plugins / framework / base.py PluginRef.uuid   1 0 0   100%
mcpgateway / plugins / framework / base.py PluginRef.priority   1 0 0   100%
mcpgateway / plugins / framework / base.py PluginRef.name   1 0 0   100%
mcpgateway / plugins / framework / base.py PluginRef.hooks   1 0 0   100%
mcpgateway / plugins / framework / base.py PluginRef.tags   1 0 0   100%
mcpgateway / plugins / framework / base.py PluginRef.conditions   1 0 0   100%
mcpgateway / plugins / framework / base.py PluginRef.mode   1 0 0   100%
mcpgateway / plugins / framework / base.py HookRef.__init__   16 0 0   100%
mcpgateway / plugins / framework / base.py HookRef._validate_hook_signature   7 0 0   100%
mcpgateway / plugins / framework / base.py HookRef._validate_type_hints   30 0 0   100%
mcpgateway / plugins / framework / base.py HookRef.plugin_ref   1 0 0   100%
mcpgateway / plugins / framework / base.py HookRef.name   1 0 0   100%
mcpgateway / plugins / framework / base.py HookRef.hook   1 0 0   100%
mcpgateway / plugins / framework / base.py (no function)   53 0 0   100%
mcpgateway / plugins / framework / constants.py (no function)   23 0 0   100%
mcpgateway / plugins / framework / decorator.py HookMetadata.__init__   3 0 0   100%
mcpgateway / plugins / framework / decorator.py hook   2 0 0   100%
mcpgateway / plugins / framework / decorator.py hook.decorator   3 0 0   100%
mcpgateway / plugins / framework / decorator.py get_hook_metadata   1 0 0   100%
mcpgateway / plugins / framework / decorator.py has_hook_metadata   1 0 0   100%
mcpgateway / plugins / framework / decorator.py (no function)   11 0 0   100%
mcpgateway / plugins / framework / errors.py PluginViolationError.__init__   3 0 0   100%
mcpgateway / plugins / framework / errors.py PluginError.__init__   2 0 0   100%
mcpgateway / plugins / framework / errors.py convert_exception_to_error   1 0 0   100%
mcpgateway / plugins / framework / errors.py (no function)   6 0 0   100%
mcpgateway / plugins / framework / external / __init__.py (no function)   7 2 0   71%
mcpgateway / plugins / framework / external / grpc / __init__.py (no function)   5 0 0   100%
mcpgateway / plugins / framework / external / grpc / client.py GrpcExternalPlugin.__init__   3 0 0   100%
mcpgateway / plugins / framework / external / grpc / client.py GrpcExternalPlugin.initialize   24 0 0   100%
mcpgateway / plugins / framework / external / grpc / client.py GrpcExternalPlugin._get_plugin_config_with_retry   11 0 1   100%
mcpgateway / plugins / framework / external / grpc / client.py GrpcExternalPlugin._get_plugin_config   12 0 0   100%
mcpgateway / plugins / framework / external / grpc / client.py GrpcExternalPlugin.invoke_hook   31 0 0   100%
mcpgateway / plugins / framework / external / grpc / client.py GrpcExternalPlugin.shutdown   5 0 0   100%
mcpgateway / plugins / framework / external / grpc / client.py (no function)   22 0 0   100%
mcpgateway / plugins / framework / external / grpc / proto / __init__.py (no function)   6 2 0   67%
mcpgateway / plugins / framework / external / grpc / server / __init__.py (no function)   2 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / runtime.py GrpcPluginRuntime.__init__   6 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / runtime.py GrpcPluginRuntime.start   30 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / runtime.py GrpcPluginRuntime.stop   7 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / runtime.py GrpcPluginRuntime.request_shutdown   1 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / runtime.py GrpcPluginRuntime._get_server_config   8 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / runtime.py run_server   8 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / runtime.py run_server.signal_handler   2 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / runtime.py main   16 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / runtime.py (no function)   23 0 2   100%
mcpgateway / plugins / framework / external / grpc / server / server.py GrpcPluginServicer.__init__   1 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / server.py GrpcPluginServicer.GetPluginConfig   14 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / server.py GrpcPluginServicer.GetPluginConfigs   14 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / server.py GrpcPluginServicer.InvokeHook   29 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / server.py GrpcPluginServicer._dict_to_plugin_error   8 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / server.py GrpcHealthServicer.__init__   1 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / server.py GrpcHealthServicer.Check   2 0 0   100%
mcpgateway / plugins / framework / external / grpc / server / server.py (no function)   19 0 0   100%
mcpgateway / plugins / framework / external / grpc / tls_utils.py _read_file   2 0 0   100%
mcpgateway / plugins / framework / external / grpc / tls_utils.py create_client_credentials   14 0 0   100%
mcpgateway / plugins / framework / external / grpc / tls_utils.py create_server_credentials   13 0 0   100%
mcpgateway / plugins / framework / external / grpc / tls_utils.py create_insecure_channel   2 0 0   100%
mcpgateway / plugins / framework / external / grpc / tls_utils.py create_secure_channel   3 0 0   100%
mcpgateway / plugins / framework / external / grpc / tls_utils.py (no function)   10 0 0   100%
mcpgateway / plugins / framework / external / mcp / __init__.py (no function)   0 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py ExternalPlugin.__init__   15 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py ExternalPlugin.initialize   33 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py ExternalPlugin.__resolve_stdio_command   19 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py ExternalPlugin.__build_stdio_env   4 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py ExternalPlugin.__run_stdio_session   25 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py ExternalPlugin.__connect_to_stdio_server   15 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py ExternalPlugin.__connect_to_http_server   35 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py ExternalPlugin.__connect_to_http_server._tls_httpx_client_factory   16 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py ExternalPlugin.invoke_hook   32 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py ExternalPlugin.__get_plugin_config   15 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py ExternalPlugin.shutdown   23 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py ExternalPlugin.__terminate_http_session   13 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py ExternalHookRef.__init__   5 0 0   100%
mcpgateway / plugins / framework / external / mcp / client.py (no function)   36 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / __init__.py (no function)   2 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py get_plugin_configs   3 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py get_plugin_config   6 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py invoke_hook   3 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py SSLCapableFastMCP.__init__   8 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py SSLCapableFastMCP._get_ssl_config   20 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py SSLCapableFastMCP._start_health_check_server   17 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py SSLCapableFastMCP._start_health_check_server.health_check   1 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py SSLCapableFastMCP._start_health_check_server.metrics_endpoint   2 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py SSLCapableFastMCP._start_health_check_server.metrics_disabled   1 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py SSLCapableFastMCP.run_streamable_http_async   28 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py SSLCapableFastMCP.run_streamable_http_async.health_check   1 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py SSLCapableFastMCP.run_streamable_http_async.metrics_endpoint   2 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py SSLCapableFastMCP.run_streamable_http_async.metrics_disabled   1 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py run   35 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / runtime.py (no function)   25 0 2   100%
mcpgateway / plugins / framework / external / mcp / server / server.py ExternalPluginServer.__init__   3 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / server.py ExternalPluginServer.get_plugin_configs   5 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / server.py ExternalPluginServer.get_plugin_config   5 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / server.py ExternalPluginServer.invoke_hook   16 1 0   94%
mcpgateway / plugins / framework / external / mcp / server / server.py ExternalPluginServer.initialize   2 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / server.py ExternalPluginServer.shutdown   2 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / server.py ExternalPluginServer.get_server_config   1 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / server.py ExternalPluginServer.get_grpc_server_config   1 0 0   100%
mcpgateway / plugins / framework / external / mcp / server / server.py (no function)   21 0 0   100%
mcpgateway / plugins / framework / external / mcp / tls_utils.py create_ssl_context   21 0 0   100%
mcpgateway / plugins / framework / external / mcp / tls_utils.py (no function)   6 0 0   100%
mcpgateway / plugins / framework / external / proto_convert.py pydantic_global_context_to_proto   11 0 0   100%
mcpgateway / plugins / framework / external / proto_convert.py proto_global_context_to_pydantic   6 0 0   100%
mcpgateway / plugins / framework / external / proto_convert.py pydantic_context_to_proto   6 0 0   100%
mcpgateway / plugins / framework / external / proto_convert.py proto_context_to_pydantic   1 0 0   100%
mcpgateway / plugins / framework / external / proto_convert.py proto_context_to_dict   7 0 0   100%
mcpgateway / plugins / framework / external / proto_convert.py pydantic_violation_to_proto   4 0 0   100%
mcpgateway / plugins / framework / external / proto_convert.py proto_violation_to_pydantic   4 0 0   100%
mcpgateway / plugins / framework / external / proto_convert.py pydantic_result_to_proto_base   6 0 0   100%
mcpgateway / plugins / framework / external / proto_convert.py update_pydantic_result_from_proto_base   5 0 0   100%
mcpgateway / plugins / framework / external / proto_convert.py update_pydantic_context_from_proto   4 0 0   100%
mcpgateway / plugins / framework / external / proto_convert.py (no function)   16 0 0   100%
mcpgateway / plugins / framework / external / unix / __init__.py (no function)   2 0 0   100%
mcpgateway / plugins / framework / external / unix / client.py UnixSocketExternalPlugin.__init__   11 0 0   100%
mcpgateway / plugins / framework / external / unix / client.py UnixSocketExternalPlugin.connected   1 0 0   100%
mcpgateway / plugins / framework / external / unix / client.py UnixSocketExternalPlugin._connect   7 0 0   100%
mcpgateway / plugins / framework / external / unix / client.py UnixSocketExternalPlugin._disconnect   9 0 0   100%
mcpgateway / plugins / framework / external / unix / client.py UnixSocketExternalPlugin._reconnect   13 0 0   100%
mcpgateway / plugins / framework / external / unix / client.py UnixSocketExternalPlugin._send_request   22 1 0   95%
mcpgateway / plugins / framework / external / unix / client.py UnixSocketExternalPlugin.initialize   21 0 0   100%
mcpgateway / plugins / framework / external / unix / client.py UnixSocketExternalPlugin.shutdown   2 0 0   100%
mcpgateway / plugins / framework / external / unix / client.py UnixSocketExternalPlugin.invoke_hook   28 0 0   100%
mcpgateway / plugins / framework / external / unix / client.py (no function)   24 0 0   100%
mcpgateway / plugins / framework / external / unix / protocol.py read_message   4 0 0   100%
mcpgateway / plugins / framework / external / unix / protocol.py read_message._read   7 0 0   100%
mcpgateway / plugins / framework / external / unix / protocol.py write_message   4 0 0   100%
mcpgateway / plugins / framework / external / unix / protocol.py write_message_async   3 0 0   100%
mcpgateway / plugins / framework / external / unix / protocol.py (no function)   10 0 0   100%
mcpgateway / plugins / framework / external / unix / server / __init__.py (no function)   2 0 0   100%
mcpgateway / plugins / framework / external / unix / server / runtime.py run   7 0 0   100%
mcpgateway / plugins / framework / external / unix / server / runtime.py main   7 0 0   100%
mcpgateway / plugins / framework / external / unix / server / runtime.py (no function)   10 0 2   100%
mcpgateway / plugins / framework / external / unix / server / server.py UnixSocketPluginServer.__init__   5 0 0   100%
mcpgateway / plugins / framework / external / unix / server / server.py UnixSocketPluginServer.socket_path   1 0 0   100%
mcpgateway / plugins / framework / external / unix / server / server.py UnixSocketPluginServer.running   1 0 0   100%
mcpgateway / plugins / framework / external / unix / server / server.py UnixSocketPluginServer._handle_client   28 2 0   93%
mcpgateway / plugins / framework / external / unix / server / server.py UnixSocketPluginServer._handle_message   26 0 0   100%
mcpgateway / plugins / framework / external / unix / server / server.py UnixSocketPluginServer._handle_invoke_hook   28 0 0   100%
mcpgateway / plugins / framework / external / unix / server / server.py UnixSocketPluginServer._handle_get_plugin_config   11 0 0   100%
mcpgateway / plugins / framework / external / unix / server / server.py UnixSocketPluginServer._handle_get_plugin_configs   10 0 0   100%
mcpgateway / plugins / framework / external / unix / server / server.py UnixSocketPluginServer.start   10 0 0   100%
mcpgateway / plugins / framework / external / unix / server / server.py UnixSocketPluginServer.serve_forever   4 2 0   50%
mcpgateway / plugins / framework / external / unix / server / server.py UnixSocketPluginServer.stop   15 0 0   100%
mcpgateway / plugins / framework / external / unix / server / server.py run_server   10 0 0   100%
mcpgateway / plugins / framework / external / unix / server / server.py run_server.signal_handler   2 2 0   0%
mcpgateway / plugins / framework / external / unix / server / server.py (no function)   28 0 0   100%
mcpgateway / plugins / framework / hooks / __init__.py (no function)   0 0 0   100%
mcpgateway / plugins / framework / hooks / agents.py AgentPreInvokePayload._coerce_messages   1 0 0   100%
mcpgateway / plugins / framework / hooks / agents.py AgentPostInvokePayload._coerce_messages   1 0 0   100%
mcpgateway / plugins / framework / hooks / agents.py _register_agent_hooks   5 0 0   100%
mcpgateway / plugins / framework / hooks / agents.py (no function)   32 0 0   100%
mcpgateway / plugins / framework / hooks / http.py HttpHeaderPayload.__iter__   1 0 0   100%
mcpgateway / plugins / framework / hooks / http.py HttpHeaderPayload.__getitem__   1 0 0   100%
mcpgateway / plugins / framework / hooks / http.py HttpHeaderPayload.__setitem__   1 0 0   100%
mcpgateway / plugins / framework / hooks / http.py HttpHeaderPayload.__len__   1 0 0   100%
mcpgateway / plugins / framework / hooks / http.py _register_http_auth_hooks   7 0 0   100%
mcpgateway / plugins / framework / hooks / http.py (no function)   46 0 0   100%
mcpgateway / plugins / framework / hooks / policies.py apply_policy   18 0 0   100%
mcpgateway / plugins / framework / hooks / policies.py (no function)   14 0 0   100%
mcpgateway / plugins / framework / hooks / prompts.py PromptPosthookPayload._coerce_result   3 0 0   100%
mcpgateway / plugins / framework / hooks / prompts.py _register_prompt_hooks   5 0 0   100%
mcpgateway / plugins / framework / hooks / prompts.py (no function)   22 0 0   100%
mcpgateway / plugins / framework / hooks / registry.py HookRegistry.__new__   3 0 0   100%
mcpgateway / plugins / framework / hooks / registry.py HookRegistry.register_hook   2 0 0   100%
mcpgateway / plugins / framework / hooks / registry.py HookRegistry.get_payload_type   1 0 0   100%
mcpgateway / plugins / framework / hooks / registry.py HookRegistry.get_result_type   1 0 0   100%
mcpgateway / plugins / framework / hooks / registry.py HookRegistry.json_to_payload   6 0 0   100%
mcpgateway / plugins / framework / hooks / registry.py HookRegistry.json_to_result   6 0 0   100%
mcpgateway / plugins / framework / hooks / registry.py HookRegistry.is_registered   1 0 0   100%
mcpgateway / plugins / framework / hooks / registry.py HookRegistry.get_registered_hooks   1 0 0   100%
mcpgateway / plugins / framework / hooks / registry.py get_hook_registry   1 0 0   100%
mcpgateway / plugins / framework / hooks / registry.py (no function)   16 0 0   100%
mcpgateway / plugins / framework / hooks / resources.py _register_resource_hooks   5 0 0   100%
mcpgateway / plugins / framework / hooks / resources.py (no function)   17 0 0   100%
mcpgateway / plugins / framework / hooks / tools.py _register_tool_hooks   5 0 0   100%
mcpgateway / plugins / framework / hooks / tools.py (no function)   19 0 0   100%
mcpgateway / plugins / framework / loader / __init__.py (no function)   0 0 0   100%
mcpgateway / plugins / framework / loader / config.py ConfigLoader.load_config   11 0 0   100%
mcpgateway / plugins / framework / loader / config.py (no function)   8 0 0   100%
mcpgateway / plugins / framework / loader / plugin.py PluginLoader.__init__   1 0 0   100%
mcpgateway / plugins / framework / loader / plugin.py PluginLoader.__get_plugin_type   8 0 0   100%
mcpgateway / plugins / framework / loader / plugin.py PluginLoader.__register_plugin_type   5 0 0   100%
mcpgateway / plugins / framework / loader / plugin.py PluginLoader.load_and_instantiate_plugin   22 0 1   100%
mcpgateway / plugins / framework / loader / plugin.py PluginLoader.shutdown   2 0 0   100%
mcpgateway / plugins / framework / loader / plugin.py (no function)   14 0 0   100%
mcpgateway / plugins / framework / manager.py PluginExecutor.__init__   5 0 0   100%
mcpgateway / plugins / framework / manager.py PluginExecutor.execute   50 1 0   98%
mcpgateway / plugins / framework / manager.py PluginExecutor.execute_plugin   39 1 0   97%
mcpgateway / plugins / framework / manager.py PluginExecutor._execute_with_timeout   22 0 0   100%
mcpgateway / plugins / framework / manager.py PluginExecutor._validate_payload_size   8 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager.__init__   23 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager._get_executor   3 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager.executor   1 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager.executor   1 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager.reset   9 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager.config   1 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager.plugin_count   1 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager.initialized   1 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager.observability   1 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager.observability   2 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager.get_plugin   2 2 0   0%
mcpgateway / plugins / framework / manager.py PluginManager.has_hooks_for   1 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager.initialize   27 2 0   93%
mcpgateway / plugins / framework / manager.py PluginManager.shutdown   11 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager.invoke_hook   3 0 0   100%
mcpgateway / plugins / framework / manager.py PluginManager.invoke_hook_for_plugin   14 0 0   100%
mcpgateway / plugins / framework / manager.py (no function)   67 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.__init__   3 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.__getitem__   7 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.__setitem__   2 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.__delitem__   5 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.__contains__   3 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.__len__   2 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.__iter__   6 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.__repr__   0 0 7   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.get   4 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.keys   1 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.values   1 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.items   1 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.copy   1 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.get_modifications   1 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.get_deleted   1 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.has_modifications   1 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.update   8 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.pop   10 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.setdefault   4 0 0   100%
mcpgateway / plugins / framework / memory.py CopyOnWriteDict.clear   3 0 0   100%
mcpgateway / plugins / framework / memory.py copyonwrite   3 0 0   100%
mcpgateway / plugins / framework / memory.py (no function)   23 0 1   100%
mcpgateway / plugins / framework / models.py PluginCondition.serialize_set   6 0 0   100%
mcpgateway / plugins / framework / models.py MCPTransportTLSConfigBase.validate_path   6 0 0   100%
mcpgateway / plugins / framework / models.py MCPTransportTLSConfigBase.validate_cert_key   3 0 0   100%
mcpgateway / plugins / framework / models.py MCPClientTLSConfig.from_env   17 0 0   100%
mcpgateway / plugins / framework / models.py MCPServerTLSConfig.from_env   15 1 0   93%
mcpgateway / plugins / framework / models.py MCPServerConfig.validate_uds   17 0 0   100%
mcpgateway / plugins / framework / models.py MCPServerConfig.validate_uds_tls   3 0 0   100%
mcpgateway / plugins / framework / models.py MCPServerConfig.from_env   15 0 0   100%
mcpgateway / plugins / framework / models.py MCPClientConfig.validate_url   4 1 0   75%
mcpgateway / plugins / framework / models.py MCPClientConfig.validate_script   8 0 0   100%
mcpgateway / plugins / framework / models.py MCPClientConfig.validate_cmd   7 0 0   100%
mcpgateway / plugins / framework / models.py MCPClientConfig.validate_env   10 0 0   100%
mcpgateway / plugins / framework / models.py MCPClientConfig.validate_cwd   6 0 0   100%
mcpgateway / plugins / framework / models.py MCPClientConfig.validate_uds   17 0 0   100%
mcpgateway / plugins / framework / models.py MCPClientConfig.validate_tls_usage   5 0 0   100%
mcpgateway / plugins / framework / models.py MCPClientConfig.validate_transport_fields   7 0 0   100%
mcpgateway / plugins / framework / models.py GRPCClientTLSConfig.from_env   15 0 0   100%
mcpgateway / plugins / framework / models.py GRPCServerTLSConfig.validate_client_auth   4 0 0   100%
mcpgateway / plugins / framework / models.py GRPCServerTLSConfig.from_env   15 0 0   100%
mcpgateway / plugins / framework / models.py GRPCClientConfig.validate_target   7 0 0   100%
mcpgateway / plugins / framework / models.py GRPCClientConfig.validate_uds   17 0 0   100%
mcpgateway / plugins / framework / models.py GRPCClientConfig.validate_target_or_uds   9 0 0   100%
mcpgateway / plugins / framework / models.py GRPCClientConfig.get_target   3 0 0   100%
mcpgateway / plugins / framework / models.py GRPCServerConfig.validate_uds   17 0 0   100%
mcpgateway / plugins / framework / models.py GRPCServerConfig.validate_uds_tls   3 0 0   100%
mcpgateway / plugins / framework / models.py GRPCServerConfig.get_bind_address   3 0 0   100%
mcpgateway / plugins / framework / models.py GRPCServerConfig.from_env   15 0 0   100%
mcpgateway / plugins / framework / models.py UnixSocketClientConfig.validate_path   5 0 0   100%
mcpgateway / plugins / framework / models.py UnixSocketServerConfig.from_env   7 0 0   100%
mcpgateway / plugins / framework / models.py PluginConfig.check_url_or_script_filled   11 0 0   100%
mcpgateway / plugins / framework / models.py PluginConfig.check_config_and_external   15 0 0   100%
mcpgateway / plugins / framework / models.py PluginViolation.plugin_name   1 0 0   100%
mcpgateway / plugins / framework / models.py PluginViolation.plugin_name   3 0 0   100%
mcpgateway / plugins / framework / models.py PluginContext.get_state   1 0 0   100%
mcpgateway / plugins / framework / models.py PluginContext.set_state   1 0 0   100%
mcpgateway / plugins / framework / models.py PluginContext.cleanup   2 0 0   100%
mcpgateway / plugins / framework / models.py PluginContext.is_empty   1 0 0   100%
mcpgateway / plugins / framework / models.py (no function)   244 0 0   100%
mcpgateway / plugins / framework / observability.py ObservabilityProvider.start_span   1 0 0   100%
mcpgateway / plugins / framework / observability.py ObservabilityProvider.end_span   1 0 0   100%
mcpgateway / plugins / framework / observability.py NullObservability.start_span   1 0 0   100%
mcpgateway / plugins / framework / observability.py NullObservability.end_span   0 0 0   100%
mcpgateway / plugins / framework / observability.py (no function)   9 0 0   100%
mcpgateway / plugins / framework / protocols.py (no function)   9 0 0   100%
mcpgateway / plugins / framework / registry.py PluginInstanceRegistry.__init__   4 0 0   100%
mcpgateway / plugins / framework / registry.py PluginInstanceRegistry.register   15 0 0   100%
mcpgateway / plugins / framework / registry.py PluginInstanceRegistry.unregister   8 0 0   100%
mcpgateway / plugins / framework / registry.py PluginInstanceRegistry.get_plugin   1 0 0   100%
mcpgateway / plugins / framework / registry.py PluginInstanceRegistry.get_plugin_hook_by_name   5 0 0   100%
mcpgateway / plugins / framework / registry.py PluginInstanceRegistry.get_hook_refs_for_hook   4 0 0   100%
mcpgateway / plugins / framework / registry.py PluginInstanceRegistry.get_all_plugins   1 0 0   100%
mcpgateway / plugins / framework / registry.py PluginInstanceRegistry.has_hooks_for   1 0 0   100%
mcpgateway / plugins / framework / registry.py PluginInstanceRegistry.plugin_count   1 0 0   100%
mcpgateway / plugins / framework / registry.py PluginInstanceRegistry.shutdown   8 0 0   100%
mcpgateway / plugins / framework / registry.py (no function)   18 0 0   100%
mcpgateway / plugins / framework / settings.py _empty_string_to_none   3 0 0   100%
mcpgateway / plugins / framework / settings.py PluginsSettings.empty_string_to_none   1 0 0   100%
mcpgateway / plugins / framework / settings.py PluginsClientMtlsSettings.empty_string_to_none   1 0 0   100%
mcpgateway / plugins / framework / settings.py PluginsMcpServerSettings.empty_string_to_none   1 0 0   100%
mcpgateway / plugins / framework / settings.py PluginsGrpcClientMtlsSettings.empty_string_to_none   1 0 0   100%
mcpgateway / plugins / framework / settings.py PluginsGrpcServerSettings.empty_string_to_none   1 0 0   100%
mcpgateway / plugins / framework / settings.py get_settings   1 0 0   100%
mcpgateway / plugins / framework / settings.py get_enabled_settings   1 0 0   100%
mcpgateway / plugins / framework / settings.py get_startup_settings   1 0 0   100%
mcpgateway / plugins / framework / settings.py get_config_path_settings   1 0 0   100%
mcpgateway / plugins / framework / settings.py get_policy_settings   1 0 0   100%
mcpgateway / plugins / framework / settings.py get_ssrf_settings   1 0 0   100%
mcpgateway / plugins / framework / settings.py get_transport_settings   1 0 0   100%
mcpgateway / plugins / framework / settings.py get_client_mtls_settings   1 0 0   100%
mcpgateway / plugins / framework / settings.py get_mcp_server_settings   1 0 0   100%
mcpgateway / plugins / framework / settings.py get_grpc_client_mtls_settings   1 0 0   100%
mcpgateway / plugins / framework / settings.py get_http_client_settings   1 0 0   100%
mcpgateway / plugins / framework / settings.py get_cli_settings   1 0 0   100%
mcpgateway / plugins / framework / settings.py get_grpc_server_settings   1 0 0   100%
mcpgateway / plugins / framework / settings.py LazySettingsWrapper._parse_bool   1 0 0   100%
mcpgateway / plugins / framework / settings.py LazySettingsWrapper.enabled   4 0 0   100%
mcpgateway / plugins / framework / settings.py LazySettingsWrapper.config_file   1 0 0   100%
mcpgateway / plugins / framework / settings.py LazySettingsWrapper.plugin_timeout   1 0 0   100%
mcpgateway / plugins / framework / settings.py LazySettingsWrapper.config_path   1 0 0   100%
mcpgateway / plugins / framework / settings.py LazySettingsWrapper.default_hook_policy   1 0 0   100%
mcpgateway / plugins / framework / settings.py LazySettingsWrapper.ssrf_protection_enabled   1 0 0   100%
mcpgateway / plugins / framework / settings.py LazySettingsWrapper.transport   1 0 0   100%
mcpgateway / plugins / framework / settings.py LazySettingsWrapper.unix_socket_path   1 0 0   100%
mcpgateway / plugins / framework / settings.py LazySettingsWrapper.cli_completion   1 0 0   100%
mcpgateway / plugins / framework / settings.py LazySettingsWrapper.cli_markup_mode   1 0 0   100%
mcpgateway / plugins / framework / settings.py LazySettingsWrapper.cache_clear   13 0 0   100%
mcpgateway / plugins / framework / settings.py LazySettingsWrapper.__getattr__   1 0 0   100%
mcpgateway / plugins / framework / settings.py (no function)   197 0 0   100%
mcpgateway / plugins / framework / utils.py coerce_messages   3 0 0   100%
mcpgateway / plugins / framework / utils.py coerce_nested   15 0 0   100%
mcpgateway / plugins / framework / utils.py import_module   6 0 0   100%
mcpgateway / plugins / framework / utils.py parse_class_name   4 0 0   100%
mcpgateway / plugins / framework / utils.py matches   8 0 0   100%
mcpgateway / plugins / framework / utils.py get_attr   7 1 0   86%
mcpgateway / plugins / framework / utils.py get_matchable_value   5 0 0   100%
mcpgateway / plugins / framework / utils.py payload_matches   15 0 0   100%
mcpgateway / plugins / framework / utils.py ORJSONResponse.render   1 0 0   100%
mcpgateway / plugins / framework / utils.py (no function)   27 0 0   100%
mcpgateway / plugins / framework / validators.py SecurityValidator.validate_url   46 0 0   100%
mcpgateway / plugins / framework / validators.py validate_plugin_url   1 0 0   100%
mcpgateway / plugins / framework / validators.py (no function)   17 0 0   100%
mcpgateway / plugins / observability_adapter.py ObservabilityServiceAdapter.__init__   1 0 0   100%
mcpgateway / plugins / observability_adapter.py ObservabilityServiceAdapter._make_session   1 0 0   100%
mcpgateway / plugins / observability_adapter.py ObservabilityServiceAdapter.start_span   17 0 0   100%
mcpgateway / plugins / observability_adapter.py ObservabilityServiceAdapter.end_span   18 0 0   100%
mcpgateway / plugins / observability_adapter.py (no function)   11 0 0   100%
mcpgateway / plugins / policy.py (no function)   2 0 0   100%
mcpgateway / plugins / tools / __init__.py (no function)   0 0 0   100%
mcpgateway / plugins / tools / cli.py command_exists   1 0 0   100%
mcpgateway / plugins / tools / cli.py git_user_name   5 0 0   100%
mcpgateway / plugins / tools / cli.py git_user_email   5 0 0   100%
mcpgateway / plugins / tools / cli.py bootstrap   16 0 0   100%
mcpgateway / plugins / tools / cli.py callback   0 0 1   100%
mcpgateway / plugins / tools / cli.py main   1 0 0   100%
mcpgateway / plugins / tools / cli.py (no function)   27 0 4   100%
mcpgateway / plugins / tools / models.py (no function)   7 0 0   100%
mcpgateway / reverse_proxy.py StdioProcess.__init__   4 0 0   100%
mcpgateway / reverse_proxy.py StdioProcess.start   6 0 0   100%
mcpgateway / reverse_proxy.py StdioProcess.stop   14 0 0   100%
mcpgateway / reverse_proxy.py StdioProcess.send   5 0 0   100%
mcpgateway / reverse_proxy.py StdioProcess.add_message_handler   1 0 0   100%
mcpgateway / reverse_proxy.py StdioProcess._read_stdout   20 0 0   100%
mcpgateway / reverse_proxy.py ReverseProxyClient.__init__   17 0 0   100%
mcpgateway / reverse_proxy.py ReverseProxyClient.connect   17 0 0   100%
mcpgateway / reverse_proxy.py ReverseProxyClient._connect_websocket   14 0 0   100%
mcpgateway / reverse_proxy.py ReverseProxyClient._connect_sse   2 0 1   100%
mcpgateway / reverse_proxy.py ReverseProxyClient._register   5 0 0   100%
mcpgateway / reverse_proxy.py ReverseProxyClient._send_to_gateway   5 0 1   100%
mcpgateway / reverse_proxy.py ReverseProxyClient._handle_stdio_message   6 0 0   100%
mcpgateway / reverse_proxy.py ReverseProxyClient._receive_websocket   16 0 0   100%
mcpgateway / reverse_proxy.py ReverseProxyClient._handle_gateway_message   14 0 0   100%
mcpgateway / reverse_proxy.py ReverseProxyClient._keepalive_loop   8 0 0   100%
mcpgateway / reverse_proxy.py ReverseProxyClient.disconnect   19 0 0   100%
mcpgateway / reverse_proxy.py ReverseProxyClient.run_with_reconnect   20 0 0   100%
mcpgateway / reverse_proxy.py parse_args   33 0 0   100%
mcpgateway / reverse_proxy.py main   16 0 0   100%
mcpgateway / reverse_proxy.py main.signal_handler   2 0 0   100%
mcpgateway / reverse_proxy.py run   8 0 0   100%
mcpgateway / reverse_proxy.py (no function)   76 0 2   100%
mcpgateway / routers / auth.py get_db   14 0 0   100%
mcpgateway / routers / auth.py LoginRequest.get_email   7 0 0   100%
mcpgateway / routers / auth.py login   21 0 0   100%
mcpgateway / routers / auth.py (no function)   21 0 0   100%
mcpgateway / routers / cancellation_router.py cancel_run   14 0 0   100%
mcpgateway / routers / cancellation_router.py get_status   6 0 0   100%
mcpgateway / routers / cancellation_router.py (no function)   25 0 0   100%
mcpgateway / routers / email_auth.py get_db   14 0 0   100%
mcpgateway / routers / email_auth.py get_client_ip   7 0 0   100%
mcpgateway / routers / email_auth.py get_user_agent   1 0 0   100%
mcpgateway / routers / email_auth.py create_access_token   6 0 0   100%
mcpgateway / routers / email_auth.py create_legacy_access_token   6 0 0   100%
mcpgateway / routers / email_auth.py login   46 0 0   100%
mcpgateway / routers / email_auth.py register   20 0 0   100%
mcpgateway / routers / email_auth.py change_password   15 0 0   100%
mcpgateway / routers / email_auth.py forgot_password   9 0 0   100%
mcpgateway / routers / email_auth.py validate_password_reset_token   13 0 0   100%
mcpgateway / routers / email_auth.py complete_password_reset   15 0 0   100%
mcpgateway / routers / email_auth.py get_current_user_profile   1 0 0   100%
mcpgateway / routers / email_auth.py get_auth_events   7 0 0   100%
mcpgateway / routers / email_auth.py list_users   10 0 0   100%
mcpgateway / routers / email_auth.py list_all_auth_events   7 0 0   100%
mcpgateway / routers / email_auth.py create_user   19 0 0   100%
mcpgateway / routers / email_auth.py get_user   11 0 0   100%
mcpgateway / routers / email_auth.py update_user   16 0 0   100%
mcpgateway / routers / email_auth.py delete_user   16 0 0   100%
mcpgateway / routers / email_auth.py unlock_user   9 0 0   100%
mcpgateway / routers / email_auth.py (no function)   60 0 0   100%
mcpgateway / routers / llm_admin_router.py get_providers_partial   7 0 0   100%
mcpgateway / routers / llm_admin_router.py get_models_partial   16 0 0   100%
mcpgateway / routers / llm_admin_router.py set_provider_state_html   5 0 0   100%
mcpgateway / routers / llm_admin_router.py check_provider_health   5 0 0   100%
mcpgateway / routers / llm_admin_router.py delete_provider_html   5 0 0   100%
mcpgateway / routers / llm_admin_router.py set_model_state_html   10 0 0   100%
mcpgateway / routers / llm_admin_router.py delete_model_html   5 0 0   100%
mcpgateway / routers / llm_admin_router.py get_api_info_partial   12 0 0   100%
mcpgateway / routers / llm_admin_router.py admin_test_api   34 0 0   100%
mcpgateway / routers / llm_admin_router.py get_provider_defaults   1 0 0   100%
mcpgateway / routers / llm_admin_router.py get_provider_configs   3 0 0   100%
mcpgateway / routers / llm_admin_router.py fetch_provider_models   45 0 0   100%
mcpgateway / routers / llm_admin_router.py sync_provider_models   26 0 0   100%
mcpgateway / routers / llm_admin_router.py (no function)   52 0 0   100%
mcpgateway / routers / llm_config_router.py create_provider   14 0 0   100%
mcpgateway / routers / llm_config_router.py list_providers   6 0 0   100%
mcpgateway / routers / llm_config_router.py get_provider   9 0 0   100%
mcpgateway / routers / llm_config_router.py update_provider   13 0 0   100%
mcpgateway / routers / llm_config_router.py delete_provider   6 0 0   100%
mcpgateway / routers / llm_config_router.py set_provider_state   9 0 0   100%
mcpgateway / routers / llm_config_router.py check_provider_health   7 0 0   100%
mcpgateway / routers / llm_config_router.py create_model   11 0 0   100%
mcpgateway / routers / llm_config_router.py list_models   12 0 0   100%
mcpgateway / routers / llm_config_router.py get_model   12 0 0   100%
mcpgateway / routers / llm_config_router.py update_model   12 0 0   100%
mcpgateway / routers / llm_config_router.py delete_model   6 0 0   100%
mcpgateway / routers / llm_config_router.py set_model_state   12 0 0   100%
mcpgateway / routers / llm_config_router.py get_gateway_models   5 0 0   100%
mcpgateway / routers / llm_config_router.py (no function)   54 0 0   100%
mcpgateway / routers / llm_proxy_router.py chat_completions   21 0 0   100%
mcpgateway / routers / llm_proxy_router.py list_models   7 0 0   100%
mcpgateway / routers / llm_proxy_router.py (no function)   20 0 0   100%
mcpgateway / routers / llmchat_router.py init_redis   4 0 0   100%
mcpgateway / routers / llmchat_router.py build_llm_config   1 0 0   100%
mcpgateway / routers / llmchat_router.py build_config   2 0 0   100%
mcpgateway / routers / llmchat_router.py _get_user_id_from_context   3 0 0   100%
mcpgateway / routers / llmchat_router.py _resolve_user_id   6 0 0   100%
mcpgateway / routers / llmchat_router.py _cfg_key   1 0 0   100%
mcpgateway / routers / llmchat_router.py _active_key   1 0 0   100%
mcpgateway / routers / llmchat_router.py _lock_key   1 0 0   100%
mcpgateway / routers / llmchat_router.py _serialize_user_config_for_storage   2 0 0   100%
mcpgateway / routers / llmchat_router.py _deserialize_user_config_from_storage   18 0 0   100%
mcpgateway / routers / llmchat_router.py _is_sensitive_config_key   1 0 0   100%
mcpgateway / routers / llmchat_router.py _mask_sensitive_config_values   10 0 0   100%
mcpgateway / routers / llmchat_router.py set_user_config   4 0 0   100%
mcpgateway / routers / llmchat_router.py get_user_config   13 0 0   100%
mcpgateway / routers / llmchat_router.py delete_user_config   3 0 0   100%
mcpgateway / routers / llmchat_router.py set_active_session   3 0 0   100%
mcpgateway / routers / llmchat_router.py delete_active_session   7 0 0   100%
mcpgateway / routers / llmchat_router.py _try_acquire_lock   3 0 0   100%
mcpgateway / routers / llmchat_router.py _release_lock_safe   7 0 0   100%
mcpgateway / routers / llmchat_router.py _create_local_session_from_config   12 0 0   100%
mcpgateway / routers / llmchat_router.py get_active_session   45 1 0   98%
mcpgateway / routers / llmchat_router.py connect   60 0 0   100%
mcpgateway / routers / llmchat_router.py token_streamer   31 0 0   100%
mcpgateway / routers / llmchat_router.py token_streamer.sse   2 0 0   100%
mcpgateway / routers / llmchat_router.py chat   27 1 0   96%
mcpgateway / routers / llmchat_router.py disconnect   16 1 0   94%
mcpgateway / routers / llmchat_router.py status   3 0 0   100%
mcpgateway / routers / llmchat_router.py get_config   6 0 0   100%
mcpgateway / routers / llmchat_router.py get_gateway_models   10 0 0   100%
mcpgateway / routers / llmchat_router.py (no function)   95 2 0   98%
mcpgateway / routers / log_search.py _align_to_window   4 0 0   100%
mcpgateway / routers / log_search.py _deduplicate_metrics   11 0 0   100%
mcpgateway / routers / log_search.py _expand_component_filters   4 0 0   100%
mcpgateway / routers / log_search.py _aggregate_custom_windows   52 0 0   100%
mcpgateway / routers / log_search.py search_logs   41 0 0   100%
mcpgateway / routers / log_search.py trace_correlation_id   23 0 0   100%
mcpgateway / routers / log_search.py get_security_events   21 0 0   100%
mcpgateway / routers / log_search.py get_audit_trails   23 0 0   100%
mcpgateway / routers / log_search.py get_performance_metrics   22 0 2   100%
mcpgateway / routers / log_search.py (no function)   126 0 0   100%
mcpgateway / routers / metrics_maintenance.py trigger_cleanup   15 0 0   100%
mcpgateway / routers / metrics_maintenance.py trigger_rollup   6 0 0   100%
mcpgateway / routers / metrics_maintenance.py get_metrics_stats   13 0 0   100%
mcpgateway / routers / metrics_maintenance.py get_metrics_config   1 0 0   100%
mcpgateway / routers / metrics_maintenance.py (no function)   58 0 0   100%
mcpgateway / routers / oauth_router.py _normalize_resource_url   9 0 0   100%
mcpgateway / routers / oauth_router.py _require_admin_user   3 0 0   100%
mcpgateway / routers / oauth_router.py _resolve_token_teams_for_scope_check   23 0 0   100%
mcpgateway / routers / oauth_router.py _extract_user_email   9 0 0   100%
mcpgateway / routers / oauth_router.py _extract_is_admin   5 0 0   100%
mcpgateway / routers / oauth_router.py _enforce_gateway_access   41 0 0   100%
mcpgateway / routers / oauth_router.py initiate_oauth_flow   66 0 0   100%
mcpgateway / routers / oauth_router.py oauth_callback   44 0 0   100%
mcpgateway / routers / oauth_router.py oauth_callback._invalid_state_response   1 0 0   100%
mcpgateway / routers / oauth_router.py get_oauth_status   17 0 0   100%
mcpgateway / routers / oauth_router.py fetch_tools_after_oauth   16 0 0   100%
mcpgateway / routers / oauth_router.py list_registered_oauth_clients   11 0 0   100%
mcpgateway / routers / oauth_router.py get_registered_client_for_gateway   12 0 0   100%
mcpgateway / routers / oauth_router.py delete_registered_client   19 0 0   100%
mcpgateway / routers / oauth_router.py (no function)   42 0 0   100%
mcpgateway / routers / observability.py get_db   14 0 0   100%
mcpgateway / routers / observability.py list_traces   3 0 0   100%
mcpgateway / routers / observability.py query_traces_advanced   13 0 0   100%
mcpgateway / routers / observability.py get_trace   5 0 0   100%
mcpgateway / routers / observability.py list_spans   3 0 0   100%
mcpgateway / routers / observability.py cleanup_old_traces   4 0 0   100%
mcpgateway / routers / observability.py get_stats   10 0 0   100%
mcpgateway / routers / observability.py export_traces   30 0 0   100%
mcpgateway / routers / observability.py get_query_performance   6 0 0   100%
mcpgateway / routers / observability.py _get_query_performance_postgresql   5 0 0   100%
mcpgateway / routers / observability.py _get_query_performance_python   7 0 0   100%
mcpgateway / routers / observability.py _get_query_performance_python.percentile   7 0 0   100%
mcpgateway / routers / observability.py (no function)   38 0 0   100%
mcpgateway / routers / rbac.py get_db   14 0 0   100%
mcpgateway / routers / rbac.py create_role   13 0 0   100%
mcpgateway / routers / rbac.py list_roles   9 0 0   100%
mcpgateway / routers / rbac.py get_role   13 0 0   100%
mcpgateway / routers / rbac.py update_role   17 0 0   100%
mcpgateway / routers / rbac.py delete_role   16 0 0   100%
mcpgateway / routers / rbac.py assign_role_to_user   13 0 0   100%
mcpgateway / routers / rbac.py get_user_roles   10 0 0   100%
mcpgateway / routers / rbac.py revoke_user_role   14 0 0   100%
mcpgateway / routers / rbac.py check_permission   9 0 0   100%
mcpgateway / routers / rbac.py get_user_permissions   10 0 0   100%
mcpgateway / routers / rbac.py get_available_permissions   7 0 0   100%
mcpgateway / routers / rbac.py get_my_roles   10 0 0   100%
mcpgateway / routers / rbac.py get_my_permissions   10 0 0   100%
mcpgateway / routers / rbac.py (no function)   49 0 0   100%
mcpgateway / routers / reverse_proxy.py ReverseProxySession.__init__   8 0 0   100%
mcpgateway / routers / reverse_proxy.py ReverseProxySession.send_message   4 0 0   100%
mcpgateway / routers / reverse_proxy.py ReverseProxySession.receive_message   5 0 0   100%
mcpgateway / routers / reverse_proxy.py ReverseProxyManager.__init__   2 0 0   100%
mcpgateway / routers / reverse_proxy.py ReverseProxyManager.add_session   3 0 0   100%
mcpgateway / routers / reverse_proxy.py ReverseProxyManager.remove_session   4 0 0   100%
mcpgateway / routers / reverse_proxy.py ReverseProxyManager.get_session   1 0 0   100%
mcpgateway / routers / reverse_proxy.py ReverseProxyManager.list_sessions   1 0 0   100%
mcpgateway / routers / reverse_proxy.py _get_websocket_bearer_token   1 0 0   100%
mcpgateway / routers / reverse_proxy.py _authenticate_reverse_proxy_websocket   27 0 0   100%
mcpgateway / routers / reverse_proxy.py websocket_endpoint   39 0 0   100%
mcpgateway / routers / reverse_proxy.py list_sessions   10 0 0   100%
mcpgateway / routers / reverse_proxy.py disconnect_session   7 0 0   100%
mcpgateway / routers / reverse_proxy.py send_request_to_session   10 0 0   100%
mcpgateway / routers / reverse_proxy.py _get_user_from_credentials   7 0 0   100%
mcpgateway / routers / reverse_proxy.py _validate_session_ownership   10 0 0   100%
mcpgateway / routers / reverse_proxy.py sse_endpoint   6 0 0   100%
mcpgateway / routers / reverse_proxy.py sse_endpoint.event_generator   7 0 0   100%
mcpgateway / routers / reverse_proxy.py (no function)   44 0 0   100%
mcpgateway / routers / server_well_known.py server_oauth_protected_resource   6 1 0   83%
mcpgateway / routers / server_well_known.py server_well_known_file   10 0 0   100%
mcpgateway / routers / server_well_known.py (no function)   15 0 0   100%
mcpgateway / routers / sso.py list_sso_providers   5 0 0   100%
mcpgateway / routers / sso.py _normalize_origin   4 0 0   100%
mcpgateway / routers / sso.py _validate_redirect_uri   26 0 0   100%
mcpgateway / routers / sso.py initiate_sso_login   21 0 0   100%
mcpgateway / routers / sso.py handle_sso_callback   35 3 0   91%
mcpgateway / routers / sso.py create_sso_provider   12 0 0   100%
mcpgateway / routers / sso.py list_all_sso_providers   9 0 0   100%
mcpgateway / routers / sso.py get_sso_provider   8 0 0   100%
mcpgateway / routers / sso.py update_sso_provider   14 0 0   100%
mcpgateway / routers / sso.py delete_sso_provider   6 0 0   100%
mcpgateway / routers / sso.py list_pending_approvals   11 2 0   82%
mcpgateway / routers / sso.py handle_approval_request   23 0 0   100%
mcpgateway / routers / sso.py (no function)   104 0 0   100%
mcpgateway / routers / teams.py create_team   17 0 0   100%
mcpgateway / routers / teams.py list_teams   23 0 0   100%
mcpgateway / routers / teams.py discover_public_teams   14 0 0   100%
mcpgateway / routers / teams.py get_team   18 0 0   100%
mcpgateway / routers / teams.py update_team   24 0 0   100%
mcpgateway / routers / teams.py delete_team   16 0 0   100%
mcpgateway / routers / teams.py list_team_members   23 0 0   100%
mcpgateway / routers / teams.py add_team_member   28 0 0   100%
mcpgateway / routers / teams.py update_team_member   22 0 0   100%
mcpgateway / routers / teams.py remove_team_member   16 0 0   100%
mcpgateway / routers / teams.py invite_team_member   24 0 0   100%
mcpgateway / routers / teams.py list_team_invitations   20 0 0   100%
mcpgateway / routers / teams.py accept_team_invitation   16 0 0   100%
mcpgateway / routers / teams.py cancel_team_invitation   21 0 0   100%
mcpgateway / routers / teams.py request_to_join_team   21 0 0   100%
mcpgateway / routers / teams.py leave_team   21 0 0   100%
mcpgateway / routers / teams.py list_team_join_requests   18 0 0   100%
mcpgateway / routers / teams.py approve_join_request   19 0 0   100%
mcpgateway / routers / teams.py reject_join_request   19 0 0   100%
mcpgateway / routers / teams.py (no function)   70 0 0   100%
mcpgateway / routers / tokens.py _require_authenticated_session   8 0 0   100%
mcpgateway / routers / tokens.py _get_caller_permissions   5 1 0   80%
mcpgateway / routers / tokens.py create_token   28 0 0   100%
mcpgateway / routers / tokens.py list_tokens   12 0 0   100%
mcpgateway / routers / tokens.py get_token   8 0 0   100%
mcpgateway / routers / tokens.py update_token   21 1 0   95%
mcpgateway / routers / tokens.py revoke_token   8 0 0   100%
mcpgateway / routers / tokens.py get_token_usage_stats   9 0 0   100%
mcpgateway / routers / tokens.py list_all_tokens   17 0 0   100%
mcpgateway / routers / tokens.py admin_revoke_token   11 0 0   100%
mcpgateway / routers / tokens.py create_team_token   22 2 0   91%
mcpgateway / routers / tokens.py list_team_tokens   15 0 0   100%
mcpgateway / routers / tokens.py (no function)   42 0 0   100%
mcpgateway / routers / toolops_router.py generate_testcases_for_tool   5 0 0   100%
mcpgateway / routers / toolops_router.py execute_tool_nl_testcases   7 0 0   100%
mcpgateway / routers / toolops_router.py enrich_a_tool   12 0 0   100%
mcpgateway / routers / toolops_router.py (no function)   26 0 0   100%
mcpgateway / routers / well_known.py get_base_url_with_protocol   7 0 0   100%
mcpgateway / routers / well_known.py validate_security_txt   14 0 0   100%
mcpgateway / routers / well_known.py get_oauth_protected_resource_rfc9728   25 0 0   100%
mcpgateway / routers / well_known.py get_oauth_protected_resource   4 1 0   75%
mcpgateway / routers / well_known.py get_well_known_file_content   23 0 0   100%
mcpgateway / routers / well_known.py get_well_known_file   1 0 0   100%
mcpgateway / routers / well_known.py get_well_known_status   7 0 0   100%
mcpgateway / routers / well_known.py (no function)   29 0 0   100%
mcpgateway / schemas.py encode_datetime   1 0 0   100%
mcpgateway / schemas.py MetricsResponse._exclude_none_a2a   5 0 0   100%
mcpgateway / schemas.py ToolCreate.validate_tags   1 0 0   100%
mcpgateway / schemas.py ToolCreate.validate_name   1 0 0   100%
mcpgateway / schemas.py ToolCreate.validate_url   3 0 0   100%
mcpgateway / schemas.py ToolCreate.validate_description   11 0 0   100%
mcpgateway / schemas.py ToolCreate.validate_display_name   5 0 0   100%
mcpgateway / schemas.py ToolCreate.validate_json_fields   2 0 0   100%
mcpgateway / schemas.py ToolCreate.validate_request_type   16 0 0   100%
mcpgateway / schemas.py ToolCreate.assemble_auth   18 0 0   100%
mcpgateway / schemas.py ToolCreate.prevent_manual_mcp_creation   7 0 0   100%
mcpgateway / schemas.py ToolCreate.enforce_passthrough_fields_for_rest   7 0 0   100%
mcpgateway / schemas.py ToolCreate.extract_base_url_and_path_template   15 0 0   100%
mcpgateway / schemas.py ToolCreate.validate_base_url   6 0 0   100%
mcpgateway / schemas.py ToolCreate.validate_path_template   3 0 0   100%
mcpgateway / schemas.py ToolCreate.validate_timeout_ms   3 0 0   100%
mcpgateway / schemas.py ToolCreate.validate_allowlist   10 0 0   100%
mcpgateway / schemas.py ToolCreate.validate_plugin_chain   6 0 0   100%
mcpgateway / schemas.py ToolCreate.handle_timeout_ms_defaults   3 0 0   100%
mcpgateway / schemas.py ToolUpdate.validate_tags   1 0 0   100%
mcpgateway / schemas.py ToolUpdate.validate_name   1 0 0   100%
mcpgateway / schemas.py ToolUpdate.validate_custom_name   1 0 0   100%
mcpgateway / schemas.py ToolUpdate.validate_url   3 0 0   100%
mcpgateway / schemas.py ToolUpdate.validate_description   7 0 0   100%
mcpgateway / schemas.py ToolUpdate.validate_json_fields   2 0 0   100%
mcpgateway / schemas.py ToolUpdate.validate_request_type   11 0 0   100%
mcpgateway / schemas.py ToolUpdate.assemble_auth   18 0 0   100%
mcpgateway / schemas.py ToolUpdate.validate_display_name   5 0 0   100%
mcpgateway / schemas.py ToolUpdate.prevent_manual_mcp_update   6 0 0   100%
mcpgateway / schemas.py ToolUpdate.extract_base_url_and_path_template   13 0 0   100%
mcpgateway / schemas.py ToolUpdate.validate_base_url   6 0 0   100%
mcpgateway / schemas.py ToolUpdate.validate_path_template   3 0 0   100%
mcpgateway / schemas.py ToolUpdate.validate_timeout_ms   3 0 0   100%
mcpgateway / schemas.py ToolUpdate.validate_allowlist   10 0 0   100%
mcpgateway / schemas.py ToolUpdate.validate_plugin_chain   6 0 0   100%
mcpgateway / schemas.py ToolInvocation.validate_name   1 0 0   100%
mcpgateway / schemas.py ToolInvocation.validate_arguments   2 0 0   100%
mcpgateway / schemas.py ResourceCreate.validate_tags   1 0 0   100%
mcpgateway / schemas.py ResourceCreate.validate_uri   1 0 0   100%
mcpgateway / schemas.py ResourceCreate.validate_name   1 0 0   100%
mcpgateway / schemas.py ResourceCreate.validate_description   7 0 0   100%
mcpgateway / schemas.py ResourceCreate.validate_mime_type   3 0 0   100%
mcpgateway / schemas.py ResourceCreate.validate_content   13 0 0   100%
mcpgateway / schemas.py ResourceUpdate.validate_tags   1 0 0   100%
mcpgateway / schemas.py ResourceUpdate.validate_name   1 0 0   100%
mcpgateway / schemas.py ResourceUpdate.validate_description   7 0 0   100%
mcpgateway / schemas.py ResourceUpdate.validate_mime_type   3 0 0   100%
mcpgateway / schemas.py ResourceUpdate.validate_content   13 0 0   100%
mcpgateway / schemas.py ResourceSubscription.validate_uri   1 0 0   100%
mcpgateway / schemas.py ResourceSubscription.validate_subscriber_id   9 0 0   100%
mcpgateway / schemas.py ResourceNotification.serialize_timestamp   1 0 0   100%
mcpgateway / schemas.py PromptCreate.validate_tags   1 0 0   100%
mcpgateway / schemas.py PromptCreate.validate_name   1 0 0   100%
mcpgateway / schemas.py PromptCreate.validate_custom_name   3 0 0   100%
mcpgateway / schemas.py PromptCreate.validate_display_name   3 0 0   100%
mcpgateway / schemas.py PromptCreate.validate_description   7 0 0   100%
mcpgateway / schemas.py PromptCreate.validate_template   1 0 0   100%
mcpgateway / schemas.py PromptCreate.validate_arguments   2 0 0   100%
mcpgateway / schemas.py PromptExecuteArgs.validate_args   3 0 0   100%
mcpgateway / schemas.py PromptUpdate.validate_tags   1 0 0   100%
mcpgateway / schemas.py PromptUpdate.validate_name   1 0 0   100%
mcpgateway / schemas.py PromptUpdate.validate_custom_name   3 0 0   100%
mcpgateway / schemas.py PromptUpdate.validate_display_name   3 0 0   100%
mcpgateway / schemas.py PromptUpdate.validate_description   7 0 0   100%
mcpgateway / schemas.py PromptUpdate.validate_template   1 0 0   100%
mcpgateway / schemas.py PromptUpdate.validate_arguments   2 0 0   100%
mcpgateway / schemas.py GatewayCreate.default_gateway_mode   1 0 0   100%
mcpgateway / schemas.py GatewayCreate.validate_tags   1 0 0   100%
mcpgateway / schemas.py GatewayCreate.validate_name   1 0 0   100%
mcpgateway / schemas.py GatewayCreate.validate_url   1 0 0   100%
mcpgateway / schemas.py GatewayCreate.validate_description   7 0 0   100%
mcpgateway / schemas.py GatewayCreate.create_auth_value   6 0 0   100%
mcpgateway / schemas.py GatewayCreate.validate_transport   4 0 0   100%
mcpgateway / schemas.py GatewayCreate._process_auth_fields   50 0 0   100%
mcpgateway / schemas.py GatewayCreate.validate_query_param_auth   16 0 0   100%
mcpgateway / schemas.py GatewayUpdate.validate_tags   1 0 0   100%
mcpgateway / schemas.py GatewayUpdate.validate_name   1 0 0   100%
mcpgateway / schemas.py GatewayUpdate.validate_url   1 0 0   100%
mcpgateway / schemas.py GatewayUpdate.validate_description   7 0 0   100%
mcpgateway / schemas.py GatewayUpdate.create_auth_value   6 0 0   100%
mcpgateway / schemas.py GatewayUpdate._process_auth_fields   50 0 0   100%
mcpgateway / schemas.py GatewayUpdate.validate_query_param_auth   6 0 0   100%
mcpgateway / schemas.py _mask_oauth_config   10 0 0   100%
mcpgateway / schemas.py GatewayRead._mask_query_param_auth   20 0 0   100%
mcpgateway / schemas.py GatewayRead._populate_auth   38 0 0   100%
mcpgateway / schemas.py GatewayRead.masked   15 0 0   100%
mcpgateway / schemas.py RPCRequest.validate_method   6 0 0   100%
mcpgateway / schemas.py RPCRequest.validate_params   7 0 0   100%
mcpgateway / schemas.py EventMessage.serialize_timestamp   1 0 0   100%
mcpgateway / schemas.py AdminToolCreate.validate_json   6 0 0   100%
mcpgateway / schemas.py ServerCreate.validate_tags   1 0 0   100%
mcpgateway / schemas.py ServerCreate.validate_id   3 0 0   100%
mcpgateway / schemas.py ServerCreate.validate_name   1 0 0   100%
mcpgateway / schemas.py ServerCreate.validate_description   7 0 0   100%
mcpgateway / schemas.py ServerCreate.validate_icon   3 0 0   100%
mcpgateway / schemas.py ServerCreate.split_comma_separated   3 0 0   100%
mcpgateway / schemas.py ServerCreate.validate_visibility   3 0 0   100%
mcpgateway / schemas.py ServerCreate.validate_team_id   3 1 0   67%
mcpgateway / schemas.py ServerUpdate.validate_tags   1 0 0   100%
mcpgateway / schemas.py ServerUpdate.validate_id   3 0 0   100%
mcpgateway / schemas.py ServerUpdate.validate_name   1 0 0   100%
mcpgateway / schemas.py ServerUpdate.validate_description   7 0 0   100%
mcpgateway / schemas.py ServerUpdate.validate_icon   3 0 0   100%
mcpgateway / schemas.py ServerUpdate.split_comma_separated   3 0 0   100%
mcpgateway / schemas.py ServerRead.populate_associated_ids   15 0 0   100%
mcpgateway / schemas.py ServerRead.masked   4 0 0   100%
mcpgateway / schemas.py A2AAgentCreate.validate_tags   1 0 0   100%
mcpgateway / schemas.py A2AAgentCreate.validate_name   1 0 0   100%
mcpgateway / schemas.py A2AAgentCreate.validate_endpoint_url   1 0 0   100%
mcpgateway / schemas.py A2AAgentCreate.validate_description   7 0 0   100%
mcpgateway / schemas.py A2AAgentCreate.validate_json_fields   2 0 0   100%
mcpgateway / schemas.py A2AAgentCreate.validate_visibility   3 0 0   100%
mcpgateway / schemas.py A2AAgentCreate.validate_team_id   3 0 0   100%
mcpgateway / schemas.py A2AAgentCreate.create_auth_value   6 0 0   100%
mcpgateway / schemas.py A2AAgentCreate._process_auth_fields   50 0 0   100%
mcpgateway / schemas.py A2AAgentCreate.validate_query_param_auth   16 0 0   100%
mcpgateway / schemas.py A2AAgentUpdate.validate_tags   3 0 0   100%
mcpgateway / schemas.py A2AAgentUpdate.validate_name   1 0 0   100%
mcpgateway / schemas.py A2AAgentUpdate.validate_endpoint_url   1 0 0   100%
mcpgateway / schemas.py A2AAgentUpdate.validate_description   7 0 0   100%
mcpgateway / schemas.py A2AAgentUpdate.validate_json_fields   4 0 0   100%
mcpgateway / schemas.py A2AAgentUpdate.validate_visibility   3 0 0   100%
mcpgateway / schemas.py A2AAgentUpdate.validate_team_id   3 0 0   100%
mcpgateway / schemas.py A2AAgentUpdate.create_auth_value   6 0 0   100%
mcpgateway / schemas.py A2AAgentUpdate._process_auth_fields   50 0 0   100%
mcpgateway / schemas.py A2AAgentUpdate.validate_query_param_auth   6 0 0   100%
mcpgateway / schemas.py A2AAgentRead._mask_query_param_auth   20 0 0   100%
mcpgateway / schemas.py A2AAgentRead._populate_auth   33 0 0   100%
mcpgateway / schemas.py A2AAgentRead.masked   9 0 0   100%
mcpgateway / schemas.py A2AAgentInvocation.validate_agent_name   1 0 0   100%
mcpgateway / schemas.py A2AAgentInvocation.validate_parameters   2 0 0   100%
mcpgateway / schemas.py ChangePasswordRequest.validate_new_password   3 0 0   100%
mcpgateway / schemas.py ResetPasswordRequest.validate_password_match   3 0 0   100%
mcpgateway / schemas.py EmailUserResponse.from_email_user   9 0 0   100%
mcpgateway / schemas.py TeamCreateRequest.validate_name   9 0 0   100%
mcpgateway / schemas.py TeamCreateRequest.validate_description   7 0 0   100%
mcpgateway / schemas.py TeamCreateRequest.validate_slug   8 0 0   100%
mcpgateway / schemas.py TeamUpdateRequest.validate_name   11 0 0   100%
mcpgateway / schemas.py TeamUpdateRequest.validate_description   7 0 0   100%
mcpgateway / schemas.py TokenScopeRequest.validate_ip_restrictions   16 0 0   100%
mcpgateway / schemas.py TokenScopeRequest.validate_permissions   15 0 0   100%
mcpgateway / schemas.py GrpcServiceCreate.validate_name   1 0 0   100%
mcpgateway / schemas.py GrpcServiceCreate.validate_target   3 0 0   100%
mcpgateway / schemas.py GrpcServiceCreate.validate_description   7 0 0   100%
mcpgateway / schemas.py GrpcServiceUpdate.validate_name   3 0 0   100%
mcpgateway / schemas.py GrpcServiceUpdate.validate_target   5 1 0   80%
mcpgateway / schemas.py GrpcServiceUpdate.validate_description   7 0 0   100%
mcpgateway / schemas.py (no function)   1828 0 0   100%
mcpgateway / scripts / validate_env.py get_security_warnings   43 0 0   100%
mcpgateway / scripts / validate_env.py main   16 0 0   100%
mcpgateway / scripts / validate_env.py (no function)   9 0 3   100%
mcpgateway / services / __init__.py (no function)   5 0 0   100%
mcpgateway / services / a2a_service.py _get_registry_cache   4 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentNameConflictError.__init__   7 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.__init__   2 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.initialize   3 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.shutdown   3 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService._get_team_name   5 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService._batch_get_team_names   4 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService._check_agent_access   14 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.register_agent   83 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.list_agents   42 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.list_agents_for_user   37 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.get_agent   9 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.get_agent_by_name   5 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.update_agent   131 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.set_agent_state   21 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.delete_agent   29 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.invoke_agent   93 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.aggregate_metrics   17 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.reset_metrics   9 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService._prepare_a2a_agent_for_read   3 0 0   100%
mcpgateway / services / a2a_service.py A2AAgentService.convert_agent_to_read   31 0 0   100%
mcpgateway / services / a2a_service.py (no function)   52 0 0   100%
mcpgateway / services / argon2_service.py Argon2PasswordService.__init__   5 0 0   100%
mcpgateway / services / argon2_service.py Argon2PasswordService.hash_password   9 0 0   100%
mcpgateway / services / argon2_service.py Argon2PasswordService.verify_password   15 0 0   100%
mcpgateway / services / argon2_service.py Argon2PasswordService.hash_password_async   1 0 0   100%
mcpgateway / services / argon2_service.py Argon2PasswordService.verify_password_async   1 0 0   100%
mcpgateway / services / argon2_service.py Argon2PasswordService.needs_rehash   10 0 0   100%
mcpgateway / services / argon2_service.py Argon2PasswordService.get_hash_info   23 0 0   100%
mcpgateway / services / argon2_service.py Argon2PasswordService.__repr__   0 0 6   100%
mcpgateway / services / argon2_service.py hash_password   1 0 0   100%
mcpgateway / services / argon2_service.py verify_password   1 0 0   100%
mcpgateway / services / argon2_service.py hash_password_async   1 0 0   100%
mcpgateway / services / argon2_service.py verify_password_async   1 0 0   100%
mcpgateway / services / argon2_service.py needs_rehash   1 0 0   100%
mcpgateway / services / argon2_service.py (no function)   22 0 1   100%
mcpgateway / services / audit_trail_service.py AuditTrailService.__init__   0 0 0   100%
mcpgateway / services / audit_trail_service.py AuditTrailService.log_action   28 0 0   100%
mcpgateway / services / audit_trail_service.py AuditTrailService._determine_requires_review   8 0 0   100%
mcpgateway / services / audit_trail_service.py AuditTrailService.log_crud_operation   19 0 0   100%
mcpgateway / services / audit_trail_service.py AuditTrailService.log_data_access   2 0 0   100%
mcpgateway / services / audit_trail_service.py AuditTrailService.log_audit   4 0 0   100%
mcpgateway / services / audit_trail_service.py AuditTrailService.get_audit_trail   25 0 0   100%
mcpgateway / services / audit_trail_service.py get_audit_trail_service   3 0 0   100%
mcpgateway / services / audit_trail_service.py (no function)   35 0 0   100%
mcpgateway / services / base_service.py BaseService.__init_subclass__   3 0 0   100%
mcpgateway / services / base_service.py BaseService._apply_access_control   11 0 0   100%
mcpgateway / services / base_service.py BaseService._apply_visibility_filter   14 0 0   100%
mcpgateway / services / base_service.py (no function)   10 0 0   100%
mcpgateway / services / cancellation_service.py CancellationService.__init__   5 0 0   100%
mcpgateway / services / cancellation_service.py CancellationService.initialize   10 0 0   100%
mcpgateway / services / cancellation_service.py CancellationService.shutdown   7 0 0   100%
mcpgateway / services / cancellation_service.py CancellationService._listen_for_cancellations   42 0 0   100%
mcpgateway / services / cancellation_service.py CancellationService._cancel_run_local   18 0 0   100%
mcpgateway / services / cancellation_service.py CancellationService.register_run   3 0 0   100%
mcpgateway / services / cancellation_service.py CancellationService.unregister_run   4 0 0   100%
mcpgateway / services / cancellation_service.py CancellationService.cancel_run   26 0 0   100%
mcpgateway / services / cancellation_service.py CancellationService._publish_cancellation   8 0 0   100%
mcpgateway / services / cancellation_service.py CancellationService.get_status   2 0 0   100%
mcpgateway / services / cancellation_service.py CancellationService.is_registered   2 0 0   100%
mcpgateway / services / cancellation_service.py (no function)   23 0 0   100%
mcpgateway / services / catalog_service.py CatalogService.__init__   3 0 0   100%
mcpgateway / services / catalog_service.py CatalogService.load_catalog   20 0 0   100%
mcpgateway / services / catalog_service.py CatalogService._get_registry_cache   5 0 0   100%
mcpgateway / services / catalog_service.py CatalogService.get_catalog_servers   64 0 0   100%
mcpgateway / services / catalog_service.py CatalogService.register_catalog_server   107 0 0   100%
mcpgateway / services / catalog_service.py CatalogService.check_server_availability   27 0 0   100%
mcpgateway / services / catalog_service.py CatalogService.bulk_register_servers   15 0 0   100%
mcpgateway / services / catalog_service.py (no function)   24 0 0   100%
mcpgateway / services / completion_service.py CompletionService.__init__   1 0 0   100%
mcpgateway / services / completion_service.py CompletionService.initialize   1 0 0   100%
mcpgateway / services / completion_service.py CompletionService.shutdown   2 0 0   100%
mcpgateway / services / completion_service.py CompletionService.handle_completion   17 0 0   100%
mcpgateway / services / completion_service.py CompletionService._resolve_team_ids   8 0 0   100%
mcpgateway / services / completion_service.py CompletionService._apply_visibility_scope   9 0 0   100%
mcpgateway / services / completion_service.py CompletionService._complete_prompt_argument   24 0 0   100%
mcpgateway / services / completion_service.py CompletionService._complete_resource_uri   12 0 0   100%
mcpgateway / services / completion_service.py CompletionService.register_completions   1 0 0   100%
mcpgateway / services / completion_service.py CompletionService.unregister_completions   1 0 0   100%
mcpgateway / services / completion_service.py (no function)   21 0 0   100%
mcpgateway / services / dcr_service.py DcrService.__init__   1 0 0   100%
mcpgateway / services / dcr_service.py DcrService._get_client   1 1 0   0%
mcpgateway / services / dcr_service.py DcrService._get_timeout   1 0 0   100%
mcpgateway / services / dcr_service.py DcrService.discover_as_metadata   40 3 0   92%
mcpgateway / services / dcr_service.py DcrService.register_client   44 2 0   95%
mcpgateway / services / dcr_service.py DcrService.get_or_register_client   9 0 0   100%
mcpgateway / services / dcr_service.py DcrService.update_client_registration   25 6 0   76%
mcpgateway / services / dcr_service.py DcrService.delete_client_registration   23 0 0   100%
mcpgateway / services / dcr_service.py (no function)   23 0 0   100%
mcpgateway / services / elicitation_service.py ElicitationService.__init__   6 0 0   100%
mcpgateway / services / elicitation_service.py ElicitationService.start   3 0 0   100%
mcpgateway / services / elicitation_service.py ElicitationService.shutdown   13 0 0   100%
mcpgateway / services / elicitation_service.py ElicitationService.create_elicitation   18 0 0   100%
mcpgateway / services / elicitation_service.py ElicitationService.complete_elicitation   10 0 0   100%
mcpgateway / services / elicitation_service.py ElicitationService.get_pending_elicitation   1 0 0   100%
mcpgateway / services / elicitation_service.py ElicitationService.get_pending_count   1 0 0   100%
mcpgateway / services / elicitation_service.py ElicitationService.get_pending_for_session   1 0 0   100%
mcpgateway / services / elicitation_service.py ElicitationService._cleanup_loop   9 3 0   67%
mcpgateway / services / elicitation_service.py ElicitationService._cleanup_expired   12 0 0   100%
mcpgateway / services / elicitation_service.py ElicitationService._validate_schema   22 1 0   95%
mcpgateway / services / elicitation_service.py get_elicitation_service   3 0 0   100%
mcpgateway / services / elicitation_service.py set_elicitation_service   1 0 0   100%
mcpgateway / services / elicitation_service.py (no function)   33 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.__init__   5 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.role_service   4 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.validate_email   8 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.validate_password   20 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService._hash_reset_token   1 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService._minimum_reset_response_seconds   2 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService._minimum_login_failure_seconds   2 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService._apply_failed_login_floor   3 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService._verify_dummy_password_for_timing   4 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService._build_forgot_password_url   3 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService._build_reset_password_url   4 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService._invalidate_user_auth_cache   7 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService._log_auth_event   7 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService._recent_password_reset_request_count   5 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.get_user_by_email   8 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.create_user   64 1 0   98%
mcpgateway / services / email_auth_service.py EmailAuthService.authenticate_user   53 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.request_password_reset   38 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.validate_password_reset_token   26 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.reset_password_with_token   30 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.unlock_user_account   10 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.change_password   32 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.create_platform_admin   18 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.update_last_login   4 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService._escape_like   1 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.list_users   45 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.list_users_not_in_team   41 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.get_all_users   8 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.count_users   7 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.get_auth_events   11 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.update_user   67 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.activate_user   15 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.deactivate_user   15 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.delete_user   61 2 0   97%
mcpgateway / services / email_auth_service.py EmailAuthService.count_active_admin_users   3 0 0   100%
mcpgateway / services / email_auth_service.py EmailAuthService.is_last_active_admin   7 0 0   100%
mcpgateway / services / email_auth_service.py (no function)   88 0 0   100%
mcpgateway / services / email_notification_service.py AuthEmailNotificationService.__init__   2 0 0   100%
mcpgateway / services / email_notification_service.py AuthEmailNotificationService._smtp_password   6 0 0   100%
mcpgateway / services / email_notification_service.py AuthEmailNotificationService._smtp_ready   1 0 0   100%
mcpgateway / services / email_notification_service.py AuthEmailNotificationService._render_template   10 0 0   100%
mcpgateway / services / email_notification_service.py AuthEmailNotificationService._html_to_text   3 0 0   100%
mcpgateway / services / email_notification_service.py AuthEmailNotificationService._send_email   4 0 0   100%
mcpgateway / services / email_notification_service.py AuthEmailNotificationService._send_email_sync   34 0 0   100%
mcpgateway / services / email_notification_service.py AuthEmailNotificationService.send_password_reset_email   4 0 0   100%
mcpgateway / services / email_notification_service.py AuthEmailNotificationService.send_password_reset_confirmation_email   4 0 0   100%
mcpgateway / services / email_notification_service.py AuthEmailNotificationService.send_account_lockout_email   4 0 0   100%
mcpgateway / services / email_notification_service.py (no function)   28 0 0   100%
mcpgateway / services / encryption_service.py EncryptionService.__init__   8 0 0   100%
mcpgateway / services / encryption_service.py EncryptionService.derive_key_argon2id   2 0 0   100%
mcpgateway / services / encryption_service.py EncryptionService.encrypt_secret   13 0 0   100%
mcpgateway / services / encryption_service.py EncryptionService.encrypt_secret_async   1 0 0   100%
mcpgateway / services / encryption_service.py EncryptionService.decrypt_secret   3 0 0   100%
mcpgateway / services / encryption_service.py EncryptionService.decrypt_secret_strict_async   1 0 0   100%
mcpgateway / services / encryption_service.py EncryptionService.decrypt_secret_async   1 0 0   100%
mcpgateway / services / encryption_service.py EncryptionService.decrypt_secret_or_plaintext   11 0 0   100%
mcpgateway / services / encryption_service.py EncryptionService.decrypt_secret_or_plaintext_async   1 0 0   100%
mcpgateway / services / encryption_service.py EncryptionService._decrypt_bundle   19 2 0   89%
mcpgateway / services / encryption_service.py EncryptionService.is_encrypted   7 0 0   100%
mcpgateway / services / encryption_service.py EncryptionService._is_valid_v2_bundle   10 0 0   100%
mcpgateway / services / encryption_service.py EncryptionService._is_valid_json_bundle   12 0 0   100%
mcpgateway / services / encryption_service.py EncryptionService._is_valid_fernet_format   5 0 0   100%
mcpgateway / services / encryption_service.py get_encryption_service   1 0 0   100%
mcpgateway / services / encryption_service.py _encrypt_oauth_secret_value   20 0 0   100%
mcpgateway / services / encryption_service.py _protect_oauth_config_value   17 0 0   100%
mcpgateway / services / encryption_service.py protect_oauth_config_for_storage   4 0 0   100%
mcpgateway / services / encryption_service.py _decrypt_oauth_config_value   13 0 0   100%
mcpgateway / services / encryption_service.py decrypt_oauth_config_for_runtime   4 0 0   100%
mcpgateway / services / encryption_service.py (no function)   38 0 0   100%
mcpgateway / services / event_service.py EventService.__init__   4 0 0   100%
mcpgateway / services / event_service.py EventService.initialize   8 0 0   100%
mcpgateway / services / event_service.py EventService.publish_event   9 0 0   100%
mcpgateway / services / event_service.py EventService.subscribe_events   48 0 0   100%
mcpgateway / services / event_service.py EventService.event_generator   6 0 0   100%
mcpgateway / services / event_service.py EventService.shutdown   2 0 0   100%
mcpgateway / services / event_service.py (no function)   22 0 0   100%
mcpgateway / services / export_service.py ExportService.__init__   12 0 0   100%
mcpgateway / services / export_service.py ExportService.initialize   1 0 0   100%
mcpgateway / services / export_service.py ExportService.shutdown   1 0 0   100%
mcpgateway / services / export_service.py ExportService._fetch_all_tools   9 0 0   100%
mcpgateway / services / export_service.py ExportService._fetch_all_prompts   9 0 0   100%
mcpgateway / services / export_service.py ExportService._fetch_all_resources   9 0 0   100%
mcpgateway / services / export_service.py ExportService._fetch_all_gateways   9 0 0   100%
mcpgateway / services / export_service.py ExportService._fetch_all_servers   9 0 0   100%
mcpgateway / services / export_service.py ExportService.export_configuration   50 0 0   100%
mcpgateway / services / export_service.py ExportService._export_tools   23 0 0   100%
mcpgateway / services / export_service.py ExportService._export_gateways   20 0 0   100%
mcpgateway / services / export_service.py ExportService._export_servers   6 0 0   100%
mcpgateway / services / export_service.py ExportService._export_prompts   16 0 0   100%
mcpgateway / services / export_service.py ExportService._export_resources   6 0 0   100%
mcpgateway / services / export_service.py ExportService._export_roots   6 0 0   100%
mcpgateway / services / export_service.py ExportService._extract_dependencies   6 0 0   100%
mcpgateway / services / export_service.py ExportService._validate_export_data   12 0 0   100%
mcpgateway / services / export_service.py ExportService.export_selective   40 0 0   100%
mcpgateway / services / export_service.py ExportService._is_scoped_selective_export   1 0 0   100%
mcpgateway / services / export_service.py ExportService._export_selected_tools   22 0 0   100%
mcpgateway / services / export_service.py ExportService._export_selected_gateways   24 0 0   100%
mcpgateway / services / export_service.py ExportService._export_selected_servers   18 0 0   100%
mcpgateway / services / export_service.py ExportService._export_selected_prompts   28 0 0   100%
mcpgateway / services / export_service.py ExportService._export_selected_resources   17 0 0   100%
mcpgateway / services / export_service.py ExportService._export_selected_roots   2 0 0   100%
mcpgateway / services / export_service.py (no function)   42 0 0   100%
mcpgateway / services / gateway_service.py _get_registry_cache   4 0 0   100%
mcpgateway / services / gateway_service.py _get_tool_lookup_cache   4 0 0   100%
mcpgateway / services / gateway_service.py GatewayNameConflictError.__init__   10 0 0   100%
mcpgateway / services / gateway_service.py GatewayDuplicateConflictError.__init__   17 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.__init__   44 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.normalize_url   9 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.create_ssl_context   1 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.initialize   16 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.shutdown   24 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._check_gateway_uniqueness   32 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.register_gateway   193 4 14   98%
mcpgateway / services / gateway_service.py GatewayService.fetch_tools_after_oauth   115 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.list_gateways   38 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.list_gateways_for_user   30 1 0   97%
mcpgateway / services / gateway_service.py GatewayService.update_gateway   295 45 0   85%
mcpgateway / services / gateway_service.py GatewayService.get_gateway   7 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.set_gateway_state   153 23 0   85%
mcpgateway / services / gateway_service.py GatewayService._notify_gateway_updated   2 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.delete_gateway   60 1 0   98%
mcpgateway / services / gateway_service.py GatewayService._handle_gateway_failure   14 4 0   71%
mcpgateway / services / gateway_service.py GatewayService.check_health_of_gateways   19 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.check_health_of_gateways.limited_check   6 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._check_single_gateway_health   148 6 0   96%
mcpgateway / services / gateway_service.py GatewayService._check_single_gateway_health.get_httpx_client_factory   1 1 0   0%
mcpgateway / services / gateway_service.py GatewayService.aggregate_capabilities   10 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.subscribe_events   2 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._initialize_gateway   41 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._get_gateways   4 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.get_first_gateway_by_url   9 1 0   89%
mcpgateway / services / gateway_service.py GatewayService._run_leader_heartbeat   13 1 0   92%
mcpgateway / services / gateway_service.py GatewayService._run_health_checks   40 16 0   60%
mcpgateway / services / gateway_service.py GatewayService._get_auth_headers   1 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._notify_gateway_added   2 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._notify_gateway_activated   2 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._notify_gateway_deactivated   2 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._notify_gateway_offline   2 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._notify_gateway_deleted   2 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._notify_gateway_removed   2 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.convert_gateway_to_read   16 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._prepare_gateway_for_read   6 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._create_db_tool   1 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._update_or_create_tools   52 1 0   98%
mcpgateway / services / gateway_service.py GatewayService._update_or_create_resources   33 1 0   97%
mcpgateway / services / gateway_service.py GatewayService._update_or_create_prompts   32 1 0   97%
mcpgateway / services / gateway_service.py GatewayService._refresh_gateway_tools_resources_prompts   147 18 0   88%
mcpgateway / services / gateway_service.py GatewayService._get_refresh_lock   3 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.refresh_gateway_manually   21 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._publish_event   1 0 0   100%
mcpgateway / services / gateway_service.py GatewayService._validate_tools   31 0 4   100%
mcpgateway / services / gateway_service.py GatewayService._connect_to_sse_server_without_validation   72 2 0   97%
mcpgateway / services / gateway_service.py GatewayService.connect_to_sse_server   71 2 0   97%
mcpgateway / services / gateway_service.py GatewayService.connect_to_sse_server.get_httpx_client_factory   4 0 0   100%
mcpgateway / services / gateway_service.py GatewayService.connect_to_streamablehttp_server   70 7 0   90%
mcpgateway / services / gateway_service.py GatewayService.connect_to_streamablehttp_server.get_httpx_client_factory   4 1 0   75%
mcpgateway / services / gateway_service.py __getattr__   5 0 0   100%
mcpgateway / services / gateway_service.py (no function)   131 3 0   98%
mcpgateway / services / grpc_service.py _validate_grpc_target   39 0 0   100%
mcpgateway / services / grpc_service.py _validate_tls_path   5 0 0   100%
mcpgateway / services / grpc_service.py GrpcServiceNameConflictError.__init__   9 0 0   100%
mcpgateway / services / grpc_service.py GrpcService.__init__   0 0 0   100%
mcpgateway / services / grpc_service.py GrpcService.register_service   19 0 0   100%
mcpgateway / services / grpc_service.py GrpcService.list_services   31 0 0   100%
mcpgateway / services / grpc_service.py GrpcService.get_service   10 0 0   100%
mcpgateway / services / grpc_service.py GrpcService.update_service   21 0 0   100%
mcpgateway / services / grpc_service.py GrpcService.set_service_state   10 1 0   90%
mcpgateway / services / grpc_service.py GrpcService.delete_service   6 0 0   100%
mcpgateway / services / grpc_service.py GrpcService.reflect_service   12 0 0   100%
mcpgateway / services / grpc_service.py GrpcService.get_service_methods   9 0 0   100%
mcpgateway / services / grpc_service.py GrpcService._perform_reflection   64 0 0   100%
mcpgateway / services / grpc_service.py GrpcService.invoke_method   27 0 0   100%
mcpgateway / services / grpc_service.py (no function)   43 5 0   88%
mcpgateway / services / http_client_service.py SharedHttpClient.__init__   3 0 0   100%
mcpgateway / services / http_client_service.py SharedHttpClient.get_instance   7 0 0   100%
mcpgateway / services / http_client_service.py SharedHttpClient._initialize   6 0 0   100%
mcpgateway / services / http_client_service.py SharedHttpClient.client   3 0 0   100%
mcpgateway / services / http_client_service.py SharedHttpClient.get_pool_stats   5 0 0   100%
mcpgateway / services / http_client_service.py SharedHttpClient.close   6 0 0   100%
mcpgateway / services / http_client_service.py SharedHttpClient.shutdown   3 0 0   100%
mcpgateway / services / http_client_service.py get_http_client   2 0 0   100%
mcpgateway / services / http_client_service.py get_http_limits   2 0 0   100%
mcpgateway / services / http_client_service.py get_http_timeout   2 0 0   100%
mcpgateway / services / http_client_service.py get_admin_timeout   2 0 0   100%
mcpgateway / services / http_client_service.py get_default_verify   2 0 0   100%
mcpgateway / services / http_client_service.py get_isolated_http_client   6 0 0   100%
mcpgateway / services / http_client_service.py (no function)   28 0 0   100%
mcpgateway / services / import_service.py ImportStatus.__init__   12 0 0   100%
mcpgateway / services / import_service.py ImportStatus.to_dict   1 0 0   100%
mcpgateway / services / import_service.py ImportService.__init__   13 0 0   100%
mcpgateway / services / import_service.py ImportService.initialize   1 0 0   100%
mcpgateway / services / import_service.py ImportService.shutdown   1 0 0   100%
mcpgateway / services / import_service.py ImportService.validate_import_data   21 0 0   100%
mcpgateway / services / import_service.py ImportService._validate_entity_fields   5 0 0   100%
mcpgateway / services / import_service.py ImportService.import_configuration   27 0 0   100%
mcpgateway / services / import_service.py ImportService._get_entity_identifier   7 0 0   100%
mcpgateway / services / import_service.py ImportService._calculate_total_entities   13 0 0   100%
mcpgateway / services / import_service.py ImportService._process_entities   30 0 0   100%
mcpgateway / services / import_service.py ImportService._has_auth_data   1 0 0   100%
mcpgateway / services / import_service.py ImportService._sanitize_import_scope_fields   9 0 0   100%
mcpgateway / services / import_service.py ImportService._rekey_auth_data   11 0 0   100%
mcpgateway / services / import_service.py ImportService._process_single_entity   15 0 0   100%
mcpgateway / services / import_service.py ImportService._process_tool   39 0 0   100%
mcpgateway / services / import_service.py ImportService._process_gateway   39 0 0   100%
mcpgateway / services / import_service.py ImportService._process_server   39 0 0   100%
mcpgateway / services / import_service.py ImportService._process_prompt   29 0 0   100%
mcpgateway / services / import_service.py ImportService._process_resource   29 0 0   100%
mcpgateway / services / import_service.py ImportService._process_tools_bulk   40 0 0   100%
mcpgateway / services / import_service.py ImportService._process_resources_bulk   29 0 0   100%
mcpgateway / services / import_service.py ImportService._process_prompts_bulk   29 0 0   100%
mcpgateway / services / import_service.py ImportService._process_root   15 0 0   100%
mcpgateway / services / import_service.py ImportService._convert_to_tool_create   4 0 0   100%
mcpgateway / services / import_service.py ImportService._convert_to_tool_update   4 0 0   100%
mcpgateway / services / import_service.py ImportService._convert_to_gateway_create   38 0 0   100%
mcpgateway / services / import_service.py ImportService._convert_to_gateway_update   38 0 0   100%
mcpgateway / services / import_service.py ImportService._convert_to_server_create   16 0 0   100%
mcpgateway / services / import_service.py ImportService._convert_to_server_update   14 0 0   100%
mcpgateway / services / import_service.py ImportService._convert_to_prompt_create   9 0 0   100%
mcpgateway / services / import_service.py ImportService._convert_to_prompt_update   9 0 0   100%
mcpgateway / services / import_service.py ImportService._convert_to_resource_create   1 0 0   100%
mcpgateway / services / import_service.py ImportService._convert_to_resource_update   1 0 0   100%
mcpgateway / services / import_service.py ImportService.get_import_status   1 0 0   100%
mcpgateway / services / import_service.py ImportService.list_import_statuses   1 0 0   100%
mcpgateway / services / import_service.py ImportService.cleanup_completed_imports   10 0 0   100%
mcpgateway / services / import_service.py ImportService.preview_import   14 0 0   100%
mcpgateway / services / import_service.py ImportService._analyze_import_item   24 0 0   100%
mcpgateway / services / import_service.py ImportService._find_gateway_bundles   16 0 0   100%
mcpgateway / services / import_service.py ImportService._find_server_dependencies   9 0 0   100%
mcpgateway / services / import_service.py ImportService._detect_import_conflicts   25 0 0   100%
mcpgateway / services / import_service.py ImportService._get_user_context   13 0 0   100%
mcpgateway / services / import_service.py ImportService._add_multitenancy_context   11 0 0   100%
mcpgateway / services / import_service.py ImportService._assign_imported_items_to_team   49 0 0   100%
mcpgateway / services / import_service.py (no function)   71 0 0   100%
mcpgateway / services / llm_provider_service.py _normalize_provider_config_key   3 0 0   100%
mcpgateway / services / llm_provider_service.py _build_sensitive_provider_config_keys   7 0 0   100%
mcpgateway / services / llm_provider_service.py _is_sensitive_provider_config_key   1 0 0   100%
mcpgateway / services / llm_provider_service.py _is_encrypted_provider_config_value   1 0 0   100%
mcpgateway / services / llm_provider_service.py _encrypt_provider_config_secret   12 0 0   100%
mcpgateway / services / llm_provider_service.py _protect_provider_config_fragment   13 0 0   100%
mcpgateway / services / llm_provider_service.py protect_provider_config_for_storage   3 0 0   100%
mcpgateway / services / llm_provider_service.py _decrypt_provider_config_fragment   17 0 0   100%
mcpgateway / services / llm_provider_service.py decrypt_provider_config_for_runtime   3 0 0   100%
mcpgateway / services / llm_provider_service.py _mask_provider_config_fragment   10 0 0   100%
mcpgateway / services / llm_provider_service.py sanitize_provider_config_for_response   2 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderNameConflictError.__init__   6 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.__init__   1 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService._validate_provider_api_base   5 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.initialize   3 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.shutdown   3 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.create_provider   18 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.get_provider   4 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.get_provider_by_slug   4 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.list_providers   11 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.update_provider   40 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.delete_provider   6 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.set_provider_state   8 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.create_model   15 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.get_model   4 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.list_models   15 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.update_model   29 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.delete_model   6 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.set_model_state   8 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.get_gateway_models   6 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.check_provider_health   55 3 0   95%
mcpgateway / services / llm_provider_service.py LLMProviderService.to_provider_response   1 0 0   100%
mcpgateway / services / llm_provider_service.py LLMProviderService.to_model_response   1 0 0   100%
mcpgateway / services / llm_provider_service.py (no function)   63 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService.__init__   2 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService.initialize   4 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService.shutdown   5 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService._resolve_model   15 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService._get_api_key   8 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService._build_openai_request   30 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService._build_azure_request   22 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService._build_anthropic_request   22 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService._build_ollama_request   25 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService.chat_completion   33 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService.chat_completion_stream   60 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService._transform_openai_response   7 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService._transform_anthropic_response   6 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService._transform_ollama_response   2 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService._transform_anthropic_stream_chunk   10 0 0   100%
mcpgateway / services / llm_proxy_service.py LLMProxyService._transform_ollama_stream_chunk   6 0 0   100%
mcpgateway / services / llm_proxy_service.py (no function)   36 0 0   100%
mcpgateway / services / log_aggregator.py _is_postgresql   1 0 0   100%
mcpgateway / services / log_aggregator.py LogAggregator.__init__   3 0 0   100%
mcpgateway / services / log_aggregator.py LogAggregator.aggregate_performance_metrics   36 0 0   100%
mcpgateway / services / log_aggregator.py LogAggregator.aggregate_all_components_batch   88 0 0   100%
mcpgateway / services / log_aggregator.py LogAggregator.aggregate_all_components_batch._align_to_window_local   4 0 0   100%
mcpgateway / services / log_aggregator.py LogAggregator.aggregate_all_components   25 1 0   96%
mcpgateway / services / log_aggregator.py LogAggregator.get_recent_metrics   22 0 0   100%
mcpgateway / services / log_aggregator.py LogAggregator.get_degradation_alerts   30 4 0   87%
mcpgateway / services / log_aggregator.py LogAggregator.backfill   28 4 0   86%
mcpgateway / services / log_aggregator.py LogAggregator._percentile   12 0 0   100%
mcpgateway / services / log_aggregator.py LogAggregator._calculate_error_count   2 0 0   100%
mcpgateway / services / log_aggregator.py LogAggregator._compute_stats_postgresql   12 0 0   100%
mcpgateway / services / log_aggregator.py LogAggregator._compute_stats_python   16 0 0   100%
mcpgateway / services / log_aggregator.py LogAggregator._resolve_window_bounds   21 1 0   95%
mcpgateway / services / log_aggregator.py LogAggregator._upsert_metric   23 0 0   100%
mcpgateway / services / log_aggregator.py get_log_aggregator   3 0 0   100%
mcpgateway / services / log_aggregator.py (no function)   29 0 0   100%
mcpgateway / services / log_storage_service.py LogEntry.__init__   20 0 0   100%
mcpgateway / services / log_storage_service.py LogEntry.to_dict   1 0 0   100%
mcpgateway / services / log_storage_service.py LogStorageService.__init__   6 0 0   100%
mcpgateway / services / log_storage_service.py LogStorageService.add_log   18 0 0   100%
mcpgateway / services / log_storage_service.py LogStorageService._remove_from_indices   16 0 0   100%
mcpgateway / services / log_storage_service.py LogStorageService._notify_subscribers   11 0 0   100%
mcpgateway / services / log_storage_service.py LogStorageService.get_logs   24 0 0   100%
mcpgateway / services / log_storage_service.py LogStorageService._meets_level_threshold   2 0 0   100%
mcpgateway / services / log_storage_service.py LogStorageService.subscribe   7 0 0   100%
mcpgateway / services / log_storage_service.py LogStorageService.get_stats   7 0 0   100%
mcpgateway / services / log_storage_service.py LogStorageService.clear   6 0 0   100%
mcpgateway / services / log_storage_service.py (no function)   36 0 0   100%
mcpgateway / services / logging_service.py CorrelationIdJsonFormatter.add_fields   19 0 0   100%
mcpgateway / services / logging_service.py _get_file_handler   13 0 0   100%
mcpgateway / services / logging_service.py _get_text_handler   4 0 0   100%
mcpgateway / services / logging_service.py StorageHandler.__init__   3 0 0   100%
mcpgateway / services / logging_service.py StorageHandler.emit   27 0 0   100%
mcpgateway / services / logging_service.py LoggingService.__init__   5 0 0   100%
mcpgateway / services / logging_service.py LoggingService.initialize   34 0 0   100%
mcpgateway / services / logging_service.py LoggingService.shutdown   6 0 0   100%
mcpgateway / services / logging_service.py LoggingService._install_closedresourceerror_filter   4 0 0   100%
mcpgateway / services / logging_service.py LoggingService._install_closedresourceerror_filter._SuppressClosedResourceErrorFilter.filter   17 0 0   100%
mcpgateway / services / logging_service.py LoggingService._install_httpx_url_sanitize_filter   5 0 0   100%
mcpgateway / services / logging_service.py LoggingService._install_httpx_url_sanitize_filter._HttpxUrlSanitizeFilter.filter   9 0 0   100%
mcpgateway / services / logging_service.py LoggingService.get_logger   5 0 0   100%
mcpgateway / services / logging_service.py LoggingService.set_level   8 0 0   100%
mcpgateway / services / logging_service.py LoggingService.notify   16 0 0   100%
mcpgateway / services / logging_service.py LoggingService.subscribe   7 0 0   100%
mcpgateway / services / logging_service.py LoggingService._should_log   1 0 0   100%
mcpgateway / services / logging_service.py LoggingService._configure_uvicorn_loggers   9 0 0   100%
mcpgateway / services / logging_service.py LoggingService.configure_uvicorn_after_startup   2 0 0   100%
mcpgateway / services / logging_service.py LoggingService.get_storage   1 0 0   100%
mcpgateway / services / logging_service.py (no function)   62 0 2   100%
mcpgateway / services / mcp_client_chat_service.py MCPServerConfig.add_auth_to_headers   8 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPServerConfig.validate_transport_requirements   8 0 0   100%
mcpgateway / services / mcp_client_chat_service.py LLMConfig.validate_config_type   17 0 0   100%
mcpgateway / services / mcp_client_chat_service.py AzureOpenAIProvider.__init__   3 0 0   100%
mcpgateway / services / mcp_client_chat_service.py AzureOpenAIProvider.get_llm   11 0 0   100%
mcpgateway / services / mcp_client_chat_service.py AzureOpenAIProvider.get_model_name   1 0 0   100%
mcpgateway / services / mcp_client_chat_service.py OllamaProvider.__init__   3 0 0   100%
mcpgateway / services / mcp_client_chat_service.py OllamaProvider.get_llm   14 0 0   100%
mcpgateway / services / mcp_client_chat_service.py OllamaProvider.get_model_name   1 0 0   100%
mcpgateway / services / mcp_client_chat_service.py OpenAIProvider.__init__   3 0 0   100%
mcpgateway / services / mcp_client_chat_service.py OpenAIProvider.get_llm   16 0 0   100%
mcpgateway / services / mcp_client_chat_service.py OpenAIProvider.get_model_name   1 0 0   100%
mcpgateway / services / mcp_client_chat_service.py AnthropicProvider.__init__   5 0 0   100%
mcpgateway / services / mcp_client_chat_service.py AnthropicProvider.get_llm   11 0 0   100%
mcpgateway / services / mcp_client_chat_service.py AnthropicProvider.get_model_name   1 0 0   100%
mcpgateway / services / mcp_client_chat_service.py AWSBedrockProvider.__init__   5 0 0   100%
mcpgateway / services / mcp_client_chat_service.py AWSBedrockProvider.get_llm   18 0 0   100%
mcpgateway / services / mcp_client_chat_service.py AWSBedrockProvider.get_model_name   1 0 0   100%
mcpgateway / services / mcp_client_chat_service.py WatsonxProvider.__init__   5 0 0   100%
mcpgateway / services / mcp_client_chat_service.py WatsonxProvider.get_llm   16 0 0   100%
mcpgateway / services / mcp_client_chat_service.py WatsonxProvider.get_model_name   1 0 0   100%
mcpgateway / services / mcp_client_chat_service.py GatewayProvider.__init__   5 0 0   100%
mcpgateway / services / mcp_client_chat_service.py GatewayProvider.get_llm   108 1 0   99%
mcpgateway / services / mcp_client_chat_service.py GatewayProvider.get_model_name   1 0 0   100%
mcpgateway / services / mcp_client_chat_service.py LLMProviderFactory.create   6 0 0   100%
mcpgateway / services / mcp_client_chat_service.py ChatHistoryManager.__init__   7 0 0   100%
mcpgateway / services / mcp_client_chat_service.py ChatHistoryManager._history_key   1 0 0   100%
mcpgateway / services / mcp_client_chat_service.py ChatHistoryManager.get_history   13 0 0   100%
mcpgateway / services / mcp_client_chat_service.py ChatHistoryManager.save_history   7 0 0   100%
mcpgateway / services / mcp_client_chat_service.py ChatHistoryManager.append_message   3 0 0   100%
mcpgateway / services / mcp_client_chat_service.py ChatHistoryManager.clear_history   6 0 0   100%
mcpgateway / services / mcp_client_chat_service.py ChatHistoryManager._trim_messages   3 0 0   100%
mcpgateway / services / mcp_client_chat_service.py ChatHistoryManager.get_langchain_messages   12 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPClient.__init__   5 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPClient.connect   23 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPClient.disconnect   12 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPClient.get_tools   13 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPClient.is_connected   1 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.__init__   9 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.initialize   15 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.chat   20 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.chat_with_metadata   12 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.chat_stream   28 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.chat_events   132 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.chat_events._extract_output   7 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.chat_events._cleanup_expired_pending   8 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.chat_events._noop_cancel_cb   1 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.get_conversation_history   3 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.clear_history   4 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.shutdown   11 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.is_initialized   1 0 0   100%
mcpgateway / services / mcp_client_chat_service.py MCPChatService.reload_tools   13 0 0   100%
mcpgateway / services / mcp_client_chat_service.py (no function)   206 0 0   100%
mcpgateway / services / mcp_session_pool.py _get_cleanup_timeout   4 0 0   100%
mcpgateway / services / mcp_session_pool.py PooledSession.age_seconds   1 0 0   100%
mcpgateway / services / mcp_session_pool.py PooledSession.idle_seconds   1 0 0   100%
mcpgateway / services / mcp_session_pool.py PooledSession.is_closed   1 0 0   100%
mcpgateway / services / mcp_session_pool.py PooledSession.mark_closed   1 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.__init__   43 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.__aenter__   1 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.__aexit__   1 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._compute_identity_hash   27 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._make_pool_key   6 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._get_or_create_lock   4 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._get_or_create_pool   6 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._is_circuit_open   8 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._record_failure   5 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._record_success   1 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.is_valid_mcp_session_id   3 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._sanitize_redis_key_component   3 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._session_mapping_redis_key   3 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._pool_owner_key   1 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.register_session_mapping   33 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.acquire   92 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.release   29 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._maybe_evict_idle_pool_keys   42 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._validate_session   8 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._run_health_check_chain   40 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._create_session   52 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._close_session   24 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._cleanup_pool_session_owner   13 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.close_all   25 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.register_pool_session_owner   16 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._get_pool_session_owner   16 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.forward_request_to_owner   43 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.start_rpc_listener   35 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._execute_forwarded_request   25 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool._execute_forwarded_http_request   33 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.get_streamable_http_session_owner   1 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.forward_streamable_http_to_owner   41 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.get_metrics   3 0 0   100%
mcpgateway / services / mcp_session_pool.py MCPSessionPool.session   4 0 0   100%
mcpgateway / services / mcp_session_pool.py get_mcp_session_pool   3 0 0   100%
mcpgateway / services / mcp_session_pool.py init_mcp_session_pool   10 0 0   100%
mcpgateway / services / mcp_session_pool.py init_mcp_session_pool.default_handler_factory   1 0 0   100%
mcpgateway / services / mcp_session_pool.py close_mcp_session_pool   9 0 0   100%
mcpgateway / services / mcp_session_pool.py start_pool_notification_service   7 0 0   100%
mcpgateway / services / mcp_session_pool.py register_gateway_capabilities_for_notifications   6 0 0   100%
mcpgateway / services / mcp_session_pool.py unregister_gateway_from_notifications   6 0 0   100%
mcpgateway / services / mcp_session_pool.py (no function)   103 0 2   100%
mcpgateway / services / metrics.py _get_registry_collector   4 1 0   75%
mcpgateway / services / metrics.py setup_metrics   63 8 0   87%
mcpgateway / services / metrics.py setup_metrics.update_http_pool_metrics   10 4 0   60%
mcpgateway / services / metrics.py setup_metrics.prometheus_metrics   12 0 0   100%
mcpgateway / services / metrics.py (no function)   13 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService.__init__   16 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService.start   10 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService.shutdown   10 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService.record_tool_metric   9 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService.record_resource_metric   9 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService.record_prompt_metric   9 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService.record_server_metric   9 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService.record_a2a_agent_metric   9 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService.record_a2a_agent_metric_with_duration   9 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService._flush_loop   15 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService._flush_all   19 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService._flush_to_db   20 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService._write_tool_metric_immediately   7 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService._write_resource_metric_immediately   7 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService._write_prompt_metric_immediately   7 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService._write_server_metric_immediately   7 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService._write_a2a_agent_metric_immediately   7 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService._write_a2a_agent_metric_with_duration_immediately   7 0 0   100%
mcpgateway / services / metrics_buffer_service.py MetricsBufferService.get_stats   3 0 0   100%
mcpgateway / services / metrics_buffer_service.py get_metrics_buffer_service   3 0 0   100%
mcpgateway / services / metrics_buffer_service.py (no function)   69 0 0   100%
mcpgateway / services / metrics_cleanup_service.py delete_metrics_in_batches   12 0 0   100%
mcpgateway / services / metrics_cleanup_service.py pause_rollup_during_purge   7 0 0   100%
mcpgateway / services / metrics_cleanup_service.py MetricsCleanupService.__init__   12 0 0   100%
mcpgateway / services / metrics_cleanup_service.py MetricsCleanupService.start   7 0 0   100%
mcpgateway / services / metrics_cleanup_service.py MetricsCleanupService.shutdown   9 0 0   100%
mcpgateway / services / metrics_cleanup_service.py MetricsCleanupService._cleanup_loop   20 0 0   100%
mcpgateway / services / metrics_cleanup_service.py MetricsCleanupService.cleanup_all   24 0 0   100%
mcpgateway / services / metrics_cleanup_service.py MetricsCleanupService._cleanup_table   28 0 0   100%
mcpgateway / services / metrics_cleanup_service.py MetricsCleanupService.cleanup_table   9 0 0   100%
mcpgateway / services / metrics_cleanup_service.py MetricsCleanupService.get_stats   1 0 0   100%
mcpgateway / services / metrics_cleanup_service.py MetricsCleanupService.get_table_sizes   3 0 0   100%
mcpgateway / services / metrics_cleanup_service.py MetricsCleanupService.get_table_sizes._get_sizes   6 0 0   100%
mcpgateway / services / metrics_cleanup_service.py get_metrics_cleanup_service   3 0 0   100%
mcpgateway / services / metrics_cleanup_service.py (no function)   44 0 0   100%
mcpgateway / services / metrics_query_service.py AggregatedMetrics.to_dict   1 0 0   100%
mcpgateway / services / metrics_query_service.py get_current_hour_start   2 0 0   100%
mcpgateway / services / metrics_query_service.py _merge_min   3 0 0   100%
mcpgateway / services / metrics_query_service.py _merge_max   3 0 0   100%
mcpgateway / services / metrics_query_service.py _merge_weighted_avg   10 0 0   100%
mcpgateway / services / metrics_query_service.py _merge_last_time   3 0 0   100%
mcpgateway / services / metrics_query_service.py get_retention_cutoff   9 0 0   100%
mcpgateway / services / metrics_query_service.py get_current_hour_aggregation   14 0 0   100%
mcpgateway / services / metrics_query_service.py aggregate_metrics_combined   47 0 0   100%
mcpgateway / services / metrics_query_service.py get_top_entities_combined   37 0 0   100%
mcpgateway / services / metrics_query_service.py get_top_performers_combined   2 0 0   100%
mcpgateway / services / metrics_query_service.py (no function)   41 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService.__init__   14 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService.pause   4 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService.resume   7 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService.pause_during   4 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService.start   7 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService.shutdown   9 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService._rollup_loop   35 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService._detect_backfill_hours   17 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService.rollup_all   20 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService._rollup_table   36 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService._aggregate_hour   59 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService._percentile   8 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService._upsert_rollup   46 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService._delete_raw_metrics   2 0 0   100%
mcpgateway / services / metrics_rollup_service.py MetricsRollupService.get_stats   1 0 0   100%
mcpgateway / services / metrics_rollup_service.py get_metrics_rollup_service   3 0 0   100%
mcpgateway / services / metrics_rollup_service.py get_metrics_rollup_service_if_initialized   1 0 0   100%
mcpgateway / services / metrics_rollup_service.py (no function)   72 0 0   100%
mcpgateway / services / notification_service.py _empty_notification_type_set   1 0 0   100%
mcpgateway / services / notification_service.py NotificationService.__init__   13 0 0   100%
mcpgateway / services / notification_service.py NotificationService.initialize   5 1 0   80%
mcpgateway / services / notification_service.py NotificationService.set_gateway_service   1 0 0   100%
mcpgateway / services / notification_service.py NotificationService.shutdown   12 0 0   100%
mcpgateway / services / notification_service.py NotificationService.register_gateway_capabilities   5 0 0   100%
mcpgateway / services / notification_service.py NotificationService.unregister_gateway   2 0 0   100%
mcpgateway / services / notification_service.py NotificationService.supports_list_changed   4 0 0   100%
mcpgateway / services / notification_service.py NotificationService.create_message_handler   2 0 0   100%
mcpgateway / services / notification_service.py NotificationService.create_message_handler.message_handler   4 0 0   100%
mcpgateway / services / notification_service.py NotificationService._handle_notification   14 0 0   100%
mcpgateway / services / notification_service.py NotificationService._enqueue_refresh   27 3 0   89%
mcpgateway / services / notification_service.py NotificationService._process_refresh_queue   15 4 0   73%
mcpgateway / services / notification_service.py NotificationService._execute_refresh   22 0 0   100%
mcpgateway / services / notification_service.py NotificationService.get_metrics   1 0 0   100%
mcpgateway / services / notification_service.py get_notification_service   3 0 0   100%
mcpgateway / services / notification_service.py init_notification_service   3 0 0   100%
mcpgateway / services / notification_service.py close_notification_service   4 0 0   100%
mcpgateway / services / notification_service.py (no function)   47 0 2   100%
mcpgateway / services / oauth_manager.py _get_redis_client   14 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager.__init__   4 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._get_client   1 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._generate_pkce_params   3 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager.get_access_token   9 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._prepare_runtime_credentials   9 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._client_credentials_flow   37 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._password_flow   45 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager.get_authorization_url   8 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager.exchange_code_for_token   37 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager.initiate_authorization_code_flow   7 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager.complete_authorization_code_flow   20 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager.get_access_token_for_user   3 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._generate_state   1 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._extract_legacy_state_payload   14 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager.resolve_gateway_id_from_state   41 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._store_authorization_state   47 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._validate_authorization_state   78 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._validate_and_retrieve_state   65 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._create_authorization_url   7 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._is_microsoft_entra_v2_endpoint   6 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._is_enabled_flag   5 1 0   80%
mcpgateway / services / oauth_manager.py OAuthManager._should_include_resource_parameter   8 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._create_authorization_url_with_pkce   13 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._exchange_code_for_tokens   49 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager.refresh_token   43 0 0   100%
mcpgateway / services / oauth_manager.py OAuthManager._extract_user_id   9 0 0   100%
mcpgateway / services / oauth_manager.py OAuthRequiredError.__init__   2 0 0   100%
mcpgateway / services / oauth_manager.py OAuthEnforcementUnavailableError.__init__   2 0 0   100%
mcpgateway / services / oauth_manager.py (no function)   60 0 0   100%
mcpgateway / services / observability_service.py utc_now   1 0 0   100%
mcpgateway / services / observability_service.py ensure_timezone_aware   3 0 0   100%
mcpgateway / services / observability_service.py parse_traceparent   12 0 0   100%
mcpgateway / services / observability_service.py generate_w3c_trace_id   1 0 0   100%
mcpgateway / services / observability_service.py generate_w3c_span_id   1 0 0   100%
mcpgateway / services / observability_service.py format_traceparent   2 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService._safe_commit   10 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.start_trace   10 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.end_trace   16 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.get_trace   4 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.start_span   7 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.end_span   15 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.trace_span   8 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.trace_tool_invocation   15 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.add_event   7 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.record_token_usage   23 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService._estimate_token_cost   10 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.trace_a2a_request   17 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.record_transport_activity   10 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.record_metric   7 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.query_traces   56 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.query_spans   54 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.get_trace_with_spans   1 0 0   100%
mcpgateway / services / observability_service.py ObservabilityService.delete_old_traces   5 0 0   100%
mcpgateway / services / observability_service.py (no function)   43 0 0   100%
mcpgateway / services / performance_service.py _get_admin_stats_cache   4 0 0   100%
mcpgateway / services / performance_service.py PerformanceService.__init__   3 0 0   100%
mcpgateway / services / performance_service.py PerformanceService._get_net_connections_cached   18 0 0   100%
mcpgateway / services / performance_service.py PerformanceService.get_system_metrics   18 0 0   100%
mcpgateway / services / performance_service.py PerformanceService.get_worker_metrics   14 0 0   100%
mcpgateway / services / performance_service.py PerformanceService._get_process_metrics   18 0 0   100%
mcpgateway / services / performance_service.py PerformanceService.get_gunicorn_metrics   20 0 0   100%
mcpgateway / services / performance_service.py PerformanceService.get_request_metrics   45 0 0   100%
mcpgateway / services / performance_service.py PerformanceService.get_database_metrics   12 0 0   100%
mcpgateway / services / performance_service.py PerformanceService.get_cache_metrics   26 0 0   100%
mcpgateway / services / performance_service.py PerformanceService.get_dashboard   8 0 0   100%
mcpgateway / services / performance_service.py PerformanceService.save_snapshot   21 0 0   100%
mcpgateway / services / performance_service.py PerformanceService.cleanup_old_snapshots   12 0 0   100%
mcpgateway / services / performance_service.py PerformanceService.get_history   20 0 0   100%
mcpgateway / services / performance_service.py PerformanceService.create_hourly_aggregate   44 0 0   100%
mcpgateway / services / performance_service.py get_performance_service   5 0 0   100%
mcpgateway / services / performance_service.py (no function)   56 9 0   84%
mcpgateway / services / performance_tracker.py PerformanceTracker.__init__   6 0 0   100%
mcpgateway / services / performance_tracker.py PerformanceTracker._increment_version   3 0 0   100%
mcpgateway / services / performance_tracker.py PerformanceTracker.track_operation   18 0 0   100%
mcpgateway / services / performance_tracker.py PerformanceTracker.record_timing   8 0 0   100%
mcpgateway / services / performance_tracker.py PerformanceTracker.get_performance_summary   25 0 0   100%
mcpgateway / services / performance_tracker.py PerformanceTracker.get_performance_summary.percentile   6 0 0   100%
mcpgateway / services / performance_tracker.py PerformanceTracker.get_operation_stats   6 0 0   100%
mcpgateway / services / performance_tracker.py PerformanceTracker.clear_stats   8 0 0   100%
mcpgateway / services / performance_tracker.py PerformanceTracker.set_threshold   2 0 0   100%
mcpgateway / services / performance_tracker.py PerformanceTracker.check_performance_degradation   15 0 0   100%
mcpgateway / services / performance_tracker.py get_performance_tracker   3 0 0   100%
mcpgateway / services / performance_tracker.py (no function)   24 0 0   100%
mcpgateway / services / permission_service.py PermissionService.__init__   8 0 0   100%
mcpgateway / services / permission_service.py PermissionService.check_permission   16 0 0   100%
mcpgateway / services / permission_service.py PermissionService.has_admin_permission   13 0 0   100%
mcpgateway / services / permission_service.py PermissionService.get_user_permissions   18 0 0   100%
mcpgateway / services / permission_service.py PermissionService.get_user_roles   11 0 0   100%
mcpgateway / services / permission_service.py PermissionService.has_permission_on_resource   3 0 0   100%
mcpgateway / services / permission_service.py PermissionService.check_resource_ownership   10 0 0   100%
mcpgateway / services / permission_service.py PermissionService.check_admin_permission   5 0 0   100%
mcpgateway / services / permission_service.py PermissionService.clear_user_cache   6 0 0   100%
mcpgateway / services / permission_service.py PermissionService.clear_cache   4 0 0   100%
mcpgateway / services / permission_service.py PermissionService._get_user_roles   14 0 0   100%
mcpgateway / services / permission_service.py PermissionService._log_permission_check   3 0 0   100%
mcpgateway / services / permission_service.py PermissionService._get_roles_for_audit   3 0 0   100%
mcpgateway / services / permission_service.py PermissionService._is_cache_valid   6 0 0   100%
mcpgateway / services / permission_service.py PermissionService._is_user_admin   5 0 0   100%
mcpgateway / services / permission_service.py PermissionService._check_team_fallback_permissions   12 0 0   100%
mcpgateway / services / permission_service.py PermissionService._is_team_member   1 0 0   100%
mcpgateway / services / permission_service.py PermissionService._get_user_team_role   4 0 0   100%
mcpgateway / services / permission_service.py PermissionService._check_token_fallback_permissions   3 0 0   100%
mcpgateway / services / permission_service.py (no function)   28 0 0   100%
mcpgateway / services / personal_team_service.py PersonalTeamService.__init__   1 0 0   100%
mcpgateway / services / personal_team_service.py PersonalTeamService.create_personal_team   27 0 0   100%
mcpgateway / services / personal_team_service.py PersonalTeamService.get_personal_team   6 0 0   100%
mcpgateway / services / personal_team_service.py PersonalTeamService.ensure_personal_team   13 0 0   100%
mcpgateway / services / personal_team_service.py PersonalTeamService.is_personal_team   6 0 0   100%
mcpgateway / services / personal_team_service.py PersonalTeamService.delete_personal_team   3 0 0   100%
mcpgateway / services / personal_team_service.py PersonalTeamService.get_personal_team_owner   6 0 0   100%
mcpgateway / services / personal_team_service.py (no function)   16 0 0   100%
mcpgateway / services / plugin_service.py _get_admin_stats_cache   4 0 0   100%
mcpgateway / services / plugin_service.py PluginService.__init__   1 0 0   100%
mcpgateway / services / plugin_service.py PluginService.get_plugin_manager   1 0 0   100%
mcpgateway / services / plugin_service.py PluginService.set_plugin_manager   1 0 0   100%
mcpgateway / services / plugin_service.py PluginService.get_all_plugins   27 0 0   100%
mcpgateway / services / plugin_service.py PluginService.get_plugin_by_name   16 0 0   100%
mcpgateway / services / plugin_service.py PluginService.get_plugin_statistics   27 0 0   100%
mcpgateway / services / plugin_service.py PluginService.search_plugins   11 0 0   100%
mcpgateway / services / plugin_service.py get_plugin_service   1 0 0   100%
mcpgateway / services / plugin_service.py (no function)   18 0 0   100%
mcpgateway / services / prompt_service.py _get_jinja_env   3 0 0   100%
mcpgateway / services / prompt_service.py _compile_jinja_template   1 0 0   100%
mcpgateway / services / prompt_service.py _get_registry_cache   4 0 0   100%
mcpgateway / services / prompt_service.py PromptNameConflictError.__init__   7 0 0   100%
mcpgateway / services / prompt_service.py PromptService.__init__   3 0 0   100%
mcpgateway / services / prompt_service.py PromptService.initialize   2 0 0   100%
mcpgateway / services / prompt_service.py PromptService.shutdown   2 0 0   100%
mcpgateway / services / prompt_service.py PromptService.get_top_prompts   13 0 0   100%
mcpgateway / services / prompt_service.py PromptService.convert_prompt_to_read   23 0 0   100%
mcpgateway / services / prompt_service.py PromptService._get_team_name   5 0 0   100%
mcpgateway / services / prompt_service.py PromptService._compute_prompt_name   5 0 0   100%
mcpgateway / services / prompt_service.py PromptService.register_prompt   57 0 0   100%
mcpgateway / services / prompt_service.py PromptService.register_prompts_bulk   117 0 0   100%
mcpgateway / services / prompt_service.py PromptService.list_prompts   42 0 0   100%
mcpgateway / services / prompt_service.py PromptService.list_prompts_for_user   37 1 0   97%
mcpgateway / services / prompt_service.py PromptService.list_server_prompts   34 0 0   100%
mcpgateway / services / prompt_service.py PromptService._record_prompt_metric   5 0 0   100%
mcpgateway / services / prompt_service.py PromptService._check_prompt_access   23 0 0   100%
mcpgateway / services / prompt_service.py PromptService.get_prompt   105 0 0   100%
mcpgateway / services / prompt_service.py PromptService.update_prompt   107 0 0   100%
mcpgateway / services / prompt_service.py PromptService.set_prompt_state   40 0 0   100%
mcpgateway / services / prompt_service.py PromptService.get_prompt_details   8 0 0   100%
mcpgateway / services / prompt_service.py PromptService.delete_prompt   37 0 0   100%
mcpgateway / services / prompt_service.py PromptService.subscribe_events   2 0 0   100%
mcpgateway / services / prompt_service.py PromptService._validate_template   4 0 0   100%
mcpgateway / services / prompt_service.py PromptService._get_required_arguments   5 0 0   100%
mcpgateway / services / prompt_service.py PromptService._render_template   8 0 0   100%
mcpgateway / services / prompt_service.py PromptService._parse_messages   18 0 0   100%
mcpgateway / services / prompt_service.py PromptService._notify_prompt_added   2 0 0   100%
mcpgateway / services / prompt_service.py PromptService._notify_prompt_updated   2 0 0   100%
mcpgateway / services / prompt_service.py PromptService._notify_prompt_activated   2 0 0   100%
mcpgateway / services / prompt_service.py PromptService._notify_prompt_deactivated   2 0 0   100%
mcpgateway / services / prompt_service.py PromptService._notify_prompt_deleted   2 0 0   100%
mcpgateway / services / prompt_service.py PromptService._notify_prompt_removed   2 0 0   100%
mcpgateway / services / prompt_service.py PromptService._publish_event   1 0 0   100%
mcpgateway / services / prompt_service.py PromptService.aggregate_metrics   11 0 0   100%
mcpgateway / services / prompt_service.py PromptService.reset_metrics   6 0 0   100%
mcpgateway / services / prompt_service.py __getattr__   5 0 0   100%
mcpgateway / services / prompt_service.py (no function)   89 0 0   100%
mcpgateway / services / resource_service.py _get_registry_cache   4 0 0   100%
mcpgateway / services / resource_service.py ResourceURIConflictError.__init__   8 0 0   100%
mcpgateway / services / resource_service.py ResourceService.__init__   13 0 0   100%
mcpgateway / services / resource_service.py ResourceService.initialize   2 0 0   100%
mcpgateway / services / resource_service.py ResourceService.shutdown   2 0 0   100%
mcpgateway / services / resource_service.py ResourceService.get_top_resources   13 0 0   100%
mcpgateway / services / resource_service.py ResourceService.convert_resource_to_read   46 0 0   100%
mcpgateway / services / resource_service.py ResourceService._get_team_name   5 0 0   100%
mcpgateway / services / resource_service.py ResourceService.register_resource   38 0 0   100%
mcpgateway / services / resource_service.py ResourceService.register_resources_bulk   78 0 0   100%
mcpgateway / services / resource_service.py ResourceService._check_resource_access   27 0 0   100%
mcpgateway / services / resource_service.py ResourceService.list_resources   42 0 0   100%
mcpgateway / services / resource_service.py ResourceService.list_resources_for_user   38 0 0   100%
mcpgateway / services / resource_service.py ResourceService.list_server_resources   35 0 0   100%
mcpgateway / services / resource_service.py ResourceService._record_resource_metric   5 0 0   100%
mcpgateway / services / resource_service.py ResourceService._record_invoke_resource_metric   5 0 0   100%
mcpgateway / services / resource_service.py ResourceService.create_ssl_context   1 0 0   100%
mcpgateway / services / resource_service.py ResourceService.invoke_resource   135 5 0   96%
mcpgateway / services / resource_service.py ResourceService.invoke_resource._get_httpx_client_factory   2 0 0   100%
mcpgateway / services / resource_service.py ResourceService.invoke_resource.connect_to_sse_session   24 4 0   83%
mcpgateway / services / resource_service.py ResourceService.invoke_resource.connect_to_streamablehttp_server   24 0 0   100%
mcpgateway / services / resource_service.py ResourceService.read_resource   191 2 0   99%
mcpgateway / services / resource_service.py ResourceService.set_resource_state   40 0 0   100%
mcpgateway / services / resource_service.py ResourceService.subscribe_resource   18 0 0   100%
mcpgateway / services / resource_service.py ResourceService.unsubscribe_resource   10 0 0   100%
mcpgateway / services / resource_service.py ResourceService.update_resource   93 0 0   100%
mcpgateway / services / resource_service.py ResourceService.delete_resource   40 0 0   100%
mcpgateway / services / resource_service.py ResourceService.get_resource_by_id   13 0 0   100%
mcpgateway / services / resource_service.py ResourceService._notify_resource_activated   2 0 0   100%
mcpgateway / services / resource_service.py ResourceService._notify_resource_deactivated   2 0 0   100%
mcpgateway / services / resource_service.py ResourceService._notify_resource_deleted   2 0 0   100%
mcpgateway / services / resource_service.py ResourceService._notify_resource_removed   2 0 0   100%
mcpgateway / services / resource_service.py ResourceService._event_visible_to_subscriber   11 0 0   100%
mcpgateway / services / resource_service.py ResourceService.subscribe_events   6 0 0   100%
mcpgateway / services / resource_service.py ResourceService._detect_mime_type   6 0 0   100%
mcpgateway / services / resource_service.py ResourceService._read_template_resource   24 0 1   100%
mcpgateway / services / resource_service.py ResourceService._build_regex   12 0 0   100%
mcpgateway / services / resource_service.py ResourceService._compile_parse_pattern   1 0 0   100%
mcpgateway / services / resource_service.py ResourceService._extract_template_params   3 0 0   100%
mcpgateway / services / resource_service.py ResourceService._uri_matches_template   3 0 0   100%
mcpgateway / services / resource_service.py ResourceService._notify_resource_added   2 0 0   100%
mcpgateway / services / resource_service.py ResourceService._notify_resource_updated   2 0 0   100%
mcpgateway / services / resource_service.py ResourceService._publish_event   1 0 0   100%
mcpgateway / services / resource_service.py ResourceService.list_resource_templates   20 0 0   100%
mcpgateway / services / resource_service.py ResourceService.aggregate_metrics   11 0 0   100%
mcpgateway / services / resource_service.py ResourceService.reset_metrics   6 0 0   100%
mcpgateway / services / resource_service.py __getattr__   5 0 0   100%
mcpgateway / services / resource_service.py (no function)   117 2 0   98%
mcpgateway / services / role_service.py RoleService.__init__   1 0 0   100%
mcpgateway / services / role_service.py RoleService.create_role   23 0 0   100%
mcpgateway / services / role_service.py RoleService.get_role_by_id   3 0 0   100%
mcpgateway / services / role_service.py RoleService.get_role_by_name   3 0 0   100%
mcpgateway / services / role_service.py RoleService.list_roles   14 0 0   100%
mcpgateway / services / role_service.py RoleService.update_role   35 1 0   97%
mcpgateway / services / role_service.py RoleService.delete_role   11 0 0   100%
mcpgateway / services / role_service.py RoleService.assign_role_to_user   18 0 0   100%
mcpgateway / services / role_service.py RoleService.revoke_role_from_user   7 0 0   100%
mcpgateway / services / role_service.py RoleService.get_user_role_assignment   7 0 0   100%
mcpgateway / services / role_service.py RoleService.list_user_roles   10 0 0   100%
mcpgateway / services / role_service.py RoleService.list_role_assignments   10 0 0   100%
mcpgateway / services / role_service.py RoleService._would_create_cycle   11 0 0   100%
mcpgateway / services / role_service.py RoleService.delete_all_user_roles   5 0 0   100%
mcpgateway / services / role_service.py (no function)   22 0 0   100%
mcpgateway / services / root_service.py RootService.__init__   2 0 0   100%
mcpgateway / services / root_service.py RootService.initialize   6 0 0   100%
mcpgateway / services / root_service.py RootService.shutdown   3 0 0   100%
mcpgateway / services / root_service.py RootService.list_roots   1 0 0   100%
mcpgateway / services / root_service.py RootService.add_root   12 0 0   100%
mcpgateway / services / root_service.py RootService.get_root_by_uri   4 0 0   100%
mcpgateway / services / root_service.py RootService.update_root   10 0 0   100%
mcpgateway / services / root_service.py RootService.remove_root   6 0 0   100%
mcpgateway / services / root_service.py RootService.subscribe_changes   7 0 0   100%
mcpgateway / services / root_service.py RootService._make_root_uri   4 0 0   100%
mcpgateway / services / root_service.py RootService._notify_root_added   2 0 0   100%
mcpgateway / services / root_service.py RootService._notify_root_removed   2 0 0   100%
mcpgateway / services / root_service.py RootService._notify_subscribers   5 0 0   100%
mcpgateway / services / root_service.py __getattr__   5 0 0   100%
mcpgateway / services / root_service.py (no function)   27 0 0   100%
mcpgateway / services / security_logger.py SecurityLogger.__init__   3 0 0   100%
mcpgateway / services / security_logger.py SecurityLogger.log_authentication_attempt   18 0 0   100%
mcpgateway / services / security_logger.py SecurityLogger.log_data_access   9 0 0   100%
mcpgateway / services / security_logger.py SecurityLogger.log_suspicious_activity   4 0 0   100%
mcpgateway / services / security_logger.py SecurityLogger._count_recent_failures   19 0 0   100%
mcpgateway / services / security_logger.py SecurityLogger._calculate_auth_threat_score   10 0 0   100%
mcpgateway / services / security_logger.py SecurityLogger._requires_audit_review   7 0 0   100%
mcpgateway / services / security_logger.py SecurityLogger._create_security_event   16 0 0   100%
mcpgateway / services / security_logger.py SecurityLogger._create_audit_trail   16 0 0   100%
mcpgateway / services / security_logger.py get_security_logger   3 0 0   100%
mcpgateway / services / security_logger.py (no function)   39 0 0   100%
mcpgateway / services / server_service.py _get_registry_cache   4 0 0   100%
mcpgateway / services / server_service.py _validate_server_team_assignment   10 0 0   100%
mcpgateway / services / server_service.py ServerNameConflictError.__init__   7 0 0   100%
mcpgateway / services / server_service.py ServerService.__init__   5 0 0   100%
mcpgateway / services / server_service.py ServerService.initialize   1 0 0   100%
mcpgateway / services / server_service.py ServerService.shutdown   2 0 0   100%
mcpgateway / services / server_service.py ServerService.get_top_servers   13 0 0   100%
mcpgateway / services / server_service.py ServerService.convert_server_to_read   33 0 0   100%
mcpgateway / services / server_service.py ServerService._assemble_associated_items   1 0 0   100%
mcpgateway / services / server_service.py ServerService.register_server   99 0 0   100%
mcpgateway / services / server_service.py ServerService.list_servers   38 0 0   100%
mcpgateway / services / server_service.py ServerService.list_servers_for_user   31 0 0   100%
mcpgateway / services / server_service.py ServerService.get_server   9 0 0   100%
mcpgateway / services / server_service.py ServerService.update_server   123 0 0   100%
mcpgateway / services / server_service.py ServerService.set_server_state   40 0 0   100%
mcpgateway / services / server_service.py ServerService.delete_server   35 0 0   100%
mcpgateway / services / server_service.py ServerService._publish_event   2 0 0   100%
mcpgateway / services / server_service.py ServerService.subscribe_events   7 0 0   100%
mcpgateway / services / server_service.py ServerService._notify_server_added   5 0 0   100%
mcpgateway / services / server_service.py ServerService._notify_server_updated   5 0 0   100%
mcpgateway / services / server_service.py ServerService._notify_server_activated   2 0 0   100%
mcpgateway / services / server_service.py ServerService._notify_server_deactivated   2 0 0   100%
mcpgateway / services / server_service.py ServerService._notify_server_deleted   2 0 0   100%
mcpgateway / services / server_service.py ServerService.aggregate_metrics   11 0 0   100%
mcpgateway / services / server_service.py ServerService.reset_metrics   6 0 0   100%
mcpgateway / services / server_service.py ServerService.get_oauth_protected_resource_metadata   25 0 0   100%
mcpgateway / services / server_service.py __getattr__   5 0 0   100%
mcpgateway / services / server_service.py (no function)   68 0 0   100%
mcpgateway / services / sso_service.py SSOService.__init__   3 0 0   100%
mcpgateway / services / sso_service.py SSOService._encrypt_secret   1 0 0   100%
mcpgateway / services / sso_service.py SSOService._decrypt_secret   4 0 0   100%
mcpgateway / services / sso_service.py SSOService._decode_jwt_claims   14 0 0   100%
mcpgateway / services / sso_service.py SSOService._get_oidc_provider_metadata   24 0 0   100%
mcpgateway / services / sso_service.py SSOService._resolve_oidc_issuer_and_jwks   12 0 0   100%
mcpgateway / services / sso_service.py SSOService._get_jwks_client   3 0 0   100%
mcpgateway / services / sso_service.py SSOService._verify_oidc_id_token   23 0 0   100%
mcpgateway / services / sso_service.py SSOService._resolve_entra_graph_fallback_settings   37 1 0   97%
mcpgateway / services / sso_service.py SSOService._fetch_entra_groups_from_graph_api   41 0 0   100%
mcpgateway / services / sso_service.py SSOService.list_enabled_providers   3 0 0   100%
mcpgateway / services / sso_service.py SSOService.get_provider   3 0 0   100%
mcpgateway / services / sso_service.py SSOService.get_provider_by_name   3 0 0   100%
mcpgateway / services / sso_service.py SSOService._normalize_issuer_url   1 0 0   100%
mcpgateway / services / sso_service.py SSOService._enforce_allowed_issuer   10 0 0   100%
mcpgateway / services / sso_service.py SSOService._resolve_team_mapping_target   9 0 0   100%
mcpgateway / services / sso_service.py SSOService._apply_team_mapping   34 0 0   100%
mcpgateway / services / sso_service.py SSOService.create_provider   13 0 0   100%
mcpgateway / services / sso_service.py SSOService.update_provider   15 0 0   100%
mcpgateway / services / sso_service.py SSOService.delete_provider   6 0 0   100%
mcpgateway / services / sso_service.py SSOService.generate_pkce_challenge   3 0 0   100%
mcpgateway / services / sso_service.py SSOService._normalize_scope_values   14 0 0   100%
mcpgateway / services / sso_service.py SSOService._resolve_login_scopes   23 0 0   100%
mcpgateway / services / sso_service.py SSOService._get_state_binding_secret   4 0 0   100%
mcpgateway / services / sso_service.py SSOService._generate_session_bound_state   4 0 0   100%
mcpgateway / services / sso_service.py SSOService._is_session_bound_state   4 0 0   100%
mcpgateway / services / sso_service.py SSOService._verify_session_bound_state   6 0 0   100%
mcpgateway / services / sso_service.py SSOService._is_email_verified_claim   10 0 0   100%
mcpgateway / services / sso_service.py SSOService.get_authorization_url   14 0 0   100%
mcpgateway / services / sso_service.py SSOService.handle_oauth_callback   5 0 0   100%
mcpgateway / services / sso_service.py SSOService.handle_oauth_callback_with_tokens   56 2 0   96%
mcpgateway / services / sso_service.py SSOService._exchange_code_for_tokens   8 0 0   100%
mcpgateway / services / sso_service.py SSOService._get_user_info   64 0 0   100%
mcpgateway / services / sso_service.py SSOService._normalize_user_info   54 0 0   100%
mcpgateway / services / sso_service.py SSOService.authenticate_or_create_user   160 11 0   93%
mcpgateway / services / sso_service.py SSOService._should_user_be_admin   15 0 0   100%
mcpgateway / services / sso_service.py SSOService._map_groups_to_roles   68 0 0   100%
mcpgateway / services / sso_service.py SSOService._map_groups_to_roles._resolve_team_scope_id_if_needed   15 0 0   100%
mcpgateway / services / sso_service.py SSOService._sync_user_roles   27 0 0   100%
mcpgateway / services / sso_service.py (no function)   75 0 0   100%
mcpgateway / services / structured_logger.py _should_log   4 0 0   100%
mcpgateway / services / structured_logger.py LogEnricher.enrich   25 0 0   100%
mcpgateway / services / structured_logger.py LogRouter.__init__   2 0 0   100%
mcpgateway / services / structured_logger.py LogRouter.route   5 0 0   100%
mcpgateway / services / structured_logger.py LogRouter._log_to_python_logger   7 0 0   100%
mcpgateway / services / structured_logger.py LogRouter._persist_to_database   21 0 0   100%
mcpgateway / services / structured_logger.py LogRouter._send_to_external   0 0 0   100%
mcpgateway / services / structured_logger.py StructuredLogger.__init__   3 0 0   100%
mcpgateway / services / structured_logger.py StructuredLogger.log   10 0 0   100%
mcpgateway / services / structured_logger.py StructuredLogger.debug   1 0 0   100%
mcpgateway / services / structured_logger.py StructuredLogger.info   1 0 0   100%
mcpgateway / services / structured_logger.py StructuredLogger.warning   1 0 0   100%
mcpgateway / services / structured_logger.py StructuredLogger.error   1 0 0   100%
mcpgateway / services / structured_logger.py StructuredLogger.critical   1 0 0   100%
mcpgateway / services / structured_logger.py ComponentLogger.get_logger   3 0 0   100%
mcpgateway / services / structured_logger.py ComponentLogger.clear_loggers   1 0 0   100%
mcpgateway / services / structured_logger.py get_structured_logger   1 0 0   100%
mcpgateway / services / structured_logger.py (no function)   63 1 0   98%
mcpgateway / services / support_bundle_service.py SupportBundleService.__init__   2 0 0   100%
mcpgateway / services / support_bundle_service.py SupportBundleService._is_secret   5 0 0   100%
mcpgateway / services / support_bundle_service.py SupportBundleService._sanitize_url   5 0 0   100%
mcpgateway / services / support_bundle_service.py SupportBundleService._sanitize_line   3 0 0   100%
mcpgateway / services / support_bundle_service.py SupportBundleService._collect_version_info   1 0 0   100%
mcpgateway / services / support_bundle_service.py SupportBundleService._collect_system_info   7 0 0   100%
mcpgateway / services / support_bundle_service.py SupportBundleService._collect_env_config   1 0 0   100%
mcpgateway / services / support_bundle_service.py SupportBundleService._collect_settings   7 0 0   100%
mcpgateway / services / support_bundle_service.py SupportBundleService._collect_logs   20 0 0   100%
mcpgateway / services / support_bundle_service.py SupportBundleService._create_manifest   1 0 0   100%
mcpgateway / services / support_bundle_service.py SupportBundleService.generate_bundle   27 0 0   100%
mcpgateway / services / support_bundle_service.py create_support_bundle   2 0 0   100%
mcpgateway / services / support_bundle_service.py (no function)   36 0 0   100%
mcpgateway / services / system_stats_service.py _get_admin_stats_cache   4 0 0   100%
mcpgateway / services / system_stats_service.py SystemStatsService.get_comprehensive_stats   8 0 0   100%
mcpgateway / services / system_stats_service.py SystemStatsService.get_comprehensive_stats_cached   7 0 0   100%
mcpgateway / services / system_stats_service.py SystemStatsService._get_user_stats   5 0 0   100%
mcpgateway / services / system_stats_service.py SystemStatsService._get_team_stats   5 0 0   100%
mcpgateway / services / system_stats_service.py SystemStatsService._get_mcp_resource_stats   11 0 0   100%
mcpgateway / services / system_stats_service.py SystemStatsService._get_token_stats   5 0 0   100%
mcpgateway / services / system_stats_service.py SystemStatsService._get_session_stats   9 0 0   100%
mcpgateway / services / system_stats_service.py SystemStatsService._get_metrics_stats   11 0 0   100%
mcpgateway / services / system_stats_service.py SystemStatsService._get_security_stats   9 0 0   100%
mcpgateway / services / system_stats_service.py SystemStatsService._get_workflow_stats   7 0 0   100%
mcpgateway / services / system_stats_service.py (no function)   19 0 0   100%
mcpgateway / services / tag_service.py _get_admin_stats_cache   4 0 0   100%
mcpgateway / services / tag_service.py TagService.get_all_tags   57 0 0   100%
mcpgateway / services / tag_service.py TagService._update_stats   15 0 0   100%
mcpgateway / services / tag_service.py TagService._get_tag_id   5 0 0   100%
mcpgateway / services / tag_service.py TagService._resolve_team_ids   8 0 0   100%
mcpgateway / services / tag_service.py TagService._apply_visibility_scope   9 0 0   100%
mcpgateway / services / tag_service.py TagService.get_entities_by_tag   31 0 0   100%
mcpgateway / services / tag_service.py TagService.get_tag_counts   17 0 0   100%
mcpgateway / services / tag_service.py (no function)   22 0 0   100%
mcpgateway / services / team_invitation_service.py TeamInvitationService.__init__   1 0 0   100%
mcpgateway / services / team_invitation_service.py TeamInvitationService._get_user_team_count   1 0 0   100%
mcpgateway / services / team_invitation_service.py TeamInvitationService._fire_and_forget   11 3 0   73%
mcpgateway / services / team_invitation_service.py TeamInvitationService._generate_invitation_token   1 0 0   100%
mcpgateway / services / team_invitation_service.py TeamInvitationService.create_invitation   56 0 0   100%
mcpgateway / services / team_invitation_service.py TeamInvitationService.get_invitation_by_token   6 0 0   100%
mcpgateway / services / team_invitation_service.py TeamInvitationService.accept_invitation   55 0 0   100%
mcpgateway / services / team_invitation_service.py TeamInvitationService.decline_invitation   16 0 0   100%
mcpgateway / services / team_invitation_service.py TeamInvitationService.revoke_invitation   17 0 0   100%
mcpgateway / services / team_invitation_service.py TeamInvitationService.get_team_invitations   9 0 0   100%
mcpgateway / services / team_invitation_service.py TeamInvitationService.get_user_invitations   9 0 0   100%
mcpgateway / services / team_invitation_service.py TeamInvitationService.cleanup_expired_invitations   11 0 0   100%
mcpgateway / services / team_invitation_service.py (no function)   26 0 0   100%
mcpgateway / services / team_management_service.py get_user_team_count   1 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.__init__   2 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.role_service   4 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService._get_user_team_count   1 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService._get_rbac_role_name   1 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService._fire_and_forget   11 3 0   73%
mcpgateway / services / team_management_service.py TeamManagementService._log_team_member_action   3 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.create_team   50 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.get_team_by_id   8 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.get_team_by_slug   8 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.update_team   29 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.delete_team   30 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.add_member_to_team   67 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.remove_member_from_team   43 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.update_member_role   54 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.get_member   5 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.get_user_teams   28 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.verify_team_for_user   21 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.get_team_members   49 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.count_team_owners   3 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService._get_auth_cache   4 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService._get_admin_stats_cache   5 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.get_user_role_in_team   16 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.list_teams   22 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.get_all_team_ids   16 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.get_teams_count   14 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.discover_public_teams   13 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.create_join_request   31 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.list_join_requests   6 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.approve_join_request   46 2 0   96%
mcpgateway / services / team_management_service.py TeamManagementService.reject_join_request   14 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.get_user_join_requests   9 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.cancel_join_request   15 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.get_member_counts_batch   11 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.get_user_roles_batch   11 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.get_pending_join_requests_batch   11 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService._get_member_count_cache_key   2 0 0   100%
mcpgateway / services / team_management_service.py TeamManagementService.get_member_counts_batch_cached   42 10 0   76%
mcpgateway / services / team_management_service.py TeamManagementService.invalidate_team_member_count_cache   9 3 0   67%
mcpgateway / services / team_management_service.py (no function)   67 0 0   100%
mcpgateway / services / token_catalog_service.py TokenScope.__init__   5 0 0   100%
mcpgateway / services / token_catalog_service.py TokenScope.is_server_scoped   1 0 0   100%
mcpgateway / services / token_catalog_service.py TokenScope.has_permission   1 0 0   100%
mcpgateway / services / token_catalog_service.py TokenScope.to_dict   1 0 0   100%
mcpgateway / services / token_catalog_service.py TokenScope.from_dict   1 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.__init__   1 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService._generate_token   19 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService._hash_token   1 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService._validate_scope_containment   16 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.create_token   35 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.count_user_tokens   5 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.get_user_team_ids   4 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.count_user_and_team_tokens   9 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.count_team_tokens   5 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.list_user_tokens   9 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.list_team_tokens   12 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.list_user_and_team_tokens   13 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.get_token   5 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.update_token   26 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.revoke_token   21 2 0   90%
mcpgateway / services / token_catalog_service.py TokenCatalogService.admin_revoke_token   14 2 0   86%
mcpgateway / services / token_catalog_service.py TokenCatalogService.is_token_revoked   2 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.log_token_usage   3 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.get_token_usage_stats   10 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService._get_usage_stats_postgresql   14 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService._get_usage_stats_python   15 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.get_token_revocation   2 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.get_token_revocations_batch   4 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.list_all_tokens   9 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.count_all_tokens   5 0 0   100%
mcpgateway / services / token_catalog_service.py TokenCatalogService.cleanup_expired_tokens   11 0 0   100%
mcpgateway / services / token_catalog_service.py (no function)   49 0 0   100%
mcpgateway / services / token_storage_service.py TokenStorageService.__init__   7 0 0   100%
mcpgateway / services / token_storage_service.py TokenStorageService.store_tokens   26 0 0   100%
mcpgateway / services / token_storage_service.py TokenStorageService.get_user_token   18 0 0   100%
mcpgateway / services / token_storage_service.py TokenStorageService._refresh_access_token   67 1 0   99%
mcpgateway / services / token_storage_service.py TokenStorageService._refresh_access_token.normalize_resource   8 1 0   88%
mcpgateway / services / token_storage_service.py TokenStorageService._is_token_expired   6 0 0   100%
mcpgateway / services / token_storage_service.py TokenStorageService.get_token_info   8 0 0   100%
mcpgateway / services / token_storage_service.py TokenStorageService.revoke_user_tokens   12 0 0   100%
mcpgateway / services / token_storage_service.py TokenStorageService.cleanup_expired_tokens   12 0 0   100%
mcpgateway / services / token_storage_service.py (no function)   19 0 0   100%
mcpgateway / services / tool_service.py _get_registry_cache   4 0 0   100%
mcpgateway / services / tool_service.py _get_tool_lookup_cache   4 0 0   100%
mcpgateway / services / tool_service.py _is_sensitive_tool_header_name   2 0 0   100%
mcpgateway / services / tool_service.py _is_encrypted_tool_header_value   1 0 0   100%
mcpgateway / services / tool_service.py _encrypt_tool_header_value   12 0 0   100%
mcpgateway / services / tool_service.py _protect_tool_headers_for_storage   15 0 0   100%
mcpgateway / services / tool_service.py _decrypt_tool_header_value   15 0 0   100%
mcpgateway / services / tool_service.py _decrypt_tool_headers_for_runtime   3 0 0   100%
mcpgateway / services / tool_service.py _compile_jq_filter   1 0 0   100%
mcpgateway / services / tool_service.py _get_validator_class_and_check   15 0 0   100%
mcpgateway / services / tool_service.py _canonicalize_schema   1 0 0   100%
mcpgateway / services / tool_service.py _validate_with_cached_schema   6 0 0   100%
mcpgateway / services / tool_service.py extract_using_jq   19 0 0   100%
mcpgateway / services / tool_service.py ToolNameConflictError.__init__   12 0 0   100%
mcpgateway / services / tool_service.py ToolService.__init__   4 0 0   100%
mcpgateway / services / tool_service.py ToolService.initialize   2 0 0   100%
mcpgateway / services / tool_service.py ToolService.shutdown   3 0 0   100%
mcpgateway / services / tool_service.py ToolService.get_top_tools   12 0 0   100%
mcpgateway / services / tool_service.py ToolService._build_tool_cache_payload   5 0 0   100%
mcpgateway / services / tool_service.py ToolService._pydantic_tool_from_payload   5 0 0   100%
mcpgateway / services / tool_service.py ToolService._pydantic_gateway_from_payload   5 0 0   100%
mcpgateway / services / tool_service.py ToolService._check_tool_access   23 0 0   100%
mcpgateway / services / tool_service.py ToolService.convert_tool_to_read   50 0 0   100%
mcpgateway / services / tool_service.py ToolService._record_tool_metric   5 0 0   100%
mcpgateway / services / tool_service.py ToolService._record_tool_metric_by_id   5 0 0   100%
mcpgateway / services / tool_service.py ToolService._record_tool_metric_sync   2 0 0   100%
mcpgateway / services / tool_service.py ToolService._extract_and_validate_structured_content   46 2 3   96%
mcpgateway / services / tool_service.py ToolService.register_tool   49 0 0   100%
mcpgateway / services / tool_service.py ToolService.register_tools_bulk   27 0 0   100%
mcpgateway / services / tool_service.py ToolService._process_tool_chunk   38 0 0   100%
mcpgateway / services / tool_service.py ToolService._process_single_tool_for_bulk   57 0 0   100%
mcpgateway / services / tool_service.py ToolService._create_tool_object   1 0 0   100%
mcpgateway / services / tool_service.py ToolService.list_tools   45 0 0   100%
mcpgateway / services / tool_service.py ToolService.list_server_tools   31 0 0   100%
mcpgateway / services / tool_service.py ToolService.list_tools_for_user   56 0 0   100%
mcpgateway / services / tool_service.py ToolService.get_tool   6 0 0   100%
mcpgateway / services / tool_service.py ToolService.delete_tool   42 0 0   100%
mcpgateway / services / tool_service.py ToolService.set_tool_state   49 0 0   100%
mcpgateway / services / tool_service.py ToolService.invoke_tool_direct   38 0 0   100%
mcpgateway / services / tool_service.py ToolService.invoke_tool   647 16 0   98%
mcpgateway / services / tool_service.py ToolService._check_tool_name_conflict   10 0 0   100%
mcpgateway / services / tool_service.py ToolService.update_tool   114 0 0   100%
mcpgateway / services / tool_service.py ToolService._notify_tool_updated   2 0 0   100%
mcpgateway / services / tool_service.py ToolService._notify_tool_activated   2 0 0   100%
mcpgateway / services / tool_service.py ToolService._notify_tool_deactivated   2 0 0   100%
mcpgateway / services / tool_service.py ToolService._notify_tool_offline   2 0 0   100%
mcpgateway / services / tool_service.py ToolService._notify_tool_deleted   2 0 0   100%
mcpgateway / services / tool_service.py ToolService.subscribe_events   2 0 0   100%
mcpgateway / services / tool_service.py ToolService._notify_tool_added   2 0 0   100%
mcpgateway / services / tool_service.py ToolService._notify_tool_removed   2 0 0   100%
mcpgateway / services / tool_service.py ToolService._publish_event   1 0 0   100%
mcpgateway / services / tool_service.py ToolService._validate_tool_url   5 0 0   100%
mcpgateway / services / tool_service.py ToolService._check_tool_health   5 0 0   100%
mcpgateway / services / tool_service.py ToolService.aggregate_metrics   11 0 0   100%
mcpgateway / services / tool_service.py ToolService.reset_metrics   9 0 0   100%
mcpgateway / services / tool_service.py ToolService.create_tool_from_a2a_agent   19 1 0   95%
mcpgateway / services / tool_service.py ToolService.update_tool_from_a2a_agent   20 0 0   100%
mcpgateway / services / tool_service.py ToolService.delete_tool_from_a2a_agent   9 0 0   100%
mcpgateway / services / tool_service.py ToolService._invoke_a2a_tool   25 0 0   100%
mcpgateway / services / tool_service.py ToolService._call_a2a_agent   44 2 0   95%
mcpgateway / services / tool_service.py __getattr__   5 0 0   100%
mcpgateway / services / tool_service.py (no function)   153 0 0   100%
mcpgateway / toolops / __init__.py (no function)   0 0 0   100%
mcpgateway / toolops / toolops_altk_service.py custom_mcp_cf_execute_prompt   11 0 0   100%
mcpgateway / toolops / toolops_altk_service.py validation_generate_test_cases   35 0 0   100%
mcpgateway / toolops / toolops_altk_service.py execute_tool_nl_test_cases   22 0 0   100%
mcpgateway / toolops / toolops_altk_service.py enrich_tool   18 0 0   100%
mcpgateway / toolops / toolops_altk_service.py (no function)   50 0 1   100%
mcpgateway / toolops / utils / __init__.py (no function)   0 0 0   100%
mcpgateway / toolops / utils / db_util.py populate_testcases_table   13 0 0   100%
mcpgateway / toolops / utils / db_util.py query_testcases_table   3 0 0   100%
mcpgateway / toolops / utils / db_util.py query_tool_auth   8 0 0   100%
mcpgateway / toolops / utils / db_util.py (no function)   10 0 0   100%
mcpgateway / toolops / utils / format_conversion.py convert_to_toolops_spec   14 0 0   100%
mcpgateway / toolops / utils / format_conversion.py post_process_nl_test_cases   5 0 0   100%
mcpgateway / toolops / utils / format_conversion.py (no function)   4 0 1   100%
mcpgateway / toolops / utils / llm_util.py get_llm_instance   65 0 0   100%
mcpgateway / toolops / utils / llm_util.py execute_prompt   9 0 0   100%
mcpgateway / toolops / utils / llm_util.py (no function)   11 0 1   100%
mcpgateway / tools / cli.py main   1 0 0   100%
mcpgateway / tools / cli.py (no function)   7 0 2   100%
mcpgateway / translate.py _PubSub.__init__   1 0 0   100%
mcpgateway / translate.py _PubSub.publish   9 0 0   100%
mcpgateway / translate.py _PubSub.subscribe   3 0 0   100%
mcpgateway / translate.py _PubSub.unsubscribe   2 0 0   100%
mcpgateway / translate.py StdIOEndpoint.__init__   7 0 0   100%
mcpgateway / translate.py StdIOEndpoint.start   19 0 0   100%
mcpgateway / translate.py StdIOEndpoint.stop   26 0 0   100%
mcpgateway / translate.py StdIOEndpoint.is_running   1 0 0   100%
mcpgateway / translate.py StdIOEndpoint.send   5 0 0   100%
mcpgateway / translate.py StdIOEndpoint._pump_stdout   11 0 5   100%
mcpgateway / translate.py SSEEvent.__init__   4 0 0   100%
mcpgateway / translate.py SSEEvent.parse_sse_line   28 0 0   100%
mcpgateway / translate.py _build_fastapi   14 0 0   100%
mcpgateway / translate.py _build_fastapi._restart_allowed   5 0 0   100%
mcpgateway / translate.py _build_fastapi.get_sse   12 0 0   100%
mcpgateway / translate.py _build_fastapi.get_sse.event_gen   17 0 0   100%
mcpgateway / translate.py _build_fastapi.post_message   21 0 0   100%
mcpgateway / translate.py _build_fastapi.health   1 0 0   100%
mcpgateway / translate.py _parse_args   27 0 1   100%
mcpgateway / translate.py _run_stdio_to_sse   15 0 0   100%
mcpgateway / translate.py _run_stdio_to_sse._shutdown   6 0 0   100%
mcpgateway / translate.py _run_sse_to_stdio   28 0 0   100%
mcpgateway / translate.py _run_sse_to_stdio.read_stdout   25 0 0   100%
mcpgateway / translate.py _run_sse_to_stdio.pump_sse_to_stdio   40 0 0   100%
mcpgateway / translate.py _run_stdio_to_streamable_http   28 0 0   100%
mcpgateway / translate.py _run_stdio_to_streamable_http.handle_mcp   1 0 0   100%
mcpgateway / translate.py _run_stdio_to_streamable_http._shutdown   9 0 0   100%
mcpgateway / translate.py _run_stdio_to_streamable_http.pump_stdio_to_http   11 0 0   100%
mcpgateway / translate.py _run_stdio_to_streamable_http.pump_http_to_stdio   4 4 0   0%
mcpgateway / translate.py _run_streamable_http_to_stdio   29 0 0   100%
mcpgateway / translate.py _run_streamable_http_to_stdio.read_stdout   30 0 0   100%
mcpgateway / translate.py _run_streamable_http_to_stdio.pump_streamable_http_to_stdio   32 0 0   100%
mcpgateway / translate.py _simple_streamable_http_pump   31 0 0   100%
mcpgateway / translate.py _run_multi_protocol_server   60 0 0   100%
mcpgateway / translate.py _run_multi_protocol_server.get_sse   14 0 0   100%
mcpgateway / translate.py _run_multi_protocol_server.get_sse.event_gen   17 0 0   100%
mcpgateway / translate.py _run_multi_protocol_server.post_message   23 0 0   100%
mcpgateway / translate.py _run_multi_protocol_server.health   1 0 0   100%
mcpgateway / translate.py _run_multi_protocol_server.mcp_post   35 0 0   100%
mcpgateway / translate.py _run_multi_protocol_server.mcp_asgi_wrapper   1 0 0   100%
mcpgateway / translate.py _run_multi_protocol_server._shutdown   7 0 0   100%
mcpgateway / translate.py _simple_sse_pump   35 0 0   100%
mcpgateway / translate.py start_streamable_http_stdio   1 0 0   100%
mcpgateway / translate.py start_streamable_http_client   1 0 0   100%
mcpgateway / translate.py start_stdio   1 0 0   100%
mcpgateway / translate.py start_sse   1 0 0   100%
mcpgateway / translate.py main   42 0 0   100%
mcpgateway / translate.py (no function)   76 0 2   100%
mcpgateway / translate_grpc.py GrpcEndpoint.__init__   11 0 0   100%
mcpgateway / translate_grpc.py GrpcEndpoint.start   12 0 0   100%
mcpgateway / translate_grpc.py GrpcEndpoint._discover_services   20 0 0   100%
mcpgateway / translate_grpc.py GrpcEndpoint._discover_service_details   24 0 0   100%
mcpgateway / translate_grpc.py GrpcEndpoint.invoke   28 0 0   100%
mcpgateway / translate_grpc.py GrpcEndpoint.invoke_streaming   35 0 0   100%
mcpgateway / translate_grpc.py GrpcEndpoint.close   3 0 0   100%
mcpgateway / translate_grpc.py GrpcEndpoint.get_services   1 0 0   100%
mcpgateway / translate_grpc.py GrpcEndpoint.get_methods   3 0 0   100%
mcpgateway / translate_grpc.py GrpcToMcpTranslator.__init__   1 0 0   100%
mcpgateway / translate_grpc.py GrpcToMcpTranslator.grpc_service_to_mcp_server   1 0 0   100%
mcpgateway / translate_grpc.py GrpcToMcpTranslator.grpc_methods_to_mcp_tools   14 0 0   100%
mcpgateway / translate_grpc.py GrpcToMcpTranslator.protobuf_to_json_schema   8 0 0   100%
mcpgateway / translate_grpc.py GrpcToMcpTranslator._protobuf_field_to_json_schema   11 0 0   100%
mcpgateway / translate_grpc.py expose_grpc_via_sse   13 0 0   100%
mcpgateway / translate_grpc.py (no function)   39 0 0   100%
mcpgateway / translate_header_utils.py validate_header_mapping   6 0 0   100%
mcpgateway / translate_header_utils.py sanitize_header_value   6 0 0   100%
mcpgateway / translate_header_utils.py parse_header_mappings   20 0 0   100%
mcpgateway / translate_header_utils.py normalize_headers   1 0 0   100%
mcpgateway / translate_header_utils.py NormalizedMappings.__init__   1 0 0   100%
mcpgateway / translate_header_utils.py NormalizedMappings.get_env_var   1 0 0   100%
mcpgateway / translate_header_utils.py NormalizedMappings.__iter__   1 0 0   100%
mcpgateway / translate_header_utils.py NormalizedMappings.__len__   1 0 0   100%
mcpgateway / translate_header_utils.py NormalizedMappings.values   1 0 0   100%
mcpgateway / translate_header_utils.py NormalizedMappings.__bool__   1 0 0   100%
mcpgateway / translate_header_utils.py extract_env_vars_from_headers   17 0 0   100%
mcpgateway / translate_header_utils.py (no function)   20 0 0   100%
mcpgateway / transports / __init__.py (no function)   5 0 0   100%
mcpgateway / transports / base.py Transport.connect   0 0 0   100%
mcpgateway / transports / base.py Transport.disconnect   0 0 0   100%
mcpgateway / transports / base.py Transport.send_message   0 0 0   100%
mcpgateway / transports / base.py Transport.receive_message   0 0 0   100%
mcpgateway / transports / base.py Transport.is_connected   0 0 0   100%
mcpgateway / transports / base.py (no function)   13 0 0   100%
mcpgateway / transports / redis_event_store.py RedisEventStore.__init__   4 0 0   100%
mcpgateway / transports / redis_event_store.py RedisEventStore._get_stream_meta_key   1 0 0   100%
mcpgateway / transports / redis_event_store.py RedisEventStore._get_stream_events_key   1 0 0   100%
mcpgateway / transports / redis_event_store.py RedisEventStore._get_stream_messages_key   1 0 0   100%
mcpgateway / transports / redis_event_store.py RedisEventStore._event_index_prefix   1 0 0   100%
mcpgateway / transports / redis_event_store.py RedisEventStore._event_index_key   1 0 0   100%
mcpgateway / transports / redis_event_store.py RedisEventStore.store_event   11 0 0   100%
mcpgateway / transports / redis_event_store.py RedisEventStore.replay_events_after   38 0 0   100%
mcpgateway / transports / redis_event_store.py (no function)   18 0 2   100%
mcpgateway / transports / sse_transport.py _create_patched_deliver_cancellation   2 0 0   100%
mcpgateway / transports / sse_transport.py _create_patched_deliver_cancellation._patched_deliver_cancellation   9 0 0   100%
mcpgateway / transports / sse_transport.py apply_anyio_cancel_delivery_patch   15 0 0   100%
mcpgateway / transports / sse_transport.py remove_anyio_cancel_delivery_patch   10 0 0   100%
mcpgateway / transports / sse_transport.py _get_sse_cleanup_timeout   4 0 0   100%
mcpgateway / transports / sse_transport.py EventSourceResponse.enable_compression   0 0 0   100%
mcpgateway / transports / sse_transport.py EventSourceResponse.__call__   10 0 0   100%
mcpgateway / transports / sse_transport.py EventSourceResponse.__call__.cancel_on_finish   3 0 0   100%
mcpgateway / transports / sse_transport.py _build_sse_frame   1 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport._is_valid_session_id   6 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport.__init__   6 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport.connect   2 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport.disconnect   4 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport.send_message   8 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport.receive_message   10 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport._get_message_with_timeout   19 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport.is_connected   1 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport.create_sse_response   4 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport.create_sse_response.event_generator   63 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport.create_sse_response.event_generator.check_rapid_yield   20 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport.create_sse_response.on_client_close   7 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport._client_disconnected   1 0 0   100%
mcpgateway / transports / sse_transport.py SSETransport.session_id   1 0 0   100%
mcpgateway / transports / sse_transport.py (no function)   47 0 0   100%
mcpgateway / transports / stdio_transport.py StdioTransport.__init__   3 0 0   100%
mcpgateway / transports / stdio_transport.py StdioTransport.connect   9 0 0   100%
mcpgateway / transports / stdio_transport.py StdioTransport.disconnect   5 0 0   100%
mcpgateway / transports / stdio_transport.py StdioTransport.send_message   9 0 0   100%
mcpgateway / transports / stdio_transport.py StdioTransport.receive_message   12 0 0   100%
mcpgateway / transports / stdio_transport.py StdioTransport.is_connected   1 0 0   100%
mcpgateway / transports / stdio_transport.py (no function)   15 0 0   100%
mcpgateway / transports / streamablehttp_transport.py StreamBuffer.__len__   1 0 0   100%
mcpgateway / transports / streamablehttp_transport.py InMemoryEventStore.__init__   3 0 0   100%
mcpgateway / transports / streamablehttp_transport.py InMemoryEventStore.store_event   20 0 0   100%
mcpgateway / transports / streamablehttp_transport.py InMemoryEventStore.replay_events_after   15 0 0   100%
mcpgateway / transports / streamablehttp_transport.py get_db   24 0 0   100%
mcpgateway / transports / streamablehttp_transport.py get_user_email_from_context   4 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _should_enforce_streamable_rbac   1 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _build_resource_metadata_url   22 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _check_server_oauth_enforcement   20 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _check_streamable_permission   13 2 0   85%
mcpgateway / transports / streamablehttp_transport.py _check_scoped_permission   9 0 0   100%
mcpgateway / transports / streamablehttp_transport.py set_shared_session_registry   1 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _get_shared_session_registry   1 1 0   0%
mcpgateway / transports / streamablehttp_transport.py _claim_streamable_session_owner   10 2 0   80%
mcpgateway / transports / streamablehttp_transport.py _validate_streamable_session_access   32 6 0   81%
mcpgateway / transports / streamablehttp_transport.py _proxy_list_tools_to_gateway   19 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _proxy_list_resources_to_gateway   23 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _proxy_read_resource_to_gateway   28 0 0   100%
mcpgateway / transports / streamablehttp_transport.py call_tool   116 0 0   100%
mcpgateway / transports / streamablehttp_transport.py call_tool._rehydrate_content_items   22 0 0   100%
mcpgateway / transports / streamablehttp_transport.py call_tool._convert_annotations   7 0 0   100%
mcpgateway / transports / streamablehttp_transport.py call_tool._convert_meta   7 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _get_request_context_or_default   45 2 0   96%
mcpgateway / transports / streamablehttp_transport.py _normalize_jwt_payload   21 0 0   100%
mcpgateway / transports / streamablehttp_transport.py list_tools   54 0 0   100%
mcpgateway / transports / streamablehttp_transport.py list_prompts   28 0 0   100%
mcpgateway / transports / streamablehttp_transport.py get_prompt   35 0 0   100%
mcpgateway / transports / streamablehttp_transport.py list_resources   48 0 0   100%
mcpgateway / transports / streamablehttp_transport.py read_resource   63 0 0   100%
mcpgateway / transports / streamablehttp_transport.py list_resource_templates   24 0 0   100%
mcpgateway / transports / streamablehttp_transport.py set_logging_level   19 1 0   95%
mcpgateway / transports / streamablehttp_transport.py complete   37 0 0   100%
mcpgateway / transports / streamablehttp_transport.py SessionManagerWrapper.__init__   11 0 0   100%
mcpgateway / transports / streamablehttp_transport.py SessionManagerWrapper.initialize   2 0 0   100%
mcpgateway / transports / streamablehttp_transport.py SessionManagerWrapper.shutdown   2 0 0   100%
mcpgateway / transports / streamablehttp_transport.py SessionManagerWrapper.handle_streamable_http   215 0 0   100%
mcpgateway / transports / streamablehttp_transport.py SessionManagerWrapper.handle_streamable_http.send_with_capture   11 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _set_proxy_user_context   1 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _StreamableHttpAuthHandler.__init__   3 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _StreamableHttpAuthHandler._send_error   3 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _StreamableHttpAuthHandler.authenticate   27 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _StreamableHttpAuthHandler._auth_no_token   18 0 0   100%
mcpgateway / transports / streamablehttp_transport.py _StreamableHttpAuthHandler._auth_jwt   76 0 0   100%
mcpgateway / transports / streamablehttp_transport.py streamable_http_auth   1 0 0   100%
mcpgateway / transports / streamablehttp_transport.py (no function)   118 0 0   100%
mcpgateway / transports / websocket_transport.py WebSocketTransport.__init__   3 0 0   100%
mcpgateway / transports / websocket_transport.py WebSocketTransport.connect   5 0 0   100%
mcpgateway / transports / websocket_transport.py WebSocketTransport.disconnect   19 0 0   100%
mcpgateway / transports / websocket_transport.py WebSocketTransport.send_message   7 0 0   100%
mcpgateway / transports / websocket_transport.py WebSocketTransport.receive_message   13 0 0   100%
mcpgateway / transports / websocket_transport.py WebSocketTransport.is_connected   1 0 0   100%
mcpgateway / transports / websocket_transport.py WebSocketTransport._ping_loop   14 0 0   100%
mcpgateway / transports / websocket_transport.py WebSocketTransport.send_ping   2 0 0   100%
mcpgateway / transports / websocket_transport.py (no function)   17 0 0   100%
mcpgateway / utils / analyze_query_log.py load_json_log   10 0 0   100%
mcpgateway / utils / analyze_query_log.py analyze_logs   25 0 0   100%
mcpgateway / utils / analyze_query_log.py print_report   31 0 0   100%
mcpgateway / utils / analyze_query_log.py main   21 0 0   100%
mcpgateway / utils / analyze_query_log.py (no function)   10 0 2   100%
mcpgateway / utils / base_models.py to_camel_case   1 0 0   100%
mcpgateway / utils / base_models.py BaseModelWithConfigDict.to_dict   1 0 0   100%
mcpgateway / utils / base_models.py (no function)   6 0 0   100%
mcpgateway / utils / correlation_id.py get_correlation_id   1 0 0   100%
mcpgateway / utils / correlation_id.py set_correlation_id   1 0 0   100%
mcpgateway / utils / correlation_id.py clear_correlation_id   1 0 0   100%
mcpgateway / utils / correlation_id.py generate_correlation_id   1 0 0   100%
mcpgateway / utils / correlation_id.py extract_correlation_id_from_headers   6 0 0   100%
mcpgateway / utils / correlation_id.py get_or_generate_correlation_id   5 0 0   100%
mcpgateway / utils / correlation_id.py validate_correlation_id   10 0 0   100%
mcpgateway / utils / correlation_id.py (no function)   13 0 0   100%
mcpgateway / utils / create_jwt_token.py _create_jwt_token   30 0 0   100%
mcpgateway / utils / create_jwt_token.py create_jwt_token   1 0 0   100%
mcpgateway / utils / create_jwt_token.py get_jwt_token   2 0 0   100%
mcpgateway / utils / create_jwt_token.py _decode_jwt_token   2 0 0   100%
mcpgateway / utils / create_jwt_token.py _parse_args   14 0 0   100%
mcpgateway / utils / create_jwt_token.py _payload_from_cli   15 0 0   100%
mcpgateway / utils / create_jwt_token.py main   0 0 128   100%
mcpgateway / utils / create_jwt_token.py (no function)   21 0 9   100%
mcpgateway / utils / create_slug.py slugify   6 0 0   100%
mcpgateway / utils / create_slug.py (no function)   7 0 0   100%
mcpgateway / utils / db_isready.py _sanitize   2 0 0   100%
mcpgateway / utils / db_isready.py _format_target   6 0 0   100%
mcpgateway / utils / db_isready.py wait_for_db_ready   26 0 0   100%
mcpgateway / utils / db_isready.py wait_for_db_ready._probe   17 0 0   100%
mcpgateway / utils / db_isready.py _parse_cli   8 0 0   100%
mcpgateway / utils / db_isready.py main   0 0 33   100%
mcpgateway / utils / db_isready.py (no function)   34 0 13   100%
mcpgateway / utils / display_name.py generate_display_name   7 0 0   100%
mcpgateway / utils / display_name.py (no function)   2 0 0   100%
mcpgateway / utils / error_formatter.py ErrorFormatter.format_validation_error   9 0 0   100%
mcpgateway / utils / error_formatter.py ErrorFormatter._get_user_message   5 0 0   100%
mcpgateway / utils / error_formatter.py ErrorFormatter.format_database_error   29 0 0   100%
mcpgateway / utils / error_formatter.py (no function)   13 0 0   100%
mcpgateway / utils / gateway_access.py extract_gateway_id_from_headers   7 0 0   100%
mcpgateway / utils / gateway_access.py check_gateway_access   24 0 0   100%
mcpgateway / utils / gateway_access.py build_gateway_auth_headers   22 0 0   100%
mcpgateway / utils / gateway_access.py (no function)   8 0 0   100%
mcpgateway / utils / generate_keys.py generate_ed25519_keypair   7 0 0   100%
mcpgateway / utils / generate_keys.py generate_ed25519_private_key   3 0 0   100%
mcpgateway / utils / generate_keys.py derive_public_key_from_private   8 0 0   100%
mcpgateway / utils / generate_keys.py main   3 0 0   100%
mcpgateway / utils / generate_keys.py (no function)   10 0 2   100%
mcpgateway / utils / hash_password.py _generate_hash   2 0 0   100%
mcpgateway / utils / hash_password.py main   16 0 0   100%
mcpgateway / utils / hash_password.py (no function)   7 0 2   100%
mcpgateway / utils / jwt_config_helper.py _read_key_file_cached   13 0 0   100%
mcpgateway / utils / jwt_config_helper.py _get_validated_config   7 0 0   100%
mcpgateway / utils / jwt_config_helper.py validate_jwt_algo_and_keys   1 0 0   100%
mcpgateway / utils / jwt_config_helper.py _validate_asymmetric_keys   12 0 0   100%
mcpgateway / utils / jwt_config_helper.py get_jwt_private_key_or_secret   7 0 0   100%
mcpgateway / utils / jwt_config_helper.py get_jwt_public_key_or_secret   7 0 0   100%
mcpgateway / utils / jwt_config_helper.py clear_jwt_caches   4 0 0   100%
mcpgateway / utils / jwt_config_helper.py (no function)   16 0 0   100%
mcpgateway / utils / keycloak_discovery.py _rewrite_endpoint_base   11 0 0   100%
mcpgateway / utils / keycloak_discovery.py discover_keycloak_endpoints   25 0 0   100%
mcpgateway / utils / keycloak_discovery.py discover_keycloak_endpoints_sync   25 0 0   100%
mcpgateway / utils / keycloak_discovery.py (no function)   8 0 0   100%
mcpgateway / utils / log_sanitizer.py sanitize_for_log   3 0 0   100%
mcpgateway / utils / log_sanitizer.py sanitize_dict_for_log   1 0 0   100%
mcpgateway / utils / log_sanitizer.py sanitize_optional   3 0 0   100%
mcpgateway / utils / log_sanitizer.py (no function)   6 0 0   100%
mcpgateway / utils / metadata_capture.py MetadataCapture.extract_request_context   13 0 0   100%
mcpgateway / utils / metadata_capture.py MetadataCapture.extract_username   5 0 0   100%
mcpgateway / utils / metadata_capture.py MetadataCapture.extract_creation_metadata   2 0 0   100%
mcpgateway / utils / metadata_capture.py MetadataCapture.extract_modification_metadata   2 0 0   100%
mcpgateway / utils / metadata_capture.py MetadataCapture.determine_source_from_context   5 0 0   100%
mcpgateway / utils / metadata_capture.py MetadataCapture.sanitize_user_agent   6 0 0   100%
mcpgateway / utils / metadata_capture.py MetadataCapture.validate_ip_address   5 0 0   100%
mcpgateway / utils / metadata_capture.py (no function)   17 0 0   100%
mcpgateway / utils / metrics_common.py build_top_performers   1 0 0   100%
mcpgateway / utils / metrics_common.py (no function)   3 0 0   100%
mcpgateway / utils / orjson_response.py ORJSONResponse.render   1 0 0   100%
mcpgateway / utils / orjson_response.py (no function)   6 0 0   100%
mcpgateway / utils / pagination.py encode_cursor   2 0 0   100%
mcpgateway / utils / pagination.py decode_cursor   5 0 0   100%
mcpgateway / utils / pagination.py generate_pagination_links   5 0 0   100%
mcpgateway / utils / pagination.py generate_pagination_links.build_url   10 0 0   100%
mcpgateway / utils / pagination.py offset_paginate   20 0 0   100%
mcpgateway / utils / pagination.py cursor_paginate   43 0 0   100%
mcpgateway / utils / pagination.py paginate_query   14 0 0   100%
mcpgateway / utils / pagination.py unified_paginate   48 0 0   100%
mcpgateway / utils / pagination.py parse_pagination_params   8 0 0   100%
mcpgateway / utils / pagination.py (no function)   21 0 0   100%
mcpgateway / utils / passthrough_headers.py sanitize_header_value   4 0 0   100%
mcpgateway / utils / passthrough_headers.py validate_header_name   1 0 0   100%
mcpgateway / utils / passthrough_headers.py get_passthrough_headers   63 0 0   100%
mcpgateway / utils / passthrough_headers.py compute_passthrough_headers_cached   53 0 0   100%
mcpgateway / utils / passthrough_headers.py set_global_passthrough_headers   20 0 0   100%
mcpgateway / utils / passthrough_headers.py (no function)   17 0 0   100%
mcpgateway / utils / psycopg3_optimizations.py is_psycopg3_backend   7 0 0   100%
mcpgateway / utils / psycopg3_optimizations.py _format_value_for_copy   9 0 0   100%
mcpgateway / utils / psycopg3_optimizations.py bulk_insert_with_copy   24 0 0   100%
mcpgateway / utils / psycopg3_optimizations.py _bulk_insert_fallback   10 0 0   100%
mcpgateway / utils / psycopg3_optimizations.py execute_pipelined   22 0 0   100%
mcpgateway / utils / psycopg3_optimizations.py bulk_insert_metrics   6 0 0   100%
mcpgateway / utils / psycopg3_optimizations.py get_raw_connection   6 0 0   100%
mcpgateway / utils / psycopg3_optimizations.py (no function)   16 0 0   100%
mcpgateway / utils / redis_client.py _is_hiredis_available   5 0 0   100%
mcpgateway / utils / redis_client.py _get_async_parser_class   10 0 0   100%
mcpgateway / utils / redis_client.py get_redis_client   29 0 0   100%
mcpgateway / utils / redis_client.py close_redis_client   8 0 0   100%
mcpgateway / utils / redis_client.py get_redis_client_sync   1 0 0   100%
mcpgateway / utils / redis_client.py is_redis_available   8 0 0   100%
mcpgateway / utils / redis_client.py get_redis_parser_info   1 0 0   100%
mcpgateway / utils / redis_client.py _reset_client   3 0 0   100%
mcpgateway / utils / redis_client.py (no function)   14 0 0   100%
mcpgateway / utils / redis_isready.py wait_for_redis_ready   11 0 0   100%
mcpgateway / utils / redis_isready.py wait_for_redis_ready._probe   18 0 3   100%
mcpgateway / utils / redis_isready.py _parse_cli   7 0 0   100%
mcpgateway / utils / redis_isready.py main   0 0 32   100%
mcpgateway / utils / redis_isready.py (no function)   16 0 6   100%
mcpgateway / utils / retry_manager.py ResilientHttpClient.__init__   8 0 0   100%
mcpgateway / utils / retry_manager.py ResilientHttpClient._sleep_with_jitter   3 0 0   100%
mcpgateway / utils / retry_manager.py ResilientHttpClient._should_retry   10 0 0   100%
mcpgateway / utils / retry_manager.py ResilientHttpClient.request   33 0 0   100%
mcpgateway / utils / retry_manager.py ResilientHttpClient.get   1 0 0   100%
mcpgateway / utils / retry_manager.py ResilientHttpClient.post   1 0 0   100%
mcpgateway / utils / retry_manager.py ResilientHttpClient.put   1 0 0   100%
mcpgateway / utils / retry_manager.py ResilientHttpClient.delete   1 0 0   100%
mcpgateway / utils / retry_manager.py ResilientHttpClient.stream   39 0 0   100%
mcpgateway / utils / retry_manager.py ResilientHttpClient.aclose   1 0 0   100%
mcpgateway / utils / retry_manager.py ResilientHttpClient.__aenter__   1 0 0   100%
mcpgateway / utils / retry_manager.py ResilientHttpClient.__aexit__   1 0 0   100%
mcpgateway / utils / retry_manager.py (no function)   24 0 0   100%
mcpgateway / utils / security_cookies.py CookieTooLargeError.__init__   3 0 0   100%
mcpgateway / utils / security_cookies.py set_auth_cookie   25 0 0   100%
mcpgateway / utils / security_cookies.py clear_auth_cookie   2 0 0   100%
mcpgateway / utils / security_cookies.py set_session_cookie   2 0 0   100%
mcpgateway / utils / security_cookies.py clear_session_cookie   2 0 0   100%
mcpgateway / utils / security_cookies.py (no function)   12 0 0   100%
mcpgateway / utils / services_auth.py _get_passphrase   6 0 0   100%
mcpgateway / utils / services_auth.py get_key   8 0 0   100%
mcpgateway / utils / services_auth.py _get_aesgcm   8 0 0   100%
mcpgateway / utils / services_auth.py clear_crypto_cache   1 0 0   100%
mcpgateway / utils / services_auth.py _aesgcm_for_secret   2 0 0   100%
mcpgateway / utils / services_auth.py encode_auth   9 0 0   100%
mcpgateway / utils / services_auth.py decode_auth   9 0 0   100%
mcpgateway / utils / services_auth.py (no function)   16 0 0   100%
mcpgateway / utils / sqlalchemy_modifier.py _ensure_list   5 0 0   100%
mcpgateway / utils / sqlalchemy_modifier.py _generate_unique_prefix   4 0 0   100%
mcpgateway / utils / sqlalchemy_modifier.py _sqlite_tag_any_template   7 0 0   100%
mcpgateway / utils / sqlalchemy_modifier.py _sqlite_tag_all_template   5 0 0   100%
mcpgateway / utils / sqlalchemy_modifier.py json_contains_tag_expr   43 0 0   100%
mcpgateway / utils / sqlalchemy_modifier.py json_contains_expr   40 0 0   100%
mcpgateway / utils / sqlalchemy_modifier.py (no function)   16 0 0   100%
mcpgateway / utils / ssl_context_cache.py get_cached_ssl_context   14 0 0   100%
mcpgateway / utils / ssl_context_cache.py clear_ssl_context_cache   1 0 0   100%
mcpgateway / utils / ssl_context_cache.py (no function)   5 0 0   100%
mcpgateway / utils / ssl_key_manager.py SSLKeyManager.__init__   1 0 0   100%
mcpgateway / utils / ssl_key_manager.py SSLKeyManager.prepare_key_file   24 0 0   100%
mcpgateway / utils / ssl_key_manager.py SSLKeyManager.cleanup   4 0 0   100%
mcpgateway / utils / ssl_key_manager.py prepare_ssl_key   1 0 0   100%
mcpgateway / utils / ssl_key_manager.py (no function)   16 0 0   100%
mcpgateway / utils / sso_bootstrap.py get_predefined_sso_providers   32 0 0   100%
mcpgateway / utils / sso_bootstrap.py bootstrap_sso_providers   32 0 0   100%
mcpgateway / utils / sso_bootstrap.py (no function)   7 0 3   100%
mcpgateway / utils / token_scoping.py extract_token_scopes_from_request   11 0 0   100%
mcpgateway / utils / token_scoping.py is_token_server_scoped   3 0 0   100%
mcpgateway / utils / token_scoping.py get_token_server_id   3 0 0   100%
mcpgateway / utils / token_scoping.py validate_server_access   6 0 0   100%
mcpgateway / utils / token_scoping.py (no function)   7 0 0   100%
mcpgateway / utils / url_auth.py apply_query_param_auth   11 0 0   100%
mcpgateway / utils / url_auth.py sanitize_url_for_logging   20 0 0   100%
mcpgateway / utils / url_auth.py sanitize_exception_message   4 0 0   100%
mcpgateway / utils / url_auth.py sanitize_exception_message.replace_url   2 0 0   100%
mcpgateway / utils / url_auth.py (no function)   8 0 0   100%
mcpgateway / utils / validate_signature.py sign_data   8 0 0   100%
mcpgateway / utils / validate_signature.py _load_public_key_cached   8 0 0   100%
mcpgateway / utils / validate_signature.py validate_signature   28 0 0   100%
mcpgateway / utils / validate_signature.py clear_signature_caches   2 0 0   100%
mcpgateway / utils / validate_signature.py resign_data   10 0 0   100%
mcpgateway / utils / validate_signature.py (no function)   15 0 9   100%
mcpgateway / utils / verify_credentials.py is_proxy_auth_trust_active   9 0 0   100%
mcpgateway / utils / verify_credentials.py extract_websocket_bearer_token   13 0 0   100%
mcpgateway / utils / verify_credentials.py verify_jwt_token   29 0 0   100%
mcpgateway / utils / verify_credentials.py verify_jwt_token_cached   10 0 0   100%
mcpgateway / utils / verify_credentials.py verify_credentials   3 0 0   100%
mcpgateway / utils / verify_credentials.py verify_credentials_cached   2 0 0   100%
mcpgateway / utils / verify_credentials.py _raise_auth_401   1 0 0   100%
mcpgateway / utils / verify_credentials.py _enforce_revocation_and_active_user   24 0 0   100%
mcpgateway / utils / verify_credentials.py require_auth   27 0 0   100%
mcpgateway / utils / verify_credentials.py verify_basic_credentials   5 0 0   100%
mcpgateway / utils / verify_credentials.py require_basic_auth   5 0 0   100%
mcpgateway / utils / verify_credentials.py require_docs_basic_auth   12 0 0   100%
mcpgateway / utils / verify_credentials.py require_docs_auth_override   13 0 0   100%
mcpgateway / utils / verify_credentials.py require_auth_override   10 0 0   100%
mcpgateway / utils / verify_credentials.py require_auth_header_first   28 0 0   100%
mcpgateway / utils / verify_credentials.py require_admin_auth   55 2 0   96%
mcpgateway / utils / verify_credentials.py (no function)   31 0 0   100%
mcpgateway / validation / __init__.py (no function)   3 0 0   100%
mcpgateway / validation / jsonrpc.py JSONRPCError.__init__   5 0 0   100%
mcpgateway / validation / jsonrpc.py JSONRPCError.to_dict   4 0 0   100%
mcpgateway / validation / jsonrpc.py validate_request   13 0 0   100%
mcpgateway / validation / jsonrpc.py validate_response   23 0 0   100%
mcpgateway / validation / jsonrpc.py (no function)   13 0 0   100%
mcpgateway / validation / tags.py TagValidator.normalize   4 0 0   100%
mcpgateway / validation / tags.py TagValidator.validate   10 0 0   100%
mcpgateway / validation / tags.py TagValidator.validate_list   18 0 0   100%
mcpgateway / validation / tags.py TagValidator.get_validation_errors   12 0 0   100%
mcpgateway / validation / tags.py validate_tags_field   11 0 0   100%
mcpgateway / validation / tags.py (no function)   17 0 0   100%
mcpgateway / version.py _is_secret   5 0 0   100%
mcpgateway / version.py _public_env   1 0 0   100%
mcpgateway / version.py _sanitize_url   10 0 0   100%
mcpgateway / version.py _database_version   9 0 0   100%
mcpgateway / version.py _system_metrics   27 0 0   100%
mcpgateway / version.py _build_payload   2 0 0   100%
mcpgateway / version.py _html_table   2 0 0   100%
mcpgateway / version.py _render_html   7 0 0   100%
mcpgateway / version.py _login_html   1 0 0   100%
mcpgateway / version.py version_endpoint   26 0 0   100%
mcpgateway / version.py (no function)   49 0 0   100%
mcpgateway / wrapper.py _mark_shutdown   2 0 0   100%
mcpgateway / wrapper.py shutting_down   1 0 0   100%
mcpgateway / wrapper.py setup_logging   12 0 0   100%
mcpgateway / wrapper.py convert_url   7 0 0   100%
mcpgateway / wrapper.py send_to_stdout   15 0 0   100%
mcpgateway / wrapper.py make_error   4 0 0   100%
mcpgateway / wrapper.py stdin_reader   21 0 0   100%
mcpgateway / wrapper.py ndjson_lines   13 0 0   100%
mcpgateway / wrapper.py sse_events   35 0 0   100%
mcpgateway / wrapper.py forward_once   56 0 0   100%
mcpgateway / wrapper.py forward_once._process_line   9 0 0   100%
mcpgateway / wrapper.py make_request   15 0 0   100%
mcpgateway / wrapper.py main_async   32 0 0   100%
mcpgateway / wrapper.py main_async._worker   3 0 0   100%
mcpgateway / wrapper.py parse_args   12 0 0   100%
mcpgateway / wrapper.py _install_signal_handlers   5 0 0   100%
mcpgateway / wrapper.py main   14 0 0   100%
mcpgateway / wrapper.py (no function)   49 0 2   100%
Total     56677 411 486   99%

No items found using the specified filter.