@dollhousemcp/mcp-server 1.6.11 → 1.7.0

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.
@@ -0,0 +1,1036 @@
1
+ # DollhouseMCP
2
+
3
+ ## Project Status
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)
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
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)
26
+
27
+ ---
28
+
29
+ <div align="center">
30
+ <img src="docs/assets/dollhouse-logo.png" alt="DollhouseMCP" width="200" />
31
+
32
+ # Open Source, Community-Powered AI Customization
33
+
34
+ ### Create, Edit, and Share Customization Elements for Your AI Platforms
35
+
36
+ [![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)
37
+ [![Collection](https://img.shields.io/badge/Browse-Community%20Collection-purple?style=for-the-badge)](https://github.com/DollhouseMCP/collection)
38
+ [![Contribute](https://img.shields.io/badge/Share-Your%20Elements-green?style=for-the-badge)](https://github.com/DollhouseMCP/mcp-server#contributing)
39
+ </div>
40
+
41
+ ---
42
+
43
+ ## Elements That Customize Your AI's Capabilities and Actions
44
+
45
+ **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, and agents for automation—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.
46
+
47
+ ### What Are Customization Elements?
48
+
49
+ - **Personas** – Shape how your AI acts and responds in specific domains
50
+ - **Skills** – Add specialized capabilities your AI can use
51
+ - **Templates** – Ensure consistent, high-quality outputs
52
+ - **Agents** – Enable autonomous task completion with smart decision-making
53
+
54
+ ### Core Capabilities
55
+
56
+ - **🌍 Community Element Library** – A growing number of tested personas, skills, templates, and agents
57
+ - **✨ Create Custom Elements** – Create personas, skills, templates, and agents from scratch using natural language
58
+ - **🤝 Open Source** – AGPL-3.0 licensed, ensuring community contributions stay free
59
+ - **📚 The DollhouseMCP Collection** – Install any community element with one command
60
+ - **🛠️ 41 Professional Tools** – Complete toolkit for element creation and management
61
+ - **🛡️ Security-First Validation** – All elements validated against hundreds of attack vectors
62
+ - **⚡ Hot-Swap Elements** – Change personas, skills, and templates without restarting as needed
63
+ - **📦 Personal Portfolio** – Your library of custom AI configurations on your local computer or personal GitHub repo
64
+
65
+ ### Use Cases
66
+
67
+ <table>
68
+ <tr>
69
+ <td width="25%" align="center">
70
+ <h4>👨‍💻 For Developers</h4>
71
+ <p>Use community-powered code review personas and debugging skills. Share your language-specific optimizations.</p>
72
+ </td>
73
+ <td width="25%" align="center">
74
+ <h4>✍️ For Writers</h4>
75
+ <p>Access community-crafted writing styles and templates. Contribute your genre expertise.</p>
76
+ </td>
77
+ <td width="25%" align="center">
78
+ <h4>🎯 For Professionals</h4>
79
+ <p>Leverage community-built industry elements. Share your domain knowledge.</p>
80
+ </td>
81
+ <td width="25%" align="center">
82
+ <h4>🌟 For Everyone</h4>
83
+ <p>Give your AI any personality you want. Describe it, modify it, save it to your portfolio, share it with the world.</p>
84
+ </td>
85
+ </tr>
86
+ </table>
87
+
88
+ ### Get Started
89
+
90
+ ```bash
91
+ npm install @dollhousemcp/mcp-server
92
+ ```
93
+ See [Quick Start](#quick-start) for complete setup instructions.
94
+
95
+ ---
96
+
97
+ ## 🎯 Element Types: Available Now & Coming Soon
98
+
99
+ ### ✅ Available Now
100
+
101
+ <table>
102
+ <tr>
103
+ <td width="50%">
104
+
105
+ #### 🎭 Personas
106
+ Shape how your AI behaves and responds
107
+ - **Creative Writer** - Imaginative storyteller for engaging narratives
108
+ - **Business Consultant** - Strategic advisor for business decisions
109
+ - **Debug Detective** - Systematic problem-solver for code issues
110
+ - **Security Analyst** - Vulnerability assessment and threat analysis
111
+ - **Technical Analyst** - Deep dive technical documentation
112
+ - **Use**: `"Activate the creative writer persona"`
113
+
114
+ </td>
115
+ <td width="50%">
116
+
117
+ #### 💡 Skills
118
+ Add specialized capabilities your AI can use
119
+ - **Code Review** - Analyze code quality and suggest improvements
120
+ - **Data Analysis** - Statistical analysis and visualization
121
+ - **Language Translation** - Multi-language communication
122
+ - **API Integration** - Connect and interact with external services
123
+ - **Testing Automation** - Generate and run test suites
124
+ - **Use**: `"Enable the code review skill"`
125
+
126
+ </td>
127
+ </tr>
128
+ <tr>
129
+ <td width="50%">
130
+
131
+ #### 📝 Templates
132
+ Ensure consistent, high-quality outputs
133
+ - **Project Proposal** - Structured business proposals
134
+ - **Penetration Test Report** - Security assessment documentation
135
+ - **Meeting Notes** - Organized meeting summaries
136
+ - **Code Review** - Systematic code evaluation format
137
+ - **Documentation** - Technical documentation structure
138
+ - **Use**: `"Use the project proposal template"`
139
+
140
+ </td>
141
+ <td width="50%">
142
+
143
+ #### 🤖 Agents
144
+ Enable autonomous task completion
145
+ - **Code Reviewer** - Automated code quality assessment
146
+ - **Task Manager** - Project organization and tracking
147
+ - **Research Assistant** - Information gathering and synthesis
148
+ - **Academic Researcher** - Scholarly research and citations
149
+ - **Security Fix Specialist** - Vulnerability remediation
150
+ - **Use**: `"Run the code reviewer agent"`
151
+
152
+ </td>
153
+ </tr>
154
+ </table>
155
+
156
+ ### 🔄 Coming Soon
157
+
158
+ <table>
159
+ <tr>
160
+ <td width="50%">
161
+
162
+ #### 🧠 Memory
163
+ Persistent context across sessions
164
+ - **Project Context** - Remember project details and decisions
165
+ - **Learning Progress** - Track skill development over time
166
+ - **Personal Preferences** - Store user-specific settings
167
+ - **Conversation History** - Maintain dialogue continuity
168
+ - **Status**: Coming Soon
169
+
170
+ </td>
171
+ <td width="50%">
172
+
173
+ #### 🎯 Ensembles
174
+ Combine multiple elements as one unified entity
175
+ - **Full-Stack Developer** - Frontend + Backend + DevOps skills
176
+ - **Writing Suite** - Creative + Technical + Editorial capabilities
177
+ - **Security Team** - Analyst + Auditor + Remediation skills
178
+ - **Data Science Platform** - Analysis + Visualization + ML skills
179
+ - **Status**: Coming Soon
180
+
181
+ </td>
182
+ </tr>
183
+ <tr>
184
+ <td width="50%">
185
+
186
+ #### 🔧 Tools
187
+ External function calls and commands
188
+ - **Git Operations** - Version control management
189
+ - **Database Queries** - Direct database interaction
190
+ - **API Calls** - External service integration
191
+ - **File Operations** - Advanced file manipulation
192
+ - **Status**: Planned
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
+ </table>
208
+
209
+ ## 💬 Natural Language Usage Examples
210
+
211
+ 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.
212
+
213
+ ### Importing from the Community Collection
214
+
215
+ **Natural Language Examples:**
216
+ - `"Show me all the personas in the Dollhouse Collection"`
217
+ - `"What creative writing personas are available?"`
218
+ - `"Install the storyteller persona from the collection"`
219
+ - `"Search for Python development skills"`
220
+ - `"Find templates for technical documentation"`
221
+
222
+ **Direct Commands (if you prefer):**
223
+ ```bash
224
+ browse_collection type="personas"
225
+ search_collection "creative writing"
226
+ install_content "personas/storyteller.md"
227
+ ```
228
+
229
+ ### Managing Your Portfolio
230
+
231
+ **Natural Language Examples:**
232
+ - `"What's in my portfolio?"`
233
+ - `"Show me all my custom personas"`
234
+ - `"Sync my portfolio with GitHub"`
235
+ - `"Create a backup of my elements"`
236
+ - `"Search my portfolio for marketing templates"`
237
+
238
+ **Direct Commands (if you prefer):**
239
+ ```bash
240
+ portfolio_status
241
+ list_elements type="personas"
242
+ sync_portfolio
243
+ search_portfolio "marketing"
244
+ ```
245
+
246
+ ### Working with Elements
247
+
248
+ **Natural Language Examples:**
249
+ - `"Activate the code reviewer persona"`
250
+ - `"What's currently active?"`
251
+ - `"Switch to creative writing mode"`
252
+ - `"Deactivate all elements"`
253
+ - `"Show me details about the data analyst skill"`
254
+ - `"Create a new persona for customer support"`
255
+ - `"Edit the email template to be more formal"`
256
+
257
+ **Direct Commands (if you prefer):**
258
+ ```bash
259
+ activate_element "code-reviewer" type="personas"
260
+ get_active_elements
261
+ deactivate_element type="personas"
262
+ get_element_details "data-analyst" type="skills"
263
+ create_element type="personas" name="customer-support"
264
+ ```
265
+
266
+ ### Complete Workflow Example
267
+
268
+ Here's how a typical session might look:
269
+
270
+ ```
271
+ You: "I need help with creative writing"
272
+ Assistant: "I'll help you with creative writing. Let me check what personas are available..."
273
+
274
+ You: "Show me creative writing personas in the collection"
275
+ Assistant: [Shows list of available creative writing personas]
276
+
277
+ You: "Install and activate the storyteller persona"
278
+ Assistant: "I've installed and activated the Storyteller persona. I'm now ready to help craft engaging narratives..."
279
+
280
+ You: "Actually, let me create my own persona for science fiction writing"
281
+ Assistant: "I'll help you create a custom science fiction writing persona. What characteristics would you like?"
282
+
283
+ You: "Make it focus on hard sci-fi with attention to scientific accuracy"
284
+ Assistant: [Creates custom persona with specified traits]
285
+
286
+ You: "Save that to my portfolio as 'Hard SciFi Writer'"
287
+ Assistant: "I've saved 'Hard SciFi Writer' to your portfolio. You can activate it anytime."
288
+ ```
289
+
290
+ ### Pro Tips
291
+
292
+ - **Be conversational**: `"Help me write better code"` works as well as specific commands
293
+ - **Stack elements**: `"Activate both the code reviewer and the Python expert"`
294
+ - **Save your favorites**: `"Save this configuration as my default setup"`
295
+ - **Share with others**: `"Submit my custom persona to the community collection"`
296
+
297
+ ## 🚀 Quick Start
298
+
299
+ ### Choose Your Installation Method
300
+
301
+ <table>
302
+ <tr>
303
+ <th>Method</th>
304
+ <th>Best For</th>
305
+ <th>Pros</th>
306
+ <th>Cons</th>
307
+ </tr>
308
+ <tr>
309
+ <td><strong>Local Install</strong><br>(Recommended)</td>
310
+ <td>Most users, multiple configs, customization</td>
311
+ <td>✅ Multiple setups<br>✅ Easy backup<br>✅ No permissions</td>
312
+ <td>❌ Longer path in config</td>
313
+ </tr>
314
+ <tr>
315
+ <td><strong>npx</strong></td>
316
+ <td>Quick testing, always latest</td>
317
+ <td>✅ No install<br>✅ Always updated</td>
318
+ <td>❌ Slower startup<br>❌ Needs internet</td>
319
+ </tr>
320
+ <tr>
321
+ <td><strong>Global Install</strong></td>
322
+ <td>Single shared instance</td>
323
+ <td>✅ Short command</td>
324
+ <td>❌ Only one version<br>❌ Needs sudo/admin</td>
325
+ </tr>
326
+ </table>
327
+
328
+ ---
329
+
330
+ ### Method 1: Local Installation (Recommended)
331
+
332
+ Create a dedicated folder for your MCP servers and install there:
333
+
334
+ ```bash
335
+ # Create MCP servers directory
336
+ mkdir ~/mcp-servers
337
+ cd ~/mcp-servers
338
+
339
+ # Install DollhouseMCP
340
+ npm install @dollhousemcp/mcp-server
341
+ ```
342
+
343
+ **Configure Claude Desktop:**
344
+
345
+ Add to your config file:
346
+ - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
347
+ - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
348
+ - **Linux**: `~/.config/Claude/claude_desktop_config.json`
349
+
350
+ ```json
351
+ {
352
+ "mcpServers": {
353
+ "dollhousemcp": {
354
+ "command": "node",
355
+ "args": ["/Users/YOUR_USERNAME/mcp-servers/node_modules/@dollhousemcp/mcp-server/dist/index.js"]
356
+ }
357
+ }
358
+ }
359
+ ```
360
+
361
+ 💡 **Pro tip**: Replace `/Users/YOUR_USERNAME` with your actual home directory path.
362
+
363
+ ---
364
+
365
+ ### Method 2: Always Latest with npx
366
+
367
+ No installation needed! Configure Claude Desktop to always use the latest version:
368
+
369
+ ```json
370
+ {
371
+ "mcpServers": {
372
+ "dollhousemcp": {
373
+ "command": "npx",
374
+ "args": ["@dollhousemcp/mcp-server@latest"]
375
+ }
376
+ }
377
+ }
378
+ ```
379
+
380
+ 📝 **Note**: The `@latest` tag ensures you always get the newest version. Remove it to use npm's cached version.
381
+
382
+ ---
383
+
384
+ ### Method 3: Global Installation
385
+
386
+ ```bash
387
+ # Install globally (may require sudo/admin)
388
+ npm install -g @dollhousemcp/mcp-server
389
+ ```
390
+
391
+ **Configure Claude Desktop:**
392
+
393
+ ```json
394
+ {
395
+ "mcpServers": {
396
+ "dollhousemcp": {
397
+ "command": "dollhousemcp"
398
+ }
399
+ }
400
+ }
401
+ ```
402
+
403
+ ⚠️ **Warning**: Only one version system-wide. Consider local installation for more flexibility.
404
+
405
+ ---
406
+
407
+ ### 🎯 Advanced: Multiple Configurations
408
+
409
+ Want separate portfolios for different contexts? Create multiple local installations:
410
+
411
+ ```bash
412
+ # Personal assistant
413
+ mkdir ~/mcp-servers/personal
414
+ cd ~/mcp-servers/personal
415
+ npm install @dollhousemcp/mcp-server
416
+
417
+ # Work assistant
418
+ mkdir ~/mcp-servers/work
419
+ cd ~/mcp-servers/work
420
+ npm install @dollhousemcp/mcp-server
421
+
422
+ # Creative writing
423
+ mkdir ~/mcp-servers/creative
424
+ cd ~/mcp-servers/creative
425
+ npm install @dollhousemcp/mcp-server
426
+ ```
427
+
428
+ **Configure each with its own portfolio:**
429
+
430
+ ```json
431
+ {
432
+ "mcpServers": {
433
+ "dollhouse-personal": {
434
+ "command": "node",
435
+ "args": ["/Users/YOU/mcp-servers/personal/node_modules/@dollhousemcp/mcp-server/dist/index.js"],
436
+ "env": {
437
+ "DOLLHOUSE_PORTFOLIO_DIR": "/Users/YOU/portfolios/personal"
438
+ }
439
+ },
440
+ "dollhouse-work": {
441
+ "command": "node",
442
+ "args": ["/Users/YOU/mcp-servers/work/node_modules/@dollhousemcp/mcp-server/dist/index.js"],
443
+ "env": {
444
+ "DOLLHOUSE_PORTFOLIO_DIR": "/Users/YOU/portfolios/work"
445
+ }
446
+ }
447
+ }
448
+ }
449
+ ```
450
+
451
+ Now you can enable/disable different configurations in Claude Desktop as needed!
452
+
453
+ ---
454
+
455
+ ### ✅ Verify Installation
456
+
457
+ After configuring and restarting Claude Desktop, test with:
458
+
459
+ ```
460
+ list_elements type="personas"
461
+ ```
462
+
463
+ You should see your available personas. If not, check the [Troubleshooting](#troubleshooting) section.
464
+
465
+ ---
466
+
467
+ ### 📁 Default Portfolio Location
468
+
469
+ By default, your elements are stored in:
470
+ - **macOS/Linux**: `~/.dollhouse/portfolio/`
471
+ - **Windows**: `%USERPROFILE%\.dollhouse\portfolio\`
472
+
473
+ Use the `DOLLHOUSE_PORTFOLIO_DIR` environment variable to customize this location.
474
+
475
+ ## 🎯 Getting Started
476
+
477
+ Once installed, try these commands in Claude:
478
+
479
+ ```bash
480
+ # Browse available personas
481
+ list_elements type="personas"
482
+
483
+ # Activate a persona
484
+ activate_element name="creative-writer" type="personas"
485
+
486
+ # Browse the community collection
487
+ browse_collection type="personas"
488
+
489
+ # Search for specific content
490
+ search_collection query="python" type="skills"
491
+ ```
492
+
493
+ > **📘 New User?** Follow our [Roundtrip Workflow Guide](docs/guides/ROUNDTRIP_WORKFLOW_USER_GUIDE.md) for a complete walkthrough of discovering, customizing, and sharing AI elements with the community.
494
+
495
+ ## ✨ Key Features
496
+
497
+ | Feature | Description |
498
+ |---------|-------------|
499
+ | 🎭 **41 MCP Tools** | Complete portfolio element management through chat interface |
500
+ | 🏪 **GitHub Collection** | Browse, search, install, and submit personas to community collection |
501
+ | 🔄 **Roundtrip Workflow** | Complete cycle: discover → customize → share → collaborate |
502
+ | 📁 **GitHub Portfolio** | Personal repository for storing and versioning your AI elements |
503
+ | 👤 **User Identity System** | Environment-based attribution for persona creators |
504
+ | 🆔 **Unique ID System** | Advanced ID generation: `{type}_{name}_{author}_{YYYYMMDD}-{HHMMSS}` |
505
+ | 💬 **Chat-Based Management** | Create, edit, and validate personas through conversational interface |
506
+ | 🔄 **Real-time Operations** | Live editing with automatic version bumping and validation |
507
+ | 📦 **NPM Installation** | Install MCP servers from npm with cross-platform support and atomic operations |
508
+ | 🛡️ **Data Protection** | Copy-on-write for default personas, comprehensive backup system |
509
+ | 🏠 **Local-First Architecture** | Full functionality without cloud dependency |
510
+
511
+ ## 🎨 Portfolio System
512
+
513
+ The DollhouseMCP Portfolio system provides a comprehensive framework for managing AI elements locally and in the cloud.
514
+
515
+ ### Portfolio Structure
516
+
517
+ Your portfolio is organized by element type:
518
+
519
+ ```
520
+ ~/.dollhouse/portfolio/
521
+ ├── personas/ # Behavioral profiles
522
+ ├── skills/ # Discrete capabilities
523
+ ├── templates/ # Reusable content structures
524
+ ├── agents/ # Goal-oriented actors
525
+ ├── memories/ # Persistent context
526
+ └── ensembles/ # Element combinations
527
+ ```
528
+
529
+ ### Key Features
530
+
531
+ - **Local-First Architecture**: All elements stored locally with optional cloud sync
532
+ - **GitHub Integration**: Sync your portfolio with GitHub for backup and sharing
533
+ - **Version Control**: Full git integration for tracking changes
534
+ - **Smart Detection**: Automatically identifies element types from content
535
+ - **Flexible Naming**: Use any naming convention you prefer
536
+
537
+ ### Portfolio Management Tools
538
+
539
+ Use the comprehensive set of MCP tools to manage your portfolio:
540
+
541
+ - `list_portfolio_elements` - View all elements across types
542
+ - `sync_portfolio` - Synchronize with GitHub
543
+ - `upload_to_portfolio` - Share elements with the community
544
+ - `download_from_portfolio` - Get elements from GitHub
545
+
546
+ For detailed portfolio documentation, see the [Portfolio Guide](docs/guides/PORTFOLIO_SETUP_GUIDE.md).
547
+
548
+ ## 🔒 Security
549
+
550
+ DollhouseMCP implements enterprise-grade security measures to protect your data and ensure safe operation.
551
+
552
+ ### Security Features
553
+
554
+ - **Input Sanitization**: All user inputs validated and sanitized
555
+ - **Path Traversal Prevention**: Filesystem access strictly controlled
556
+ - **YAML Injection Protection**: Safe parsing with validation
557
+ - **Command Injection Prevention**: No direct shell command execution
558
+ - **Token Encryption**: OAuth tokens encrypted at rest
559
+ - **Rate Limiting**: API calls throttled to prevent abuse
560
+ - **Audit Logging**: Security events tracked for analysis
561
+
562
+ ### Security Testing
563
+
564
+ - **Automated Security Scanning**: GitHub Advanced Security enabled
565
+ - **Dependency Scanning**: Automated vulnerability detection
566
+ - **Code Analysis**: Static analysis with CodeQL
567
+ - **Secret Scanning**: Prevents credential leaks
568
+
569
+ ### Reporting Security Issues
570
+
571
+ If you discover a security vulnerability, please:
572
+
573
+ 1. **DO NOT** create a public GitHub issue
574
+ 2. Open a private security advisory on GitHub
575
+ 3. Include steps to reproduce if possible
576
+ 4. Allow up to 48 hours for initial response
577
+
578
+ For more details, see our [Security Policy](SECURITY.md).
579
+
580
+ ## 🛠️ Development
581
+
582
+ ### Getting Started
583
+
584
+ ```bash
585
+ # Clone the repository
586
+ git clone https://github.com/DollhouseMCP/mcp-server.git
587
+ cd mcp-server
588
+
589
+ # Install dependencies
590
+ npm install
591
+
592
+ # Build the project
593
+ npm run build
594
+
595
+ # Run tests
596
+ npm test
597
+ ```
598
+
599
+ ### Development Workflow
600
+
601
+ 1. **Create Feature Branch**: `git checkout -b feature/your-feature`
602
+ 2. **Make Changes**: Implement your feature or fix
603
+ 3. **Run Tests**: `npm test`
604
+ 4. **Build**: `npm run build`
605
+ 5. **Submit PR**: Create pull request to develop branch
606
+
607
+ ### Available Scripts
608
+
609
+ - `npm run build` - Compile TypeScript
610
+ - `npm run dev` - Development mode with watch
611
+ - `npm test` - Run test suite
612
+ - `npm run lint` - Check code style
613
+ - `npm run typecheck` - TypeScript type checking
614
+
615
+ ### Project Structure
616
+
617
+ ```
618
+ src/
619
+ ├── index.ts # Main server entry
620
+ ├── tools/ # MCP tool implementations
621
+ ├── utils/ # Utility functions
622
+ ├── types/ # TypeScript definitions
623
+ └── elements/ # Element system
624
+ ```
625
+
626
+ For detailed development guides, see [Development Documentation](docs/development/).
627
+
628
+ ## 🏭 Architecture
629
+
630
+ ### System Overview
631
+
632
+ DollhouseMCP follows a modular, extensible architecture built on the Model Context Protocol (MCP) standard.
633
+
634
+ ### Core Components
635
+
636
+ #### MCP Server
637
+ - **Transport**: StdioServerTransport for Claude Desktop integration
638
+ - **Protocol**: JSON-RPC 2.0 communication
639
+ - **Tools**: 41 MCP tools for comprehensive functionality
640
+
641
+ #### Element System
642
+ - **BaseElement**: Abstract base class for all elements
643
+ - **IElement Interface**: Common contract for elements
644
+ - **Element Types**: Personas, Skills, Templates, Agents, Memories, Ensembles
645
+
646
+ #### Portfolio Manager
647
+ - **Local Storage**: File-based element storage
648
+ - **GitHub Sync**: Git-based synchronization
649
+ - **Version Control**: Full git integration
650
+
651
+ #### Security Layer
652
+ - **Input Validation**: All inputs sanitized
653
+ - **Path Security**: Traversal prevention
654
+ - **Token Management**: Encrypted storage
655
+
656
+ ### Data Flow
657
+
658
+ 1. **Client Request** → MCP Server
659
+ 2. **Tool Routing** → Appropriate handler
660
+ 3. **Element Processing** → Element system
661
+ 4. **Storage** → Portfolio manager
662
+ 5. **Response** → Client
663
+
664
+ For detailed architecture documentation, see [Architecture Guide](docs/ARCHITECTURE.md).
665
+
666
+ ## 🎯 Troubleshooting
667
+
668
+ ### Common Issues
669
+
670
+ #### MCP Server Not Connecting
671
+
672
+ **Symptoms**: Claude Desktop doesn't show DollhouseMCP in available servers
673
+
674
+ **Solutions**:
675
+ 1. Verify configuration file location:
676
+ - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
677
+ - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
678
+ 2. Check JSON syntax is valid
679
+ 3. Restart Claude Desktop after configuration changes
680
+
681
+ #### OAuth Authentication Fails
682
+
683
+ **Symptoms**: Cannot authenticate with GitHub
684
+
685
+ **Solutions**:
686
+ 1. Check internet connection
687
+ 2. Verify GitHub account has proper permissions
688
+ 3. Try using Personal Access Token instead:
689
+ ```bash
690
+ export GITHUB_TOKEN=your_pat_token
691
+ ```
692
+ 4. Clear cached credentials and retry
693
+
694
+ #### Elements Not Loading
695
+
696
+ **Symptoms**: Portfolio appears empty
697
+
698
+ **Solutions**:
699
+ 1. Check portfolio directory exists: `~/.dollhouse/portfolio/`
700
+ 2. Verify file permissions
701
+ 3. Run `list_portfolio_elements` tool to diagnose
702
+ 4. Check element file format (YAML frontmatter required)
703
+
704
+ #### Performance Issues
705
+
706
+ **Symptoms**: Slow response times
707
+
708
+ **Solutions**:
709
+ 1. Check portfolio size (large portfolios may be slow)
710
+ 2. Verify adequate system resources
711
+ 3. Consider using pagination for large lists
712
+ 4. Check network latency for GitHub operations
713
+
714
+ ### Getting Help
715
+
716
+ - **Documentation**: [Full docs](https://github.com/DollhouseMCP/mcp-server/tree/main/docs)
717
+ - **Issues**: [GitHub Issues](https://github.com/DollhouseMCP/mcp-server/issues)
718
+ - **Discussions**: [GitHub Discussions](https://github.com/DollhouseMCP/mcp-server/discussions)
719
+
720
+ For detailed troubleshooting, see [Troubleshooting Guide](docs/troubleshooting/).
721
+
722
+ ## 🤝 Contributing
723
+
724
+ We welcome contributions to DollhouseMCP! Here's how you can help:
725
+
726
+ ### Ways to Contribute
727
+
728
+ - **🐛 Report Bugs**: Open an issue with reproduction steps
729
+ - **✨ Request Features**: Suggest new functionality
730
+ - **📝 Improve Documentation**: Fix typos, add examples
731
+ - **💻 Submit Code**: Fix bugs or implement features
732
+ - **🎨 Share Elements**: Contribute personas, skills, templates
733
+
734
+ ### Development Process
735
+
736
+ 1. **Fork the Repository**
737
+ ```bash
738
+ gh repo fork DollhouseMCP/mcp-server
739
+ ```
740
+
741
+ 2. **Create Feature Branch**
742
+ ```bash
743
+ git checkout -b feature/your-feature
744
+ ```
745
+
746
+ 3. **Make Changes**
747
+ - Follow existing code style
748
+ - Add tests for new functionality
749
+ - Update documentation
750
+
751
+ 4. **Test Thoroughly**
752
+ ```bash
753
+ npm test
754
+ npm run lint
755
+ npm run typecheck
756
+ ```
757
+
758
+ 5. **Submit Pull Request**
759
+ - Target the `develop` branch
760
+ - Provide clear description
761
+ - Reference any related issues
762
+
763
+ ### Code Style
764
+
765
+ - TypeScript with strict mode
766
+ - ESLint configuration provided
767
+ - Prettier for formatting
768
+ - Comprehensive JSDoc comments
769
+
770
+ ### Commit Messages
771
+
772
+ Follow conventional commits:
773
+ - `feat:` New feature
774
+ - `fix:` Bug fix
775
+ - `docs:` Documentation
776
+ - `test:` Testing
777
+ - `chore:` Maintenance
778
+
779
+ ### Review Process
780
+
781
+ 1. Automated CI checks must pass
782
+ 2. Code review by maintainers
783
+ 3. Address feedback
784
+ 4. Merge when approved
785
+
786
+ For detailed guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).
787
+
788
+ ## 📚 Resources
789
+
790
+ ### Documentation
791
+
792
+ - **[Quick Start Guide](docs/QUICK_START.md)** - Get up and running quickly
793
+ - **[Portfolio Setup](docs/guides/PORTFOLIO_SETUP_GUIDE.md)** - Configure your portfolio
794
+ - **[Element Development](docs/ELEMENT_DEVELOPER_GUIDE.md)** - Create custom elements
795
+ - **[API Reference](docs/API_REFERENCE.md)** - Complete tool documentation
796
+ - **[Architecture Guide](docs/ARCHITECTURE.md)** - System design details
797
+ - **[Security Documentation](docs/SECURITY.md)** - Security measures and best practices
798
+
799
+ ### Repositories
800
+
801
+ - **[Main Repository](https://github.com/DollhouseMCP/mcp-server)** - Core MCP server
802
+ - **[Collection](https://github.com/DollhouseMCP/collection)** - Community elements
803
+ - **[Developer Kit](https://github.com/DollhouseMCP/developer-kit)** - Development tools
804
+
805
+ ### Community
806
+
807
+ - **[GitHub Discussions](https://github.com/DollhouseMCP/mcp-server/discussions)** - Q&A and ideas
808
+ - **[GitHub Issues](https://github.com/DollhouseMCP/mcp-server/issues)** - Bug reports and features
809
+ - **[Discord Server](#)** - Real-time chat (coming soon)
810
+
811
+ ### External Resources
812
+
813
+ - **[Model Context Protocol](https://modelcontextprotocol.io)** - MCP specification
814
+ - **[Claude Desktop](https://claude.ai/download)** - AI assistant with MCP support
815
+ - **[Anthropic Documentation](https://docs.anthropic.com)** - Claude documentation
816
+
817
+ ### Learning Materials
818
+
819
+ - **Tutorials** (coming soon)
820
+ - Building Your First Persona
821
+ - Creating Custom Skills
822
+ - Portfolio Management Best Practices
823
+ - GitHub Integration Setup
824
+
825
+ - **Videos** (coming soon)
826
+ - Installation Walkthrough
827
+ - Feature Demonstrations
828
+ - Developer Tutorials
829
+
830
+ ### Support
831
+
832
+ - **GitHub Issues**: [Report issues or request features](https://github.com/DollhouseMCP/mcp-server/issues)
833
+ - **Security Issues**: [Private security advisories](https://github.com/DollhouseMCP/mcp-server/security/advisories)
834
+ - **Discussions**: [Community Q&A](https://github.com/DollhouseMCP/mcp-server/discussions)
835
+
836
+ ## 🏷️ Version History
837
+
838
+ ### v1.6.11 - August 28, 2025
839
+
840
+ **Test Reliability & Collection Fixes**: Improved test suite stability and fixed collection system
841
+
842
+ #### 🔧 Bug Fixes
843
+ - **Collection Index URL**: Fixed to use GitHub Pages for better reliability
844
+ - **E2E Test Tokens**: Improved token prioritization for CI environments
845
+ - **Response Format**: Enhanced compatibility with various response formats
846
+ - **Type Safety**: Improved TypeScript types throughout test suite
847
+
848
+ #### ✨ Improvements
849
+ - Added helper functions for better code organization
850
+ - Enhanced test reliability in CI/CD pipelines
851
+ - General code quality improvements
852
+
853
+ ---
854
+
855
+ ### v1.6.10 - August 28, 2025
856
+
857
+ **Collection Submission Fix**: Critical fix for collection submission pipeline
858
+
859
+ #### 🔧 Bug Fixes
860
+ - **Collection Submission**: Fixed workflow failing due to missing element types
861
+ - **Local Path Parameter**: Added missing localPath parameter to submission tool
862
+ - **Duplicate Detection**: Added detection for duplicate portfolio uploads and collection issues
863
+
864
+ #### ✨ Improvements
865
+ - Added comprehensive QA tests for collection submission validation
866
+ - Cleaned up QA documentation files
867
+ - Updated all documentation to v1.6.10
868
+
869
+ ---
870
+
871
+ ### v1.6.9 - August 26, 2025
872
+
873
+ **Critical Fixes**: Fixed OAuth helper NPM packaging and performance testing workflow
874
+
875
+ #### 🔧 Bug Fixes
876
+ - **OAuth NPM Packaging**: Fixed missing `oauth-helper.mjs` file in NPM distribution
877
+ - File was present in repository but not included in published package
878
+ - OAuth authentication now works correctly for NPM users
879
+ - **Performance Tests**: Fixed CI workflow running all tests instead of performance tests
880
+ - Performance monitoring now works correctly in GitHub Actions
881
+
882
+ ---
883
+
884
+ ### v1.6.3 - August 25, 2025
885
+
886
+ **OAuth Authentication Fix**: Fixed invalid OAuth client ID and improved error handling
887
+
888
+ #### 🔧 Bug Fixes
889
+ - **OAuth Client ID**: Updated from incorrect ID to correct `Ov23li9gyNZP6m9aJ2EP`
890
+ - **Error Messages**: Improved clarity of OAuth error messages for better debugging
891
+ - **Setup Tool**: Fixed `setup_github_auth` tool to properly handle authentication flow
892
+
893
+ ---
894
+
895
+ ### v1.6.2 - August 25, 2025
896
+
897
+ **Critical Hotfix**: Fixed OAuth default client ID not being used in `setup_github_auth` tool
898
+
899
+ #### 🔧 Bug Fixes
900
+ - **OAuth Default Client**: Fixed `setup_github_auth` tool not using default client ID when none provided
901
+ - **Authentication Flow**: Restored ability to authenticate without manual client ID entry
902
+
903
+ #### 📝 Documentation
904
+ - Added troubleshooting guide for OAuth issues
905
+ - Updated setup instructions with clearer OAuth configuration steps
906
+
907
+ ---
908
+
909
+ ### v1.6.1 - August 25, 2025
910
+
911
+ **⚠️ Breaking Changes**:
912
+ - 🔄 **Serialization Format Change** - `BaseElement.serialize()` now returns markdown with YAML frontmatter instead of JSON
913
+
914
+ #### 🔧 Bug Fixes
915
+ - **Serialization Format**: Fixed `BaseElement.serialize()` to return markdown format
916
+ - Changed from JSON string to markdown with YAML frontmatter
917
+ - Maintains consistency with existing persona format
918
+ - Fixes portfolio round-trip workflow
919
+
920
+ #### ✨ Improvements
921
+ - **Code Quality**: Extracted validation methods into ValidationService
922
+ - **Error Handling**: Improved validation error messages with specific field information
923
+ - **Test Coverage**: Added comprehensive tests for markdown serialization
924
+
925
+ ---
926
+
927
+ ### v1.6.0 - August 25, 2025
928
+
929
+ **🚀 Major Release: Portfolio System & OAuth Integration**
930
+
931
+ This release introduces the complete portfolio management system with GitHub OAuth authentication, enabling secure cloud-based element synchronization and management.
932
+
933
+ #### ✨ New Features
934
+
935
+ ##### 🔐 GitHub OAuth Authentication
936
+ - **OAuth App Integration**: Full OAuth flow with GitHub for secure authentication
937
+ - **Personal Access Token Support**: Alternative authentication method for CI/CD
938
+ - **Token Management**: Secure storage and rotation of authentication tokens
939
+ - **Multi-Account Support**: Handle multiple GitHub accounts seamlessly
940
+
941
+ ##### 📦 Portfolio Management System
942
+ - **Cloud Sync**: Automatic synchronization between local and GitHub portfolios
943
+ - **Version Control**: Full git integration for portfolio elements
944
+ - **Conflict Resolution**: Smart merging of local and remote changes
945
+ - **Batch Operations**: Upload/download multiple elements efficiently
946
+
947
+ ##### 🛠️ New MCP Tools (42 total)
948
+ - `setup_github_auth`: Interactive GitHub OAuth setup
949
+ - `check_github_auth`: Verify authentication status
950
+ - `refresh_github_token`: Rotate OAuth tokens
951
+ - `sync_portfolio`: Bidirectional portfolio synchronization
952
+ - `upload_to_portfolio`: Upload local elements to GitHub
953
+ - `download_from_portfolio`: Download elements from GitHub
954
+ - `submit_to_portfolio`: Submit elements for review
955
+ - And 30 more tools for complete portfolio management
956
+
957
+ #### 🔧 Bug Fixes
958
+ - **Element Detection**: Fixed smart detection of element types
959
+ - **YAML Parsing**: Improved handling of complex YAML structures
960
+ - **Path Resolution**: Fixed Windows path compatibility issues
961
+ - **Token Security**: Enhanced token storage encryption
962
+
963
+ #### 📝 Documentation
964
+ - Comprehensive OAuth setup guide
965
+ - Portfolio management tutorials
966
+ - Troubleshooting guides for common issues
967
+ - API documentation for all new tools
968
+
969
+ #### 🔒 Security
970
+ - OAuth token encryption at rest
971
+ - Secure token transmission
972
+ - Rate limiting for API calls
973
+ - Audit logging for all operations
974
+
975
+ ---
976
+
977
+ For complete release history prior to v1.6.0, see the [GitHub Releases](https://github.com/DollhouseMCP/mcp-server/releases) page.
978
+
979
+ ## 📜 License
980
+
981
+ This project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)** with Platform Stability Commitments.
982
+
983
+ ### What This Means
984
+
985
+ #### ✅ You CAN:
986
+ - Use the software for personal projects
987
+ - Use the software for commercial projects
988
+ - Modify the source code
989
+ - Distribute the software
990
+ - Use personas and elements you create
991
+
992
+ #### ⚠️ You MUST:
993
+ - Include the license and copyright notice
994
+ - State changes made to the code
995
+ - Disclose your source code when distributing
996
+ - Use the same AGPL-3.0 license for derivatives
997
+ - **Make network use source available** (AGPL requirement)
998
+
999
+ #### ❌ You CANNOT:
1000
+ - Hold us liable for damages
1001
+ - Use our trademarks without permission
1002
+ - Claim warranty or guarantee of fitness
1003
+ - Resell commercially
1004
+
1005
+ ### Platform Stability Commitments
1006
+
1007
+ We provide additional guarantees beyond the AGPL-3.0:
1008
+
1009
+ - **90-day advance notice** for monetization policy changes
1010
+ - **12-month revenue sharing locks** for content creators
1011
+ - **Full data portability** - export all your content anytime
1012
+ - **180-day transition period** for platform ownership changes
1013
+ - **Community advisory input** on major policy decisions
1014
+
1015
+ ### Contributor License Agreement
1016
+
1017
+ By contributing to DollhouseMCP, you agree that:
1018
+
1019
+ 1. You have the right to grant us license to your contribution
1020
+ 2. Your contribution is licensed under AGPL-3.0
1021
+ 3. You grant us additional rights to use your contribution in our commercial offerings
1022
+ 4. You retain copyright to your contribution
1023
+
1024
+ For the complete license text, see [LICENSE](LICENSE).
1025
+
1026
+ ### Questions?
1027
+
1028
+ If you have questions about the license or what you can do with DollhouseMCP:
1029
+
1030
+ - **Documentation**: [License FAQ](docs/LICENSE_FAQ.md)
1031
+ - **GitHub Issue**: Open an issue with the `license` label
1032
+ - **Discussions**: Ask in [GitHub Discussions](https://github.com/DollhouseMCP/mcp-server/discussions)
1033
+
1034
+ ---
1035
+
1036
+ *Copyright © 2025 DollhouseMCP. All rights reserved.*