From cb7a0cbdd72cd772aaaf1e9f1dc5eaacb3b54076 Mon Sep 17 00:00:00 2001 From: Zamil Majdy Date: Tue, 10 Feb 2026 17:08:03 +0400 Subject: [PATCH] refactor(mcp): Make create_mcp_oauth_handler public and use top-level import --- .../backend/api/features/integrations/router.py | 11 +++++------ .../backend/backend/integrations/creds_manager.py | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/autogpt_platform/backend/backend/api/features/integrations/router.py b/autogpt_platform/backend/backend/api/features/integrations/router.py index 8364e01439..4eacf83e71 100644 --- a/autogpt_platform/backend/backend/api/features/integrations/router.py +++ b/autogpt_platform/backend/backend/api/features/integrations/router.py @@ -40,7 +40,10 @@ from backend.data.user import get_user_integrations from backend.executor.utils import add_graph_execution from backend.integrations.ayrshare import AyrshareClient, SocialPlatform from backend.integrations.credentials_store import provider_matches -from backend.integrations.creds_manager import IntegrationCredentialsManager +from backend.integrations.creds_manager import ( + IntegrationCredentialsManager, + create_mcp_oauth_handler, +) from backend.integrations.oauth import CREDENTIALS_BY_PROVIDER, HANDLERS_BY_NAME from backend.integrations.providers import ProviderName from backend.integrations.webhooks import get_webhook_manager @@ -351,11 +354,7 @@ async def delete_credentials( if isinstance(creds, OAuth2Credentials): if provider_matches(provider.value, ProviderName.MCP.value): # MCP uses dynamic per-server OAuth — create handler from metadata - from backend.integrations.creds_manager import ( - _create_mcp_oauth_handler, - ) - - handler = _create_mcp_oauth_handler(creds) + handler = create_mcp_oauth_handler(creds) else: handler = _get_provider_oauth_handler(request, provider) tokens_revoked = await handler.revoke_tokens(creds) diff --git a/autogpt_platform/backend/backend/integrations/creds_manager.py b/autogpt_platform/backend/backend/integrations/creds_manager.py index fb1dbda8ba..5e60c7bc28 100644 --- a/autogpt_platform/backend/backend/integrations/creds_manager.py +++ b/autogpt_platform/backend/backend/integrations/creds_manager.py @@ -141,7 +141,7 @@ class IntegrationCredentialsManager: ) -> OAuth2Credentials: async with self._locked(user_id, credentials.id, "refresh"): if provider_matches(credentials.provider, ProviderName.MCP.value): - oauth_handler = _create_mcp_oauth_handler(credentials) + oauth_handler = create_mcp_oauth_handler(credentials) else: oauth_handler = await _get_provider_oauth_handler(credentials.provider) if oauth_handler.needs_refresh(credentials): @@ -244,7 +244,7 @@ async def _get_provider_oauth_handler(provider_name_str: str) -> "BaseOAuthHandl ) -def _create_mcp_oauth_handler( +def create_mcp_oauth_handler( credentials: OAuth2Credentials, ) -> "BaseOAuthHandler": """Create an MCPOAuthHandler from credential metadata for token refresh.