v0.3.0 — Per-user OAuth + AMH/WT
-/-\ M H // WT — v0.3.0
Cloudflare Ops MCP now has an OAuth-first public-user model. Every user connects their own Cloudflare account and receives a separate cfops_ connector key. The owner API token is never distributed through Git or MCP clients.
Shipped
- Per-user OAuth connections bound to cryptographically random connection IDs.
- SHA-256 connector-key storage; raw connector keys are shown once and never stored.
- Server-side access-token refresh, authenticated status, and one-user revoke.
- Public callers cannot select another user's tenant/connection.
- Private owner/admin fallback remains backward-compatible.
- 16 guarded Cloudflare tools; mutations remain dry-run until
apply: true. - AMH/WT walrus branding, full setup examples, Privacy, Terms, Security, and AI-readable docs.
- v0.4 roadmap for the AMH stateful agent middle layer, Cache Guardian, Change Guardian, Playwright UI tests, and allowlisted Wrangler operations.
Verified
- 60/60 automated tests passing.
- Redacted local-token leak scan passing.
npm pack --dry-runpassing with 35 release files.- Wrangler production dry-run passing: 92.32 KiB upload / 25.59 KiB gzip with the OAuth KV binding detected.
Hosted rollout status
The source/self-host release is complete. The existing cfops.nothingunseen.com edge currently still reports v0.1 because that domain is owned by a Cloudflare account not available in the active local Wrangler profiles. Deploy v0.3.0 only after authenticating Wrangler to the account that owns nothingunseen.com; this avoids overwriting or creating resources in the wrong account.