+
+ Create your first workspace
+
+
+ {clientName} needs a workspace to connect to. Create
+ one, then start the connection again from your client.
+
+
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+ Connect {clientName}
+
+
+ {clientName} wants to access your openstatus
+ workspace through the MCP server.
+
+ {clientOrigin ? (
+
+ Verified app from {clientOrigin}
+
+ ) : (
+
+ Self-registered app. Check the name matches the client you are
+ using.
+
+ )}
+
+
+
+
+
+
+
+
+ Access
+
+
setScope(value as Scope)}
+ className="gap-3"
+ >
+
+
+
+
+
+
+
+
+
+
+ You can revoke this connection any time from{" "}
+ Settings / Integrations.
+
+
+ );
+}
diff --git a/apps/dashboard/src/app/oauth/consent/layout.tsx b/apps/dashboard/src/app/oauth/consent/layout.tsx
new file mode 100644
index 000000000..2f1b57680
--- /dev/null
+++ b/apps/dashboard/src/app/oauth/consent/layout.tsx
@@ -0,0 +1,8 @@
+import { AuthLayout } from "@/components/layout/auth-layout";
+
+// Outside the `(dashboard)` group, like `/login`: no sidebar, no active
+// workspace requirement. The proxy middleware still sends signed-out users
+// to `/login?redirectTo=…`.
+export default function Layout({ children }: { children: React.ReactNode }) {
+ return