@dollhousemcp/mcp-server 1.9.13 → 1.9.15

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 (79) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.github.md +54 -0
  3. package/README.md.backup +1241 -49
  4. package/dist/cache/CollectionCache.js +2 -2
  5. package/dist/collection/CollectionIndexManager.js +3 -3
  6. package/dist/config/ConfigWizard.js +3 -3
  7. package/dist/config/indicator-config.js +2 -2
  8. package/dist/config/portfolio-constants.js +12 -12
  9. package/dist/elements/BaseElement.js +7 -7
  10. package/dist/elements/FeedbackProcessor.d.ts +7 -0
  11. package/dist/elements/FeedbackProcessor.d.ts.map +1 -1
  12. package/dist/elements/FeedbackProcessor.js +67 -14
  13. package/dist/elements/agents/AgentManager.js +6 -6
  14. package/dist/elements/memories/Memory.js +4 -4
  15. package/dist/elements/memories/MemoryManager.js +3 -3
  16. package/dist/elements/memories/utils.js +3 -3
  17. package/dist/elements/skills/Skill.js +2 -2
  18. package/dist/elements/skills/SkillManager.js +2 -2
  19. package/dist/elements/templates/Template.d.ts.map +1 -1
  20. package/dist/elements/templates/Template.js +38 -14
  21. package/dist/elements/templates/TemplateManager.js +2 -2
  22. package/dist/generated/version.d.ts +2 -2
  23. package/dist/generated/version.js +3 -3
  24. package/dist/handlers/ConfigHandler.js +3 -3
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +20 -16
  27. package/dist/persona/PersonaElementManager.js +3 -3
  28. package/dist/persona/PersonaManager.js +2 -2
  29. package/dist/persona/export-import/PersonaImporter.js +3 -3
  30. package/dist/portfolio/DefaultElementProvider.d.ts +12 -0
  31. package/dist/portfolio/DefaultElementProvider.d.ts.map +1 -1
  32. package/dist/portfolio/DefaultElementProvider.js +23 -6
  33. package/dist/portfolio/GitHubPortfolioIndexer.js +2 -2
  34. package/dist/portfolio/MigrationManager.js +2 -2
  35. package/dist/portfolio/NLPScoringManager.js +2 -2
  36. package/dist/portfolio/PortfolioManager.d.ts +5 -0
  37. package/dist/portfolio/PortfolioManager.d.ts.map +1 -1
  38. package/dist/portfolio/PortfolioManager.js +8 -1
  39. package/dist/portfolio/PortfolioRepoManager.js +2 -2
  40. package/dist/portfolio/PortfolioSyncManager.js +5 -5
  41. package/dist/portfolio/RelationshipManager.js +4 -4
  42. package/dist/portfolio/UnifiedIndexManager.js +4 -4
  43. package/dist/portfolio/types/RelationshipTypes.js +2 -2
  44. package/dist/security/InputValidator.d.ts +12 -0
  45. package/dist/security/InputValidator.d.ts.map +1 -1
  46. package/dist/security/InputValidator.js +38 -18
  47. package/dist/security/audit/config/suppressions.js +10 -10
  48. package/dist/security/commandValidator.js +2 -2
  49. package/dist/security/dosProtection.d.ts +123 -0
  50. package/dist/security/dosProtection.d.ts.map +1 -0
  51. package/dist/security/dosProtection.js +392 -0
  52. package/dist/security/pathValidator.js +2 -2
  53. package/dist/security/secureYamlParser.d.ts.map +1 -1
  54. package/dist/security/secureYamlParser.js +4 -3
  55. package/dist/security/tokenManager.js +10 -10
  56. package/dist/security/validators/unicodeValidator.js +2 -2
  57. package/dist/security/yamlValidator.js +3 -3
  58. package/dist/sync/PortfolioDownloader.js +2 -2
  59. package/dist/sync/PortfolioSyncComparer.js +2 -2
  60. package/dist/tools/portfolio/PortfolioElementAdapter.js +3 -3
  61. package/dist/tools/portfolio/submitToPortfolioTool.js +14 -14
  62. package/dist/utils/EarlyTerminationSearch.d.ts +1 -1
  63. package/dist/utils/EarlyTerminationSearch.d.ts.map +1 -1
  64. package/dist/utils/EarlyTerminationSearch.js +3 -3
  65. package/dist/utils/ElementFormatter.d.ts +1 -0
  66. package/dist/utils/ElementFormatter.d.ts.map +1 -1
  67. package/dist/utils/ElementFormatter.js +21 -13
  68. package/dist/utils/GitHubRateLimiter.d.ts +6 -0
  69. package/dist/utils/GitHubRateLimiter.d.ts.map +1 -1
  70. package/dist/utils/GitHubRateLimiter.js +20 -5
  71. package/dist/utils/RateLimiter.js +2 -2
  72. package/dist/utils/SecureDownloader.js +2 -2
  73. package/dist/utils/fileOperations.d.ts +6 -1
  74. package/dist/utils/fileOperations.d.ts.map +1 -1
  75. package/dist/utils/fileOperations.js +29 -5
  76. package/dist/utils/filesystem.js +6 -6
  77. package/dist/utils/searchUtils.js +2 -2
  78. package/dist/utils/version.js +3 -3
  79. package/package.json +1 -1
package/README.md.backup CHANGED
@@ -1,17 +1,323 @@
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/graphs/traffic)
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/develop/test/__tests__)
13
+ [![Enterprise-Grade Security](https://img.shields.io/badge/Security-Enterprise%20Grade-purple)](https://github.com/DollhouseMCP/mcp-server/blob/develop/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
 
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
+
15
321
  ## 📦 Installation
16
322
 
17
323
  ### Choose Your Installation Method
@@ -226,73 +532,959 @@ 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:
230
542
 
231
- DollhouseMCP supports multiple element types for customizing AI behavior:
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
599
+
600
+ ### Security Testing
601
+
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
606
+
607
+ ### Reporting Security Issues
608
+
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
232
678
 
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 |
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
242
683
 
243
- Your portfolio lives in `~/.dollhouse/portfolio/` with elements organized by type.
684
+ #### Portfolio Manager
685
+ - **Local Storage**: File-based element storage
686
+ - **GitHub Sync**: Git-based synchronization
687
+ - **Version Control**: Full git integration
244
688
 
245
- ## 🔧 Troubleshooting
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
718
+
719
+ #### OAuth Authentication Fails
720
+
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
257
765
 
258
- ### Need Help?
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
259
771
 
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)
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.15 - October 1, 2025
877
+
878
+ **Security Patch**: Zero-width Unicode bypass vulnerability + SonarCloud cleanup
879
+
880
+ #### 🔒 Security Fix [HIGH]
881
+ - **Zero-width Unicode bypass vulnerability** - Restored Unicode security validation (#1228, #1229)
882
+ - Blocks zero-width characters (U+200B-U+200F, U+FEFF) in metadata validation
883
+ - Prevents steganography and homograph attacks
884
+ - Fixed `validateContent` bypass in DefaultElementProvider
885
+ - Restored security validation chain through ContentValidator and UnicodeValidator
886
+
887
+ #### 🧹 Code Quality
888
+ - **228+ SonarCloud issues resolved** across 5 issues (#1220-1224):
889
+ - S7773: Modernized Number parsing methods (90 issues) - `parseInt()` → `Number.parseInt()`
890
+ - S7781: String.replaceAll modernization (134 issues) - `.replace(/g)` → `.replaceAll()`
891
+ - MEDIUM severity fixes (4 issues) - Object literals, loop counters, Promise types
892
+ - False positives marked (11 issues) - Test-only patterns properly categorized
893
+ - **199 security hotspots evaluated** - All marked SAFE, zero production concerns (#1219)
894
+ - Math.random(), MD5, PATH usage validated for non-security contexts
895
+ - Comprehensive documentation of safe patterns
896
+
897
+ #### 📊 Impact
898
+ - ✅ 1 HIGH severity security vulnerability fixed
899
+ - ✅ All production security concerns resolved
900
+ - ✅ Test coverage maintained at >96%
901
+
902
+ ### v1.9.14 - September 30, 2025
903
+
904
+ **Bug Fixes**: ElementFormatter and portfolio search improvements
905
+
906
+ #### 🔧 Fixed
907
+ - **ElementFormatter Security Scanner False Positives** - Fixed validation option being ignored (#1211, #1212)
908
+ - SecureYamlParser now properly respects `validateContent: false` option
909
+ - ElementFormatter uses `validateContent: false` for all YAML parsing (5 locations)
910
+ - Local trusted files can bypass content scanning while maintaining security for untrusted sources
911
+
912
+ - **Portfolio Search File Extension Display** - Fixed incorrect extension display (#1213, #1215)
913
+ - Portfolio search now shows correct file extensions based on element type
914
+ - Memories display `.yaml` extension, other elements show `.md` extension
915
+
916
+ #### 📚 Documentation
917
+ - Added SONARCLOUD_QUERY_PROCEDURE.md - Critical guide for querying SonarCloud correctly
918
+ - Updated CLAUDE.md with naming conventions and style guide for session notes
919
+ - Added session notes documentation for PR #1215
920
+
921
+ #### 📊 Statistics
922
+ - 2 Bug fixes merged (PR #1212, #1215)
923
+ - 10 Code quality issues resolved
924
+ - 2,277 tests passing with >96% coverage
925
+ - Quality Gate: PASSING
926
+ - Test Coverage: >96% maintained
927
+
928
+ ---
929
+
930
+ ### v1.9.13 - September 29, 2025
931
+
932
+ **Memory System Critical Fixes**: Security scanner improvements and enhanced error reporting
933
+
934
+ #### 🔧 Fixed
935
+ - **Security Scanner False Positives** - Fixed memory system rejecting legitimate security documentation (#1206, #1207)
936
+ - Memory files with security terms (vulnerability, exploit, attack) now load correctly
937
+ - Local memory files are now pre-trusted (validateContent: false)
938
+ - **Silent Error Reporting** - Added visible error reporting for failed memory loads
939
+ - Users now see "Failed to load X memories" with detailed error messages
940
+ - New getLoadStatus() diagnostic method for troubleshooting
941
+ - **Legacy Memory Migration** - New migration tool for old .md files
942
+ - Migrates to .yaml format in date-organized folders
943
+ - Safe archiving of original files, dry-run mode by default
944
+
945
+ #### ✨ Added
946
+ - CLI Utility: migrate-legacy-memories.ts for legacy file migration
947
+ - Diagnostic Method: getLoadStatus() for memory loading diagnostics
948
+ - Error Tracking: failedLoads tracking in MemoryManager
949
+
950
+ #### 🛠️ Code Quality
951
+ - Fixed SonarCloud S3776: Reduced cognitive complexity in getLoadStatus()
952
+ - Fixed SonarCloud S3358: Replaced nested ternary with if-else chain
953
+ - Fixed SonarCloud S7785: Use top-level await instead of promise chain
954
+ - Extracted handleLoadFailure() to eliminate code duplication
955
+ - Use os.homedir() for cross-platform reliability
956
+
957
+ #### 🔒 Security
958
+ - Fixed DMCP-SEC-004: Added Unicode normalization to CLI input validation
959
+
960
+ #### 📊 Statistics
961
+ - 3 Critical fixes merged in PR #1207
962
+ - 7 Code quality issues resolved
963
+ - 1 Security issue fixed
964
+ - Quality Gate: PASSING
965
+ - Test Coverage: >96% maintained
966
+
967
+ ---
968
+
969
+ ### v1.9.12 - September 29, 2025
970
+
971
+ **Memory System Stability**: Portfolio index and test isolation improvements
972
+
973
+ #### 🔧 Fixed
974
+ - **Memory Metadata Preservation** - Fixed PortfolioIndexManager overwriting memory metadata (#1196, #1197)
975
+ - Memory descriptions now properly preserved instead of "Memory element"
976
+ - **Test Isolation** - Fixed memory portfolio index tests contaminating real user portfolio (#1194, #1195)
977
+ - Tests now use temporary directories
978
+ - Added security validation for memory YAML parsing (size limits, type checking)
979
+ - **ElementFormatter Tool** - Added tool for cleaning malformed elements (#1190, #1193)
980
+
981
+ #### 🛠️ Code Quality
982
+ - Fixed SonarCloud S7781: Use String#replaceAll() for modern string replacement
983
+ - Fixed SonarCloud S1135: Removed TODO comments, documented test isolation patterns
984
+
985
+ #### 🔒 Security
986
+ - Added content size validation (1MB limit) for memory YAML parsing
987
+ - Added type safety validation for parsed memory content
988
+ - Documented security trade-offs with audit suppressions
989
+
990
+ #### 📊 Statistics
991
+ - Memory portfolio index tests: 8/8 passing (was 3/8)
992
+ - Closed issues: #1196, #1194, #1190, #659, #404, #919
993
+ - Quality Gate: PASSING
994
+ - Test Coverage: >96% maintained
995
+
996
+ ---
997
+
998
+ ### v1.9.11 - September 28, 2025
999
+
1000
+ **SonarCloud Quality & Security**: Major code quality improvements and security fixes
1001
+
1002
+ #### 🔒 Security Fixes
1003
+ - Fixed command injection vulnerabilities in GitHub Actions workflows (#1149)
1004
+ - Resolved ReDoS vulnerabilities in RelationshipManager (#1144)
1005
+ - All critical and high severity issues resolved
1006
+
1007
+ #### 🛠️ Quality Improvements
1008
+ - **82% reduction in SonarCloud reliability bugs** (from 55 to 10)
1009
+ - Fixed unsafe throw in finally blocks (S1143)
1010
+ - Fixed async constructor patterns
1011
+ - Resolved regex precedence issues
1012
+ - Fixed control character usage
1013
+ - Removed hardcoded tokens
1014
+
1015
+ #### 📊 Statistics
1016
+ - 11 Pull Requests merged for quality fixes
1017
+ - Quality Gate: PASSING
1018
+ - Security: All critical issues resolved
1019
+ - Test Coverage: >96% maintained
1020
+
1021
+ ### v1.9.10 - September 27, 2025
1022
+
1023
+ **Enhanced Capability Index & Security**: Complete trigger extraction system and SonarCloud integration
1024
+
1025
+ #### ✨ Major Features
1026
+ - **Enhanced Capability Index System** - NLP scoring with Jaccard similarity and Shannon entropy
1027
+ - **Cross-Element Relationships** - GraphRAG-style relationship mapping
1028
+ - **Complete Trigger Extraction** - All element types now support trigger extraction
1029
+ - **SonarCloud Integration** - Quality gate PASSING with 0% duplication
1030
+
1031
+ #### 🔒 Security Improvements
1032
+ - Fixed 16 SonarCloud BLOCKER issues
1033
+ - GitHub Actions command injection vulnerabilities resolved
1034
+ - Full SHA pinning for all Actions
1035
+ - PATH manipulation vulnerability fixed
1036
+
1037
+ #### 🛠️ Improvements
1038
+ - Extended Node compatibility fixes
1039
+ - Enhanced Index stability improvements
1040
+ - Type-safe relationship parsing
1041
+ - Docker Hub rate limit mitigation
1042
+ - Test isolation and CI improvements
1043
+
1044
+ #### 📊 Statistics
1045
+ - 34 Pull Requests merged
1046
+ - Test Coverage: 98.17%
1047
+ - Security Hotspots: 100% reviewed
1048
+ - Code Duplication: 0% on new code
1049
+
1050
+ ---
1051
+
1052
+ ### v1.9.9 - September 22, 2025
1053
+
1054
+ **Security & Stability**: Prototype pollution protection and memory timestamp fixes
1055
+
1056
+ #### ✨ Features
1057
+ - **Security Utilities**: New reusable security module for prototype pollution protection
1058
+ - **Memory Auto-Repair**: Corrupted memory timestamps now auto-repair during read operations
1059
+ - **Enhanced Validation**: Comprehensive timestamp validation with detailed error reporting
1060
+
1061
+ #### 🔧 Fixed
1062
+ - **Memory Timestamps**: Fixed toISOString errors when memory entries have string timestamps (#1069)
1063
+ - **Security Badge**: Fixed broken security badge link in README pointing to wrong location
1064
+ - **Prototype Pollution**: Added belt-and-suspenders protection to satisfy code scanners (#202-#205)
1065
+
1066
+ #### 🔒 Security
1067
+ - Added `securityUtils.ts` module with reusable security patterns
1068
+ - Implemented Object.create(null) for prototype-less objects
1069
+ - Added Object.defineProperty() for secure property setting
1070
+ - Proper CodeQL suppressions for validated false positives
1071
+
1072
+ ---
1073
+
1074
+ ### v1.9.8 - September 20, 2025
1075
+
1076
+ **Memory System Complete**: Full CRUD operations and enhanced memory management
1077
+
1078
+ #### ✨ Features
1079
+ - **Memory CRUD Operations**: Complete create, read, update, delete functionality for memories
1080
+ - **Memory Editing**: Full support for editing memory fields including metadata and content
1081
+ - **Memory Validation**: Comprehensive validation with detailed error reporting
1082
+ - **Enhanced Search**: Improved search across all sources with duplicate detection
1083
+
1084
+ #### 🔧 Fixed
1085
+ - **Memory Display**: Fixed "No content stored" issue when memories have valid content
1086
+ - **Test Coverage**: Maintained >96% test coverage with comprehensive memory tests
1087
+ - **Documentation**: Updated all documentation to reflect new memory features
1088
+
1089
+ ---
1090
+
1091
+ ### v1.9.7 - September 20, 2025
1092
+
1093
+ **NPM Package Fix**: Corrected build issue from v1.9.6
1094
+
1095
+ #### 🔧 Fixed
1096
+ - **NPM Package Build**: Republished with correct commit including all memory display fixes
1097
+ - **Memory Display**: Memories now correctly show content instead of "No content stored"
1098
+ - Note: v1.9.6 NPM package was accidentally built from wrong commit
1099
+
1100
+ ---
1101
+
1102
+ ### v1.9.6 - September 20, 2025
1103
+
1104
+ **🎉 First External Contribution**: Performance and security improvements from the community!
1105
+
1106
+ #### ✨ Highlights
1107
+ - **Fixed**: Memory display bug - added content getter to Memory class (PR #1036)
1108
+ - **Fixed**: Flaky macOS tests on Node 22+ (PR #1038)
1109
+ - **Enhanced**: Optimized whitespace detection for better performance (PR #1037)
1110
+ - **Security**: Strengthened path traversal protection (PR #1037)
1111
+ - **Attribution**: Thanks to @jeetsingh008 for identifying improvements!
1112
+
1113
+ ---
1114
+
1115
+ ### v1.9.5 - September 19, 2025
1116
+
1117
+ **Memory YAML Parsing Fix**: Resolved display issues with pure YAML memory files
1118
+
1119
+ #### 🔧 Bug Fixes
1120
+ - **Fixed**: Memory files showing incorrect names for pure YAML format
1121
+ - **Enhanced**: Added comprehensive test coverage for memory file formats
1122
+ - **Technical**: Improved compatibility between SecureYamlParser and pure YAML
1123
+
1124
+ ---
1125
+
1126
+ ### v1.9.4 - September 19, 2025
1127
+
1128
+ **Memory Name Display Fix**: Corrected "Unnamed Memory" display issue
1129
+
1130
+ #### 🔧 Bug Fixes
1131
+ - **Fixed**: Memory elements showing as "Unnamed Memory" in list output
1132
+ - **Fixed**: Corrected metadata parsing path in SecureYamlParser
1133
+ - **Technical**: Added retention format parsing for various formats
1134
+
1135
+ ---
1136
+
1137
+ ### v1.9.3 - September 19, 2025
1138
+
1139
+ **Memory Element MCP Support**: Complete MCP tool handler integration
1140
+
1141
+ #### 🔧 Bug Fixes
1142
+ - **Fixed**: Added Memory element support to all MCP tool handlers
1143
+ - **Fixed**: Resolved "Unknown element type 'memories'" errors
1144
+ - **Technical**: Added Memory case handling to 8 critical methods
1145
+
1146
+ ---
1147
+
1148
+ ### v1.9.2 - September 19, 2025
1149
+
1150
+ **Branch Synchronization**: Documentation and configuration alignment
1151
+
1152
+ #### 🔧 Improvements
1153
+ - **Fixed**: Resolved divergence between main and develop branches
1154
+ - **Enhanced**: Updated documentation to reflect all features
1155
+ - **Technical**: Merged 58 commits from develop branch
1156
+
1157
+ ---
1158
+
1159
+ ### v1.9.1 - September 19, 2025
1160
+
1161
+ **Memory Element Hotfix**: Fixed validation and tool descriptions
1162
+
1163
+ #### 🔧 Bug Fixes
1164
+ - **Fixed**: Added 'memories' to validation arrays
1165
+ - **Fixed**: Updated collection tool descriptions
1166
+ - **Technical**: Clean hotfix for memory element support
1167
+
1168
+ ---
1169
+
1170
+ ### v1.9.0 - September 19, 2025
1171
+
1172
+ **🎉 Memory Element Release**: Persistent context storage with enterprise-grade features
1173
+
1174
+ #### ✨ New Features
1175
+ - **Memory Element**: Complete implementation of persistent context storage (PR #1000 - The Milestone PR!)
1176
+ - **Date-based Organization**: Automatic folder structure (YYYY-MM-DD) prevents flat directory issues
1177
+ - **Content Deduplication**: SHA-256 hashing prevents duplicate storage (Issue #994)
1178
+ - **Search Indexing**: Fast queries across thousands of entries with O(log n) performance (Issue #984)
1179
+ - **Privacy Levels**: Three-tier access control (public, private, sensitive)
1180
+ - **Retention Policies**: Automatic cleanup based on age and capacity
1181
+
1182
+ #### 🔧 Improvements
1183
+ - **Performance Optimizations**: 60-second cache for date folder operations
1184
+ - **Collision Handling**: Automatic version suffixes for same-named files
1185
+ - **Atomic Operations**: FileLockManager prevents corruption and race conditions
1186
+ - **Sanitization Caching**: SHA-256 checksums reduce CPU usage by ~40% during deserialization
1187
+ - **Retry Logic**: Search index building with exponential backoff
1188
+
1189
+ #### 🛡️ Security
1190
+ - **Comprehensive Input Validation**: All memory content sanitized with DOMPurify
1191
+ - **Path Traversal Protection**: Robust validation in MemoryManager
1192
+ - **Size Limits**: DoS protection with 1MB memory and 100KB entry limits
1193
+ - **Audit Logging**: Complete security event tracking
1194
+
1195
+ #### 🧪 Testing
1196
+ - **89 Memory Tests**: Comprehensive coverage across 4 test suites
1197
+ - **Concurrent Access Tests**: Thread safety verification
1198
+ - **Security Coverage**: XSS, Unicode attacks, path traversal
1199
+ - **CI Improvements**: Fixed GitHub integration test conflicts (PR #1001)
1200
+
1201
+ ---
1202
+
1203
+ ### v1.8.1 - September 15, 2025
1204
+
1205
+ **CI Reliability Improvements**: Fixed persistent test failures across platforms
1206
+
1207
+ #### 🔧 Bug Fixes
1208
+ - **GitHub API 409 Conflicts**: Enhanced retry mechanism with jitter for parallel CI jobs
1209
+ - **Windows Performance Tests**: Platform-specific timing thresholds for CI environments
1210
+ - **Test Stability**: Resolved flaky tests in Extended Node Compatibility workflow
1211
+
1212
+ ---
1213
+
1214
+ ### v1.8.0 - September 15, 2025
1215
+
1216
+ **Major Portfolio System Enhancements**: Full GitHub portfolio synchronization
1217
+
1218
+ #### ✨ New Features
1219
+ - **Portfolio Sync**: Complete bidirectional sync with GitHub portfolios
1220
+ - **Pull Functionality**: Download elements from GitHub portfolios (3 sync modes)
1221
+ - **Configurable Repos**: Portfolio repository names now configurable
1222
+ - **Configuration Wizard**: Now manual-only (removed auto-trigger for better UX)
1223
+
1224
+ #### 🔧 Improvements
1225
+ - **Tool Clarity**: Renamed conflicting tools for better user experience
1226
+ - **Rate Limiting**: Fixed redundant token validation causing API limits
1227
+ - **GitHub Integration**: Comprehensive repository management
1228
+
1229
+ ---
1230
+
1231
+ ### v1.7.4 - September 12, 2025
1232
+
1233
+ **Hotfix Release**: Critical build and registration fixes
1234
+
1235
+ #### 🔧 Bug Fixes
1236
+ - **Build Infrastructure**: Fixed missing TypeScript files in dist
1237
+ - **Tool Registration**: Resolved MCP tool availability issues
1238
+ - **Skill System**: Fixed skill registration and activation
1239
+ - **Test Framework**: Restored test infrastructure functionality
1240
+
1241
+ ---
1242
+
1243
+ ### v1.7.3 - September 9, 2025
1244
+
1245
+ **Security & Configuration Release**: Prototype pollution protection and config management
1246
+
1247
+ #### 🛡️ Security
1248
+ - **Prototype Pollution Protection**: Comprehensive validation against injection attacks
1249
+ - **YAML Security**: Maintained FAILSAFE_SCHEMA with security documentation
1250
+ - **Security Audit**: Achieved 0 security findings across all severity levels
1251
+
1252
+ #### ✨ Improvements
1253
+ - **Configuration Management**: Complete overhaul with atomic operations
1254
+ - **Test Coverage**: Comprehensive security and configuration tests
1255
+ - **Input Normalization**: All inputs normalized at MCP request layer
1256
+
1257
+ ---
1258
+
1259
+ ### v1.7.2 - September 7, 2025
1260
+
1261
+ **Security Patch Release**: Critical logging vulnerability fixes
1262
+
1263
+ #### 🛡️ Security Fixes
1264
+ - **Clear-text Logging Prevention**: Comprehensive sanitization of sensitive data
1265
+ - **OAuth Token Protection**: Prevents exposure of tokens in console output
1266
+ - **API Key Sanitization**: Masks all credentials before logging
1267
+
1268
+ ---
1269
+
1270
+ ### v1.7.1 - September 3, 2025
1271
+
1272
+ **Maintenance Release**: Documentation and compatibility improvements
1273
+
1274
+ #### 🔧 Improvements
1275
+ - **Documentation**: Updated for better clarity and accuracy
1276
+ - **Compatibility**: Enhanced cross-platform support
1277
+ - **Bug Fixes**: Various minor fixes and optimizations
1278
+
1279
+ ---
1280
+
1281
+ ### v1.7.0 - August 30, 2025
1282
+
1283
+ **Major Feature Release**: Enhanced portfolio and collection systems
1284
+
1285
+ #### ✨ New Features
1286
+ - **Portfolio Management**: Improved local portfolio organization
1287
+ - **Collection Integration**: Better integration with community collection
1288
+ - **Security Enhancements**: Critical security fixes from code review
1289
+
1290
+ ---
1291
+
1292
+ ### v1.6.11 - August 28, 2025
1293
+
1294
+ **Test Reliability & Collection Fixes**: Improved test suite stability and fixed collection system
1295
+
1296
+ #### 🔧 Bug Fixes
1297
+ - **Collection Index URL**: Fixed to use GitHub Pages for better reliability
1298
+ - **E2E Test Tokens**: Improved token prioritization for CI environments
1299
+ - **Response Format**: Enhanced compatibility with various response formats
1300
+ - **Type Safety**: Improved TypeScript types throughout test suite
1301
+
1302
+ #### ✨ Improvements
1303
+ - Added helper functions for better code organization
1304
+ - Enhanced test reliability in CI/CD pipelines
1305
+ - General code quality improvements
1306
+
1307
+ ---
1308
+
1309
+ ### v1.6.10 - August 28, 2025
1310
+
1311
+ **Collection Submission Fix**: Critical fix for collection submission pipeline
1312
+
1313
+ #### 🔧 Bug Fixes
1314
+ - **Collection Submission**: Fixed workflow failing due to missing element types
1315
+ - **Local Path Parameter**: Added missing localPath parameter to submission tool
1316
+ - **Duplicate Detection**: Added detection for duplicate portfolio uploads and collection issues
1317
+
1318
+ #### ✨ Improvements
1319
+ - Added comprehensive QA tests for collection submission validation
1320
+ - Cleaned up QA documentation files
1321
+ - Updated all documentation to v1.6.10
1322
+
1323
+ ---
1324
+
1325
+ ### v1.6.9 - August 26, 2025
1326
+
1327
+ **Critical Fixes**: Fixed OAuth helper NPM packaging and performance testing workflow
1328
+
1329
+ #### 🔧 Bug Fixes
1330
+ - **OAuth NPM Packaging**: Fixed missing `oauth-helper.mjs` file in NPM distribution
1331
+ - File was present in repository but not included in published package
1332
+ - OAuth authentication now works correctly for NPM users
1333
+ - **Performance Tests**: Fixed CI workflow running all tests instead of performance tests
1334
+ - Performance monitoring now works correctly in GitHub Actions
1335
+
1336
+ ---
1337
+
1338
+ ### v1.6.3 - August 25, 2025
1339
+
1340
+ **OAuth Authentication Fix**: Fixed invalid OAuth client ID and improved error handling
1341
+
1342
+ #### 🔧 Bug Fixes
1343
+ - **OAuth Client ID**: Updated from incorrect ID to correct `Ov23li9gyNZP6m9aJ2EP`
1344
+ - **Error Messages**: Improved clarity of OAuth error messages for better debugging
1345
+ - **Setup Tool**: Fixed `setup_github_auth` tool to properly handle authentication flow
1346
+
1347
+ ---
1348
+
1349
+ ### v1.6.2 - August 25, 2025
1350
+
1351
+ **Critical Hotfix**: Fixed OAuth default client ID not being used in `setup_github_auth` tool
1352
+
1353
+ #### 🔧 Bug Fixes
1354
+ - **OAuth Default Client**: Fixed `setup_github_auth` tool not using default client ID when none provided
1355
+ - **Authentication Flow**: Restored ability to authenticate without manual client ID entry
1356
+
1357
+ #### 📝 Documentation
1358
+ - Added troubleshooting guide for OAuth issues
1359
+ - Updated setup instructions with clearer OAuth configuration steps
1360
+
1361
+ ---
1362
+
1363
+ ### v1.6.1 - August 25, 2025
1364
+
1365
+ **⚠️ Breaking Changes**:
1366
+ - 🔄 **Serialization Format Change** - `BaseElement.serialize()` now returns markdown with YAML frontmatter instead of JSON
1367
+
1368
+ #### 🔧 Bug Fixes
1369
+ - **Serialization Format**: Fixed `BaseElement.serialize()` to return markdown format
1370
+ - Changed from JSON string to markdown with YAML frontmatter
1371
+ - Maintains consistency with existing persona format
1372
+ - Fixes portfolio round-trip workflow
1373
+
1374
+ #### ✨ Improvements
1375
+ - **Code Quality**: Extracted validation methods into ValidationService
1376
+ - **Error Handling**: Improved validation error messages with specific field information
1377
+ - **Test Coverage**: Added comprehensive tests for markdown serialization
1378
+
1379
+ ---
1380
+
1381
+ ### v1.6.0 - August 25, 2025
1382
+
1383
+ **🚀 Major Release: Portfolio System & OAuth Integration**
1384
+
1385
+ This release introduces the complete portfolio management system with GitHub OAuth authentication, enabling secure cloud-based element synchronization and management.
1386
+
1387
+ #### ✨ New Features
1388
+
1389
+ ##### 🔐 GitHub OAuth Authentication
1390
+ - **OAuth App Integration**: Full OAuth flow with GitHub for secure authentication
1391
+ - **Personal Access Token Support**: Alternative authentication method for CI/CD
1392
+ - **Token Management**: Secure storage and rotation of authentication tokens
1393
+ - **Multi-Account Support**: Handle multiple GitHub accounts seamlessly
1394
+
1395
+ ##### 📦 Portfolio Management System
1396
+ - **Cloud Sync**: Automatic synchronization between local and GitHub portfolios
1397
+ - **Version Control**: Full git integration for portfolio elements
1398
+ - **Conflict Resolution**: Smart merging of local and remote changes
1399
+ - **Batch Operations**: Upload/download multiple elements efficiently
1400
+
1401
+ ##### 🛠️ New MCP Tools (42 total)
1402
+ - `setup_github_auth`: Interactive GitHub OAuth setup
1403
+ - `check_github_auth`: Verify authentication status
1404
+ - `refresh_github_token`: Rotate OAuth tokens
1405
+ - `sync_portfolio`: Bidirectional portfolio synchronization
1406
+ - `upload_to_portfolio`: Upload local elements to GitHub
1407
+ - `download_from_portfolio`: Download elements from GitHub
1408
+ - `submit_to_portfolio`: Submit elements for review
1409
+ - And 30 more tools for complete portfolio management
1410
+
1411
+ #### 🔧 Bug Fixes
1412
+ - **Element Detection**: Fixed smart detection of element types
1413
+ - **YAML Parsing**: Improved handling of complex YAML structures
1414
+ - **Path Resolution**: Fixed Windows path compatibility issues
1415
+ - **Token Security**: Enhanced token storage encryption
1416
+
1417
+ #### 📝 Documentation
1418
+ - Comprehensive OAuth setup guide
1419
+ - Portfolio management tutorials
1420
+ - Troubleshooting guides for common issues
1421
+ - API documentation for all new tools
1422
+
1423
+ #### 🔒 Security
1424
+ - OAuth token encryption at rest
1425
+ - Secure token transmission
1426
+ - Rate limiting for API calls
1427
+ - Audit logging for all operations
1428
+
1429
+ ---
1430
+
1431
+ For complete release history prior to v1.6.0, see the [GitHub Releases](https://github.com/DollhouseMCP/mcp-server/releases) page.
1432
+
1433
+ ## 📜 License
1434
+
1435
+ This project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)** with Platform Stability Commitments.
1436
+
1437
+ ### What This Means
1438
+
1439
+ #### ✅ You CAN:
1440
+ - Use the software for personal projects
1441
+ - Use the software for commercial projects
1442
+ - Modify the source code
1443
+ - Distribute the software
1444
+ - Use personas and elements you create
1445
+
1446
+ #### ⚠️ You MUST:
1447
+ - Include the license and copyright notice
1448
+ - State changes made to the code
1449
+ - Disclose your source code when distributing
1450
+ - Use the same AGPL-3.0 license for derivatives
1451
+ - **Make network use source available** (AGPL requirement)
1452
+
1453
+ #### ❌ You CANNOT:
1454
+ - Hold us liable for damages
1455
+ - Use our trademarks without permission
1456
+ - Claim warranty or guarantee of fitness
1457
+ - Resell commercially
1458
+
1459
+ ### Platform Stability Commitments
1460
+
1461
+ We provide additional guarantees beyond the AGPL-3.0:
1462
+
1463
+ - **90-day advance notice** for monetization policy changes
1464
+ - **12-month revenue sharing locks** for content creators
1465
+ - **Full data portability** - export all your content anytime
1466
+ - **180-day transition period** for platform ownership changes
1467
+ - **Community advisory input** on major policy decisions
1468
+
1469
+ ### Contributor License Agreement
1470
+
1471
+ By contributing to DollhouseMCP, you agree that:
1472
+
1473
+ 1. You have the right to grant us license to your contribution
1474
+ 2. Your contribution is licensed under AGPL-3.0
1475
+ 3. You grant us additional rights to use your contribution in our commercial offerings
1476
+ 4. You retain copyright to your contribution
283
1477
 
284
- ## 📄 License
1478
+ For the complete license text, see [LICENSE](LICENSE).
285
1479
 
286
- DollhouseMCP is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
1480
+ ### Questions?
287
1481
 
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
1482
+ If you have questions about the license or what you can do with DollhouseMCP:
293
1483
 
294
- See [LICENSE](LICENSE) for full terms.
1484
+ - **Documentation**: [License FAQ](docs/LICENSE_FAQ.md)
1485
+ - **GitHub Issue**: Open an issue with the `license` label
1486
+ - **Discussions**: Ask in [GitHub Discussions](https://github.com/DollhouseMCP/mcp-server/discussions)
295
1487
 
296
1488
  ---
297
1489
 
298
- *Built with ❤️ by the DollhouseMCP team*
1490
+ *Copyright © 2025 DollhouseMCP. All rights reserved.*