Skip to content

Commit cdd7b88

Browse files
committed
refac
1 parent 8927c9b commit cdd7b88

2 files changed

Lines changed: 11 additions & 10 deletions

File tree

backend/open_webui/routers/tools.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -122,32 +122,33 @@ async def get_tools(
122122

123123
# MCP Tool Servers
124124
for server in await Config.get('tool_server.connections', []):
125-
if server.get('type', 'openapi') == 'mcp' and server.get('config', {}).get('enable'):
126-
server_id = server.get('info', {}).get('id')
125+
if server.get('type', 'openapi') == 'mcp' and (server.get('config') or {}).get('enable'):
126+
info = server.get('info') or {}
127+
server_id = info.get('id')
127128
auth_type = server.get('auth_type', 'none')
128129

129130
session_token = None
130-
if auth_type in ('oauth_2.1', 'oauth_2.1_static'):
131+
if auth_type in ('oauth_2.1', 'oauth_2.1_static') and server_id:
131132
splits = server_id.split(':')
132133
server_id = splits[-1] if len(splits) > 1 else server_id
133134

134135
session_token = await request.app.state.oauth_client_manager.get_oauth_token(
135136
user.id, f'mcp:{server_id}'
136137
)
137138

138-
server_config = server.get('config', {})
139+
server_config = server.get('config') or {}
139140

140-
tool_id = f'server:mcp:{server.get("info", {}).get("id")}'
141+
tool_id = f'server:mcp:{info.get("id")}'
141142
server_access_grants[tool_id] = server_config.get('access_grants', [])
142143

143144
tools.append(
144145
ToolUserResponse(
145146
**{
146147
'id': tool_id,
147148
'user_id': tool_id,
148-
'name': server.get('info', {}).get('name', 'MCP Tool Server'),
149+
'name': info.get('name', 'MCP Tool Server'),
149150
'meta': {
150-
'description': server.get('info', {}).get('description', ''),
151+
'description': info.get('description', ''),
151152
},
152153
'updated_at': int(time.time()),
153154
'created_at': int(time.time()),

backend/open_webui/utils/oauth.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -672,7 +672,7 @@ def resolve_oauth_client_info(connection: dict) -> dict:
672672
For oauth_2.1_static, overlays admin-provided credentials from
673673
info.oauth_client_id and info.oauth_client_secret onto the blob.
674674
"""
675-
info = connection.get('info', {})
675+
info = connection.get('info') or {}
676676
data = decrypt_data(info.get('oauth_client_info', ''))
677677

678678
if connection.get('auth_type') == 'oauth_2.1_static':
@@ -838,15 +838,15 @@ async def ensure_client_from_config(self, client_id):
838838
if connection.get('auth_type', 'none') not in ('oauth_2.1', 'oauth_2.1_static'):
839839
continue
840840

841-
server_id = connection.get('info', {}).get('id')
841+
server_id = (connection.get('info') or {}).get('id')
842842
if not server_id:
843843
continue
844844

845845
expected_client_id = f'mcp:{server_id}'
846846
if client_id != expected_client_id:
847847
continue
848848

849-
oauth_client_info = connection.get('info', {}).get('oauth_client_info', '')
849+
oauth_client_info = (connection.get('info') or {}).get('oauth_client_info', '')
850850
if not oauth_client_info:
851851
continue
852852

0 commit comments

Comments
 (0)