You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Cloud: the MCP consent page lets an unverified account approve an AI client #1565
On AnythingMCP Cloud, /mcp refuses every call from an account whose email address is not verified (EmailVerifiedGuard). The OAuth consent page (/auth/login, password form in login.controller.ts) does not check emailVerified, though. An account that signed up with email and password but never entered the code can still sign in there and click Approve.
The AI client then holds a valid OAuth token that /mcp refuses on every call. Claude keeps retrying with it for weeks.
Typical path: in Claude, Connect → Create an account → the sign-up asks for the code → the person goes back to the consent page without entering it, signs in with the password, and approves. The same happens to older accounts that never verified and connect a client later.
Social sign-in (Google, Microsoft, GitHub) is not affected: it only accepts addresses the provider verified.
Numbers (Cloud production, 6 Nov 2026)
36 unverified accounts hold an AI-client connection grant since 28 Sep 2026. All approved within minutes of signing up.
11 of them were still retrying on 6 Nov: about 432 refused /mcp calls between 08:01 and 15:05 UTC, all from Claude.
2 new cases in the week of 2 Nov.
These accounts also have no Cloud trial (it starts on verification), so the post-approve app picker answers "This workspace has no active license".
Proposed fix
On Cloud, when a password sign-in on the consent page belongs to an unverified account, do not complete the authorization. Ask for the 6-digit code on the same page (with "Send a new code" and "Continue with Google/Microsoft/GitHub"), verify it with the same logic as the dashboard (POST /api/auth/verify-email: mark verified, start the trial), then continue to Approve.
Self-hosted: unchanged (verification is not enforced there).
Activity
Give each button of the email code step its own route (#1565)
Ask unverified accounts for the email code before Approve (#1566)