Legal
Privacy Policy
Effective date: October 19, 2026
1. Overview
MCTL ("we", "our", "us") operates the mctl.ai platform (the "Service"). This policy explains what data we collect, why we collect it, how we use and protect it, and your rights over it. By using the Service you agree to this policy.
Questions or data requests: [email protected]
2. Data We Collect
2.1 GitHub OAuth
When you authenticate via GitHub OAuth we receive:
- GitHub username and user ID
- Display name and avatar URL (public profile)
- Email address (
user:emailscope): your primary verified address, or your public profile email if none is verified
We do not request access to your repositories, organizations, or any code. The OAuth scopes used are read:user and user:email.
2.2 Platform Activity
While you use the Service we record:
- Operations triggered through the API or MCP connector (deploy, scale, rollback, etc.)
- Workflow execution results and status
- API request timestamps and HTTP status codes (for security and debugging)
We do not record the content of your source code or environment variable values.
2.3 Sessions and Tokens
OAuth access tokens issued by the API and MCP connector are short-lived (1 hour by default). Refresh tokens are valid for up to 30 days; the server keeps only a hash of each refresh token, so it can rotate and revoke them. Your MCP client or the mctl CLI stores the tokens it receives.
The developer portal (app.mctl.ai) keeps a server-side session, referenced by a cookie in your browser. On this website, the GitHub profile you sign in with (username, name, email and avatar) is kept in your browser's localStorage for up to 8 hours so you can finish the workspace request.
2.4 Invitation Requests
When you request an invitation, we save your name, contact email, optional GitHub username and project description to review your request and reply to you. These details are provided by you, not verified through GitHub. A request does not create an account or workspace and does not grant access.
Saved requests expire from our request store after 90 days. A copy is sent to our private Telegram review channel; those messages follow the channel's retention settings and are not automatically removed by expiry in the request store. Contact [email protected] to request removal of your request and its notification copy.
2.5 Website Analytics
To learn how many people visit mctl.ai and the documentation at docs.mctl.ai, and where they come from, both websites load Umami, an open-source analytics tool that we host ourselves at stats.mctl.ai. No analytics data is sent to a third party. Umami sets no cookies. For each page view it records the page address (including campaign parameters such as utm_source), the referring site, browser, operating system, device type, screen size, language, and country, region and city derived from your IP address. Your IP address and user agent are used to compute an anonymous visitor identifier; the IP address itself is not stored.
3. How We Use Your Data
- Authentication — verifying your identity on every API request
- Authorization — resolving your team memberships and scoping access to the correct Kubernetes namespaces
- Audit logging — maintaining an immutable record of platform operations for security and compliance
- Debugging — diagnosing failures in workflows and deployments
We do not sell your data to third parties. We do not use your data for advertising.
4. Data Retention
- Access tokens — 1 hour by default; not stored server-side after validation
- Refresh tokens — up to 30 days; stored server-side as a hash until they expire or are revoked
- Audit logs — retained for 90 days, then automatically purged
- Website analytics — page-view records without IP addresses; deleted automatically after 2 years
- Profile data (username, email) — retained while your account is active; deleted within 30 days of an account deletion request
5. Third-Party Services
Users who already have a platform account sign in to the portal and mctl-api through ZITADEL (auth.mctl.ai), which we host ourselves; it is not a separate processor. Requesting a workspace on this website uses GitHub OAuth, described in section 2.1. The following organizations process data on our behalf or as independent platforms we rely on:
- GitHub — OAuth identity provider, git hosting, and GitHub Actions. Your use of GitHub is governed by GitHub's Privacy Statement.
- Hetzner Cloud — compute, volumes, and network in Frankfurt. Platform and tenant workloads at rest run here. See Hetzner's Privacy Policy.
- Cloudflare — DNS, CDN, Workers (landing OAuth), and R2 object storage (backups, logs, Terraform state). Cloudflare may log IP addresses and request metadata. See Cloudflare's Privacy Policy.
- Anthropic Claude — when you connect the mctl MCP connector in Claude.ai, Anthropic's platform processes your tool invocations. See Anthropic's Privacy Policy.
- Let's Encrypt — public TLS certificates for platform hostnames via cert-manager. See Let's Encrypt Privacy Policy.
- Resend — transactional welcome email after a tenant workspace is provisioned (name, email, team). See Resend's Privacy Policy.
- Telegram — operator incident paging, and landing-form notifications: tenant requests (GitHub identity, email, team, use case) and contact-form messages (name, email, message). See Telegram's Privacy Policy.
6. Security
All data in transit is encrypted with TLS 1.2+. OAuth tokens are validated server-side on every request and are never logged. Kubernetes secrets are managed by HashiCorp Vault with audit logging enabled. Access is restricted by Kubernetes RBAC and network policies to the team's own namespace.
7. Your Rights
You may at any time:
- Access — request a copy of your stored profile data
- Correction — request correction of inaccurate data
- Deletion — request deletion of your account and associated data
- Revocation — revoke the GitHub OAuth grant at any time via GitHub → Settings → Applications → Authorized OAuth Apps → Revoke
Send requests to [email protected]. We will respond within 30 days.
8. Changes to This Policy
We may update this policy from time to time. Material changes will be announced via the platform changelog. Continued use of the Service after changes take effect constitutes acceptance of the updated policy.
9. Contact
For privacy-related inquiries: [email protected]