@dollhousemcp/mcp-server 1.9.0 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/README.github.md +64 -30
  2. package/README.md +3 -3
  3. package/README.md.backup +950 -52
  4. package/README.npm.md +3 -3
  5. package/dist/generated/version.d.ts +2 -2
  6. package/dist/generated/version.js +3 -3
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +10 -4
  9. package/dist/server/tools/CollectionTools.js +7 -7
  10. package/package.json +1 -1
  11. package/dist/config/ConfigWizardDisplay.d.ts +0 -64
  12. package/dist/config/ConfigWizardDisplay.d.ts.map +0 -1
  13. package/dist/config/ConfigWizardDisplay.js +0 -150
  14. package/dist/config/WizardFirstResponse.d.ts +0 -25
  15. package/dist/config/WizardFirstResponse.d.ts.map +0 -1
  16. package/dist/config/WizardFirstResponse.js +0 -118
  17. package/dist/scripts/scripts/run-config-wizard.js +0 -57
  18. package/dist/scripts/src/config/ConfigManager.js +0 -799
  19. package/dist/scripts/src/config/ConfigWizard.js +0 -368
  20. package/dist/scripts/src/errors/SecurityError.js +0 -47
  21. package/dist/scripts/src/security/constants.js +0 -28
  22. package/dist/scripts/src/security/contentValidator.js +0 -415
  23. package/dist/scripts/src/security/errors.js +0 -32
  24. package/dist/scripts/src/security/regexValidator.js +0 -217
  25. package/dist/scripts/src/security/secureYamlParser.js +0 -272
  26. package/dist/scripts/src/security/securityMonitor.js +0 -111
  27. package/dist/scripts/src/security/validators/unicodeValidator.js +0 -315
  28. package/dist/scripts/src/utils/logger.js +0 -288
  29. package/dist/tools/getWelcomeMessage.d.ts +0 -41
  30. package/dist/tools/getWelcomeMessage.d.ts.map +0 -1
  31. package/dist/tools/getWelcomeMessage.js +0 -109
package/README.md.backup CHANGED
@@ -1,18 +1,324 @@
1
1
  # DollhouseMCP
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/@dollhousemcp/mcp-server.svg)](https://www.npmjs.com/package/@dollhousemcp/mcp-server)
3
+ ## Project Status
4
4
  [![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-green)](https://modelcontextprotocol.io)
5
+ [![npm version](https://img.shields.io/npm/v/@dollhousemcp/mcp-server.svg)](https://www.npmjs.com/package/@dollhousemcp/mcp-server)
5
6
  [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
7
+ [![GitHub Views](https://komarev.com/ghpvc/?username=DollhouseMCP&repo=mcp-server&label=Repository+Views&style=flat)](https://github.com/DollhouseMCP/mcp-server)
8
+
9
+ ## Build & Quality
6
10
  [![Core Build & Test](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml/badge.svg)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml)
11
+ [![Build Artifacts](https://github.com/DollhouseMCP/mcp-server/actions/workflows/build-artifacts.yml/badge.svg)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/build-artifacts.yml)
12
+ [![Test Coverage](https://img.shields.io/badge/Coverage-1858%2B%20Tests-green)](https://github.com/DollhouseMCP/mcp-server/tree/main/__tests__)
13
+ [![Enterprise-Grade Security](https://img.shields.io/badge/Security-Enterprise%20Grade-purple)](docs/SECURITY.md)
14
+
15
+ ## Platform Support
16
+ [![Windows Build Status](https://img.shields.io/badge/Windows-✓_Tested-0078D4?logo=windows&logoColor=white)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "Windows CI Build Status")
17
+ [![macOS Build Status](https://img.shields.io/badge/macOS-✓_Tested-000000?logo=apple&logoColor=white)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "macOS CI Build Status")
18
+ [![Linux Build Status](https://img.shields.io/badge/Linux-✓_Tested-FCC624?logo=linux&logoColor=black)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "Linux CI Build Status")
19
+ [![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?logo=docker&logoColor=white)](https://github.com/DollhouseMCP/mcp-server/blob/main/Dockerfile)
20
+
21
+ ## Technology
22
+ [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
23
+ [![Node.js](https://img.shields.io/badge/Node.js-339933?logo=nodedotjs&logoColor=white)](https://nodejs.org/)
24
+ [![Extended Node Compatibility](https://github.com/DollhouseMCP/mcp-server/actions/workflows/extended-node-compatibility.yml/badge.svg)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/extended-node-compatibility.yml)
25
+ [![Docker Testing](https://github.com/DollhouseMCP/mcp-server/actions/workflows/docker-testing.yml/badge.svg)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/docker-testing.yml)
7
26
 
8
- A comprehensive Model Context Protocol (MCP) server that enables dynamic AI persona management with an integrated GitHub-powered collection. DollhouseMCP allows Claude and other compatible AI assistants to activate different behavioral personas while supporting community sharing and monetization.
27
+ ---
9
28
 
10
29
  **🌐 Repository**: https://github.com/DollhouseMCP/mcp-server
11
30
  **🏪 Collection**: https://github.com/DollhouseMCP/collection
12
31
  **📦 NPM Package**: https://www.npmjs.com/package/@dollhousemcp/mcp-server
13
32
  **🌍 Website**: https://dollhousemcp.com
14
33
 
15
- ## 🚀 Quick Start
34
+ ---
35
+
36
+ <div align="center">
37
+ <img src="docs/assets/dollhouse-logo.png" alt="DollhouseMCP" width="200" />
38
+
39
+ # Open Source, Community-Powered AI Customization
40
+
41
+ ### Create, Edit, and Share Customization Elements for Your AI Platforms
42
+
43
+ [![Install](https://img.shields.io/badge/Install-npm%20install%20@dollhousemcp/mcp--server-blue?style=for-the-badge)](https://www.npmjs.com/package/@dollhousemcp/mcp-server)
44
+ [![Collection](https://img.shields.io/badge/Browse-Community%20Collection-purple?style=for-the-badge)](https://github.com/DollhouseMCP/collection)
45
+ [![Contribute](https://img.shields.io/badge/Share-Your%20Elements-green?style=for-the-badge)](https://github.com/DollhouseMCP/mcp-server#contributing)
46
+ </div>
47
+
48
+ ---
49
+
50
+ ## Elements That Customize Your AI's Capabilities and Actions
51
+
52
+ **DollhouseMCP** is open source, community-powered AI customization. Create your own customization elements—personas that shape behavior, skills that add capabilities, templates for consistent outputs, agents for automation, and memories for persistent context—or use and modify an ever-growing number of customization elements from the community. Every element you create can be saved to your portfolio and used again or shared back to the DollhouseMCP Collection to help others.
53
+
54
+ ### What Are Customization Elements?
55
+
56
+ - **Personas** – Shape how your AI acts and responds in specific domains
57
+ - **Skills** – Add specialized capabilities your AI can use
58
+ - **Templates** – Ensure consistent, high-quality outputs
59
+ - **Agents** – Enable autonomous task completion with smart decision-making
60
+ - **Memory** – Persistent context storage across sessions
61
+
62
+ ### Core Capabilities
63
+
64
+ - **🌍 Community Element Library** – A growing number of tested personas, skills, templates, agents, and memories
65
+ - **✨ Create Custom Elements** – Create personas, skills, templates, agents, and memories from scratch using natural language
66
+ - **🤝 Open Source** – AGPL-3.0 licensed, ensuring community contributions stay free
67
+ - **📚 The DollhouseMCP Collection** – Install any community element with one command
68
+ - **🛠️ 41 Professional Tools** – Complete toolkit for element creation and management
69
+ - **🛡️ Security-First Validation** – All elements validated against hundreds of attack vectors
70
+ - **⚡ Hot-Swap Elements** – Change personas, skills, and templates without restarting as needed
71
+ - **📦 Personal Portfolio** – Your library of custom AI configurations on your local computer or personal GitHub repo
72
+
73
+ ### Use Cases
74
+
75
+ <table>
76
+ <tr>
77
+ <td width="25%" align="center">
78
+ <h4>👨‍💻 For Developers</h4>
79
+ <p>Use community-powered code review personas and debugging skills. Share your language-specific optimizations.</p>
80
+ </td>
81
+ <td width="25%" align="center">
82
+ <h4>✍️ For Writers</h4>
83
+ <p>Access community-crafted writing styles and templates. Contribute your genre expertise.</p>
84
+ </td>
85
+ <td width="25%" align="center">
86
+ <h4>🎯 For Professionals</h4>
87
+ <p>Leverage community-built industry elements. Share your domain knowledge.</p>
88
+ </td>
89
+ <td width="25%" align="center">
90
+ <h4>🌟 For Everyone</h4>
91
+ <p>Give your AI any personality you want. Describe it, modify it, save it to your portfolio, share it with the world.</p>
92
+ </td>
93
+ </tr>
94
+ </table>
95
+
96
+ ### Get Started
97
+
98
+ ```bash
99
+ npm install @dollhousemcp/mcp-server
100
+ ```
101
+ See [Quick Start](#-quick-start) for complete setup instructions.
102
+
103
+ ---
104
+
105
+ ## 🎯 Element Types
106
+
107
+ ### ✅ Available Now
108
+
109
+ <table>
110
+ <tr>
111
+ <td width="50%">
112
+
113
+ #### 🎭 Personas
114
+ Shape how your AI behaves and responds
115
+ - **Creative Writer** - Imaginative storyteller for engaging narratives
116
+ - **Business Consultant** - Strategic advisor for business decisions
117
+ - **Debug Detective** - Systematic problem-solver for code issues
118
+ - **Security Analyst** - Vulnerability assessment and threat analysis
119
+ - **Technical Analyst** - Deep dive technical documentation
120
+ - **Use**: `"Activate the creative writer persona"`
121
+
122
+ </td>
123
+ <td width="50%">
124
+
125
+ #### 💡 Skills
126
+ Add specialized capabilities your AI can use
127
+ - **Code Review** - Analyze code quality and suggest improvements
128
+ - **Data Analysis** - Statistical analysis and visualization
129
+ - **Language Translation** - Multi-language communication
130
+ - **API Integration** - Connect and interact with external services
131
+ - **Testing Automation** - Generate and run test suites
132
+ - **Use**: `"Enable the code review skill"`
133
+
134
+ </td>
135
+ </tr>
136
+ <tr>
137
+ <td width="50%">
138
+
139
+ #### 📝 Templates
140
+ Ensure consistent, high-quality outputs
141
+ - **Project Proposal** - Structured business proposals
142
+ - **Penetration Test Report** - Security assessment documentation
143
+ - **Meeting Notes** - Organized meeting summaries
144
+ - **Code Review** - Systematic code evaluation format
145
+ - **Documentation** - Technical documentation structure
146
+ - **Use**: `"Use the project proposal template"`
147
+
148
+ </td>
149
+ <td width="50%">
150
+
151
+ #### 🤖 Agents
152
+ Enable autonomous task completion
153
+ - **Code Reviewer** - Automated code quality assessment
154
+ - **Task Manager** - Project organization and tracking
155
+ - **Research Assistant** - Information gathering and synthesis
156
+ - **Academic Researcher** - Scholarly research and citations
157
+ - **Security Fix Specialist** - Vulnerability remediation
158
+ - **Use**: `"Run the code reviewer agent"`
159
+
160
+ </td>
161
+ </tr>
162
+ <tr>
163
+ <td colspan="2">
164
+
165
+ #### 🧠 Memory <span style="background-color: #4CAF50; color: white; padding: 2px 6px; border-radius: 3px; font-size: 0.8em;">NEW in v1.9.0</span>
166
+ Persistent context across sessions with intelligent organization
167
+ - **Text-based storage** - Currently supports text content (PDFs, images, and other media types coming soon)
168
+ - **Date-based folders** - Automatic YYYY-MM-DD organization prevents flat directory issues
169
+ - **YAML format** - Human-readable structured data (vs Markdown for other elements)
170
+ - **Smart deduplication** - SHA-256 hashing prevents duplicate storage
171
+ - **Search indexing** - Fast queries across thousands of entries
172
+ - **Use**: `"Create a memory for this project"` or `"Remember this conversation"`
173
+
174
+ **Typical file sizes**: Single memories up to ~100KB, folder structure enables unlimited collections
175
+
176
+ </td>
177
+ </tr>
178
+ </table>
179
+
180
+ ### 🚀 Coming Soon
181
+
182
+ <table>
183
+ <tr>
184
+ <td width="50%">
185
+
186
+ #### 🎯 Ensembles
187
+ Combine multiple elements as one unified entity
188
+ - **Full-Stack Developer** - Frontend + Backend + DevOps skills
189
+ - **Writing Suite** - Creative + Technical + Editorial capabilities
190
+ - **Security Team** - Analyst + Auditor + Remediation skills
191
+ - **Data Science Platform** - Analysis + Visualization + ML skills
192
+ - **Status**: In development
193
+
194
+ </td>
195
+ <td width="50%">
196
+
197
+ #### 📋 Prompts
198
+ Reusable instruction sets
199
+ - **Code Review Checklist** - Systematic review steps
200
+ - **Security Audit Guide** - Vulnerability assessment process
201
+ - **Writing Guidelines** - Style and tone instructions
202
+ - **Debug Workflow** - Problem-solving methodology
203
+ - **Status**: Planned
204
+
205
+ </td>
206
+ </tr>
207
+ <tr>
208
+ <td width="50%">
209
+
210
+ #### 🔧 Tools
211
+ External function calls and commands
212
+ - **Git Operations** - Version control management
213
+ - **Database Queries** - Direct database interaction
214
+ - **API Calls** - External service integration
215
+ - **File Operations** - Advanced file manipulation
216
+ - **Status**: Under consideration
217
+
218
+ </td>
219
+ <td width="50%">
220
+
221
+ #### 📚 Memory Enhancements
222
+ Expanding memory capabilities
223
+ - **PDF Support** - Text extraction from PDF documents
224
+ - **Image Analysis** - Visual content understanding
225
+ - **Audio Transcription** - Voice and sound processing
226
+ - **Video Understanding** - Motion and scene analysis
227
+ - **Status**: Roadmap planned
228
+
229
+ </td>
230
+ </tr>
231
+ </table>
232
+
233
+ ## 💬 Natural Language Usage Examples
234
+
235
+ DollhouseMCP is designed for natural language interaction. Just describe what you want in plain English - you don't need to be overly specific, the system will figure it out.
236
+
237
+ ### Importing from the Community Collection
238
+
239
+ **Natural Language Examples:**
240
+ - `"Show me all the personas in the Dollhouse Collection"`
241
+ - `"What creative writing personas are available?"`
242
+ - `"Install the storyteller persona from the collection"`
243
+ - `"Search for Python development skills"`
244
+ - `"Find templates for technical documentation"`
245
+
246
+ **Direct Commands (if you prefer):**
247
+ ```bash
248
+ browse_collection type="personas"
249
+ search_collection "creative writing"
250
+ install_content "personas/storyteller.md"
251
+ ```
252
+
253
+ ### Managing Your Portfolio
254
+
255
+ **Natural Language Examples:**
256
+ - `"What's in my portfolio?"`
257
+ - `"Show me all my custom personas"`
258
+ - `"Sync my portfolio with GitHub"`
259
+ - `"Create a backup of my elements"`
260
+ - `"Search my portfolio for marketing templates"`
261
+
262
+ **Direct Commands (if you prefer):**
263
+ ```bash
264
+ portfolio_status
265
+ list_elements type="personas"
266
+ sync_portfolio
267
+ search_portfolio "marketing"
268
+ ```
269
+
270
+ ### Working with Elements
271
+
272
+ **Natural Language Examples:**
273
+ - `"Activate the code reviewer persona"`
274
+ - `"What's currently active?"`
275
+ - `"Switch to creative writing mode"`
276
+ - `"Deactivate all elements"`
277
+ - `"Show me details about the data analyst skill"`
278
+ - `"Create a new persona for customer support"`
279
+ - `"Edit the email template to be more formal"`
280
+
281
+ **Direct Commands (if you prefer):**
282
+ ```bash
283
+ activate_element "code-reviewer" type="personas"
284
+ get_active_elements
285
+ deactivate_element type="personas"
286
+ get_element_details "data-analyst" type="skills"
287
+ create_element type="personas" name="customer-support"
288
+ ```
289
+
290
+ ### Complete Workflow Example
291
+
292
+ Here's how a typical session might look:
293
+
294
+ ```
295
+ You: "I need help with creative writing"
296
+ Assistant: "I'll help you with creative writing. Let me check what personas are available..."
297
+
298
+ You: "Show me creative writing personas in the collection"
299
+ Assistant: [Shows list of available creative writing personas]
300
+
301
+ You: "Install and activate the storyteller persona"
302
+ Assistant: "I've installed and activated the Storyteller persona. I'm now ready to help craft engaging narratives..."
303
+
304
+ You: "Actually, let me create my own persona for science fiction writing"
305
+ Assistant: "I'll help you create a custom science fiction writing persona. What characteristics would you like?"
306
+
307
+ You: "Make it focus on hard sci-fi with attention to scientific accuracy"
308
+ Assistant: [Creates custom persona with specified traits]
309
+
310
+ You: "Save that to my portfolio as 'Hard SciFi Writer'"
311
+ Assistant: "I've saved 'Hard SciFi Writer' to your portfolio. You can activate it anytime."
312
+ ```
313
+
314
+ ### Pro Tips
315
+
316
+ - **Be conversational**: `"Help me write better code"` works as well as specific commands
317
+ - **Stack elements**: `"Activate both the code reviewer and the Python expert"`
318
+ - **Save your favorites**: `"Save this configuration as my default setup"`
319
+ - **Share with others**: `"Submit my custom persona to the community collection"`
320
+
321
+ ## 📦 Installation
16
322
 
17
323
  ### Choose Your Installation Method
18
324
 
@@ -178,7 +484,7 @@ After configuring and restarting Claude Desktop, test with:
178
484
  list_elements type="personas"
179
485
  ```
180
486
 
181
- You should see your available personas. If not, check the [Troubleshooting](#troubleshooting) section.
487
+ You should see your available personas. If not, check the [Troubleshooting](#-troubleshooting) section.
182
488
 
183
489
  ---
184
490
 
@@ -190,7 +496,7 @@ By default, your elements are stored in:
190
496
 
191
497
  Use the `DOLLHOUSE_PORTFOLIO_DIR` environment variable to customize this location.
192
498
 
193
- ## 🎯 Getting Started
499
+ ## 🚀 Quick Start
194
500
 
195
501
  Once installed, try these commands in Claude:
196
502
 
@@ -226,73 +532,665 @@ search_collection query="python" type="skills"
226
532
  | 🛡️ **Data Protection** | Copy-on-write for default personas, comprehensive backup system |
227
533
  | 🏠 **Local-First Architecture** | Full functionality without cloud dependency |
228
534
 
229
- ## 🎨 Portfolio Elements
535
+ ## 🎨 Portfolio System
536
+
537
+ The DollhouseMCP Portfolio system provides a comprehensive framework for managing AI elements locally and in the cloud.
538
+
539
+ ### Portfolio Structure
540
+
541
+ Your portfolio is organized by element type:
542
+
543
+ ```
544
+ ~/.dollhouse/portfolio/
545
+ ├── personas/ # Behavioral profiles (Markdown files)
546
+ ├── skills/ # Discrete capabilities (Markdown files)
547
+ ├── templates/ # Reusable content structures (Markdown files)
548
+ ├── agents/ # Goal-oriented actors (Markdown files)
549
+ ├── memories/ # Persistent context (YAML files with date folders)
550
+ │ ├── 2025-09-18/
551
+ │ │ └── project-context.yaml
552
+ │ └── 2025-09-19/
553
+ │ ├── meeting-notes.yaml
554
+ │ └── code-review.yaml
555
+ └── ensembles/ # Element combinations (Markdown files)
556
+ ```
557
+
558
+ **Note on File Types:**
559
+ - **Markdown (.md)**: Used for personas, skills, templates, agents, and ensembles - human-readable with YAML frontmatter
560
+ - **YAML (.yaml)**: Used exclusively for memories - structured data optimized for context storage
561
+
562
+ **Memory Organization:**
563
+ - Memories use automatic **YYYY-MM-DD** folder structure to prevent flat directory performance issues
564
+ - Each memory file can grow up to ~100KB before creating a new file
565
+ - Folder structure enables unlimited memory collections without degradation
566
+
567
+ ### Key Features
568
+
569
+ - **Local-First Architecture**: All elements stored locally with optional cloud sync
570
+ - **GitHub Integration**: Sync your portfolio with GitHub for backup and sharing
571
+ - **Version Control**: Full git integration for tracking changes
572
+ - **Smart Detection**: Automatically identifies element types from content
573
+ - **Flexible Naming**: Use any naming convention you prefer
574
+
575
+ ### Portfolio Management Tools
576
+
577
+ Use the comprehensive set of MCP tools to manage your portfolio:
578
+
579
+ - `list_portfolio_elements` - View all elements across types
580
+ - `sync_portfolio` - Synchronize with GitHub
581
+ - `upload_to_portfolio` - Share elements with the community
582
+ - `download_from_portfolio` - Get elements from GitHub
583
+
584
+ For detailed portfolio documentation, see the [Portfolio Guide](docs/guides/PORTFOLIO_SETUP_GUIDE.md).
585
+
586
+ ## 🔒 Security
587
+
588
+ DollhouseMCP implements enterprise-grade security measures to protect your data and ensure safe operation.
589
+
590
+ ### Security Features
591
+
592
+ - **Input Sanitization**: All user inputs validated and sanitized
593
+ - **Path Traversal Prevention**: Filesystem access strictly controlled
594
+ - **YAML Injection Protection**: Safe parsing with validation
595
+ - **Command Injection Prevention**: No direct shell command execution
596
+ - **Token Encryption**: OAuth tokens encrypted at rest
597
+ - **Rate Limiting**: API calls throttled to prevent abuse
598
+ - **Audit Logging**: Security events tracked for analysis
230
599
 
231
- DollhouseMCP supports multiple element types for customizing AI behavior:
600
+ ### Security Testing
232
601
 
233
- | Element | Purpose | Status |
234
- |---------|---------|--------|
235
- | 🎭 **Personas** | Define AI personality, tone, and behavioral characteristics | ✅ Available |
236
- | 🛠️ **Skills** | Add specific capabilities like code review, data analysis, or creative writing | ✅ Available |
237
- | 📝 **Templates** | Create reusable response formats for emails, reports, documentation | ✅ Available |
238
- | 🤖 **Agents** | Build autonomous assistants that can pursue goals and make decisions | ✅ Available |
239
- | 💬 **Prompts** | Pre-configured conversation starters and structured interactions | 🔄 Coming Soon |
240
- | 🧠 **Memory** | Persistent context storage with retention policies and search capabilities | 🔄 Coming Soon |
241
- | 🎯 **Ensemble** | Orchestrate multiple elements together as one unified entity | 🔄 Coming Soon |
602
+ - **Automated Security Scanning**: GitHub Advanced Security enabled
603
+ - **Dependency Scanning**: Automated vulnerability detection
604
+ - **Code Analysis**: Static analysis with CodeQL
605
+ - **Secret Scanning**: Prevents credential leaks
242
606
 
243
- Your portfolio lives in `~/.dollhouse/portfolio/` with elements organized by type.
607
+ ### Reporting Security Issues
244
608
 
245
- ## 🔧 Troubleshooting
609
+ If you discover a security vulnerability, please:
610
+
611
+ 1. **DO NOT** create a public GitHub issue
612
+ 2. Open a private security advisory on GitHub
613
+ 3. Include steps to reproduce if possible
614
+ 4. Allow up to 48 hours for initial response
615
+
616
+ For more details, see our [Security Policy](SECURITY.md).
617
+
618
+ ## 🛠️ Development
619
+
620
+ ### Getting Started
621
+
622
+ ```bash
623
+ # Clone the repository
624
+ git clone https://github.com/DollhouseMCP/mcp-server.git
625
+ cd mcp-server
626
+
627
+ # Install dependencies
628
+ npm install
629
+
630
+ # Build the project
631
+ npm run build
632
+
633
+ # Run tests
634
+ npm test
635
+ ```
636
+
637
+ ### Development Workflow
638
+
639
+ 1. **Create Feature Branch**: `git checkout -b feature/your-feature`
640
+ 2. **Make Changes**: Implement your feature or fix
641
+ 3. **Run Tests**: `npm test`
642
+ 4. **Build**: `npm run build`
643
+ 5. **Submit PR**: Create pull request to develop branch
644
+
645
+ ### Available Scripts
646
+
647
+ - `npm run build` - Compile TypeScript
648
+ - `npm run dev` - Development mode with watch
649
+ - `npm test` - Run test suite
650
+ - `npm run lint` - Check code style
651
+ - `npm run typecheck` - TypeScript type checking
652
+
653
+ ### Project Structure
654
+
655
+ ```
656
+ src/
657
+ ├── index.ts # Main server entry
658
+ ├── tools/ # MCP tool implementations
659
+ ├── utils/ # Utility functions
660
+ ├── types/ # TypeScript definitions
661
+ └── elements/ # Element system
662
+ ```
663
+
664
+ For detailed development guides, see [Development Documentation](docs/development/).
665
+
666
+ ## 🏭 Architecture
667
+
668
+ ### System Overview
669
+
670
+ DollhouseMCP follows a modular, extensible architecture built on the Model Context Protocol (MCP) standard.
671
+
672
+ ### Core Components
673
+
674
+ #### MCP Server
675
+ - **Transport**: StdioServerTransport for Claude Desktop integration
676
+ - **Protocol**: JSON-RPC 2.0 communication
677
+ - **Tools**: 41 MCP tools for comprehensive functionality
678
+
679
+ #### Element System
680
+ - **BaseElement**: Abstract base class for all elements
681
+ - **IElement Interface**: Common contract for elements
682
+ - **Element Types**: Personas, Skills, Templates, Agents, Memories, Ensembles
683
+
684
+ #### Portfolio Manager
685
+ - **Local Storage**: File-based element storage
686
+ - **GitHub Sync**: Git-based synchronization
687
+ - **Version Control**: Full git integration
688
+
689
+ #### Security Layer
690
+ - **Input Validation**: All inputs sanitized
691
+ - **Path Security**: Traversal prevention
692
+ - **Token Management**: Encrypted storage
693
+
694
+ ### Data Flow
695
+
696
+ 1. **Client Request** → MCP Server
697
+ 2. **Tool Routing** → Appropriate handler
698
+ 3. **Element Processing** → Element system
699
+ 4. **Storage** → Portfolio manager
700
+ 5. **Response** → Client
701
+
702
+ For detailed architecture documentation, see [Architecture Guide](docs/ARCHITECTURE.md).
703
+
704
+ ## 🎯 Troubleshooting
246
705
 
247
706
  ### Common Issues
248
707
 
249
- | Issue | Solution |
250
- |-------|----------|
251
- | **Personas not loading** | Check `~/.dollhouse/portfolio/personas/` directory exists |
252
- | **Server won't start** | Ensure Node.js v20+ is installed: `node --version` |
253
- | **Collection not working** | Check internet connection and GitHub API access |
254
- | **Tools not appearing in Claude** | Restart Claude Desktop completely after config changes |
255
- | **"Cannot find module" errors** | Reinstall: `npm install -g @dollhousemcp/mcp-server@latest` |
256
- | **Rate limit errors** | Wait 60 seconds; GitHub API has hourly limits |
708
+ #### MCP Server Not Connecting
709
+
710
+ **Symptoms**: Claude Desktop doesn't show DollhouseMCP in available servers
711
+
712
+ **Solutions**:
713
+ 1. Verify configuration file location:
714
+ - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
715
+ - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
716
+ 2. Check JSON syntax is valid
717
+ 3. Restart Claude Desktop after configuration changes
257
718
 
258
- ### Need Help?
719
+ #### OAuth Authentication Fails
259
720
 
260
- - 📖 [Full Troubleshooting Guide](docs/TROUBLESHOOTING.md)
261
- - 💬 [GitHub Issues](https://github.com/DollhouseMCP/mcp-server/issues)
262
- - 💭 [GitHub Discussions](https://github.com/DollhouseMCP/mcp-server/discussions)
721
+ **Symptoms**: Cannot authenticate with GitHub
722
+
723
+ **Solutions**:
724
+ 1. Check internet connection
725
+ 2. Verify GitHub account has proper permissions
726
+ 3. Try using Personal Access Token instead:
727
+ ```bash
728
+ export GITHUB_TOKEN=your_pat_token
729
+ ```
730
+ 4. Clear cached credentials and retry
731
+
732
+ #### Elements Not Loading
733
+
734
+ **Symptoms**: Portfolio appears empty
735
+
736
+ **Solutions**:
737
+ 1. Check portfolio directory exists: `~/.dollhouse/portfolio/`
738
+ 2. Verify file permissions
739
+ 3. Run `list_portfolio_elements` tool to diagnose
740
+ 4. Check element file format (YAML frontmatter required)
741
+
742
+ #### Performance Issues
743
+
744
+ **Symptoms**: Slow response times
745
+
746
+ **Solutions**:
747
+ 1. Check portfolio size (large portfolios may be slow)
748
+ 2. Verify adequate system resources
749
+ 3. Consider using pagination for large lists
750
+ 4. Check network latency for GitHub operations
751
+
752
+ ### Getting Help
753
+
754
+ - **Documentation**: [Full docs](https://github.com/DollhouseMCP/mcp-server/tree/main/docs)
755
+ - **Issues**: [GitHub Issues](https://github.com/DollhouseMCP/mcp-server/issues)
756
+ - **Discussions**: [GitHub Discussions](https://github.com/DollhouseMCP/mcp-server/discussions)
757
+
758
+ For detailed troubleshooting, see [Troubleshooting Guide](docs/troubleshooting/).
759
+
760
+ ## 🤝 Contributing
761
+
762
+ We welcome contributions to DollhouseMCP! Here's how you can help:
763
+
764
+ ### Ways to Contribute
765
+
766
+ - **🐛 Report Bugs**: Open an issue with reproduction steps
767
+ - **✨ Request Features**: Suggest new functionality
768
+ - **📝 Improve Documentation**: Fix typos, add examples
769
+ - **💻 Submit Code**: Fix bugs or implement features
770
+ - **🎨 Share Elements**: Contribute personas, skills, templates
771
+
772
+ ### Development Process
773
+
774
+ 1. **Fork the Repository**
775
+ ```bash
776
+ gh repo fork DollhouseMCP/mcp-server
777
+ ```
778
+
779
+ 2. **Create Feature Branch**
780
+ ```bash
781
+ git checkout -b feature/your-feature
782
+ ```
783
+
784
+ 3. **Make Changes**
785
+ - Follow existing code style
786
+ - Add tests for new functionality
787
+ - Update documentation
788
+
789
+ 4. **Test Thoroughly**
790
+ ```bash
791
+ npm test
792
+ npm run lint
793
+ npm run typecheck
794
+ ```
795
+
796
+ 5. **Submit Pull Request**
797
+ - Target the `develop` branch
798
+ - Provide clear description
799
+ - Reference any related issues
800
+
801
+ ### Code Style
802
+
803
+ - TypeScript with strict mode
804
+ - ESLint configuration provided
805
+ - Prettier for formatting
806
+ - Comprehensive JSDoc comments
807
+
808
+ ### Commit Messages
809
+
810
+ Follow conventional commits:
811
+ - `feat:` New feature
812
+ - `fix:` Bug fix
813
+ - `docs:` Documentation
814
+ - `test:` Testing
815
+ - `chore:` Maintenance
816
+
817
+ ### Review Process
818
+
819
+ 1. Automated CI checks must pass
820
+ 2. Code review by maintainers
821
+ 3. Address feedback
822
+ 4. Merge when approved
823
+
824
+ For detailed guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).
263
825
 
264
826
  ## 📚 Resources
265
827
 
266
828
  ### Documentation
267
- - [Roundtrip Workflow Guide](docs/guides/ROUNDTRIP_WORKFLOW_USER_GUIDE.md)
268
- - [Portfolio Setup Guide](docs/guides/PORTFOLIO_SETUP_GUIDE.md)
269
- - [Element Detection Guide](docs/guides/ELEMENT_DETECTION_GUIDE.md)
270
- - [PersonaTools Migration Guide](docs/PERSONATOOLS_MIGRATION_GUIDE.md)
271
- - [API Documentation](docs/API.md)
829
+
830
+ - **[Quick Start Guide](docs/QUICK_START.md)** - Get up and running quickly
831
+ - **[Portfolio Setup](docs/guides/PORTFOLIO_SETUP_GUIDE.md)** - Configure your portfolio
832
+ - **[Element Development](docs/ELEMENT_DEVELOPER_GUIDE.md)** - Create custom elements
833
+ - **[API Reference](docs/API_REFERENCE.md)** - Complete tool documentation
834
+ - **[Architecture Guide](docs/ARCHITECTURE.md)** - System design details
835
+ - **[Security Documentation](docs/SECURITY.md)** - Security measures and best practices
836
+
837
+ ### Repositories
838
+
839
+ - **[Main Repository](https://github.com/DollhouseMCP/mcp-server)** - Core MCP server
840
+ - **[Collection](https://github.com/DollhouseMCP/collection)** - Community elements
841
+ - **[Developer Kit](https://github.com/DollhouseMCP/developer-kit)** - Development tools
272
842
 
273
843
  ### Community
274
- - [GitHub Repository](https://github.com/DollhouseMCP/mcp-server)
275
- - [NPM Package](https://www.npmjs.com/package/@dollhousemcp/mcp-server)
276
- - [Community Collection](https://github.com/DollhouseMCP/collection)
277
- - [Discord Community](https://discord.gg/dollhousemcp) (coming soon)
278
844
 
279
- ### Development
280
- - [Contributing Guide](CONTRIBUTING.md)
281
- - [Security Policy](SECURITY.md)
282
- - [Full Changelog](CHANGELOG.md)
845
+ - **[GitHub Discussions](https://github.com/DollhouseMCP/mcp-server/discussions)** - Q&A and ideas
846
+ - **[GitHub Issues](https://github.com/DollhouseMCP/mcp-server/issues)** - Bug reports and features
847
+ - **[Discord Server](#)** - Real-time chat (coming soon)
848
+
849
+ ### External Resources
850
+
851
+ - **[Model Context Protocol](https://modelcontextprotocol.io)** - MCP specification
852
+ - **[Claude Desktop](https://claude.ai/download)** - AI assistant with MCP support
853
+ - **[Anthropic Documentation](https://docs.anthropic.com)** - Claude documentation
854
+
855
+ ### Learning Materials
856
+
857
+ - **Tutorials** (coming soon)
858
+ - Building Your First Persona
859
+ - Creating Custom Skills
860
+ - Portfolio Management Best Practices
861
+ - GitHub Integration Setup
862
+
863
+ - **Videos** (coming soon)
864
+ - Installation Walkthrough
865
+ - Feature Demonstrations
866
+ - Developer Tutorials
867
+
868
+ ### Support
869
+
870
+ - **GitHub Issues**: [Report issues or request features](https://github.com/DollhouseMCP/mcp-server/issues)
871
+ - **Security Issues**: [Private security advisories](https://github.com/DollhouseMCP/mcp-server/security/advisories)
872
+ - **Discussions**: [Community Q&A](https://github.com/DollhouseMCP/mcp-server/discussions)
873
+
874
+ ## 🏷️ Version History
875
+
876
+ ### v1.9.0 - September 19, 2025
877
+
878
+ **🎉 Memory Element Release**: Persistent context storage with enterprise-grade features
879
+
880
+ #### ✨ New Features
881
+ - **Memory Element**: Complete implementation of persistent context storage (PR #1000 - The Milestone PR!)
882
+ - **Date-based Organization**: Automatic folder structure (YYYY-MM-DD) prevents flat directory issues
883
+ - **Content Deduplication**: SHA-256 hashing prevents duplicate storage (Issue #994)
884
+ - **Search Indexing**: Fast queries across thousands of entries with O(log n) performance (Issue #984)
885
+ - **Privacy Levels**: Three-tier access control (public, private, sensitive)
886
+ - **Retention Policies**: Automatic cleanup based on age and capacity
887
+
888
+ #### 🔧 Improvements
889
+ - **Performance Optimizations**: 60-second cache for date folder operations
890
+ - **Collision Handling**: Automatic version suffixes for same-named files
891
+ - **Atomic Operations**: FileLockManager prevents corruption and race conditions
892
+ - **Sanitization Caching**: SHA-256 checksums reduce CPU usage by ~40% during deserialization
893
+ - **Retry Logic**: Search index building with exponential backoff
894
+
895
+ #### 🛡️ Security
896
+ - **Comprehensive Input Validation**: All memory content sanitized with DOMPurify
897
+ - **Path Traversal Protection**: Robust validation in MemoryManager
898
+ - **Size Limits**: DoS protection with 1MB memory and 100KB entry limits
899
+ - **Audit Logging**: Complete security event tracking
900
+
901
+ #### 🧪 Testing
902
+ - **89 Memory Tests**: Comprehensive coverage across 4 test suites
903
+ - **Concurrent Access Tests**: Thread safety verification
904
+ - **Security Coverage**: XSS, Unicode attacks, path traversal
905
+ - **CI Improvements**: Fixed GitHub integration test conflicts (PR #1001)
906
+
907
+ ---
908
+
909
+ ### v1.8.1 - September 15, 2025
910
+
911
+ **CI Reliability Improvements**: Fixed persistent test failures across platforms
912
+
913
+ #### 🔧 Bug Fixes
914
+ - **GitHub API 409 Conflicts**: Enhanced retry mechanism with jitter for parallel CI jobs
915
+ - **Windows Performance Tests**: Platform-specific timing thresholds for CI environments
916
+ - **Test Stability**: Resolved flaky tests in Extended Node Compatibility workflow
917
+
918
+ ---
919
+
920
+ ### v1.8.0 - September 15, 2025
921
+
922
+ **Major Portfolio System Enhancements**: Full GitHub portfolio synchronization
923
+
924
+ #### ✨ New Features
925
+ - **Portfolio Sync**: Complete bidirectional sync with GitHub portfolios
926
+ - **Pull Functionality**: Download elements from GitHub portfolios (3 sync modes)
927
+ - **Configurable Repos**: Portfolio repository names now configurable
928
+ - **Configuration Wizard**: Now manual-only (removed auto-trigger for better UX)
929
+
930
+ #### 🔧 Improvements
931
+ - **Tool Clarity**: Renamed conflicting tools for better user experience
932
+ - **Rate Limiting**: Fixed redundant token validation causing API limits
933
+ - **GitHub Integration**: Comprehensive repository management
934
+
935
+ ---
936
+
937
+ ### v1.7.4 - September 12, 2025
938
+
939
+ **Hotfix Release**: Critical build and registration fixes
940
+
941
+ #### 🔧 Bug Fixes
942
+ - **Build Infrastructure**: Fixed missing TypeScript files in dist
943
+ - **Tool Registration**: Resolved MCP tool availability issues
944
+ - **Skill System**: Fixed skill registration and activation
945
+ - **Test Framework**: Restored test infrastructure functionality
946
+
947
+ ---
948
+
949
+ ### v1.7.3 - September 9, 2025
950
+
951
+ **Security & Configuration Release**: Prototype pollution protection and config management
952
+
953
+ #### 🛡️ Security
954
+ - **Prototype Pollution Protection**: Comprehensive validation against injection attacks
955
+ - **YAML Security**: Maintained FAILSAFE_SCHEMA with security documentation
956
+ - **Security Audit**: Achieved 0 security findings across all severity levels
957
+
958
+ #### ✨ Improvements
959
+ - **Configuration Management**: Complete overhaul with atomic operations
960
+ - **Test Coverage**: Comprehensive security and configuration tests
961
+ - **Input Normalization**: All inputs normalized at MCP request layer
962
+
963
+ ---
964
+
965
+ ### v1.7.2 - September 7, 2025
966
+
967
+ **Security Patch Release**: Critical logging vulnerability fixes
968
+
969
+ #### 🛡️ Security Fixes
970
+ - **Clear-text Logging Prevention**: Comprehensive sanitization of sensitive data
971
+ - **OAuth Token Protection**: Prevents exposure of tokens in console output
972
+ - **API Key Sanitization**: Masks all credentials before logging
973
+
974
+ ---
975
+
976
+ ### v1.7.1 - September 3, 2025
977
+
978
+ **Maintenance Release**: Documentation and compatibility improvements
979
+
980
+ #### 🔧 Improvements
981
+ - **Documentation**: Updated for better clarity and accuracy
982
+ - **Compatibility**: Enhanced cross-platform support
983
+ - **Bug Fixes**: Various minor fixes and optimizations
984
+
985
+ ---
986
+
987
+ ### v1.7.0 - August 30, 2025
988
+
989
+ **Major Feature Release**: Enhanced portfolio and collection systems
990
+
991
+ #### ✨ New Features
992
+ - **Portfolio Management**: Improved local portfolio organization
993
+ - **Collection Integration**: Better integration with community collection
994
+ - **Security Enhancements**: Critical security fixes from code review
995
+
996
+ ---
997
+
998
+ ### v1.6.11 - August 28, 2025
999
+
1000
+ **Test Reliability & Collection Fixes**: Improved test suite stability and fixed collection system
1001
+
1002
+ #### 🔧 Bug Fixes
1003
+ - **Collection Index URL**: Fixed to use GitHub Pages for better reliability
1004
+ - **E2E Test Tokens**: Improved token prioritization for CI environments
1005
+ - **Response Format**: Enhanced compatibility with various response formats
1006
+ - **Type Safety**: Improved TypeScript types throughout test suite
1007
+
1008
+ #### ✨ Improvements
1009
+ - Added helper functions for better code organization
1010
+ - Enhanced test reliability in CI/CD pipelines
1011
+ - General code quality improvements
1012
+
1013
+ ---
1014
+
1015
+ ### v1.6.10 - August 28, 2025
1016
+
1017
+ **Collection Submission Fix**: Critical fix for collection submission pipeline
1018
+
1019
+ #### 🔧 Bug Fixes
1020
+ - **Collection Submission**: Fixed workflow failing due to missing element types
1021
+ - **Local Path Parameter**: Added missing localPath parameter to submission tool
1022
+ - **Duplicate Detection**: Added detection for duplicate portfolio uploads and collection issues
1023
+
1024
+ #### ✨ Improvements
1025
+ - Added comprehensive QA tests for collection submission validation
1026
+ - Cleaned up QA documentation files
1027
+ - Updated all documentation to v1.6.10
1028
+
1029
+ ---
1030
+
1031
+ ### v1.6.9 - August 26, 2025
1032
+
1033
+ **Critical Fixes**: Fixed OAuth helper NPM packaging and performance testing workflow
1034
+
1035
+ #### 🔧 Bug Fixes
1036
+ - **OAuth NPM Packaging**: Fixed missing `oauth-helper.mjs` file in NPM distribution
1037
+ - File was present in repository but not included in published package
1038
+ - OAuth authentication now works correctly for NPM users
1039
+ - **Performance Tests**: Fixed CI workflow running all tests instead of performance tests
1040
+ - Performance monitoring now works correctly in GitHub Actions
1041
+
1042
+ ---
1043
+
1044
+ ### v1.6.3 - August 25, 2025
1045
+
1046
+ **OAuth Authentication Fix**: Fixed invalid OAuth client ID and improved error handling
1047
+
1048
+ #### 🔧 Bug Fixes
1049
+ - **OAuth Client ID**: Updated from incorrect ID to correct `Ov23li9gyNZP6m9aJ2EP`
1050
+ - **Error Messages**: Improved clarity of OAuth error messages for better debugging
1051
+ - **Setup Tool**: Fixed `setup_github_auth` tool to properly handle authentication flow
1052
+
1053
+ ---
1054
+
1055
+ ### v1.6.2 - August 25, 2025
1056
+
1057
+ **Critical Hotfix**: Fixed OAuth default client ID not being used in `setup_github_auth` tool
1058
+
1059
+ #### 🔧 Bug Fixes
1060
+ - **OAuth Default Client**: Fixed `setup_github_auth` tool not using default client ID when none provided
1061
+ - **Authentication Flow**: Restored ability to authenticate without manual client ID entry
1062
+
1063
+ #### 📝 Documentation
1064
+ - Added troubleshooting guide for OAuth issues
1065
+ - Updated setup instructions with clearer OAuth configuration steps
1066
+
1067
+ ---
1068
+
1069
+ ### v1.6.1 - August 25, 2025
1070
+
1071
+ **⚠️ Breaking Changes**:
1072
+ - 🔄 **Serialization Format Change** - `BaseElement.serialize()` now returns markdown with YAML frontmatter instead of JSON
1073
+
1074
+ #### 🔧 Bug Fixes
1075
+ - **Serialization Format**: Fixed `BaseElement.serialize()` to return markdown format
1076
+ - Changed from JSON string to markdown with YAML frontmatter
1077
+ - Maintains consistency with existing persona format
1078
+ - Fixes portfolio round-trip workflow
1079
+
1080
+ #### ✨ Improvements
1081
+ - **Code Quality**: Extracted validation methods into ValidationService
1082
+ - **Error Handling**: Improved validation error messages with specific field information
1083
+ - **Test Coverage**: Added comprehensive tests for markdown serialization
1084
+
1085
+ ---
1086
+
1087
+ ### v1.6.0 - August 25, 2025
1088
+
1089
+ **🚀 Major Release: Portfolio System & OAuth Integration**
1090
+
1091
+ This release introduces the complete portfolio management system with GitHub OAuth authentication, enabling secure cloud-based element synchronization and management.
1092
+
1093
+ #### ✨ New Features
1094
+
1095
+ ##### 🔐 GitHub OAuth Authentication
1096
+ - **OAuth App Integration**: Full OAuth flow with GitHub for secure authentication
1097
+ - **Personal Access Token Support**: Alternative authentication method for CI/CD
1098
+ - **Token Management**: Secure storage and rotation of authentication tokens
1099
+ - **Multi-Account Support**: Handle multiple GitHub accounts seamlessly
1100
+
1101
+ ##### 📦 Portfolio Management System
1102
+ - **Cloud Sync**: Automatic synchronization between local and GitHub portfolios
1103
+ - **Version Control**: Full git integration for portfolio elements
1104
+ - **Conflict Resolution**: Smart merging of local and remote changes
1105
+ - **Batch Operations**: Upload/download multiple elements efficiently
1106
+
1107
+ ##### 🛠️ New MCP Tools (42 total)
1108
+ - `setup_github_auth`: Interactive GitHub OAuth setup
1109
+ - `check_github_auth`: Verify authentication status
1110
+ - `refresh_github_token`: Rotate OAuth tokens
1111
+ - `sync_portfolio`: Bidirectional portfolio synchronization
1112
+ - `upload_to_portfolio`: Upload local elements to GitHub
1113
+ - `download_from_portfolio`: Download elements from GitHub
1114
+ - `submit_to_portfolio`: Submit elements for review
1115
+ - And 30 more tools for complete portfolio management
1116
+
1117
+ #### 🔧 Bug Fixes
1118
+ - **Element Detection**: Fixed smart detection of element types
1119
+ - **YAML Parsing**: Improved handling of complex YAML structures
1120
+ - **Path Resolution**: Fixed Windows path compatibility issues
1121
+ - **Token Security**: Enhanced token storage encryption
1122
+
1123
+ #### 📝 Documentation
1124
+ - Comprehensive OAuth setup guide
1125
+ - Portfolio management tutorials
1126
+ - Troubleshooting guides for common issues
1127
+ - API documentation for all new tools
1128
+
1129
+ #### 🔒 Security
1130
+ - OAuth token encryption at rest
1131
+ - Secure token transmission
1132
+ - Rate limiting for API calls
1133
+ - Audit logging for all operations
1134
+
1135
+ ---
1136
+
1137
+ For complete release history prior to v1.6.0, see the [GitHub Releases](https://github.com/DollhouseMCP/mcp-server/releases) page.
1138
+
1139
+ ## 📜 License
1140
+
1141
+ This project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)** with Platform Stability Commitments.
1142
+
1143
+ ### What This Means
1144
+
1145
+ #### ✅ You CAN:
1146
+ - Use the software for personal projects
1147
+ - Use the software for commercial projects
1148
+ - Modify the source code
1149
+ - Distribute the software
1150
+ - Use personas and elements you create
1151
+
1152
+ #### ⚠️ You MUST:
1153
+ - Include the license and copyright notice
1154
+ - State changes made to the code
1155
+ - Disclose your source code when distributing
1156
+ - Use the same AGPL-3.0 license for derivatives
1157
+ - **Make network use source available** (AGPL requirement)
1158
+
1159
+ #### ❌ You CANNOT:
1160
+ - Hold us liable for damages
1161
+ - Use our trademarks without permission
1162
+ - Claim warranty or guarantee of fitness
1163
+ - Resell commercially
1164
+
1165
+ ### Platform Stability Commitments
1166
+
1167
+ We provide additional guarantees beyond the AGPL-3.0:
1168
+
1169
+ - **90-day advance notice** for monetization policy changes
1170
+ - **12-month revenue sharing locks** for content creators
1171
+ - **Full data portability** - export all your content anytime
1172
+ - **180-day transition period** for platform ownership changes
1173
+ - **Community advisory input** on major policy decisions
1174
+
1175
+ ### Contributor License Agreement
1176
+
1177
+ By contributing to DollhouseMCP, you agree that:
1178
+
1179
+ 1. You have the right to grant us license to your contribution
1180
+ 2. Your contribution is licensed under AGPL-3.0
1181
+ 3. You grant us additional rights to use your contribution in our commercial offerings
1182
+ 4. You retain copyright to your contribution
283
1183
 
284
- ## 📄 License
1184
+ For the complete license text, see [LICENSE](LICENSE).
285
1185
 
286
- DollhouseMCP is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
1186
+ ### Questions?
287
1187
 
288
- ### What this means:
289
- - ✅ **Free to use** for personal and commercial purposes
290
- - ✅ **Modify and distribute** with the same license
291
- - ✅ **Network use** requires source code disclosure
292
- - ✅ **Platform stability** commitments protect users
1188
+ If you have questions about the license or what you can do with DollhouseMCP:
293
1189
 
294
- See [LICENSE](LICENSE) for full terms.
1190
+ - **Documentation**: [License FAQ](docs/LICENSE_FAQ.md)
1191
+ - **GitHub Issue**: Open an issue with the `license` label
1192
+ - **Discussions**: Ask in [GitHub Discussions](https://github.com/DollhouseMCP/mcp-server/discussions)
295
1193
 
296
1194
  ---
297
1195
 
298
- *Built with ❤️ by the DollhouseMCP team*
1196
+ *Copyright © 2025 DollhouseMCP. All rights reserved.*