Skip to main content
Glama
CONFIG_OVERHAUL_COMPARISON.md21.1 kB
# Configuration Overhaul - Before/After Comparison ## Complete Schema Comparison ### Privacy & Tracking #### BEFORE (v1): ```yaml telemetry: operational_telemetry: true # Confusing name, unclear what it tracks # No explanation of data collected # Users don't know if it's privacy-invasive enhanced_index: telemetry: true # Two different "telemetry" settings # No explanation this is local-only ``` #### AFTER (v2): ```yaml privacy: install_tracking: true # WHAT: One-time anonymous install metrics (version, OS, platform) # WHY: Helps us know which platforms/versions to support # DATA COLLECTED: Install UUID, version, OS, Node version, MCP client, timestamp # DATA NOT COLLECTED: Usage frequency, which tools used, element content # SENT TO: DollhouseMCP telemetry server # FREQUENCY: Once on first install, updates on version change trigger_analytics: false # WHAT: Local-only performance tracking for auto-discovery system # WHY: Helps improve verb pattern matching and trigger detection # DATA: Verb extraction success rate, trigger matching speed, pattern effectiveness # STORAGE: Local only (never sent anywhere), debug logs only # WHEN TO ENABLE: If you want to help improve auto-discovery accuracy ``` **Impact:** - ✅ Clear names explain what they do - ✅ Complete transparency on data collection - ✅ Users can make informed privacy decisions - ✅ No more confusion about "two telemetry settings" --- ### Portfolio Management #### BEFORE (v1): ```yaml elements: default_element_dir: /Users/mick/.dollhouse/portfolio # Hidden in elements section # Only supports single portfolio # No context separation ``` #### AFTER (v2): ```yaml portfolios: active: default # Which portfolio is currently active directories: - alias: default path: ~/.dollhouse/portfolio description: "Main portfolio for personal elements" auto_backup: true backup_path: ~/.dollhouse/backups/default - alias: work path: ~/work/.dollhouse-work description: "Work-related elements only" auto_backup: true backup_path: ~/work/.dollhouse-work/backups encrypted: false # Future: encryption support - alias: personal path: ~/personal/.dollhouse-personal description: "Personal experiments and learning" auto_backup: true backup_path: ~/personal/.dollhouse-personal/backups encrypted: false # WHAT: Multiple portfolio directories with aliases # WHY: Separate work/personal contexts, switch easily # EXAMPLES: # - Switch: dollhouse portfolio switch work # - Add client portfolio for specific projects # - Future: Encrypted portfolios for sensitive content ``` **Impact:** - ✅ Top-level section (not buried in elements) - ✅ Multiple portfolios with descriptive aliases - ✅ Auto-backup per portfolio - ✅ Future: encryption support - ✅ Clear separation of work/personal contexts --- ### Collections (Marketplace) #### BEFORE (v1): ```yaml marketplace: enabled: true sources: - url: "https://github.com/DollhouseMCP/collection" enabled: true # "Marketplace" implies commerce # Feels like a store, not community ``` #### AFTER (v2): ```yaml collections: # Note: Some communities call this a "marketplace" - both terms mean the same thing sources: - id: dollhousemcp-official name: "DollhouseMCP Collection" description: "Official community-maintained collection" url: "https://github.com/DollhouseMCP/collection" type: github enabled: true default: true trust_level: official - id: community-contrib name: "Community Contributions" description: "User-submitted elements (review before installing)" url: "https://github.com/DollhouseMCP/collection/community" type: github enabled: true trust_level: community - id: custom-collection name: "My Team's Collection" description: "Company-internal elements" url: "https://github.com/mycompany/dollhouse-elements" type: github enabled: false trust_level: custom # WHAT: Where to browse/install elements from # WHY: Access community elements, share with others # TRUST LEVELS: # - official: DollhouseMCP core team verified # - verified: Community verified, safe to use # - community: User-submitted, review before installing # - custom: Your own sources (team/company repos) ``` **Impact:** - ✅ "Collections" = community sharing, not commerce - ✅ Trust levels for security awareness - ✅ Clear descriptions for each source - ✅ Open-source friendly terminology --- ### Platform Detection #### BEFORE (v1): ```yaml platform: cli_mode: true # Binary: CLI or Desktop # No support for voice, multimodal, etc. # Elements can't check capabilities ``` #### AFTER (v2): ```yaml platform: detection: auto_detect: true detected: "claude-code" category: "desktop-ide" # WHAT: Automatic detection of platform capabilities # WHY: Elements can check if required features are available categories: terminal-cli: # Plain terminal: no artifacts, no file system UI capabilities: artifacts: false file_picker: false progress_bars: false os_commands: true file_system_access: true window_management: false terminal_access: true audio_output: false tts_available: false image_generation: false desktop-ide: # Claude Code, Cursor, Windsurf: Full IDE integration capabilities: artifacts: true file_picker: true file_system_access: true os_commands: true window_management: true terminal_access: true audio_output: true tts_available: true image_generation: false chat-interface: # Claude Desktop, web chat: Artifacts, limited system access capabilities: artifacts: true file_picker: limited # Via MCP servers file_system_access: false # Sandboxed os_commands: false window_management: false terminal_access: false audio_output: true tts_available: false image_generation: true voice-interface: # Voice assistants: Audio in/out, no visual capabilities: artifacts: false file_picker: false file_system_access: false os_commands: false window_management: false terminal_access: false audio_output: true audio_input: true tts_available: true visual_output: false image_generation: false multimodal: # Image/video-capable LLMs capabilities: artifacts: true file_picker: true file_system_access: true os_commands: true window_management: true terminal_access: true audio_output: true tts_available: true image_generation: true image_analysis: true video_analysis: true # WHAT: Platform capability categories # WHY: Elements can check if they can run on current platform # EXAMPLES: # - Audio summarizer checks: os_commands + tts_available # - Doc writer checks: file_system_access (fallback to artifacts) # - Voice skill checks: voice-interface category ``` **Impact:** - ✅ Supports 5+ platform categories (not just CLI/Desktop) - ✅ Elements can check capabilities before activation - ✅ Graceful degradation (fallback modes) - ✅ Future-proof for voice, multimodal, embedded systems --- ### Token Usage (NEW in v2) #### BEFORE (v1): ```yaml # No token usage awareness # Users don't know they're using 48K tokens # No easy way to reduce token usage ``` #### AFTER (v2): ```yaml profiles: active: balanced # WHAT: Preset configurations for different use cases # WHY: Easy way to control token usage and performance # OPTIONS: # - minimal: Lowest tokens, manual activation (~100 tokens) # - balanced: Moderate tokens, auto-discovery (~1-2K tokens) # - power: Maximum capability, highest tokens (~48K tokens) presets: minimal: description: "Lowest token usage, fastest responses, manual control" settings: discovery.auto_discovery: false discovery.resources.advertise: false discovery.resources.variants.summary: false discovery.resources.variants.full: false cache.max_size_mb: 25 startup_elements.personas: [] estimated_tokens_per_session: "~100 tokens" balanced: description: "Good performance with moderate token usage (recommended)" settings: discovery.auto_discovery: true discovery.resources.advertise: true discovery.resources.variants.summary: true discovery.resources.variants.full: false cache.max_size_mb: 50 startup_elements.personas: [] estimated_tokens_per_session: "~1-2K tokens" power: description: "Maximum capability, auto-activation, full context" settings: discovery.auto_discovery: true discovery.resources.advertise: true discovery.resources.variants.summary: true discovery.resources.variants.full: true cache.max_size_mb: 100 startup_elements.personas: ["Creative-Writer", "Code-Reviewer"] estimated_tokens_per_session: "~48K tokens" ``` **Impact:** - ✅ Users aware of token usage - ✅ Easy presets for different needs - ✅ Clear trade-offs explained - ✅ Custom profiles possible --- ### Auto-Activation Clarification #### BEFORE (v1): ```yaml elements: auto_activate: personas: ["Creative-Writer"] skills: ["debug-helper"] # Confused with auto-discovery (verb triggers) # Two different concepts, same name ``` #### AFTER (v2): ```yaml startup_elements: # WHAT: Elements to load automatically when server starts # WHY: Don't manually activate frequently-used elements personas: [] skills: [] templates: [] agents: [] memories: [] # EXAMPLE: personas: ["Creative-Writer", "Code-Reviewer"] # NOTE: This is different from auto-discovery (verb triggers) discovery: auto_discovery: true # WHAT: Automatic verb-based element activation # WHY: When you say "debug this", automatically activates Debug persona # HOW: Enhanced Index analyzes verbs and triggers relevant elements ``` **Impact:** - ✅ Clear distinction: startup vs discovery - ✅ No confusion between two concepts - ✅ Separate settings for separate features --- ### Settings Organization #### BEFORE (v1): ```yaml # All settings shown to all users # Beginners see cache TTL seconds # Power users buried in basics # No clear hierarchy ``` #### AFTER (v2): ```yaml # ============================================================================ # BASIC SETTINGS (Always visible to users) # ============================================================================ user: {...} portfolios: {...} github: {...} collections: {...} display: {...} profiles: {...} privacy: {...} # ============================================================================ # ADVANCED SETTINGS (Collapsed by default, power users expand) # ============================================================================ startup_elements: {...} platform: {...} discovery: {...} performance: {...} security: {...} logging: {...} # CLI commands: # dollhouse config get # Basic view # dollhouse config get --advanced # Advanced view # dollhouse config get --expert # Raw YAML ``` **Impact:** - ✅ Beginners see simple settings only - ✅ Power users expand for advanced tuning - ✅ Clear hierarchy: basic → advanced → expert - ✅ Progressive disclosure --- ### Documentation in Config #### BEFORE (v1): ```yaml performance: cache: max_size_mb: 50 ttl_seconds: 3600 timeouts: api_request_ms: 30000 file_lock_ms: 5000 # No explanation of what these do # No guidance on good values # Users guess or leave defaults ``` #### AFTER (v2): ```yaml performance: cache: max_size_mb: 50 # WHAT: Maximum memory for caching element data # WHY: Larger = faster but more RAM used # GOOD VALUES: 25MB (limited RAM), 50MB (default), 100MB (power users) ttl_seconds: 3600 # WHAT: How long cached data stays valid (Time To Live) # WHY: Shorter = more up-to-date, Longer = faster # GOOD VALUES: 1800 (30 min), 3600 (1 hour default), 7200 (2 hours) timeouts: api_request_ms: 30000 # WHAT: How long to wait for GitHub API before giving up # WHY: Prevents hanging on slow connections # GOOD VALUES: 15000 (fast internet), 30000 (default), 60000 (slow/satellite) file_lock_ms: 5000 # WHAT: How long to wait for exclusive file access # WHY: Prevents conflicts when multiple processes access files # GOOD VALUES: 2000 (SSD), 5000 (default), 10000 (slow HDD) ``` **Impact:** - ✅ Every setting explains WHAT it does - ✅ Every setting explains WHY it matters - ✅ Every setting suggests GOOD VALUES - ✅ Users make informed decisions --- ## Real-World Examples ### Example 1: Privacy-Conscious User #### BEFORE (v1): ```bash # User sees "operational_telemetry: true" User: "What does operational telemetry mean?" User: "Is it tracking my usage?" User: "Is this safe to disable?" # No clear answers, user guesses ``` #### AFTER (v2): ```bash dollhouse config get privacy # Output: privacy: install_tracking: true # One-time anonymous install metrics # Tracks: Install UUID, version, OS, Node version, MCP client, timestamp # Does NOT track: Usage frequency, which tools used, element content # Helps us support your platform/version trigger_analytics: false # Local-only performance tracking (never sent anywhere) # Helps improve auto-discovery accuracy # User: "Oh, install tracking is just version/OS, that's fine" # User: "Trigger analytics is local-only, I'll enable to help improve it" dollhouse config privacy.trigger_analytics true ``` --- ### Example 2: Work/Personal Separation #### BEFORE (v1): ```bash # User has ONE portfolio # Work elements mixed with personal # Client asks: "Delete all personal elements" # User manually searches through hundreds of elements ``` #### AFTER (v2): ```bash # Setup work portfolio dollhouse portfolio create work \ --path ~/work/.dollhouse-work \ --description "Work-only elements" # Switch to work dollhouse portfolio switch work # Install only work-appropriate elements dollhouse install library/personas/Corporate-Communications.md dollhouse install library/skills/code-review.md # Switch back to personal dollhouse portfolio switch default # Work elements completely isolated dollhouse list personas # Only shows personal personas # Client asks to delete personal elements: # Answer: "They're in a separate portfolio, no cleanup needed" ``` --- ### Example 3: Token-Conscious User #### BEFORE (v1): ```bash # User doesn't know they're using 48K tokens per session # API quota exhausted User: "Why is my API usage so high?" Support: "You have full resource advertisement enabled" User: "How do I reduce tokens?" Support: "Disable discovery.resources.variants.full and..." # Complex multi-setting changes ``` #### AFTER (v2): ```bash # User sets up initially dollhouse config setup Wizard: "Choose token usage profile: - minimal (~100 tokens): Manual activation, no auto-discovery - balanced (~1-2K tokens): Auto-discovery, summary resources (recommended) - power (~48K tokens): Full resources, maximum capability" User: "balanced" # Later, API quota running low dollhouse profile set minimal # Output: ✅ Profile set to 'minimal' Estimated token usage: ~100 tokens per session Auto-discovery: disabled (use 'dollhouse activate' to load elements) Resource advertisement: disabled # Single command, clear impact ``` --- ### Example 4: Platform-Aware Element #### BEFORE (v1): ```yaml # audio-summarizer tries to use TTS # No capability checking # Fails on Claude Desktop with cryptic error ``` #### AFTER (v2): ```yaml # Element metadata: capabilities: required: [os_commands, tts_available] platform_category: [terminal-cli, desktop-ide] os: [darwin, linux] # On Claude Code (desktop-ide, macOS): dollhouse activate skill audio-summarizer # ✅ Success - all requirements met # On Claude Desktop (chat-interface): dollhouse activate skill audio-summarizer # ❌ Error: Audio Summarizer requires OS command access # # This skill needs: # - os_commands: Execute system commands (not available) # - tts_available: Text-to-speech (not available) # # Supported platforms: # - Claude Code (desktop-ide) # - Terminal CLI (terminal-cli) # # Your platform: chat-interface (Claude Desktop) # Suggestion: Try this skill in Claude Code or terminal ``` --- ## Migration Experience ### BEFORE (Manual Migration): ```bash # User sees breaking changes # No auto-migration # User manually edits config.yaml # High risk of errors ``` ### AFTER (Auto-Migration): ```bash # User upgrades to v2.0.0 # Server detects v1 config: ⚠️ DollhouseMCP detected v1 configuration Automatically migrating to v2 schema... Migrating settings: ✓ telemetry.operational_telemetry → privacy.install_tracking ✓ enhanced_index.telemetry → privacy.trigger_analytics ✓ marketplace → collections ✓ platform.cli_mode → platform.detection.category (auto-detected: desktop-ide) ✓ elements.default_element_dir → portfolios.directories[0].path ✅ Migration complete Major changes: - Privacy settings now have clear explanations - Multi-portfolio support available - Token usage profiles available (currently: balanced) - Platform capabilities auto-detected See full changelog: https://docs.dollhousemcp.com/changelog/v2.0.0 # All settings preserved, zero user action required ``` --- ## Command Comparison ### Configuration #### BEFORE (v1): ```bash # Generic config commands dollhouse config get dollhouse config set telemetry.operational_telemetry false ``` #### AFTER (v2): ```bash # Basic view (beginners) dollhouse config get # Advanced view (power users) dollhouse config get --advanced # Expert view (raw YAML) dollhouse config get --expert # Interactive setup dollhouse config setup # Get help on specific setting dollhouse config help privacy.install_tracking # Shows: WHAT, WHY, DATA COLLECTED, FREQUENCY, etc. # Set with clarity dollhouse config privacy.install_tracking false ``` --- ### Portfolio Management (NEW) #### BEFORE (v1): ```bash # No portfolio commands # Single portfolio only ``` #### AFTER (v2): ```bash # List portfolios dollhouse portfolio list # Switch portfolios dollhouse portfolio switch work # Create portfolio dollhouse portfolio create client-acme \ --path ~/clients/acme/.dollhouse \ --description "ACME Corp project" # Portfolio status dollhouse portfolio info # Sync portfolio dollhouse portfolio sync # Current portfolio dollhouse portfolio sync --all # All portfolios ``` --- ### Profile Management (NEW) #### BEFORE (v1): ```bash # No profile commands # Manual multi-setting changes ``` #### AFTER (v2): ```bash # Set profile dollhouse profile set minimal dollhouse profile set balanced dollhouse profile set power # View current profile dollhouse profile info # Shows: Active profile, token usage, settings applied # Create custom profile dollhouse profile create my-profile \ --based-on balanced \ --set discovery.auto_discovery=true \ --set cache.max_size_mb=75 # List profiles dollhouse profile list ``` --- ### Platform Info (NEW) #### BEFORE (v1): ```bash # No platform commands # Binary CLI mode check only ``` #### AFTER (v2): ```bash # Detect platform dollhouse platform info # Shows: Category, capabilities, OS, detected client # Check capabilities dollhouse platform capabilities # Lists all available capabilities # Check element compatibility dollhouse element check-compat audio-summarizer # Shows: Required capabilities, compatibility status, suggestions ``` --- ## Summary of Benefits ### Naming Changes - ❌ **BEFORE:** "operational_telemetry" - confusing jargon - ✅ **AFTER:** "install_tracking" - clear and specific ### Multi-Portfolio - ❌ **BEFORE:** Single portfolio, work/personal mixed - ✅ **AFTER:** Multiple portfolios with aliases, context separation ### Token Awareness - ❌ **BEFORE:** Users unaware of 48K token usage - ✅ **AFTER:** Clear presets, estimated usage, easy control ### Platform Support - ❌ **BEFORE:** Binary CLI/Desktop, no capability checking - ✅ **AFTER:** 5+ categories, capability detection, graceful degradation ### Terminology - ❌ **BEFORE:** "Marketplace" implies commerce - ✅ **AFTER:** "Collections" emphasizes community ### Documentation - ❌ **BEFORE:** No setting explanations - ✅ **AFTER:** WHAT/WHY/GOOD VALUES for everything ### User Experience - ❌ **BEFORE:** All settings shown to all users - ✅ **AFTER:** Basic/Advanced/Expert progressive disclosure --- **Net Result:** Clearer, more powerful, easier to use, better for everyone.

Latest Blog Posts

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/mcp-server'

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