fix: failed to connect OAuth MCP server (#5709)

* fix: failed to connect OAuth MCP server

* polish: handle token fetching errors gracefully
This commit is contained in:
chenxi 2025-05-08 00:32:51 +08:00 committed by GitHub
parent 12f4500c47
commit 26bade489c

View File

@ -162,7 +162,23 @@ class McpService {
} else if (server.type === 'sse') {
const options: SSEClientTransportOptions = {
eventSourceInit: {
fetch: (url, init) => fetch(url, { ...init, headers: server.headers || {} })
fetch: async (url, init) => {
const headers = { ...(server.headers || {}), ...(init?.headers || {}) }
// Get tokens from authProvider to make sure using the latest tokens
if (authProvider && typeof authProvider.tokens === 'function') {
try {
const tokens = await authProvider.tokens()
if (tokens && tokens.access_token) {
headers['Authorization'] = `Bearer ${tokens.access_token}`
}
} catch (error) {
Logger.error('Failed to fetch tokens:', error)
}
}
return fetch(url, { ...init, headers })
}
},
requestInit: {
headers: server.headers || {}