MCP server that wraps secureFlows ai-safe APIs, plus token-free tools that help an agent scaffold a correct integration.
Three tools with strong, domain-specific descriptions (50-200 chars each) and clear naming. All parameters have types and descriptions. However, output schemas are not documented in the visible code, only input schemas are defined. Tool 1 (build_login_url) and Tool 2 (build_logout_url) are well-designed with enum constraints and security-focused descriptions. Tool 3 (lint_integration) accepts a file array but lacks output schema documentation. Error handling is present but generic. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications in metadata.
Builds a correct hosted-login redirect URL. Needs no secureFlows token — safe to call at app-scaffolding time, before any user session exists, which is the phase most secureFlows integration mistakes happen in. Always targets /app/sessions/login (session apps). Never builds the legacy /app/login console URL, which returns a firebaseToken your SecureFlowsCallback handler cannot consume and causes an infinite redirect loop. Use this instead of hand-building the URL with URLSearchParams — hand-built login URLs are the #1 source of the login-loop and stale-renewal bugs documented in SKILL.md.
Builds a correct redirect-logout URL and refuses to build one that violates the two documented logout anti-patterns: a redirect_uri pointing at /callback (SPA callback handlers treat the tokenless return as a failed login and loop), and a redirect_uri that itself embeds session_token (silently renews the old session instead of signing out). The result always instructs top-level navigation, never fetch/XHR — cross-site fetch() to this endpoint gets a 200 but browsers silently ignore its Clear-Site-Data header on cross-site responses, so the hosted-login cookie survives and the user silently re-authenticates on the next login redirect. This tool never builds a revoke request: revoke permanently destroys the user's data and must only run on an explicit "delete my account" action, never on ordinary sign-out.
Static-scan generated code for secureFlows anti-patterns. Checks source you already generated against the secureFlows integration rules. Needs no secureFlows token; safe at scaffolding time. Pass every auth/session-related file in one call — some checks are evaluated across the whole set.
Output schemas not documented. Tools return structured content but LLMs cannot see what fields to expect. Breaks downstream tool chaining and forces agents to guess response structure.
Tool annotations missing. Tools have explicit Risk classifications (READ_ONLY, WRITE) in metadata but do not register readOnlyHint/destructiveHint/idempotentHint in MCP schema. Agents cannot infer safety properties.
secureflows_lint_integration lacks output documentation. Accepts file array but does not describe what linting checks are performed, what violations are returned, or how to interpret results.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2025-06-18+ | v2 |
Error handling is generic. Catch blocks return raw error messages without recovery guidance. Per pattern:recovery-guide, errors should suggest next steps (e.g., 'Invalid origin, must be https://www.secure-flows.com').
Generated tools (from OpenAPI spec) lack descriptions of auth requirements and response structure. Tool descriptions mention 'Source: GET /path' but do not document what fields are returned or when to use each tool vs. alternatives.