diff --git a/autogpt_platform/backend/backend/api/features/mcp/routes.py b/autogpt_platform/backend/backend/api/features/mcp/routes.py index 6f517c52f4..275d603add 100644 --- a/autogpt_platform/backend/backend/api/features/mcp/routes.py +++ b/autogpt_platform/backend/backend/api/features/mcp/routes.py @@ -80,7 +80,7 @@ async def discover_tools( if not auth_token: try: mcp_creds = await creds_manager.store.get_creds_by_provider( - user_id, str(ProviderName.MCP) + user_id, ProviderName.MCP.value ) # Find the freshest credential for this server URL best_cred: OAuth2Credentials | None = None @@ -250,7 +250,7 @@ async def mcp_oauth_login( ) state_token, code_challenge = await creds_manager.store.store_state_token( user_id, - str(ProviderName.MCP), + ProviderName.MCP.value, scopes, state_metadata={ "authorize_url": authorize_url, @@ -308,7 +308,7 @@ async def mcp_oauth_callback( will automatically use the stored credential. """ valid_state = await creds_manager.store.verify_state_token( - user_id, request.state_token, str(ProviderName.MCP) + user_id, request.state_token, ProviderName.MCP.value ) if not valid_state: raise fastapi.HTTPException( @@ -356,7 +356,7 @@ async def mcp_oauth_callback( # Remove old MCP credentials for the same server to prevent stale token buildup try: old_creds = await creds_manager.store.get_creds_by_provider( - user_id, str(ProviderName.MCP) + user_id, ProviderName.MCP.value ) for old in old_creds: if ( diff --git a/autogpt_platform/backend/backend/blocks/mcp/oauth.py b/autogpt_platform/backend/backend/blocks/mcp/oauth.py index 8cce1099e5..9636c42e8b 100644 --- a/autogpt_platform/backend/backend/blocks/mcp/oauth.py +++ b/autogpt_platform/backend/backend/blocks/mcp/oauth.py @@ -113,7 +113,7 @@ class MCPOAuthHandler(BaseOAuthHandler): expires_in = tokens.get("expires_in") return OAuth2Credentials( - provider=str(self.PROVIDER_NAME), + provider=getattr(self.PROVIDER_NAME, "value", self.PROVIDER_NAME), title=None, access_token=SecretStr(tokens["access_token"]), refresh_token=( @@ -163,7 +163,7 @@ class MCPOAuthHandler(BaseOAuthHandler): return OAuth2Credentials( id=credentials.id, - provider=str(self.PROVIDER_NAME), + provider=getattr(self.PROVIDER_NAME, "value", self.PROVIDER_NAME), title=credentials.title, access_token=SecretStr(tokens["access_token"]), refresh_token=( diff --git a/autogpt_platform/backend/backend/integrations/creds_manager.py b/autogpt_platform/backend/backend/integrations/creds_manager.py index ea5d92087b..bd5203eaeb 100644 --- a/autogpt_platform/backend/backend/integrations/creds_manager.py +++ b/autogpt_platform/backend/backend/integrations/creds_manager.py @@ -137,7 +137,7 @@ class IntegrationCredentialsManager: self, user_id: str, credentials: OAuth2Credentials, lock: bool = True ) -> OAuth2Credentials: async with self._locked(user_id, credentials.id, "refresh"): - if credentials.provider == str(ProviderName.MCP): + if credentials.provider == ProviderName.MCP.value: oauth_handler = _create_mcp_oauth_handler(credentials) else: oauth_handler = await _get_provider_oauth_handler(credentials.provider)