diff options
| author | ashwinpvg <[email protected]> | 2025-07-24 10:37:39 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-24 17:37:39 +0000 |
| commit | d254d4ce007d446dbd246658345a30ff86413721 (patch) | |
| tree | dbac317ca2a8f8d2f9e11e9100491af77b7fcde4 /packages/core/src/tools/mcp-client.ts | |
| parent | 3dd6e431df057af47b96990d0c9c6477ccfbe452 (diff) | |
Add Google credentials provider for authenticating with MCP servers (#4748)
Diffstat (limited to 'packages/core/src/tools/mcp-client.ts')
| -rw-r--r-- | packages/core/src/tools/mcp-client.ts | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/packages/core/src/tools/mcp-client.ts b/packages/core/src/tools/mcp-client.ts index 457259e5..3c482100 100644 --- a/packages/core/src/tools/mcp-client.ts +++ b/packages/core/src/tools/mcp-client.ts @@ -16,7 +16,8 @@ import { StreamableHTTPClientTransportOptions, } from '@modelcontextprotocol/sdk/client/streamableHttp.js'; import { parse } from 'shell-quote'; -import { MCPServerConfig } from '../config/config.js'; +import { AuthProviderType, MCPServerConfig } from '../config/config.js'; +import { GoogleCredentialProvider } from '../mcp/google-auth-provider.js'; import { DiscoveredMCPTool } from './mcp-tool.js'; import { FunctionDeclaration, mcpToTool } from '@google/genai'; import { ToolRegistry } from './tool-registry.js'; @@ -852,6 +853,29 @@ export async function createTransport( mcpServerConfig: MCPServerConfig, debugMode: boolean, ): Promise<Transport> { + if ( + mcpServerConfig.authProviderType === AuthProviderType.GOOGLE_CREDENTIALS + ) { + const provider = new GoogleCredentialProvider(mcpServerConfig); + const transportOptions: + | StreamableHTTPClientTransportOptions + | SSEClientTransportOptions = { + authProvider: provider, + }; + if (mcpServerConfig.httpUrl) { + return new StreamableHTTPClientTransport( + new URL(mcpServerConfig.httpUrl), + transportOptions, + ); + } else if (mcpServerConfig.url) { + return new SSEClientTransport( + new URL(mcpServerConfig.url), + transportOptions, + ); + } + throw new Error('No URL configured for Google Credentials MCP server'); + } + // Check if we have OAuth configuration or stored tokens let accessToken: string | null = null; let hasOAuthConfig = mcpServerConfig.oauth?.enabled; |
