Privacy Policy
Last updated: March 5, 2026
1. Introduction
This Privacy Policy explains how Michał Bujniewicz-Uppal ("we", "us", "the Provider"), operating as Jupyters, collects, uses, and protects your personal data.
We are committed to protecting your privacy and complying with the General Data Protection Regulation (GDPR) and Polish data protection laws.
Data Controller:
Michał Bujniewicz-Uppal
NIP: 9512587881
Warsaw, Poland
Email: mbu@researchshop.pl
2. Data We Collect
2.1 Data You Provide
- Email address: When you purchase a subscription
- Payment information: Processed by Stripe (we do not store card details)
- Support requests: When you contact us
2.2 Data Collected Automatically
- License validation data: License key, machine identifier (hashed), tier, usage count
- Technical data: IP address (for abuse prevention), request timestamps
2.3 Product Telemetry
The Jupyters MCP server collects anonymous usage telemetry to help us improve the product. This data is sent in batches to our servers and includes:
- Tool usage: Which MCP tools are called (e.g. "run_cell", "read_notebook") and how long they take to execute
- Error types: The category of errors that occur (e.g. "NameError", "TimeoutError") — not error messages, stack traces, or any content from your notebooks
- Feature gate events: When a free-tier user attempts to use a Pro feature (e.g. "vision", "inspect_variable")
- Session events: When the MCP server starts and stops, along with Python version and server version
- Machine identifier: A one-way hash of your hostname, username, and platform — not reversible to your identity
Telemetry is processed under our legitimate interest (GDPR Art. 6(1)(f)) to maintain and improve the Service. It never blocks or slows tool execution — failures are silently discarded.
2.4 Website Analytics
Our website collects anonymous browsing events to understand how visitors navigate the site. This includes:
- Page views: Which pages are visited and in what order
- Referrer: How you arrived at the page (e.g. from a search engine)
- Session identifier: A randomly generated ID stored in your browser's session storage (cleared when you close the tab) — not a cookie and not linked to your identity
- Conversion events: Whether you clicked a checkout button (not whether you completed payment)
We also use Vercel Web Analytics for basic performance and page view metrics.
2.5 Data We Do NOT Collect
Important: Jupyters runs entirely on YOUR machine. We do NOT have access to:
- Your notebook contents or file paths
- Your code, variables, or execution outputs
- Error messages or stack traces containing your code
- Any data processed by your Jupyter kernels
- Your real name, location, or browsing history outside our website
3. How We Use Your Data
| Purpose | Legal Basis (GDPR) |
|---|---|
| Provide and manage your subscription | Contract performance (Art. 6(1)(b)) |
| Process payments | Contract performance (Art. 6(1)(b)) |
| Send license keys and service emails | Contract performance (Art. 6(1)(b)) |
| Validate licenses and prevent abuse | Legitimate interest (Art. 6(1)(f)) |
| Collect anonymous product telemetry and website analytics to improve the Service | Legitimate interest (Art. 6(1)(f)) |
| Respond to support requests | Legitimate interest (Art. 6(1)(f)) |
| Comply with legal obligations | Legal obligation (Art. 6(1)(c)) |
4. Third-Party Services
We use the following third-party services that may process your data:
- Stripe (USA) — Payment processing. See Stripe Privacy Policy
- Resend (USA) — Transactional emails. See Resend Privacy Policy
- Supabase (USA) — Database hosting. See Supabase Privacy Policy
- Vercel (USA) — Website and API hosting. See Vercel Privacy Policy
Data transfers to the USA are protected by Standard Contractual Clauses (SCCs) as required by GDPR.
5. Data Retention
- Active subscriptions: Data retained while subscription is active
- After cancellation: Data retained for 3 years for legal/tax purposes
- Support emails: Retained for 2 years
- Usage logs: Automatically deleted after 90 days
- Product telemetry: Automatically deleted after 90 days
- Website analytics events: Automatically deleted after 90 days
6. Your Rights (GDPR)
Under GDPR, you have the right to:
- Access: Request a copy of your personal data
- Rectification: Correct inaccurate data
- Erasure: Request deletion of your data ("right to be forgotten")
- Restriction: Limit how we process your data
- Portability: Receive your data in a machine-readable format
- Object: Object to processing based on legitimate interest
To exercise these rights, contact us at mbu@researchshop.pl. We will respond within 30 days.
7. Data Security
We implement appropriate security measures including:
- Encryption of data in transit (HTTPS/TLS)
- Encryption of sensitive data at rest
- Access controls and authentication
- Regular security reviews
8. Cookies and Local Storage
Our website does not use tracking cookies. We use:
- Session storage (not cookies): A randomly generated session identifier for anonymous website analytics. This is automatically cleared when you close your browser tab and cannot be used to identify you across sessions or websites.
- Vercel Web Analytics: A privacy-friendly, cookie-free analytics service that collects aggregate page view and performance data. See Vercel Analytics Privacy.
We do not use Google Analytics, Facebook Pixel, or any cross-site tracking technology.
9. Children's Privacy
Jupyters is not intended for users under 16 years of age. We do not knowingly collect data from children.
10. Changes to This Policy
We may update this Privacy Policy from time to time. Changes will be posted on this page with an updated date. We will notify users of significant changes via email.
11. Complaints
If you believe we have violated your data protection rights, you have the right to lodge a complaint with:
Polish Data Protection Authority (UODO)
Urząd Ochrony Danych Osobowych
ul. Stawki 2, 00-193 Warszawa
Website: uodo.gov.pl
12. Contact
For privacy-related questions, contact us at:
Email: mbu@researchshop.pl
Business: Michał Bujniewicz-Uppal, NIP: 9512587881, Warsaw, Poland