From af9e20a88569e3e4892532d5279599a1827f9b13 Mon Sep 17 00:00:00 2001 From: andypalmi Date: Mon, 24 Aug 2026 19:48:33 +0200 Subject: [PATCH] feat(mcp): add MCP OAuth consent page Add the AccessRequestMCP.vue consent page and its /account/request/:id/mcp modal route. The page lets the user pick read-only or full access and scope the grant to specific teams before approving the MCP agent request. Ref FlowFuse/flowfuse#7433 --- .../src/pages/account/AccessRequestMCP.vue | 146 ++++++++++++++++++ frontend/src/pages/account/routes.js | 9 ++ 2 files changed, 155 insertions(+) create mode 100644 frontend/src/pages/account/AccessRequestMCP.vue diff --git a/frontend/src/pages/account/AccessRequestMCP.vue b/frontend/src/pages/account/AccessRequestMCP.vue new file mode 100644 index 0000000000..90bf4d789b --- /dev/null +++ b/frontend/src/pages/account/AccessRequestMCP.vue @@ -0,0 +1,146 @@ + + + diff --git a/frontend/src/pages/account/routes.js b/frontend/src/pages/account/routes.js index e5602c1657..8f3982bbdd 100644 --- a/frontend/src/pages/account/routes.js +++ b/frontend/src/pages/account/routes.js @@ -2,6 +2,7 @@ import { Cog8ToothIcon } from '@heroicons/vue/24/outline' import AccessRequest from './AccessRequest.vue' import AccessRequestEditor from './AccessRequestEditor.vue' +import AccessRequestMCP from './AccessRequestMCP.vue' import AccountCreate from './Create.vue' import ForgotPassword from './ForgotPassword.vue' import PasswordReset from './PasswordReset.vue' @@ -30,6 +31,14 @@ export default [ layout: 'modal' } }, + { + // MCP agent OAuth consent page with access level and team selection + path: '/account/request/:id/mcp', + component: AccessRequestMCP, + meta: { + layout: 'modal' + } + }, { // This is the FF Tools Plugin requesting access. This component asks the // user to confirm access