From 286c109b745393bb7a32db3842137d057115d3c8 Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Fri, 6 Nov 2026 17:29:44 +0800 Subject: [PATCH] feat: add enable_agent_mcp_service field to portal model and update related components --- .../0002_portal_enable_agent_mcp_service.py | 17 +++++++++++++++++ apps/portal/models/portal.py | 2 ++ apps/portal/serializers/portal.py | 3 +++ ui/src/api/types/portal.ts | 1 + .../chat-management/portal-setting/index.vue | 7 ++++--- 5 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 apps/portal/migrations/0002_portal_enable_agent_mcp_service.py diff --git a/apps/portal/migrations/0002_portal_enable_agent_mcp_service.py b/apps/portal/migrations/0002_portal_enable_agent_mcp_service.py new file mode 100644 index 00000000000..a3ec5a013a0 --- /dev/null +++ b/apps/portal/migrations/0002_portal_enable_agent_mcp_service.py @@ -0,0 +1,17 @@ +# Generated by Django 6.1.2 on 2026-11-06 09:23 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("portal", "0001_initial"), + ] + + operations = [ + migrations.AddField( + model_name="portal", + name="enable_agent_mcp_service", + field=models.BooleanField(default=True, verbose_name="是否开启智能体MCP服务"), + ), + ] diff --git a/apps/portal/models/portal.py b/apps/portal/models/portal.py index 6d38ec7c99a..e5a561e9afc 100644 --- a/apps/portal/models/portal.py +++ b/apps/portal/models/portal.py @@ -24,6 +24,8 @@ class Portal(AppModelMixin): # API服务配置 enable_api = models.BooleanField(default=True, verbose_name="是否开启API服务") + enable_agent_mcp_service = models.BooleanField(default=True, verbose_name="是否开启智能体MCP服务") + enable_knowledge_base_api = models.BooleanField(default=True, verbose_name="是否开启知识库API") # 身份认证配置 diff --git a/apps/portal/serializers/portal.py b/apps/portal/serializers/portal.py index c6df825d637..65714b45897 100644 --- a/apps/portal/serializers/portal.py +++ b/apps/portal/serializers/portal.py @@ -44,6 +44,9 @@ class PortalSerializer(serializers.Serializer): required=False, label=_("enable public access"), help_text=_("enable public access") ) enable_api = serializers.BooleanField(required=False, label=_("enable api"), help_text=_("enable api")) + enable_agent_mcp_service = serializers.BooleanField( + required=False, label=_("enable agent mcp service"), help_text=_("enable agent mcp service") + ) enable_knowledge_base_api = serializers.BooleanField( required=False, label=_("enable knowledge base api"), help_text=_("enable knowledge base api") ) diff --git a/ui/src/api/types/portal.ts b/ui/src/api/types/portal.ts index 3e5b93b094f..55e99dfaee6 100644 --- a/ui/src/api/types/portal.ts +++ b/ui/src/api/types/portal.ts @@ -16,6 +16,7 @@ export interface PortalSetting { logo: string | null enable_public_access: boolean enable_api: boolean + enable_agent_mcp_service: boolean enable_knowledge_base_api: boolean enable_auth: boolean auth_config: PortalAuthConfig diff --git a/ui/src/views/system/chat-management/portal-setting/index.vue b/ui/src/views/system/chat-management/portal-setting/index.vue index ce4b370efe6..71c78b90423 100644 --- a/ui/src/views/system/chat-management/portal-setting/index.vue +++ b/ui/src/views/system/chat-management/portal-setting/index.vue @@ -12,7 +12,7 @@ import ButtonPortalAuthSetting from './components/ButtonPortalAuthSetting.vue' import ButtonPortalCorsSetting from './components/ButtonPortalCorsSetting.vue' import { useStore } from '@/stores' -type AccessField = 'enable_public_access' | 'enable_api' | 'enable_knowledge_base_api' | 'enable_auth' | 'enable_cors' +type AccessField = 'enable_public_access' | 'enable_api' | 'enable_agent_mcp_service' | 'enable_knowledge_base_api' | 'enable_auth' | 'enable_cors' const portalSetting = reactive({ id: '', @@ -21,6 +21,7 @@ const portalSetting = reactive({ logo: '', enable_public_access: true, enable_api: true, + enable_agent_mcp_service: true, enable_knowledge_base_api: true, enable_auth: false, auth_config: { @@ -173,9 +174,9 @@ const canEditPortal = computed(() => perm.system.portal.edit())