|
|
|
@ -7,13 +7,14 @@ from sqlalchemy import or_
|
|
|
|
from sqlalchemy.exc import IntegrityError
|
|
|
|
from sqlalchemy.exc import IntegrityError
|
|
|
|
|
|
|
|
|
|
|
|
from core.helper import encrypter
|
|
|
|
from core.helper import encrypter
|
|
|
|
|
|
|
|
from core.helper.provider_cache import NoOpProviderCredentialCache
|
|
|
|
from core.mcp.error import MCPAuthError, MCPError
|
|
|
|
from core.mcp.error import MCPAuthError, MCPError
|
|
|
|
from core.mcp.mcp_client import MCPClient
|
|
|
|
from core.mcp.mcp_client import MCPClient
|
|
|
|
from core.tools.entities.api_entities import ToolProviderApiEntity
|
|
|
|
from core.tools.entities.api_entities import ToolProviderApiEntity
|
|
|
|
from core.tools.entities.common_entities import I18nObject
|
|
|
|
from core.tools.entities.common_entities import I18nObject
|
|
|
|
from core.tools.entities.tool_entities import ToolProviderType
|
|
|
|
from core.tools.entities.tool_entities import ToolProviderType
|
|
|
|
from core.tools.mcp_tool.provider import MCPToolProviderController
|
|
|
|
from core.tools.mcp_tool.provider import MCPToolProviderController
|
|
|
|
from core.tools.utils.configuration import ProviderConfigEncrypter
|
|
|
|
from core.tools.utils.encryption import ProviderConfigEncrypter
|
|
|
|
from extensions.ext_database import db
|
|
|
|
from extensions.ext_database import db
|
|
|
|
from models.tools import MCPToolProvider
|
|
|
|
from models.tools import MCPToolProvider
|
|
|
|
from services.tools.tools_transform_service import ToolTransformService
|
|
|
|
from services.tools.tools_transform_service import ToolTransformService
|
|
|
|
@ -69,6 +70,7 @@ class MCPToolManageService:
|
|
|
|
MCPToolProvider.server_url_hash == server_url_hash,
|
|
|
|
MCPToolProvider.server_url_hash == server_url_hash,
|
|
|
|
MCPToolProvider.server_identifier == server_identifier,
|
|
|
|
MCPToolProvider.server_identifier == server_identifier,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
|
|
|
|
MCPToolProvider.tenant_id == tenant_id,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
.first()
|
|
|
|
.first()
|
|
|
|
)
|
|
|
|
)
|
|
|
|
@ -197,8 +199,7 @@ class MCPToolManageService:
|
|
|
|
tool_configuration = ProviderConfigEncrypter(
|
|
|
|
tool_configuration = ProviderConfigEncrypter(
|
|
|
|
tenant_id=mcp_provider.tenant_id,
|
|
|
|
tenant_id=mcp_provider.tenant_id,
|
|
|
|
config=list(provider_controller.get_credentials_schema()),
|
|
|
|
config=list(provider_controller.get_credentials_schema()),
|
|
|
|
provider_type=provider_controller.provider_type.value,
|
|
|
|
provider_config_cache=NoOpProviderCredentialCache(),
|
|
|
|
provider_identity=provider_controller.provider_id,
|
|
|
|
|
|
|
|
)
|
|
|
|
)
|
|
|
|
credentials = tool_configuration.encrypt(credentials)
|
|
|
|
credentials = tool_configuration.encrypt(credentials)
|
|
|
|
mcp_provider.updated_at = datetime.now()
|
|
|
|
mcp_provider.updated_at = datetime.now()
|
|
|
|
|