Skip to main content
Glama

DollhouseMCP

by DollhouseMCP
SESSION_NOTES_2025-10-16-EVENING-PR1361-TELEMETRY-OPTIN-REVERT.md14.7 kB
# Session Notes - October 16, 2025 (Evening) **Date**: October 16, 2025 **Time**: Evening session **Focus**: PR #1361 - Revert to Opt-In Telemetry Approach **Outcome**: ✅ Successfully reverted to GDPR-compliant opt-in implementation --- ## Session Summary Investigated GDPR concerns around PR #1361's automatic telemetry collection and made strategic decision to revert to fully opt-in approach. Conducted extensive research on legal requirements, industry practices, and technical constraints. Concluded that opt-in with future incentives is the optimal path forward. --- ## Key Decision **REVERTED TO 100% OPT-IN TELEMETRY** **Rationale:** - GDPR compliance requires explicit consent for data collection - MCP technical constraints prevent proper consent mechanism (no UI, background service) - No other MCP servers implement automatic telemetry - Legal risk outweighs immediate data benefits - Opt-in with incentives provides better long-term strategy --- ## Research Conducted ### 1. Industry Telemetry Practices **Major Projects Using Opt-Out (All Face Criticism):** - **Next.js**: Automatic telemetry, criticized for starting collection before notice - **VS Code**: Default-enabled, Microsoft flagged by Dutch DPA for Office telemetry - **Homebrew**: Opt-out with notice, faced community backlash - **npm**: Minimal disclosure, opt-out model **Key Finding:** All opt-out projects face legal/ethical criticism in 2025 ### 2. GDPR Legal Requirements (2025 Landscape) **Critical Legal Finding (activeMind.legal - German privacy law firm):** > "Consent should be obtained BEFORE telemetry data is collected for the first time... Opt-out procedures are NOT sufficient for GDPR-compliant processing of telemetry data." **Three Legal Tests:** 1. **Is it truly anonymous?** - UUID tracking over time may not qualify 2. **Can you use "legitimate interest"?** - Weaker for commercial software without consent 3. **Does minimal data = no GDPR?** - NO - even minimal telemetry requires legal basis **Conclusion:** Opt-out telemetry is legally risky in EU jurisdictions ### 3. MCP-Specific Technical Constraints **Why MCP Servers Are Different:** - Run as background services (no GUI) - Started automatically by Claude Desktop - No user interaction during initialization - No way to show consent prompt in MCP protocol - `@latest` auto-updates prevent first-run prompts **npm postinstall prompts:** - ✅ Technically possible with `inquirer` library - ❌ Breaks `@latest` auto-updates - ❌ Fails in non-TTY environments (CI/CD) - ❌ Poor user experience **MCP server startup:** - ❌ No mechanism for prompts (stdio/SSE JSON-RPC) - ❌ No GUI in protocol spec - ❌ Would break automated workflows **Conclusion:** No practical way to get consent during installation or startup ### 4. Other MCP Servers **Surprising Finding:** Zero evidence of other MCP servers collecting telemetry **What was found:** - ✅ MCP servers for enabling telemetry in apps (OTEL, Tinybird) - ✅ Tools to observe MCP usage - ❌ NO MCP servers collecting installation metrics themselves **Implication:** Either no one has tried, technical constraints make it impractical, or privacy concerns discourage it --- ## Changes Made to PR #1361 ### Commit 1: Revert to Opt-In (b248982) **Changed:** - Removed hardcoded PostHog project API key - Telemetry now requires explicit `POSTHOG_API_KEY` env var - Deleted opt-out response documents (PR_1361_RESPONSE.md, TELEMETRY_RESPONSE.md) - Updated code comments to reflect opt-in approach **Files Modified:** - `src/telemetry/OperationalTelemetry.ts` - Removed default key, requires env var - `docs/privacy/OPERATIONAL_TELEMETRY.md` - Updated to opt-in language - `README.md` - Removed opt-out section **Impact:** -1,541 lines removed (mostly defensive documentation) ### Commit 2: Update README (682b92e) **Added New Section: "Optional Telemetry (Opt-In)"** **Key Points:** - "Disabled by Default" - Clear status - "Why Opt-In?" - Benefits of sharing data (platform prioritization) - "Future: Incentivized Opt-In Program" - Premium content, LLM credits, support, badges - "What Would Be Collected" - Transparent about data - "Privacy & Transparency" - GDPR compliant, open source, local logs **Messaging Strategy:** - Focus on infrastructure being ready - Explain future value exchange - Make it easy to understand benefits - Emphasize voluntary participation ### Commit 3: Strategy Document (4f8ab36) **Created: `docs/development/TELEMETRY_INCENTIVE_STRATEGY.md`** **Contents (409 lines):** 1. **Executive Summary** - Decision rationale and current status 2. **Why Opt-In?** - Legal, ethical, technical reasons 3. **Future Incentive Program** - Value exchange model 4. **Implementation Plan** - 3 phases with timelines 5. **Data We Need** - Platform distribution, adoption trends, compatibility 6. **Privacy & Transparency** - Public dashboard, regular reporting 7. **Technical Implementation** - Already complete, just needs activation 8. **Business Model Alignment** - Revenue potential 9. **Risk Analysis** - Low participation, data quality, privacy concerns 10. **Success Criteria** - Metrics for each phase 11. **Timeline** - Q1-Q4 2026 roadmap **Three-Phase Rollout:** **Phase 1: Soft Launch (3-6 months)** - Goal: Test infrastructure, gather initial data - Target: 50+ users, 5-10% participation - Incentive: Premium collection access **Phase 2: Full Launch (6-12 months)** - Goal: Scale to meaningful coverage - Target: 500+ users, 15% participation - Incentives: Premium content + LLM credits **Phase 3: Optimization (12+ months)** - Goal: Sustainable value exchange - Target: 2,000+ users, 25% participation - Incentives: All benefits + partnerships **Key Insight:** Infrastructure ready now, launch when incentives are ready --- ## Alternatives Considered ### Option A: Opt-In via Manual Configuration (CHOSEN) **Pros:** GDPR compliant, no legal risk, respectful **Cons:** Low participation (maybe 5-10%), biased data ### Option B: npm Download Statistics **Pros:** Free, zero privacy concerns, already available **Cons:** No OS breakdown, no Node version, includes CI/CD ### Option C: GitHub Issue Survey **Pros:** Voluntary, no technical implementation, zero GDPR risk **Cons:** Very low response rate, biased toward engaged users ### Option D: Usage-Based Telemetry Service **Pros:** Explicit consent, value exchange, more detailed data **Cons:** Requires infrastructure, maintenance burden **Decision:** Combination of A + B (opt-in telemetry + npm stats) --- ## Key Learnings ### Legal Landscape Has Shifted (2025) **2020-2023:** Opt-out telemetry was common, mostly accepted **2024-2025:** GDPR enforcement increasing, opt-out facing scrutiny **Trend:** Privacy-first approaches becoming standard **Example:** Microsoft flagged by Dutch DPA for Office telemetry collection ### MCP Is Not Like CLI Tools **CLI Tools (Next.js, Homebrew):** - User directly invokes - Can show first-run notices - Interactive terminal sessions **MCP Servers:** - Background services - Auto-started by MCP client - No user interaction during startup - No UI in protocol **Implication:** Traditional telemetry approaches don't work for MCP ### PostHog Project Keys Are Safe to Expose **Two Types of Keys:** - `phc_*` = Project keys (public, write-only) ← Safe for client-side - `phx_*` = Personal keys (private, admin) ← Never expose **Project keys can:** - ✅ Send telemetry events - ✅ Evaluate feature flags **Project keys cannot:** - ❌ Read analytics data - ❌ Access user information - ❌ Modify settings - ❌ Compromise security **Same model as:** Google Analytics IDs, Sentry DSNs, Mixpanel tokens ### Infrastructure Before Incentives **Traditional Approach:** Build incentives, then infrastructure **Our Approach:** Build infrastructure first, add incentives later **Benefits:** - Code is ready when we are - No rush to launch before testing - Can iterate on incentive model - Users already have the code --- ## Technical Details ### Current Implementation (After Revert) ```typescript // src/telemetry/OperationalTelemetry.ts private static initPostHog(): void { // Skip if no API key configured (opt-in) const apiKey = process.env.POSTHOG_API_KEY; if (!apiKey) { logger.debug('Telemetry: PostHog not configured (no POSTHOG_API_KEY)'); return; } // Initialize PostHog if user opted in this.posthog = new PostHog(apiKey, { host: process.env.POSTHOG_HOST || 'https://app.posthog.com', flushAt: 1, flushInterval: 10000, }); } ``` ### How Users Would Opt In (Future) **Configuration (claude_desktop_config.json):** ```json { "mcpServers": { "dollhousemcp": { "command": "node", "args": ["/path/to/node_modules/@dollhousemcp/mcp-server/dist/index.js"], "env": { "POSTHOG_API_KEY": "provided-when-program-launches" } } } } ``` **What Gets Collected:** - Anonymous UUID (generated locally) - DollhouseMCP version - Operating system - Node.js version - MCP client type - Timestamp **What's Never Collected:** - Personal information - User content (personas, skills, etc.) - Behavioral data - File paths --- ## Future Program Strategy ### Value Exchange Model **Instead of:** "We need this data" (our benefit) **Offer:** "You get these benefits" (user benefit) ### Tier 1: Premium Collection Access - Exclusive personas not in public collection - Advanced templates for specialized use cases - Early access 30 days before public ### Tier 2: LLM Credits - Monthly free API calls - Hosted inference access - Priority processing ### Tier 3: Support & Beta Access - Priority issue handling - Early feature access - Direct communication channel - Roadmap voting rights ### Tier 4: Community Recognition - Contributor badges - Public dashboard opt-in - Leaderboard - Release note mentions ### Timeline | Milestone | Target | Status | |-----------|--------|--------| | Infrastructure complete | v1.9.18 | ✅ Done | | Premium collection | Q1 2026 | Planned | | Soft launch | Q2 2026 | Planned | | Full launch | Q3 2026 | Planned | | Optimization | Q4 2026+ | Ongoing | --- ## Metrics & Success Criteria ### Phase 1 Success (Soft Launch) - 50+ users opted in - 5-10% participation rate - Stable infrastructure - Positive user feedback ### Phase 2 Success (Full Launch) - 500+ users opted in - 15% participation rate - Actionable platform insights - Premium content library growing ### Phase 3 Success (Optimization) - 2,000+ users opted in - 25% participation rate - Data-driven roadmap decisions - Sustainable value exchange --- ## What We Can Learn from npm Stats (Immediate) **Available Now (No Privacy Concerns):** - Total downloads per version - Downloads over time - Geographic distribution (approximate) - Growth trends **API:** `https://api.npmjs.org/downloads/point/last-month/@dollhousemcp/mcp-server` **Limitations:** - No OS breakdown - No Node version info - No MCP client type - Includes CI/CD installs **Conclusion:** npm stats give us 70% of what we need, opt-in telemetry provides the other 30% --- ## Communication Strategy ### Internal (Team) - Share research findings - Review strategy document - Align on timeline - Plan premium content development ### External (Community) - Update PR with decision rationale - Explain opt-in approach in release notes - Document future program in README - Be transparent about infrastructure being ready ### Messaging Themes 1. **Privacy First** - We respect your choice 2. **Value Exchange** - You get benefits for helping us 3. **Transparency** - Open about what we collect and why 4. **Ready When You Are** - Infrastructure ready, launch when incentives are ready --- ## Risks & Mitigations ### Risk: Low Participation (Medium Likelihood, High Impact) **Mitigation:** - Start with high-value incentives - Clear communication of benefits - Social proof (badges, leaderboard) - Regular value additions ### Risk: Data Not Actionable (Low Likelihood, Medium Impact) **Mitigation:** - Focus on specific questions - Analytics dashboard for trends - Regular review of insights ### Risk: Privacy Concerns (Low Likelihood, High Impact) **Mitigation:** - Maximum transparency - Easy opt-out - Public reporting - Open-source code ### Risk: Infrastructure Costs (Low Likelihood, Low Impact) **Mitigation:** - PostHog free tier: 1M events/month - 10,000 users = 10,000 events (well under limit) - Can self-host if needed --- ## Next Session Priorities 1. **Review API Key Question** - Can we include the PostHog key now for easier opt-in? 2. **Test Suite** - Verify all tests pass with opt-in implementation 3. **Merge Decision** - Ready to merge PR #1361? 4. **Communication Plan** - How to announce the change? --- ## Files Changed Summary **Modified:** - `src/telemetry/OperationalTelemetry.ts` - Opt-in implementation - `docs/privacy/OPERATIONAL_TELEMETRY.md` - Updated documentation - `README.md` - New "Optional Telemetry" section **Added:** - `docs/development/TELEMETRY_INCENTIVE_STRATEGY.md` - Comprehensive strategy (409 lines) - `docs/development/SESSION_NOTES_2025-10-16-EVENING-PR1361-TELEMETRY-OPTIN-REVERT.md` - This file **Removed:** - `docs/development/PR_1361_RESPONSE.md` - No longer needed - `docs/development/TELEMETRY_RESPONSE.md` - No longer needed **Net Change:** +77 insertions, -1,541 deletions (simpler, clearer approach) --- ## References ### Legal & Privacy - activeMind.legal - GDPR telemetry guidance - PostHog documentation on project vs personal keys - EU GDPR Article 5(1)(c) - Data minimization - Dutch DPA Microsoft Office decision (2025) ### Industry Examples - Next.js telemetry documentation - VS Code telemetry implementation - Homebrew analytics approach - npm download statistics API ### Technical - MCP protocol specification - npm postinstall hooks - PostHog Node.js SDK - Inquirer.js for interactive prompts --- ## Questions for Next Session 1. **API Key Strategy**: Can we provide the PostHog project key in the code and use a simpler `DOLLHOUSE_TELEMETRY_OPTIN=true` flag instead of requiring users to get their own key? 2. **Merge Timing**: Should we merge PR #1361 now or wait until incentive program is closer to launch? 3. **Version Bump**: Does this constitute a major/minor/patch release? 4. **Announcement**: How do we communicate this decision to users? --- **Session completed successfully** ✅ **Key Achievement**: Strategic pivot to legally compliant, ethically sound opt-in approach while maintaining ready-to-launch infrastructure **Next Steps**: Address API key question, finalize PR, plan communication 🤖 Generated with Claude Code

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DollhouseMCP/DollhouseMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server