@@ -118,6 +118,15 @@ async def generate_config_async(self, servers: Dict[str, Dict[str, Any]]) -> boo
118
118
# Authenticate request - pass entire request to auth server
119
119
auth_request /validate;
120
120
121
+ # Capture auth server response headers for forwarding
122
+ auth_request_set $auth_user $upstream_http_x_user;
123
+ auth_request_set $auth_username $upstream_http_x_username;
124
+ auth_request_set $auth_client_id $upstream_http_x_client_id;
125
+ auth_request_set $auth_scopes $upstream_http_x_scopes;
126
+ auth_request_set $auth_method $upstream_http_x_auth_method;
127
+ auth_request_set $auth_server_name $upstream_http_x_server_name;
128
+ auth_request_set $auth_tool_name $upstream_http_x_tool_name;
129
+
121
130
# Proxy to MCP server
122
131
proxy_pass { proxy_pass_url } ;
123
132
proxy_http_version 1.1;
@@ -135,6 +144,15 @@ async def generate_config_async(self, servers: Dict[str, Dict[str, Any]]) -> boo
135
144
proxy_set_header X-Client-Id $http_x_client_id;
136
145
proxy_set_header X-Region $http_x_region;
137
146
147
+ # Forward auth server response headers to backend
148
+ proxy_set_header X-User $auth_user;
149
+ proxy_set_header X-Username $auth_username;
150
+ proxy_set_header X-Client-Id-Auth $auth_client_id;
151
+ proxy_set_header X-Scopes $auth_scopes;
152
+ proxy_set_header X-Auth-Method $auth_method;
153
+ proxy_set_header X-Server-Name $auth_server_name;
154
+ proxy_set_header X-Tool-Name $auth_tool_name;
155
+
138
156
# For SSE connections and WebSocket upgrades
139
157
proxy_buffering off;
140
158
proxy_cache off;
0 commit comments