Skip to content

Commit 81feb49

Browse files
committed
perf: update mcp client request
1 parent 309e60f commit 81feb49

8 files changed

Lines changed: 89 additions & 988 deletions

File tree

backend/open_webui/jms/wisp/protobuf/common_pb2.py

Lines changed: 63 additions & 59 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/open_webui/jms/wisp/protobuf/common_pb2.pyi

Lines changed: 0 additions & 447 deletions
This file was deleted.

backend/open_webui/jms/wisp/protobuf/service_pb2.pyi

Lines changed: 0 additions & 473 deletions
This file was deleted.

backend/open_webui/routers/configs.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,10 @@ async def verify_tool_servers_config(
262262
else:
263263
try:
264264
client = MCPClient()
265-
headers = None
266-
265+
headers = {}
266+
print("Cookies: ", request.cookies)
267+
cookies_str = '; '.join([f'{key}={value}' for key, value in request.cookies.items()])
268+
headers.update({'cookie': cookies_str})
267269
token = None
268270
if form_data.auth_type == "bearer":
269271
token = form_data.key
@@ -282,8 +284,9 @@ async def verify_tool_servers_config(
282284
except Exception as e:
283285
pass
284286

287+
285288
if token:
286-
headers = {"Authorization": f"Bearer {token}"}
289+
headers["Authorization"] = f"Bearer {token}"
287290

288291
await client.connect(form_data.url, headers=headers)
289292
specs = await client.list_tool_specs()

backend/open_webui/utils/mcp/client.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,9 @@ async def read_resource(self, uri: str) -> Optional[dict]:
104104

105105
async def disconnect(self):
106106
# Clean up and close the session
107-
await self.exit_stack.aclose()
107+
if self.exit_stack is not None:
108+
await self.exit_stack.aclose()
109+
self.exit_stack = None
108110

109111
async def __aenter__(self):
110112
await self.exit_stack.__aenter__()

backend/open_webui/utils/middleware.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1324,6 +1324,9 @@ async def process_chat_payload(request, form_data, user, metadata, model):
13241324
auth_type = mcp_server_connection.get("auth_type", "")
13251325

13261326
headers = {}
1327+
cookie = '; '.join([f'{key}={value}' for key, value in request.cookies.items()])
1328+
headers.update({'cookie': cookie})
1329+
13271330
if auth_type == "bearer":
13281331
headers["Authorization"] = (
13291332
f"Bearer {mcp_server_connection.get('key', '')}"
@@ -1333,7 +1336,7 @@ async def process_chat_payload(request, form_data, user, metadata, model):
13331336
pass
13341337
elif auth_type == "session":
13351338
headers["Authorization"] = (
1336-
f"Bearer {request.state.token.credentials}"
1339+
f"Bearer jms-{request.cookies.get('jms_sessionid', '')}"
13371340
)
13381341
elif auth_type == "system_oauth":
13391342
oauth_token = extra_params.get("__oauth_token__", None)
@@ -1397,11 +1400,12 @@ async def tool_function(**kwargs):
13971400
"type": "chat:message:error",
13981401
"data": {
13991402
"error": {
1400-
"content": f"Failed to connect to MCP server '{server_id}'"
1403+
"content": f"Failed to connect to MCP server '{server_id}-{mcp_server_connection.get('url', '')}'"
14011404
}
14021405
},
14031406
}
14041407
)
1408+
raise e
14051409
continue
14061410

14071411
tools_dict = await get_tools(

src/lib/components/chat/ModelSelector/Selector.svelte

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,14 @@
333333
$config?.features?.enable_direct_connections && ($settings?.directConnections ?? null)
334334
)
335335
);
336+
337+
console.log('Items: ');
338+
console.log(items);
339+
340+
if (!selectedModel) {
341+
selectedModel = items[0];
342+
value = selectedModel.value;
343+
}
336344
});
337345
338346
$: if (show) {
@@ -404,7 +412,7 @@
404412
}}
405413
>
406414
{#if selectedModel}
407-
{selectedModel.label}
415+
{selectedModel.label.split('/').slice(-1)}
408416
{:else}
409417
{placeholder}
410418
{/if}

src/lib/components/chat/ToolServersModal.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@
5959
</div>
6060

6161
<!-- <div slot="content">
62-
{JSON.stringify(tool, null, 2)}
63-
</div> -->
62+
{JSON.stringify(tool, null, 2)}
63+
</div> -->
6464
</Collapsible>
6565
{/each}
6666
</div>

0 commit comments

Comments
 (0)