From 3bbbbff1a8b77217fb3e408b7085ce582d03190e Mon Sep 17 00:00:00 2001 From: shivam Date: Tue, 3 Mar 2026 15:54:38 -0800 Subject: [PATCH] fix: add IP filtering to get_mcp_server_by_id path in fetch_mcp_server Apply _is_server_accessible_from_ip check after get_mcp_server_by_id lookup to prevent external callers from accessing MCP servers configured with available_on_public_internet=False when they know the server_id. Made-with: Cursor --- .../proxy/management_endpoints/mcp_management_endpoints.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/litellm/proxy/management_endpoints/mcp_management_endpoints.py b/litellm/proxy/management_endpoints/mcp_management_endpoints.py index 428784a7ccc..ecee22f2d7f 100644 --- a/litellm/proxy/management_endpoints/mcp_management_endpoints.py +++ b/litellm/proxy/management_endpoints/mcp_management_endpoints.py @@ -700,6 +700,10 @@ if MCP_AVAILABLE: client_ip = IPAddressUtils.get_mcp_client_ip(request) registry_server = global_mcp_server_manager.get_mcp_server_by_id(server_id) + if registry_server is not None and not global_mcp_server_manager._is_server_accessible_from_ip( + registry_server, client_ip + ): + registry_server = None if registry_server is None: # Try lookup by server_name or alias (client may use display name in URL) registry_server = global_mcp_server_manager.get_mcp_server_by_name(