@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.
- package/README.github.md +1036 -0
- package/README.md +165 -1664
- package/README.md.backup +298 -0
- package/README.npm.md +298 -0
- package/dist/generated/version.d.ts +2 -2
- package/dist/generated/version.d.ts.map +1 -1
- package/dist/generated/version.js +3 -3
- package/dist/index.d.ts +0 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +87 -98
- package/dist/persona/export-import/index.d.ts +1 -3
- package/dist/persona/export-import/index.d.ts.map +1 -1
- package/dist/persona/export-import/index.js +2 -3
- package/dist/portfolio/PortfolioRepoManager.d.ts +1 -1
- package/dist/portfolio/PortfolioRepoManager.d.ts.map +1 -1
- package/dist/portfolio/PortfolioRepoManager.js +118 -33
- package/dist/server/tools/PersonaTools.d.ts.map +1 -1
- package/dist/server/tools/PersonaTools.js +36 -76
- package/dist/server/types.d.ts +0 -2
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +1 -1
- package/dist/tools/portfolio/PortfolioElementAdapter.d.ts.map +1 -1
- package/dist/tools/portfolio/PortfolioElementAdapter.js +3 -1
- package/package.json +9 -3
- package/dist/persona/export-import/PersonaSharer.d.ts +0 -81
- package/dist/persona/export-import/PersonaSharer.d.ts.map +0 -1
- package/dist/persona/export-import/PersonaSharer.js +0 -678
package/README.md
CHANGED
|
@@ -1,1797 +1,298 @@
|
|
|
1
1
|
# DollhouseMCP
|
|
2
2
|
|
|
3
|
-
## Project Status
|
|
4
|
-
[](https://modelcontextprotocol.io)
|
|
5
3
|
[](https://www.npmjs.com/package/@dollhousemcp/mcp-server)
|
|
4
|
+
[](https://modelcontextprotocol.io)
|
|
6
5
|
[](https://www.gnu.org/licenses/agpl-3.0)
|
|
7
|
-
[](https://github.com/DollhouseMCP/mcp-server)
|
|
8
|
-
|
|
9
|
-
## Build & Quality
|
|
10
6
|
[](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml)
|
|
11
|
-
[](https://github.com/DollhouseMCP/mcp-server/actions/workflows/build-artifacts.yml)
|
|
12
|
-
[](https://github.com/DollhouseMCP/mcp-server/tree/main/__tests__)
|
|
13
|
-
[](docs/SECURITY.md)
|
|
14
|
-
|
|
15
|
-
## Platform Support
|
|
16
|
-
[](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "Windows CI Build Status")
|
|
17
|
-
[](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "macOS CI Build Status")
|
|
18
|
-
[](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "Linux CI Build Status")
|
|
19
|
-
[](https://github.com/DollhouseMCP/mcp-server/blob/main/Dockerfile)
|
|
20
|
-
|
|
21
|
-
## Technology
|
|
22
|
-
[](https://www.typescriptlang.org/)
|
|
23
|
-
[](https://nodejs.org/)
|
|
24
|
-
[](https://github.com/DollhouseMCP/mcp-server/actions/workflows/extended-node-compatibility.yml)
|
|
25
|
-
[](https://github.com/DollhouseMCP/mcp-server/actions/workflows/docker-testing.yml)
|
|
26
7
|
|
|
27
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.
|
|
28
9
|
|
|
29
10
|
**🌐 Repository**: https://github.com/DollhouseMCP/mcp-server
|
|
30
11
|
**🏪 Collection**: https://github.com/DollhouseMCP/collection
|
|
31
12
|
**📦 NPM Package**: https://www.npmjs.com/package/@dollhousemcp/mcp-server
|
|
32
|
-
**🌍 Website**: https://dollhousemcp.com (planned)
|
|
33
|
-
**📦 Version**: v1.6.10
|
|
34
|
-
|
|
35
|
-
> **🎉 New in v1.6.9**: Fixed version update script to prevent wrong file creation and package-lock.json corruption. The release workflow now works reliably with proper version management.
|
|
36
|
-
|
|
37
|
-
> **⚠️ Breaking Change**: PersonaTools have been streamlined in v1.6.0. 9 redundant tools were removed in favor of ElementTools. See [PersonaTools Migration Guide](docs/PERSONATOOLS_MIGRATION_GUIDE.md) for migration instructions.
|
|
13
|
+
**🌍 Website**: https://dollhousemcp.com (planned)
|
|
38
14
|
|
|
39
15
|
## 🚀 Quick Start
|
|
40
16
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
>
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|---------|-------------|
|
|
70
|
-
| 🎭 **42 MCP Tools** | Complete portfolio element management through chat interface |
|
|
71
|
-
| 🏪 **GitHub Collection** | Browse, search, install, and submit personas to community collection |
|
|
72
|
-
| 🔄 **Roundtrip Workflow** | Complete cycle: discover → customize → share → collaborate |
|
|
73
|
-
| 📁 **GitHub Portfolio** | Personal repository for storing and versioning your AI elements |
|
|
74
|
-
| 👤 **User Identity System** | Environment-based attribution for persona creators |
|
|
75
|
-
| 🆔 **Unique ID System** | Advanced ID generation: `{type}_{name}_{author}_{YYYYMMDD}-{HHMMSS}` |
|
|
76
|
-
| 💬 **Chat-Based Management** | Create, edit, and validate personas through conversational interface |
|
|
77
|
-
| 🔄 **Real-time Operations** | Live editing with automatic version bumping and validation |
|
|
78
|
-
| 📦 **NPM Installation** | Install MCP servers from npm with cross-platform support and atomic operations |
|
|
79
|
-
| 🛡️ **Data Protection** | Copy-on-write for default personas, comprehensive backup system |
|
|
80
|
-
| 🏠 **Local-First Architecture** | Full functionality without cloud dependency |
|
|
81
|
-
|
|
82
|
-
## 🎨 Portfolio Customization Elements
|
|
83
|
-
|
|
84
|
-
DollhouseMCP introduces a comprehensive portfolio system for customizing AI behavior through **customization element types**. Your portfolio is your personal collection of these element types that enhance and tailor your AI experience. Each element type serves a specific purpose in shaping how AI assistants interact with you.
|
|
85
|
-
|
|
86
|
-
### Current Portfolio Element Types
|
|
87
|
-
|
|
88
|
-
| Element | Purpose | Status |
|
|
89
|
-
|---------|---------|--------|
|
|
90
|
-
| 🎭 **Personas** | Define AI personality, tone, and behavioral characteristics | ✅ Available |
|
|
91
|
-
| 🛠️ **Skills** | Add specific capabilities like code review, data analysis, or creative writing | ✅ Available |
|
|
92
|
-
| 📝 **Templates** | Create reusable response formats for emails, reports, documentation | ✅ Available |
|
|
93
|
-
| 🤖 **Agents** | Build autonomous assistants that can pursue goals and make decisions | ✅ Available |
|
|
94
|
-
|
|
95
|
-
### Coming Soon
|
|
96
|
-
|
|
97
|
-
| Element | Purpose | Status |
|
|
98
|
-
|---------|---------|--------|
|
|
99
|
-
| 💬 **Prompts** | Pre-configured conversation starters and structured interactions | 🔄 Coming Soon |
|
|
100
|
-
| 🧠 **Memory** | Persistent context storage with retention policies and search capabilities | 🔄 Coming Soon |
|
|
101
|
-
| 🎯 **Ensemble** | Orchestrate multiple elements together as one unified entity | 🔄 Coming Soon |
|
|
102
|
-
|
|
103
|
-
> **📢 Note**: Prompt, memory, and ensemble element types are actively being developed and will be available in upcoming releases.
|
|
17
|
+
### Choose Your Installation Method
|
|
18
|
+
|
|
19
|
+
<table>
|
|
20
|
+
<tr>
|
|
21
|
+
<th>Method</th>
|
|
22
|
+
<th>Best For</th>
|
|
23
|
+
<th>Pros</th>
|
|
24
|
+
<th>Cons</th>
|
|
25
|
+
</tr>
|
|
26
|
+
<tr>
|
|
27
|
+
<td><strong>Local Install</strong><br>(Recommended)</td>
|
|
28
|
+
<td>Most users, multiple configs, customization</td>
|
|
29
|
+
<td>✅ Multiple setups<br>✅ Easy backup<br>✅ No permissions</td>
|
|
30
|
+
<td>❌ Longer path in config</td>
|
|
31
|
+
</tr>
|
|
32
|
+
<tr>
|
|
33
|
+
<td><strong>npx</strong></td>
|
|
34
|
+
<td>Quick testing, always latest</td>
|
|
35
|
+
<td>✅ No install<br>✅ Always updated</td>
|
|
36
|
+
<td>❌ Slower startup<br>❌ Needs internet</td>
|
|
37
|
+
</tr>
|
|
38
|
+
<tr>
|
|
39
|
+
<td><strong>Global Install</strong></td>
|
|
40
|
+
<td>Single shared instance</td>
|
|
41
|
+
<td>✅ Short command</td>
|
|
42
|
+
<td>❌ Only one version<br>❌ Needs sudo/admin</td>
|
|
43
|
+
</tr>
|
|
44
|
+
</table>
|
|
104
45
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
Use these new generic tools to manage any element type in your portfolio:
|
|
108
|
-
|
|
109
|
-
- **`list_elements`** - Browse your portfolio elements by type
|
|
110
|
-
- **`activate_element`** - Activate elements to customize AI behavior
|
|
111
|
-
- **`get_active_elements`** - View currently active customizations
|
|
112
|
-
- **`deactivate_element`** - Deactivate specific customizations
|
|
113
|
-
- **`get_element_details`** - Examine element configuration and metadata
|
|
114
|
-
- **`reload_elements`** - Refresh portfolio from filesystem
|
|
115
|
-
|
|
116
|
-
### GitHub Portfolio Integration (NEW!)
|
|
117
|
-
|
|
118
|
-
Manage your portfolio on GitHub for sharing and collaboration:
|
|
119
|
-
|
|
120
|
-
- **`portfolio_status`** - Check your GitHub portfolio repository status
|
|
121
|
-
- **`init_portfolio`** - Create a new GitHub portfolio repository
|
|
122
|
-
- **`portfolio_config`** - Configure sync and submission settings
|
|
123
|
-
- **`sync_portfolio`** - Synchronize local and GitHub repositories
|
|
124
|
-
- **`search_portfolio`** - Search your local portfolio with advanced indexing
|
|
125
|
-
- **`search_all`** - Unified search across local, GitHub, and collection sources
|
|
126
|
-
- **`submit_content`** - Upload elements to your GitHub portfolio
|
|
127
|
-
|
|
128
|
-
> **📘 Getting Started**: New to portfolios? Follow our [Portfolio Setup Guide](docs/guides/PORTFOLIO_SETUP_GUIDE.md) for step-by-step instructions.
|
|
46
|
+
---
|
|
129
47
|
|
|
130
|
-
###
|
|
48
|
+
### Method 1: Local Installation (Recommended)
|
|
131
49
|
|
|
132
|
-
|
|
50
|
+
Create a dedicated folder for your MCP servers and install there:
|
|
133
51
|
|
|
134
52
|
```bash
|
|
135
|
-
#
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
**Key Features:**
|
|
140
|
-
- **Automatic Type Detection**: Searches all element directories simultaneously
|
|
141
|
-
- **Fuzzy Matching**: Finds content with partial names or different extensions
|
|
142
|
-
- **Clear Error Messages**: Provides actionable guidance when content isn't found
|
|
143
|
-
- **No More Mistakes**: Prevents accidentally submitting content as wrong element type
|
|
144
|
-
|
|
145
|
-
**Example Output:**
|
|
146
|
-
```
|
|
147
|
-
✅ Smart detection: Found "code-review" as SKILL
|
|
148
|
-
✅ Successfully uploaded code-review to your GitHub portfolio!
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
> **📖 Learn More**: See our [Element Detection Guide](docs/guides/ELEMENT_DETECTION_GUIDE.md) for detailed usage examples and troubleshooting tips.
|
|
152
|
-
|
|
153
|
-
### Complete Naming Freedom
|
|
154
|
-
|
|
155
|
-
DollhouseMCP gives you **complete freedom** to name your elements whatever you want. There are no naming restrictions or forbidden words.
|
|
156
|
-
|
|
157
|
-
**✅ You can create elements named**:
|
|
158
|
-
- "Test Assistant" - Previously blocked, now fully supported
|
|
159
|
-
- "Sample Code Reviewer" - No restrictions
|
|
160
|
-
- "テスト" (Japanese for "test") - Unicode supported
|
|
161
|
-
- "My Debugging Helper" - Any descriptive name
|
|
162
|
-
|
|
163
|
-
**How it works**: DollhouseMCP uses metadata-based test detection instead of filename patterns, so only internal DollhouseMCP test files are filtered (those with `_dollhouseMCPTest: true` metadata). Your personal elements are never affected.
|
|
164
|
-
|
|
165
|
-
> **📘 Technical Details**: See our [Test Metadata Convention](docs/TEST_METADATA_CONVENTION.md) for information about how DollhouseMCP identifies its own test files without affecting user content.
|
|
166
|
-
|
|
167
|
-
### Specialized Element Tools
|
|
168
|
-
|
|
169
|
-
Some portfolio elements have specialized operations:
|
|
170
|
-
|
|
171
|
-
- **`render_template`** - Generate content using template elements with variables
|
|
172
|
-
- **`execute_agent`** - Deploy agent elements to accomplish specific goals
|
|
173
|
-
|
|
174
|
-
### Portfolio Examples
|
|
175
|
-
|
|
176
|
-
```
|
|
177
|
-
# Browse your skill portfolio
|
|
178
|
-
list_elements type="skills"
|
|
179
|
-
|
|
180
|
-
# Activate a code review skill
|
|
181
|
-
activate_element name="code-review" type="skills"
|
|
182
|
-
|
|
183
|
-
# Activate a professional email template
|
|
184
|
-
activate_element name="email-professional" type="templates"
|
|
185
|
-
|
|
186
|
-
# Use a template to generate content
|
|
187
|
-
render_template name="project-update" variables='{"project": "DollhouseMCP", "status": "Released"}'
|
|
53
|
+
# Create MCP servers directory
|
|
54
|
+
mkdir ~/mcp-servers
|
|
55
|
+
cd ~/mcp-servers
|
|
188
56
|
|
|
189
|
-
#
|
|
190
|
-
|
|
57
|
+
# Install DollhouseMCP
|
|
58
|
+
npm install @dollhousemcp/mcp-server
|
|
191
59
|
```
|
|
192
60
|
|
|
193
|
-
|
|
61
|
+
**Configure Claude Desktop:**
|
|
194
62
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
├── personas/ # Personality and behavior profiles
|
|
200
|
-
├── skills/ # Specialized capabilities
|
|
201
|
-
├── templates/ # Reusable content structures
|
|
202
|
-
└── agents/ # Autonomous assistants
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
### Persona Management via ElementTools
|
|
206
|
-
|
|
207
|
-
Personas are now managed through the generic ElementTools system:
|
|
208
|
-
- **`list_elements type="personas"`** - Display all local personas with enhanced metadata
|
|
209
|
-
- **`activate_element name="name" type="personas"`** - Activate by name, filename, or unique ID
|
|
210
|
-
- **`get_active_elements type="personas"`** - Get current active persona information
|
|
211
|
-
- **`deactivate_element type="personas"`** - Return to default mode
|
|
212
|
-
- **`get_element_details name="name" type="personas"`** - View complete persona details
|
|
213
|
-
- **`reload_elements type="personas"`** - Refresh personas from filesystem
|
|
214
|
-
|
|
215
|
-
> **📖 Migration**: Legacy PersonaTools were removed in v1.6.0. See [PersonaTools Migration Guide](docs/PERSONATOOLS_MIGRATION_GUIDE.md) for complete migration instructions.
|
|
216
|
-
|
|
217
|
-
## 🔒 Enterprise-Grade Security
|
|
218
|
-
|
|
219
|
-
DollhouseMCP implements comprehensive security measures to protect your personas and system:
|
|
220
|
-
|
|
221
|
-
### Security Features
|
|
222
|
-
- **🛡️ Content Sanitization**: DOMPurify integration prevents XSS attacks in persona content
|
|
223
|
-
- **📝 YAML Injection Prevention**: Secure parsing with schema validation and size limits
|
|
224
|
-
- **🔐 Token Security**: GitHub OAuth device flow authentication with AES-256-GCM encrypted storage
|
|
225
|
-
- **🐳 Container Hardening**: Non-root execution, read-only filesystem, resource limits
|
|
226
|
-
- **🚦 Rate Limiting**: Token bucket algorithm prevents API abuse (10 checks/hour default)
|
|
227
|
-
- **✅ Signature Verification**: GPG verification ensures release authenticity
|
|
228
|
-
- **🔍 Input Validation**: Comprehensive validation for all user inputs
|
|
229
|
-
- **📊 Security Monitoring**: Audit logging for security-relevant operations
|
|
230
|
-
|
|
231
|
-
### Security Testing
|
|
232
|
-
- **487 comprehensive tests** including security-specific test suites
|
|
233
|
-
- **Continuous security scanning** with GitHub Advanced Security
|
|
234
|
-
- **Vulnerability-free**: All security alerts resolved (0 active)
|
|
235
|
-
|
|
236
|
-
## 📋 Prerequisites
|
|
237
|
-
|
|
238
|
-
- **Node.js**: v20.0.0 or higher (LTS recommended)
|
|
239
|
-
- **npm**: v10.0.0 or higher
|
|
240
|
-
- **git**: For cloning the repository
|
|
241
|
-
- **Operating System**: Windows, macOS, or Linux
|
|
242
|
-
|
|
243
|
-
> **Note**: DollhouseMCP is developed on Node.js 24 but supports Node.js 20+ for broad compatibility.
|
|
244
|
-
|
|
245
|
-
## 🚀 Quick Start
|
|
246
|
-
|
|
247
|
-
### Installation
|
|
248
|
-
|
|
249
|
-
#### NPM Installation (NEW! - Recommended)
|
|
250
|
-
|
|
251
|
-
```bash
|
|
252
|
-
npm install -g @dollhousemcp/mcp-server
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
After installation, add DollhouseMCP to your Claude Desktop configuration:
|
|
256
|
-
|
|
257
|
-
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
258
|
-
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
259
|
-
**Linux**: `~/.config/Claude/claude_desktop_config.json`
|
|
63
|
+
Add to your config file:
|
|
64
|
+
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
65
|
+
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
66
|
+
- **Linux**: `~/.config/Claude/claude_desktop_config.json`
|
|
260
67
|
|
|
261
68
|
```json
|
|
262
69
|
{
|
|
263
70
|
"mcpServers": {
|
|
264
71
|
"dollhousemcp": {
|
|
265
|
-
"command": "
|
|
266
|
-
"args": ["
|
|
72
|
+
"command": "node",
|
|
73
|
+
"args": ["/Users/YOUR_USERNAME/mcp-servers/node_modules/@dollhousemcp/mcp-server/dist/index.js"]
|
|
267
74
|
}
|
|
268
75
|
}
|
|
269
76
|
}
|
|
270
77
|
```
|
|
271
78
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
#### Automated Setup (Alternative) - Claude Desktop Only
|
|
275
|
-
|
|
276
|
-
> [!WARNING]
|
|
277
|
-
> **Claude Desktop Only**: The automated setup script is specifically designed for **Claude Desktop** integration. If you're using **Claude Code**, other AI platforms (ChatGPT, BoltAI, Gemini, etc.), or custom MCP implementations, please use the [Manual Installation](#manual-installation) process below.
|
|
278
|
-
|
|
279
|
-
```bash
|
|
280
|
-
# Clone the repository
|
|
281
|
-
git clone https://github.com/DollhouseMCP/mcp-server.git
|
|
282
|
-
cd mcp-server
|
|
283
|
-
|
|
284
|
-
# Run automated setup script (Claude Desktop only)
|
|
285
|
-
./setup.sh
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
The setup script will:
|
|
289
|
-
- 📦 Install all dependencies
|
|
290
|
-
- 🔨 Build the TypeScript code
|
|
291
|
-
- 📍 Detect your installation path
|
|
292
|
-
- 🔧 Generate the exact Claude Desktop configuration
|
|
293
|
-
- 📋 Provide step-by-step setup instructions
|
|
294
|
-
|
|
295
|
-
#### Manual Installation
|
|
79
|
+
💡 **Pro tip**: Replace `/Users/YOUR_USERNAME` with your actual home directory path.
|
|
296
80
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
```bash
|
|
300
|
-
# Clone the repository
|
|
301
|
-
git clone https://github.com/DollhouseMCP/mcp-server.git
|
|
302
|
-
cd mcp-server
|
|
303
|
-
|
|
304
|
-
# Install dependencies and build
|
|
305
|
-
npm install
|
|
306
|
-
npm run build
|
|
307
|
-
|
|
308
|
-
# Optional: Set user identity for persona attribution
|
|
309
|
-
export DOLLHOUSE_USER="your-username"
|
|
310
|
-
export DOLLHOUSE_EMAIL="your-email@example.com"
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
### Claude Desktop Configuration
|
|
81
|
+
---
|
|
314
82
|
|
|
315
|
-
|
|
83
|
+
### Method 2: Always Latest with npx
|
|
316
84
|
|
|
317
|
-
|
|
85
|
+
No installation needed! Configure Claude Desktop to always use the latest version:
|
|
318
86
|
|
|
319
|
-
#### For NPM Installation:
|
|
320
87
|
```json
|
|
321
88
|
{
|
|
322
89
|
"mcpServers": {
|
|
323
90
|
"dollhousemcp": {
|
|
324
91
|
"command": "npx",
|
|
325
|
-
"args": ["@dollhousemcp/mcp-server"]
|
|
92
|
+
"args": ["@dollhousemcp/mcp-server@latest"]
|
|
326
93
|
}
|
|
327
94
|
}
|
|
328
95
|
}
|
|
329
96
|
```
|
|
330
97
|
|
|
331
|
-
|
|
332
|
-
```json
|
|
333
|
-
{
|
|
334
|
-
"mcpServers": {
|
|
335
|
-
"dollhousemcp": {
|
|
336
|
-
"command": "node",
|
|
337
|
-
"args": ["/absolute/path/to/DollhouseMCP/dist/index.js"]
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
```
|
|
342
|
-
|
|
343
|
-
**🔄 After configuration:**
|
|
344
|
-
1. Save the file
|
|
345
|
-
2. Restart Claude Desktop completely
|
|
346
|
-
3. All 42 DollhouseMCP tools will be available
|
|
347
|
-
|
|
348
|
-
## 🛠️ Available Tools (42 Total)
|
|
349
|
-
|
|
350
|
-
### Portfolio Element Management (NEW!)
|
|
351
|
-
- **`list_elements`** - List all elements of a specific type
|
|
352
|
-
- **`activate_element`** - Activate an element by name and type
|
|
353
|
-
- **`get_active_elements`** - Get currently active elements of a type
|
|
354
|
-
- **`deactivate_element`** - Deactivate a specific element
|
|
355
|
-
- **`get_element_details`** - View detailed information about an element
|
|
356
|
-
- **`reload_elements`** - Refresh elements from filesystem
|
|
357
|
-
|
|
358
|
-
### Element-Specific Operations (NEW!)
|
|
359
|
-
- **`render_template`** - Render a template element with provided variables
|
|
360
|
-
- **`execute_agent`** - Execute an agent element with a specific goal
|
|
361
|
-
|
|
362
|
-
### Persona Export/Import (Specialized Tools)
|
|
363
|
-
- **`export_persona`** - Export single persona to JSON format
|
|
364
|
-
- **`export_all_personas`** - Export all personas to JSON bundle
|
|
365
|
-
- **`import_persona`** - Import persona from file path or JSON string
|
|
366
|
-
- **`share_persona`** - Generate shareable URL for persona
|
|
367
|
-
- **`import_from_url`** - Import persona from shared URL
|
|
368
|
-
|
|
369
|
-
### GitHub Collection Integration
|
|
370
|
-
- **`browse_collection`** - Browse content by section and type (flat structure, no categories)
|
|
371
|
-
- **`search_collection`** - Search across all collection content
|
|
372
|
-
- **`search_collection_enhanced`** - Enhanced search with pagination, filtering, and sorting
|
|
373
|
-
- **`get_collection_content`** - View detailed content info
|
|
374
|
-
- **`get_collection_cache_health`** - Monitor collection cache status and performance
|
|
375
|
-
- **`install_element`** - One-click download and installation of any element type
|
|
376
|
-
- **`submit_persona`** - Submit to collection via GitHub issue
|
|
377
|
-
|
|
378
|
-
### GitHub Portfolio Management (NEW!)
|
|
379
|
-
- **`portfolio_status`** - Check your GitHub portfolio repository status
|
|
380
|
-
- **`init_portfolio`** - Create a new GitHub portfolio repository
|
|
381
|
-
- **`sync_portfolio`** - Synchronize local and GitHub repositories
|
|
382
|
-
- **`search_portfolio`** - Search your local portfolio with advanced indexing
|
|
383
|
-
- **`search_all`** - Unified search across local, GitHub, and collection sources
|
|
384
|
-
- **`submit_content`** - Upload elements to your GitHub portfolio
|
|
385
|
-
|
|
386
|
-
### Collection Configuration (NEW!)
|
|
387
|
-
- **`configure_collection_submission`** - Configure auto-submit and default settings
|
|
388
|
-
- **`get_collection_submission_config`** - View current submission configuration
|
|
389
|
-
|
|
390
|
-
### User Identity Management
|
|
391
|
-
- **`set_user_identity`** - Set username for persona attribution
|
|
392
|
-
- **`get_user_identity`** - View current identity status
|
|
393
|
-
- **`clear_user_identity`** - Return to anonymous mode
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
### System Tools
|
|
397
|
-
- **`get_build_info`** - Comprehensive build and runtime information
|
|
398
|
-
|
|
399
|
-
### Persona Indicators
|
|
400
|
-
- **`configure_indicator`** - Configure how persona indicators appear in AI responses
|
|
401
|
-
- **`get_indicator_config`** - View current indicator configuration settings
|
|
402
|
-
|
|
403
|
-
### GitHub Authentication (NEW!)
|
|
404
|
-
- **`setup_github_auth`** - Start GitHub OAuth device flow authentication
|
|
405
|
-
- **`check_github_auth`** - Check current authentication status
|
|
406
|
-
- **`clear_github_auth`** - Remove stored authentication credentials
|
|
407
|
-
|
|
408
|
-
## 📖 Usage Examples
|
|
409
|
-
|
|
410
|
-
### Collection Operations
|
|
411
|
-
```
|
|
412
|
-
# Browse collection content by type
|
|
413
|
-
browse_collection section="library" type="personas" # Browse all personas
|
|
414
|
-
browse_collection section="library" type="skills" # Browse skills
|
|
415
|
-
browse_collection section="library" type="templates" # Browse templates
|
|
416
|
-
|
|
417
|
-
# Search collection content
|
|
418
|
-
search_collection query="writing" # Search for writing personas
|
|
419
|
-
search_collection query="code review" # Find code review skills
|
|
420
|
-
|
|
421
|
-
# Enhanced collection search with pagination
|
|
422
|
-
search_collection_enhanced query="data analysis" maxResults=10 elementType="skills"
|
|
423
|
-
search_collection_enhanced query="creative" page=2 resultsPerPage=5
|
|
424
|
-
|
|
425
|
-
# Install elements from collection
|
|
426
|
-
install_element path="library/personas/storyteller.md" # Install persona
|
|
427
|
-
install_element path="library/skills/code-reviewer.md" # Install skill
|
|
428
|
-
install_element path="library/templates/email-template.md" # Install template
|
|
429
|
-
|
|
430
|
-
# Check collection cache health
|
|
431
|
-
get_collection_cache_health
|
|
432
|
-
```
|
|
433
|
-
|
|
434
|
-
### Portfolio Workflow (NEW!)
|
|
435
|
-
```
|
|
436
|
-
# Check GitHub portfolio status
|
|
437
|
-
portfolio_status # Check repository status
|
|
438
|
-
|
|
439
|
-
# Initialize a new GitHub portfolio (first time setup)
|
|
440
|
-
init_portfolio # Create GitHub repository
|
|
441
|
-
init_portfolio repoName="my-ai-portfolio" # Custom repository name
|
|
442
|
-
|
|
443
|
-
# Synchronize local and GitHub portfolios
|
|
444
|
-
sync_portfolio # Sync both directions
|
|
445
|
-
sync_portfolio direction="push" # Push local to GitHub
|
|
446
|
-
sync_portfolio direction="pull" # Pull GitHub to local
|
|
447
|
-
|
|
448
|
-
# Search your local portfolio with advanced indexing
|
|
449
|
-
search_portfolio query="writing" # Search all element types
|
|
450
|
-
search_portfolio query="code" elementType="skills" # Search specific type
|
|
451
|
-
search_portfolio query="email" fuzzyMatch=true # Enable fuzzy matching
|
|
452
|
-
|
|
453
|
-
# Unified search across all sources (local, GitHub, collection)
|
|
454
|
-
search_all query="data analysis" # Search everywhere
|
|
455
|
-
search_all query="creative writing" maxResults=20 # Limit results
|
|
456
|
-
search_all query="templates" source="local" # Search specific source
|
|
457
|
-
|
|
458
|
-
# Submit content with smart auto-detection
|
|
459
|
-
submit_content name="code-review" # Auto-detects element type
|
|
460
|
-
submit_content name="my-persona" elementType="personas" # Explicit type
|
|
461
|
-
submit_content name="email-template" description="Professional email template"
|
|
462
|
-
|
|
463
|
-
# Configure collection submission settings
|
|
464
|
-
configure_collection_submission autoSubmit=true # Enable auto-submit
|
|
465
|
-
configure_collection_submission defaultLicense="MIT" # Set default license
|
|
466
|
-
get_collection_submission_config # View current config
|
|
467
|
-
```
|
|
468
|
-
|
|
469
|
-
### Portfolio Element Management
|
|
470
|
-
```
|
|
471
|
-
# List elements by type (works with all element types)
|
|
472
|
-
list_elements type="personas" # List personas
|
|
473
|
-
list_elements type="skills" # List skills
|
|
474
|
-
list_elements type="templates" # List templates
|
|
475
|
-
list_elements type="agents" # List agents
|
|
476
|
-
|
|
477
|
-
# Activate elements to customize AI behavior
|
|
478
|
-
activate_element name="code-reviewer" type="skills" # Activate skill
|
|
479
|
-
activate_element name="professional" type="personas" # Activate persona
|
|
480
|
-
activate_element name="email-format" type="templates" # Activate template
|
|
481
|
-
|
|
482
|
-
# View active elements
|
|
483
|
-
get_active_elements # All active elements
|
|
484
|
-
get_active_elements type="skills" # Active skills only
|
|
485
|
-
|
|
486
|
-
# Get detailed element information
|
|
487
|
-
get_element_details name="code-reviewer" type="skills" # View skill details
|
|
488
|
-
get_element_details name="my-persona" type="personas" # View persona details
|
|
489
|
-
|
|
490
|
-
# Deactivate elements
|
|
491
|
-
deactivate_element name="code-reviewer" type="skills" # Deactivate specific
|
|
492
|
-
deactivate_element type="personas" # Deactivate all personas
|
|
493
|
-
|
|
494
|
-
# Refresh elements from filesystem
|
|
495
|
-
reload_elements # Reload all elements
|
|
496
|
-
reload_elements type="skills" # Reload specific type
|
|
497
|
-
```
|
|
498
|
-
|
|
499
|
-
### Specialized Element Operations
|
|
500
|
-
```
|
|
501
|
-
# Render templates with variables
|
|
502
|
-
render_template name="project-update" variables='{"project": "DollhouseMCP", "status": "Released"}'
|
|
503
|
-
render_template name="email-professional" variables='{"recipient": "John", "subject": "Meeting"}'
|
|
504
|
-
|
|
505
|
-
# Execute agents with specific goals
|
|
506
|
-
execute_agent name="project-manager" goal="Create a sprint plan for next week"
|
|
507
|
-
execute_agent name="data-analyst" goal="Analyze sales trends for Q3"
|
|
508
|
-
```
|
|
509
|
-
|
|
510
|
-
### System Information
|
|
511
|
-
```
|
|
512
|
-
# Get comprehensive build and runtime information
|
|
513
|
-
get_build_info # Full system info
|
|
514
|
-
get_build_info section="version" # Version info only
|
|
515
|
-
get_build_info section="environment" # Environment details
|
|
516
|
-
get_build_info section="dependencies" # Dependency versions
|
|
517
|
-
```
|
|
518
|
-
|
|
519
|
-
### Persona Management with ElementTools
|
|
520
|
-
```
|
|
521
|
-
# List all personas
|
|
522
|
-
list_elements type="personas"
|
|
523
|
-
|
|
524
|
-
# Activate a persona
|
|
525
|
-
activate_element name="Study Buddy" type="personas"
|
|
526
|
-
|
|
527
|
-
# Get persona details
|
|
528
|
-
get_element_details name="Study Buddy" type="personas"
|
|
529
|
-
|
|
530
|
-
# Submit to community collection
|
|
531
|
-
submit_persona "Study Buddy" # Share with community
|
|
532
|
-
```
|
|
533
|
-
|
|
534
|
-
### User Identity
|
|
535
|
-
```
|
|
536
|
-
set_user_identity "your-username" # Set attribution
|
|
537
|
-
get_user_identity # Check current status
|
|
538
|
-
clear_user_identity # Return to anonymous
|
|
539
|
-
```
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
### Persona Indicators
|
|
545
|
-
DollhouseMCP adds visual indicators to AI responses when a persona is active:
|
|
546
|
-
```
|
|
547
|
-
[🎭 Creative Writer v2.1 by @mickdarling] Your creative response here...
|
|
548
|
-
```
|
|
549
|
-
|
|
550
|
-
Configure indicators:
|
|
551
|
-
```
|
|
552
|
-
get_indicator_config # View current settings
|
|
553
|
-
configure_indicator enabled:false # Disable indicators
|
|
554
|
-
configure_indicator style:"minimal" # Use minimal format: 🎭 Creative Writer
|
|
555
|
-
configure_indicator style:"compact" # Use compact: [Creative Writer v2.1]
|
|
556
|
-
configure_indicator style:"full" # Full format (default)
|
|
557
|
-
configure_indicator emoji:"🤖" # Change emoji
|
|
558
|
-
configure_indicator showAuthor:false # Hide author attribution
|
|
559
|
-
configure_indicator bracketStyle:"round" # Use (parentheses) instead of [brackets]
|
|
560
|
-
```
|
|
561
|
-
|
|
562
|
-
Environment variables for persistent configuration:
|
|
563
|
-
```bash
|
|
564
|
-
export DOLLHOUSE_INDICATOR_ENABLED=true
|
|
565
|
-
export DOLLHOUSE_INDICATOR_STYLE=minimal
|
|
566
|
-
export DOLLHOUSE_INDICATOR_EMOJI=🎨
|
|
567
|
-
```
|
|
568
|
-
|
|
569
|
-
## 🔄 Complete Workflows
|
|
570
|
-
|
|
571
|
-
### Setting Up Portfolio from Scratch
|
|
572
|
-
|
|
573
|
-
**Step 1: Initial Setup**
|
|
574
|
-
```
|
|
575
|
-
# Set your user identity for attribution
|
|
576
|
-
set_user_identity "your-username"
|
|
577
|
-
|
|
578
|
-
# Check current portfolio status
|
|
579
|
-
portfolio_status
|
|
580
|
-
|
|
581
|
-
# Initialize a new GitHub portfolio repository
|
|
582
|
-
init_portfolio repoName="my-ai-portfolio"
|
|
583
|
-
```
|
|
584
|
-
|
|
585
|
-
**Step 2: Browse and Install Elements**
|
|
586
|
-
```
|
|
587
|
-
# Browse the community collection
|
|
588
|
-
browse_collection section="library" type="personas"
|
|
589
|
-
browse_collection section="library" type="skills"
|
|
590
|
-
|
|
591
|
-
# Search for specific elements
|
|
592
|
-
search_collection query="code review"
|
|
593
|
-
search_collection_enhanced query="data analysis" elementType="skills" maxResults=5
|
|
594
|
-
|
|
595
|
-
# Install elements you like
|
|
596
|
-
install_element path="library/skills/code-reviewer.md"
|
|
597
|
-
install_element path="library/personas/technical-writer.md"
|
|
598
|
-
install_element path="library/templates/project-update.md"
|
|
599
|
-
```
|
|
600
|
-
|
|
601
|
-
**Step 3: Customize and Activate**
|
|
602
|
-
```
|
|
603
|
-
# Activate installed elements
|
|
604
|
-
activate_element name="code-reviewer" type="skills"
|
|
605
|
-
activate_element name="technical-writer" type="personas"
|
|
606
|
-
|
|
607
|
-
# View your active elements
|
|
608
|
-
get_active_elements
|
|
609
|
-
|
|
610
|
-
# Get details about any element
|
|
611
|
-
get_element_details name="technical-writer" type="personas"
|
|
612
|
-
```
|
|
613
|
-
|
|
614
|
-
**Step 4: Sync and Share**
|
|
615
|
-
```
|
|
616
|
-
# Submit your custom content to GitHub portfolio
|
|
617
|
-
submit_content name="My Assistant"
|
|
618
|
-
|
|
619
|
-
# Sync everything to GitHub
|
|
620
|
-
sync_portfolio direction="push"
|
|
621
|
-
|
|
622
|
-
# Optionally submit personas to community collection
|
|
623
|
-
submit_persona name="My Assistant"
|
|
624
|
-
```
|
|
625
|
-
|
|
626
|
-
### Searching Across All Sources
|
|
627
|
-
|
|
628
|
-
**Unified Search Example**
|
|
629
|
-
```
|
|
630
|
-
# Search everything (local portfolio, GitHub portfolio, community collection)
|
|
631
|
-
search_all query="writing assistant"
|
|
632
|
-
|
|
633
|
-
# Search with filters
|
|
634
|
-
search_all query="code" elementType="skills" maxResults=10
|
|
635
|
-
|
|
636
|
-
# Search specific sources
|
|
637
|
-
search_all query="templates" source="collection" # Collection only
|
|
638
|
-
search_all query="my content" source="local" # Local portfolio only
|
|
639
|
-
search_all query="my content" source="github" # GitHub portfolio only
|
|
640
|
-
```
|
|
641
|
-
|
|
642
|
-
**Advanced Portfolio Search**
|
|
643
|
-
```
|
|
644
|
-
# Search your local portfolio with fuzzy matching
|
|
645
|
-
search_portfolio query="analysi" fuzzyMatch=true # Finds "analysis" elements
|
|
646
|
-
|
|
647
|
-
# Search by element type
|
|
648
|
-
search_portfolio query="email" elementType="templates"
|
|
649
|
-
search_portfolio query="review" elementType="skills"
|
|
650
|
-
|
|
651
|
-
# Get all elements of a type
|
|
652
|
-
list_elements type="personas"
|
|
653
|
-
list_elements type="agents"
|
|
654
|
-
```
|
|
655
|
-
|
|
656
|
-
### Content Submission with Auto-Detection
|
|
657
|
-
|
|
658
|
-
**Smart Element Detection**
|
|
659
|
-
```
|
|
660
|
-
# System automatically detects element type
|
|
661
|
-
submit_content name="code-review" # Finds in skills/
|
|
662
|
-
submit_content name="email-template" # Finds in templates/
|
|
663
|
-
submit_content name="my-persona" # Finds in personas/
|
|
664
|
-
|
|
665
|
-
# Add description for better documentation
|
|
666
|
-
submit_content name="data-analyzer" description="Advanced data analysis skill"
|
|
667
|
-
|
|
668
|
-
# Override auto-detection if needed
|
|
669
|
-
submit_content name="ambiguous-name" elementType="skills"
|
|
670
|
-
```
|
|
671
|
-
|
|
672
|
-
**Batch Content Management**
|
|
673
|
-
```
|
|
674
|
-
# Configure submission settings
|
|
675
|
-
configure_collection_submission autoSubmit=true
|
|
676
|
-
configure_collection_submission defaultLicense="CC-BY-SA-4.0"
|
|
677
|
-
|
|
678
|
-
# Check configuration
|
|
679
|
-
get_collection_submission_config
|
|
680
|
-
|
|
681
|
-
# Submit multiple elements
|
|
682
|
-
submit_content name="skill-1"
|
|
683
|
-
submit_content name="skill-2"
|
|
684
|
-
submit_content name="template-1"
|
|
685
|
-
|
|
686
|
-
# Sync all changes to GitHub
|
|
687
|
-
sync_portfolio
|
|
688
|
-
```
|
|
689
|
-
|
|
690
|
-
### Daily Workflow Example
|
|
691
|
-
|
|
692
|
-
**Morning Setup**
|
|
693
|
-
```
|
|
694
|
-
# Check for updates
|
|
695
|
-
get_build_info section="version"
|
|
696
|
-
portfolio_status
|
|
697
|
-
|
|
698
|
-
# Activate your daily toolkit
|
|
699
|
-
activate_element name="code-reviewer" type="skills"
|
|
700
|
-
activate_element name="professional" type="personas"
|
|
701
|
-
activate_element name="email-template" type="templates"
|
|
702
|
-
|
|
703
|
-
# Check what's active
|
|
704
|
-
get_active_elements
|
|
705
|
-
```
|
|
706
|
-
|
|
707
|
-
**During Work**
|
|
708
|
-
```
|
|
709
|
-
# Use templates for communication
|
|
710
|
-
render_template name="email-template" variables='{"recipient": "team", "subject": "Sprint Update"}'
|
|
711
|
-
|
|
712
|
-
# Deploy agents for tasks
|
|
713
|
-
execute_agent name="project-manager" goal="Review pending tasks and prioritize"
|
|
714
|
-
|
|
715
|
-
# Search for tools as needed
|
|
716
|
-
search_all query="debugging" elementType="skills"
|
|
717
|
-
```
|
|
718
|
-
|
|
719
|
-
**End of Day**
|
|
720
|
-
```
|
|
721
|
-
# Save any new content
|
|
722
|
-
submit_content name="new-skill"
|
|
723
|
-
submit_content name="daily-template"
|
|
724
|
-
|
|
725
|
-
# Sync to GitHub
|
|
726
|
-
sync_portfolio
|
|
727
|
-
|
|
728
|
-
# Check system health
|
|
729
|
-
get_collection_cache_health
|
|
730
|
-
```
|
|
731
|
-
|
|
732
|
-
### GitHub Authentication (v1.5.0+)
|
|
733
|
-
|
|
734
|
-
DollhouseMCP supports GitHub OAuth device flow authentication for enhanced features. **FIXED in v1.6.2**: Default OAuth client ID now works correctly - no configuration needed!
|
|
735
|
-
|
|
736
|
-
#### OAuth Setup (For Self-Hosting)
|
|
737
|
-
|
|
738
|
-
If you're self-hosting or developing, you need to configure a GitHub OAuth app:
|
|
739
|
-
|
|
740
|
-
1. **Create GitHub OAuth App**:
|
|
741
|
-
- Go to GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
|
|
742
|
-
- **Application name**: `DollhouseMCP Server`
|
|
743
|
-
- **Homepage URL**: `https://github.com/DollhouseMCP/mcp-server`
|
|
744
|
-
- **Authorization callback URL**: `http://localhost:12345/callback` (required but not used)
|
|
745
|
-
- Click "Register application"
|
|
746
|
-
|
|
747
|
-
2. **Enable Device Flow**:
|
|
748
|
-
- In your OAuth app settings, check ✅ **Enable Device Flow**
|
|
749
|
-
- Copy your Client ID (format: `Ov23liXXXXXXXXXXXXXX`)
|
|
750
|
-
|
|
751
|
-
3. **Configure Environment**:
|
|
752
|
-
```bash
|
|
753
|
-
# Add to your shell profile (.bashrc, .zshrc, etc)
|
|
754
|
-
export DOLLHOUSE_GITHUB_CLIENT_ID="your_client_id_here"
|
|
755
|
-
|
|
756
|
-
# Or in Claude Desktop config:
|
|
757
|
-
"env": {
|
|
758
|
-
"DOLLHOUSE_GITHUB_CLIENT_ID": "your_client_id_here"
|
|
759
|
-
}
|
|
760
|
-
```
|
|
761
|
-
|
|
762
|
-
See [OAuth Setup Guide](docs/setup/OAUTH_SETUP.md) for detailed instructions.
|
|
763
|
-
|
|
764
|
-
#### Using Authentication
|
|
765
|
-
|
|
766
|
-
```
|
|
767
|
-
setup_github_auth # Start OAuth device flow
|
|
768
|
-
check_github_auth # Check authentication status
|
|
769
|
-
clear_github_auth # Remove stored credentials
|
|
770
|
-
```
|
|
771
|
-
|
|
772
|
-
**Features:**
|
|
773
|
-
- 🔐 **Secure Token Storage**: Tokens encrypted with AES-256-GCM
|
|
774
|
-
- 📱 **Device Flow**: No need to manually create or paste tokens
|
|
775
|
-
- 🔄 **Automatic Token Management**: Secure storage and retrieval
|
|
776
|
-
- 🛡️ **Rate Limiting**: Built-in protection against API abuse
|
|
777
|
-
- ✅ **Unicode Security**: Prevents homograph attacks
|
|
778
|
-
|
|
779
|
-
**How It Works:**
|
|
780
|
-
1. Run `setup_github_auth` to start the OAuth flow
|
|
781
|
-
2. Visit the provided URL and enter the user code
|
|
782
|
-
3. Authorize DollhouseMCP in your browser
|
|
783
|
-
4. Authentication completes automatically
|
|
784
|
-
5. Token is securely stored for future use
|
|
785
|
-
|
|
786
|
-
**Example Usage:**
|
|
787
|
-
```
|
|
788
|
-
# First-time setup
|
|
789
|
-
setup_github_auth
|
|
790
|
-
# Copy the user code: XXXX-XXXX
|
|
791
|
-
# Visit: https://github.com/login/device
|
|
792
|
-
# Enter the code and authorize
|
|
793
|
-
|
|
794
|
-
# Check status
|
|
795
|
-
check_github_auth
|
|
796
|
-
# ✅ Authenticated as: your-username
|
|
797
|
-
|
|
798
|
-
# Later sessions automatically use stored token
|
|
799
|
-
browse_collection # Works with authenticated access
|
|
800
|
-
```
|
|
801
|
-
|
|
802
|
-
## 🖥️ Cross-Platform Installation
|
|
98
|
+
📝 **Note**: The `@latest` tag ensures you always get the newest version. Remove it to use npm's cached version.
|
|
803
99
|
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
#### Prerequisites
|
|
807
|
-
- **Node.js**: v20.0.0 or higher
|
|
808
|
-
- **npm**: v10.0.0 or higher
|
|
809
|
-
- **git**: For version control
|
|
810
|
-
|
|
811
|
-
```bash
|
|
812
|
-
# Ubuntu/Debian
|
|
813
|
-
sudo apt update
|
|
814
|
-
sudo apt install -y nodejs npm git
|
|
815
|
-
# Verify Node.js version
|
|
816
|
-
node --version # Should be v20.0.0 or higher
|
|
817
|
-
|
|
818
|
-
# CentOS/RHEL/Fedora
|
|
819
|
-
sudo dnf install -y nodejs npm git
|
|
820
|
-
# Verify Node.js version
|
|
821
|
-
node --version # Should be v20.0.0 or higher
|
|
822
|
-
|
|
823
|
-
# Arch Linux
|
|
824
|
-
sudo pacman -S nodejs npm git
|
|
825
|
-
# Verify Node.js version
|
|
826
|
-
node --version # Should be v20.0.0 or higher
|
|
827
|
-
```
|
|
100
|
+
---
|
|
828
101
|
|
|
829
|
-
|
|
102
|
+
### Method 3: Global Installation
|
|
830
103
|
|
|
831
|
-
#### Installation Steps
|
|
832
104
|
```bash
|
|
833
|
-
#
|
|
834
|
-
|
|
835
|
-
cd mcp-server
|
|
836
|
-
npm install
|
|
837
|
-
npm run build
|
|
838
|
-
|
|
839
|
-
# Optional: Set user identity
|
|
840
|
-
export DOLLHOUSE_USER="your-username"
|
|
841
|
-
export DOLLHOUSE_EMAIL="your-email@example.com"
|
|
105
|
+
# Install globally (may require sudo/admin)
|
|
106
|
+
npm install -g @dollhousemcp/mcp-server
|
|
842
107
|
```
|
|
843
108
|
|
|
844
|
-
|
|
845
|
-
```bash
|
|
846
|
-
# Configuration location
|
|
847
|
-
~/.config/Claude/claude_desktop_config.json
|
|
109
|
+
**Configure Claude Desktop:**
|
|
848
110
|
|
|
849
|
-
# Or use XDG_CONFIG_HOME if set
|
|
850
|
-
$XDG_CONFIG_HOME/Claude/claude_desktop_config.json
|
|
851
|
-
```
|
|
852
|
-
|
|
853
|
-
Configuration content:
|
|
854
111
|
```json
|
|
855
112
|
{
|
|
856
113
|
"mcpServers": {
|
|
857
114
|
"dollhousemcp": {
|
|
858
|
-
"command": "
|
|
859
|
-
"args": ["/absolute/path/to/DollhouseMCP/dist/index.js"]
|
|
115
|
+
"command": "dollhousemcp"
|
|
860
116
|
}
|
|
861
117
|
}
|
|
862
118
|
}
|
|
863
119
|
```
|
|
864
120
|
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
#### Prerequisites
|
|
868
|
-
- **Node.js**: v20.0.0 or higher
|
|
869
|
-
- **npm**: v10.0.0 or higher (included with Node.js)
|
|
870
|
-
- **git**: For version control
|
|
121
|
+
⚠️ **Warning**: Only one version system-wide. Consider local installation for more flexibility.
|
|
871
122
|
|
|
872
|
-
|
|
873
|
-
# Install Node.js from https://nodejs.org/ (download LTS version)
|
|
874
|
-
# Or using Chocolatey
|
|
875
|
-
choco install nodejs --version=20.18.0
|
|
876
|
-
choco install git
|
|
877
|
-
|
|
878
|
-
# Or using winget
|
|
879
|
-
winget install OpenJS.NodeJS Git.Git
|
|
880
|
-
|
|
881
|
-
# Verify Node.js version
|
|
882
|
-
node --version # Should be v20.0.0 or higher
|
|
883
|
-
```
|
|
884
|
-
|
|
885
|
-
#### Installation Steps (PowerShell)
|
|
886
|
-
```powershell
|
|
887
|
-
# Clone and build
|
|
888
|
-
git clone https://github.com/DollhouseMCP/mcp-server.git
|
|
889
|
-
cd mcp-server
|
|
890
|
-
npm install
|
|
891
|
-
npm run build
|
|
892
|
-
|
|
893
|
-
# Optional: Set user identity
|
|
894
|
-
$env:DOLLHOUSE_USER = "your-username"
|
|
895
|
-
$env:DOLLHOUSE_EMAIL = "your-email@example.com"
|
|
896
|
-
```
|
|
897
|
-
|
|
898
|
-
#### Claude Desktop Configuration (Windows)
|
|
899
|
-
```powershell
|
|
900
|
-
# Configuration location
|
|
901
|
-
$env:APPDATA\Claude\claude_desktop_config.json
|
|
902
|
-
```
|
|
903
|
-
|
|
904
|
-
Configuration content (use forward slashes or double backslashes):
|
|
905
|
-
```json
|
|
906
|
-
{
|
|
907
|
-
"mcpServers": {
|
|
908
|
-
"dollhousemcp": {
|
|
909
|
-
"command": "node",
|
|
910
|
-
"args": ["C:/path/to/DollhouseMCP/dist/index.js"]
|
|
911
|
-
}
|
|
912
|
-
}
|
|
913
|
-
}
|
|
914
|
-
```
|
|
123
|
+
---
|
|
915
124
|
|
|
916
|
-
###
|
|
125
|
+
### 🎯 Advanced: Multiple Configurations
|
|
917
126
|
|
|
918
|
-
|
|
919
|
-
- **Node.js**: v20.0.0 or higher
|
|
920
|
-
- **npm**: v10.0.0 or higher (included with Node.js)
|
|
921
|
-
- **git**: For version control
|
|
127
|
+
Want separate portfolios for different contexts? Create multiple local installations:
|
|
922
128
|
|
|
923
129
|
```bash
|
|
924
|
-
#
|
|
925
|
-
|
|
130
|
+
# Personal assistant
|
|
131
|
+
mkdir ~/mcp-servers/personal
|
|
132
|
+
cd ~/mcp-servers/personal
|
|
133
|
+
npm install @dollhousemcp/mcp-server
|
|
926
134
|
|
|
927
|
-
#
|
|
135
|
+
# Work assistant
|
|
136
|
+
mkdir ~/mcp-servers/work
|
|
137
|
+
cd ~/mcp-servers/work
|
|
138
|
+
npm install @dollhousemcp/mcp-server
|
|
928
139
|
|
|
929
|
-
#
|
|
930
|
-
|
|
140
|
+
# Creative writing
|
|
141
|
+
mkdir ~/mcp-servers/creative
|
|
142
|
+
cd ~/mcp-servers/creative
|
|
143
|
+
npm install @dollhousemcp/mcp-server
|
|
931
144
|
```
|
|
932
145
|
|
|
933
|
-
|
|
934
|
-
```bash
|
|
935
|
-
# Clone and build
|
|
936
|
-
git clone https://github.com/DollhouseMCP/mcp-server.git
|
|
937
|
-
cd mcp-server
|
|
938
|
-
npm install
|
|
939
|
-
npm run build
|
|
940
|
-
|
|
941
|
-
# Optional: Set user identity
|
|
942
|
-
export DOLLHOUSE_USER="your-username"
|
|
943
|
-
export DOLLHOUSE_EMAIL="your-email@example.com"
|
|
944
|
-
```
|
|
945
|
-
|
|
946
|
-
#### Claude Desktop Configuration (macOS)
|
|
947
|
-
```bash
|
|
948
|
-
# Configuration location
|
|
949
|
-
~/Library/Application Support/Claude/claude_desktop_config.json
|
|
950
|
-
```
|
|
146
|
+
**Configure each with its own portfolio:**
|
|
951
147
|
|
|
952
|
-
Configuration content:
|
|
953
148
|
```json
|
|
954
149
|
{
|
|
955
150
|
"mcpServers": {
|
|
956
|
-
"
|
|
151
|
+
"dollhouse-personal": {
|
|
152
|
+
"command": "node",
|
|
153
|
+
"args": ["/Users/YOU/mcp-servers/personal/node_modules/@dollhousemcp/mcp-server/dist/index.js"],
|
|
154
|
+
"env": {
|
|
155
|
+
"DOLLHOUSE_PORTFOLIO_DIR": "/Users/YOU/portfolios/personal"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"dollhouse-work": {
|
|
957
159
|
"command": "node",
|
|
958
|
-
"args": ["/
|
|
160
|
+
"args": ["/Users/YOU/mcp-servers/work/node_modules/@dollhousemcp/mcp-server/dist/index.js"],
|
|
161
|
+
"env": {
|
|
162
|
+
"DOLLHOUSE_PORTFOLIO_DIR": "/Users/YOU/portfolios/work"
|
|
163
|
+
}
|
|
959
164
|
}
|
|
960
165
|
}
|
|
961
166
|
}
|
|
962
167
|
```
|
|
963
168
|
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
### Quick Start with Docker
|
|
967
|
-
```bash
|
|
968
|
-
# Clone repository
|
|
969
|
-
git clone https://github.com/DollhouseMCP/mcp-server.git
|
|
970
|
-
cd mcp-server
|
|
971
|
-
|
|
972
|
-
# Build and run with Docker Compose
|
|
973
|
-
docker-compose up -d
|
|
974
|
-
|
|
975
|
-
# Or build manually
|
|
976
|
-
docker build -t dollhousemcp .
|
|
977
|
-
docker run -d --name dollhousemcp dollhousemcp
|
|
978
|
-
```
|
|
169
|
+
Now you can enable/disable different configurations in Claude Desktop as needed!
|
|
979
170
|
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
#### Production deployment:
|
|
983
|
-
```bash
|
|
984
|
-
docker-compose up -d
|
|
985
|
-
```
|
|
986
|
-
|
|
987
|
-
#### Development with hot reload:
|
|
988
|
-
```bash
|
|
989
|
-
docker-compose --profile dev up dollhousemcp-dev
|
|
990
|
-
```
|
|
171
|
+
---
|
|
991
172
|
|
|
992
|
-
###
|
|
993
|
-
```bash
|
|
994
|
-
# Mount your custom personas directory
|
|
995
|
-
docker run -d \
|
|
996
|
-
--name dollhousemcp \
|
|
997
|
-
-v /path/to/your/personas:/app/personas \
|
|
998
|
-
-e DOLLHOUSE_USER="your-username" \
|
|
999
|
-
dollhousemcp
|
|
1000
|
-
```
|
|
173
|
+
### ✅ Verify Installation
|
|
1001
174
|
|
|
1002
|
-
|
|
1003
|
-
```bash
|
|
1004
|
-
# Set user identity
|
|
1005
|
-
DOLLHOUSE_USER=your-username
|
|
1006
|
-
DOLLHOUSE_EMAIL=your-email@example.com
|
|
175
|
+
After configuring and restarting Claude Desktop, test with:
|
|
1007
176
|
|
|
1008
|
-
# Custom personas directory (inside container)
|
|
1009
|
-
PERSONAS_DIR=/app/personas
|
|
1010
|
-
|
|
1011
|
-
# Node.js environment
|
|
1012
|
-
NODE_ENV=production
|
|
1013
177
|
```
|
|
1014
|
-
|
|
1015
|
-
## 🧪 Testing
|
|
1016
|
-
|
|
1017
|
-
### Running Tests
|
|
1018
|
-
|
|
1019
|
-
The project includes comprehensive tests for cross-platform compatibility:
|
|
1020
|
-
|
|
1021
|
-
```bash
|
|
1022
|
-
# Run all tests
|
|
1023
|
-
npm test
|
|
1024
|
-
|
|
1025
|
-
# Run tests with coverage
|
|
1026
|
-
npm run test:coverage
|
|
1027
|
-
|
|
1028
|
-
# Run tests in watch mode (for development)
|
|
1029
|
-
npm run test:watch
|
|
1030
|
-
|
|
1031
|
-
# Run specific test suites
|
|
1032
|
-
npm run test:personas
|
|
1033
|
-
npm run test:collection
|
|
178
|
+
list_elements type="personas"
|
|
1034
179
|
```
|
|
1035
180
|
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
Current test coverage includes:
|
|
1039
|
-
- ✅ **102 comprehensive tests** covering all functionality
|
|
1040
|
-
- ✅ **Auto-update system** - GitHub API, backup/rollback, dependency validation
|
|
1041
|
-
- ✅ **Security testing** - Command injection prevention, input validation
|
|
1042
|
-
- ✅ **Cross-platform compatibility** - Windows, macOS, Linux path handling
|
|
1043
|
-
- ✅ **Version validation** - Parsing tests for git/npm output formats
|
|
1044
|
-
- ✅ **Edge case coverage** - Network failures, missing dependencies, malformed input
|
|
1045
|
-
|
|
1046
|
-
### Manual Verification
|
|
1047
|
-
|
|
1048
|
-
Verify your setup works correctly:
|
|
1049
|
-
|
|
1050
|
-
```bash
|
|
1051
|
-
# Build the project
|
|
1052
|
-
npm run build
|
|
1053
|
-
|
|
1054
|
-
# Test the server (should output server info)
|
|
1055
|
-
node dist/index.js --help 2>/dev/null || echo "Server compiled successfully"
|
|
181
|
+
You should see your available personas. If not, check the [Troubleshooting](#troubleshooting) section.
|
|
1056
182
|
|
|
1057
|
-
|
|
1058
|
-
ls -la personas/
|
|
1059
|
-
```
|
|
1060
|
-
|
|
1061
|
-
## ☁️ Cloud Deployment
|
|
183
|
+
---
|
|
1062
184
|
|
|
1063
|
-
###
|
|
185
|
+
### 📁 Default Portfolio Location
|
|
1064
186
|
|
|
1065
|
-
|
|
1066
|
-
- **
|
|
1067
|
-
- **
|
|
1068
|
-
- **AWS ECR**
|
|
1069
|
-
- **Google Container Registry**
|
|
187
|
+
By default, your elements are stored in:
|
|
188
|
+
- **macOS/Linux**: `~/.dollhouse/portfolio/`
|
|
189
|
+
- **Windows**: `%USERPROFILE%\.dollhouse\portfolio\`
|
|
1070
190
|
|
|
1071
|
-
|
|
191
|
+
Use the `DOLLHOUSE_PORTFOLIO_DIR` environment variable to customize this location.
|
|
1072
192
|
|
|
1073
|
-
|
|
1074
|
-
```json
|
|
1075
|
-
{
|
|
1076
|
-
"family": "dollhousemcp",
|
|
1077
|
-
"containerDefinitions": [{
|
|
1078
|
-
"name": "dollhousemcp",
|
|
1079
|
-
"image": "ghcr.io/mickdarling/dollhousemcp:latest",
|
|
1080
|
-
"memory": 512,
|
|
1081
|
-
"cpu": 256,
|
|
1082
|
-
"environment": [
|
|
1083
|
-
{"name": "NODE_ENV", "value": "production"},
|
|
1084
|
-
{"name": "PERSONAS_DIR", "value": "/app/personas"},
|
|
1085
|
-
{"name": "DOLLHOUSE_USER", "value": "production"}
|
|
1086
|
-
]
|
|
1087
|
-
}]
|
|
1088
|
-
}
|
|
1089
|
-
```
|
|
193
|
+
## 🎯 Getting Started
|
|
1090
194
|
|
|
1091
|
-
|
|
1092
|
-
```bash
|
|
1093
|
-
gcloud run deploy dollhousemcp \
|
|
1094
|
-
--image ghcr.io/mickdarling/dollhousemcp:latest \
|
|
1095
|
-
--platform managed \
|
|
1096
|
-
--region us-central1 \
|
|
1097
|
-
--set-env-vars NODE_ENV=production,DOLLHOUSE_USER=production
|
|
1098
|
-
```
|
|
195
|
+
Once installed, try these commands in Claude:
|
|
1099
196
|
|
|
1100
|
-
#### Azure Container Instances
|
|
1101
197
|
```bash
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
--resource-group myResourceGroup \
|
|
1105
|
-
--image ghcr.io/mickdarling/dollhousemcp:latest \
|
|
1106
|
-
--environment-variables NODE_ENV=production DOLLHOUSE_USER=production
|
|
1107
|
-
```
|
|
1108
|
-
|
|
1109
|
-
## 🏗️ Project Structure
|
|
1110
|
-
|
|
1111
|
-
```
|
|
1112
|
-
DollhouseMCP/
|
|
1113
|
-
├── .github/
|
|
1114
|
-
│ ├── actions/
|
|
1115
|
-
│ │ └── validate-yaml/ # Reusable YAML validation action
|
|
1116
|
-
│ ├── workflows/ # CI/CD workflows
|
|
1117
|
-
│ └── ISSUE_TEMPLATE/ # Issue templates for bug/feature/task
|
|
1118
|
-
├── __tests__/
|
|
1119
|
-
│ ├── unit/ # Unit tests for components
|
|
1120
|
-
│ ├── integration/ # Integration tests
|
|
1121
|
-
│ └── *.test.ts # Test files (600+ tests total)
|
|
1122
|
-
├── src/
|
|
1123
|
-
│ ├── index.ts # Main MCP server (DollhouseMCPServer)
|
|
1124
|
-
│ ├── cache/ # API caching layer
|
|
1125
|
-
│ ├── config/ # Configuration management
|
|
1126
|
-
│ ├── collection/ # GitHub collection integration
|
|
1127
|
-
│ ├── persona/ # Persona management core
|
|
1128
|
-
│ ├── security/ # Input validation and security
|
|
1129
|
-
│ ├── server/ # MCP server setup and tools
|
|
1130
|
-
│ ├── types/ # TypeScript type definitions
|
|
1131
|
-
│ ├── update/ # Auto-update system components
|
|
1132
|
-
│ └── utils/ # Utility functions
|
|
1133
|
-
├── dist/ # Compiled JavaScript (auto-generated)
|
|
1134
|
-
├── personas/ # Default persona collection
|
|
1135
|
-
│ ├── creative-writer.md
|
|
1136
|
-
│ ├── technical-analyst.md
|
|
1137
|
-
│ ├── eli5-explainer.md
|
|
1138
|
-
│ ├── business-consultant.md
|
|
1139
|
-
│ └── debug-detective.md
|
|
1140
|
-
├── custom-personas/ # User-created personas (git-ignored)
|
|
1141
|
-
├── docs/ # Documentation
|
|
1142
|
-
│ └── development/ # Development notes and guides
|
|
1143
|
-
├── scripts/ # Management and utility scripts
|
|
1144
|
-
├── Dockerfile # Multi-stage Docker build
|
|
1145
|
-
├── docker-compose.yml # Production and development configs
|
|
1146
|
-
├── package.json # Project config (dollhousemcp v1.6.10)
|
|
1147
|
-
├── tsconfig.json # TypeScript configuration
|
|
1148
|
-
├── jest.config.cjs # Jest test configuration
|
|
1149
|
-
├── setup.sh # Automated installation script
|
|
1150
|
-
├── LICENSE # AGPL-3.0 with platform stability
|
|
1151
|
-
├── CHANGELOG.md # Version history
|
|
1152
|
-
├── claude.md # Project context for Claude
|
|
1153
|
-
└── README.md # This file
|
|
1154
|
-
```
|
|
1155
|
-
|
|
1156
|
-
## 📝 Creating Custom Personas
|
|
1157
|
-
|
|
1158
|
-
### Enhanced Persona Format
|
|
1159
|
-
|
|
1160
|
-
Create `.md` files in the `personas/` directory with this structure:
|
|
1161
|
-
|
|
1162
|
-
```markdown
|
|
1163
|
-
---
|
|
1164
|
-
name: "Your Persona Name"
|
|
1165
|
-
description: "Brief description of what this persona does"
|
|
1166
|
-
unique_id: "auto-generated-if-missing"
|
|
1167
|
-
author: "your-username"
|
|
1168
|
-
triggers: ["keyword1", "keyword2"]
|
|
1169
|
-
version: "1.0"
|
|
1170
|
-
category: "creative"
|
|
1171
|
-
age_rating: "all"
|
|
1172
|
-
ai_generated: false
|
|
1173
|
-
generation_method: "human"
|
|
1174
|
-
price: "free"
|
|
1175
|
-
license: "CC-BY-SA-4.0"
|
|
1176
|
-
---
|
|
1177
|
-
|
|
1178
|
-
# Your Persona Name
|
|
198
|
+
# Browse available personas
|
|
199
|
+
list_elements type="personas"
|
|
1179
200
|
|
|
1180
|
-
|
|
201
|
+
# Activate a persona
|
|
202
|
+
activate_element name="creative-writer" type="personas"
|
|
1181
203
|
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
- Tone and approach
|
|
1185
|
-
- Specific behaviors
|
|
204
|
+
# Browse the community collection
|
|
205
|
+
browse_collection type="personas"
|
|
1186
206
|
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
- Interaction patterns
|
|
207
|
+
# Search for specific content
|
|
208
|
+
search_collection query="python" type="skills"
|
|
1190
209
|
```
|
|
1191
210
|
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
#### Required Fields
|
|
1195
|
-
| Field | Description |
|
|
1196
|
-
|-------|-------------|
|
|
1197
|
-
| `name` | Display name for the persona |
|
|
1198
|
-
| `description` | Brief description of purpose and capabilities |
|
|
1199
|
-
|
|
1200
|
-
#### Optional Fields
|
|
1201
|
-
| Field | Description |
|
|
1202
|
-
|-------|-------------|
|
|
1203
|
-
| `unique_id` | Auto-generated in format: `what-it-is_YYYYMMDD-HHMMSS_who-made-it` |
|
|
1204
|
-
| `author` | Creator username (uses DOLLHOUSE_USER environment variable or generates anonymous ID) |
|
|
1205
|
-
| `category` | One of: creative, professional, educational, gaming, personal |
|
|
1206
|
-
| `triggers` | Array of keywords that suggest when to use this persona |
|
|
1207
|
-
| `version` | Semantic version number (auto-incremented on edits) |
|
|
1208
|
-
| `age_rating` | Content rating: all, 13+, or 18+ |
|
|
1209
|
-
| `ai_generated` | Boolean flag indicating if content was AI-created |
|
|
1210
|
-
| `price` | Monetization field - **TODO: Future Release** (will support "free" or pricing tiers) |
|
|
1211
|
-
|
|
1212
|
-
## 📚 Built-in Personas
|
|
1213
|
-
|
|
1214
|
-
| Persona | Purpose | Best For |
|
|
1215
|
-
|---------|---------|----------|
|
|
1216
|
-
| **Creative Writer** | Imaginative storytelling and creative content | Brainstorming, creative writing, engaging narratives |
|
|
1217
|
-
| **Technical Analyst** | Deep technical analysis and systematic problem-solving | Architecture decisions, debugging, technical docs |
|
|
1218
|
-
| **ELI5 Explainer** | Simplifying complex topics for beginners | Teaching, onboarding, concept explanation |
|
|
1219
|
-
| **Business Consultant** | Strategic business analysis and recommendations | Strategy planning, business decisions, market analysis |
|
|
1220
|
-
| **Debug Detective** | Systematic debugging and troubleshooting | Bug hunting, system troubleshooting, root cause analysis |
|
|
1221
|
-
|
|
1222
|
-
## 🏪 Collection Integration (Beta)
|
|
1223
|
-
|
|
1224
|
-
> **🧪 Beta Feature**: The GitHub-powered collection is currently in beta. Features may change based on community feedback.
|
|
1225
|
-
|
|
1226
|
-
DollhouseMCP includes an experimental GitHub-powered collection:
|
|
1227
|
-
|
|
1228
|
-
- **Browse by Category**: creative, professional, educational, gaming, personal
|
|
1229
|
-
- **Search Content**: Find personas by keywords and descriptions
|
|
1230
|
-
- **One-Click Install**: Download and integrate collection personas
|
|
1231
|
-
- **Community Submissions**: Submit your personas via `submit_persona` tool
|
|
1232
|
-
- **Version Control**: Full Git history for all collection content
|
|
1233
|
-
|
|
1234
|
-
> **Note**: Collection features require internet connection and GitHub API access. Rate limits may apply.
|
|
211
|
+
> **📘 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.
|
|
1235
212
|
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
**Important**: Tool names have changed in recent versions:
|
|
1239
|
-
- `browse_marketplace` → `browse_collection`
|
|
1240
|
-
- `search_marketplace` → `search_collection`
|
|
1241
|
-
- `get_marketplace_persona` → `get_collection_content`
|
|
1242
|
-
|
|
1243
|
-
If you have scripts or workflows using the old tool names, please update them to use the new names.
|
|
1244
|
-
|
|
1245
|
-
## 💼 Business Model & Legal
|
|
1246
|
-
|
|
1247
|
-
### Licensing
|
|
1248
|
-
- **Core Server**: AGPL-3.0 (prevents proprietary competing platforms)
|
|
1249
|
-
- **Persona Content**: CC-BY-SA-4.0 for free personas, custom licenses for premium
|
|
1250
|
-
- **Platform Terms**: Creator-friendly 80/20 revenue split (applies only to paid personas when monetization is implemented)
|
|
1251
|
-
|
|
1252
|
-
### Platform Stability Commitments
|
|
1253
|
-
- 90-day advance notice for monetization changes
|
|
1254
|
-
- 12-month revenue sharing locks for existing paid personas
|
|
1255
|
-
- Transparent governance for platform policy updates
|
|
1256
|
-
- Full data portability rights
|
|
1257
|
-
- Community advisory input on policy changes
|
|
1258
|
-
|
|
1259
|
-
## 🛠️ Development
|
|
1260
|
-
|
|
1261
|
-
### Available Scripts
|
|
1262
|
-
|
|
1263
|
-
| Script | Description |
|
|
1264
|
-
|--------|-------------|
|
|
1265
|
-
| `npm run build` | Compile TypeScript to JavaScript |
|
|
1266
|
-
| `npm run start` | Run the compiled server |
|
|
1267
|
-
| `npm run dev` | Run in development mode with auto-reload |
|
|
1268
|
-
| `npm run clean` | Remove compiled files |
|
|
1269
|
-
| `npm run rebuild` | Clean and rebuild the project |
|
|
1270
|
-
| `npm run setup` | Install dependencies and build |
|
|
1271
|
-
| `npm test` | Run the comprehensive test suite |
|
|
1272
|
-
| `npm run test:coverage` | Run tests with coverage reporting |
|
|
1273
|
-
|
|
1274
|
-
### Environment Variables
|
|
1275
|
-
|
|
1276
|
-
Customize server behavior with these environment variables:
|
|
213
|
+
## ✨ Key Features
|
|
1277
214
|
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
215
|
+
| Feature | Description |
|
|
216
|
+
|---------|-------------|
|
|
217
|
+
| 🎭 **41 MCP Tools** | Complete portfolio element management through chat interface |
|
|
218
|
+
| 🏪 **GitHub Collection** | Browse, search, install, and submit personas to community collection |
|
|
219
|
+
| 🔄 **Roundtrip Workflow** | Complete cycle: discover → customize → share → collaborate |
|
|
220
|
+
| 📁 **GitHub Portfolio** | Personal repository for storing and versioning your AI elements |
|
|
221
|
+
| 👤 **User Identity System** | Environment-based attribution for persona creators |
|
|
222
|
+
| 🆔 **Unique ID System** | Advanced ID generation: `{type}_{name}_{author}_{YYYYMMDD}-{HHMMSS}` |
|
|
223
|
+
| 💬 **Chat-Based Management** | Create, edit, and validate personas through conversational interface |
|
|
224
|
+
| 🔄 **Real-time Operations** | Live editing with automatic version bumping and validation |
|
|
225
|
+
| 📦 **NPM Installation** | Install MCP servers from npm with cross-platform support and atomic operations |
|
|
226
|
+
| 🛡️ **Data Protection** | Copy-on-write for default personas, comprehensive backup system |
|
|
227
|
+
| 🏠 **Local-First Architecture** | Full functionality without cloud dependency |
|
|
1282
228
|
|
|
1283
|
-
|
|
1284
|
-
export DOLLHOUSE_GITHUB_CLIENT_ID="Ov23li..." # OAuth app client ID (for self-hosting)
|
|
229
|
+
## 🎨 Portfolio Elements
|
|
1285
230
|
|
|
1286
|
-
|
|
1287
|
-
export PERSONAS_DIR="/custom/path/to/personas" # Custom personas directory
|
|
231
|
+
DollhouseMCP supports multiple element types for customizing AI behavior:
|
|
1288
232
|
|
|
1289
|
-
|
|
1290
|
-
|
|
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 |
|
|
1291
242
|
|
|
1292
|
-
|
|
1293
|
-
export NODE_ENV="development" # Development mode
|
|
1294
|
-
export DEBUG="dollhousemcp:*" # Debug logging (optional)
|
|
1295
|
-
```
|
|
243
|
+
Your portfolio lives in `~/.dollhouse/portfolio/` with elements organized by type.
|
|
1296
244
|
|
|
1297
245
|
## 🔧 Troubleshooting
|
|
1298
246
|
|
|
1299
|
-
### ⚠️ NPM Installation Issues (v1.4.2)
|
|
1300
|
-
|
|
1301
|
-
If the MCP server crashes on startup after NPM installation:
|
|
1302
|
-
1. Check your version: `npm list -g @dollhousemcp/mcp-server`
|
|
1303
|
-
2. If you have v1.4.2, upgrade immediately: `npm install -g @dollhousemcp/mcp-server@latest`
|
|
1304
|
-
3. Clear your portfolio and let it regenerate: `rm -rf ~/.dollhouse/portfolio`
|
|
1305
|
-
|
|
1306
|
-
**Note**: v1.4.2 had a critical bug that prevented proper initialization. v1.4.3 attempted to fix this but introduced new crashes. Both issues are fixed in v1.4.4.
|
|
1307
|
-
|
|
1308
|
-
### Directory Structure (v1.4.3+)
|
|
1309
|
-
|
|
1310
|
-
As of v1.4.3, all element directories use plural names:
|
|
1311
|
-
- `~/.dollhouse/portfolio/personas/` (was `persona/` in v1.4.2)
|
|
1312
|
-
- `~/.dollhouse/portfolio/skills/` (was `skill/` in v1.4.2)
|
|
1313
|
-
- `~/.dollhouse/portfolio/templates/` (was `template/` in v1.4.2)
|
|
1314
|
-
- `~/.dollhouse/portfolio/agents/` (was `agent/` in v1.4.2)
|
|
1315
|
-
- `~/.dollhouse/portfolio/memories/` (was `memory/` in v1.4.2)
|
|
1316
|
-
- `~/.dollhouse/portfolio/ensembles/` (was `ensemble/` in v1.4.2)
|
|
1317
|
-
|
|
1318
|
-
If you upgraded from v1.4.2, the server will automatically migrate your directories.
|
|
1319
|
-
|
|
1320
247
|
### Common Issues
|
|
1321
248
|
|
|
1322
249
|
| Issue | Solution |
|
|
1323
250
|
|-------|----------|
|
|
1324
|
-
| **v1.4.2 or v1.4.3 installation broken** | Upgrade to v1.4.4+ immediately |
|
|
1325
251
|
| **Personas not loading** | Check `~/.dollhouse/portfolio/personas/` directory exists |
|
|
1326
|
-
| **Server won't start** |
|
|
252
|
+
| **Server won't start** | Ensure Node.js v20+ is installed: `node --version` |
|
|
1327
253
|
| **Collection not working** | Check internet connection and GitHub API access |
|
|
1328
|
-
| **User identity not saving** | Set `DOLLHOUSE_USER` environment variable before starting Claude |
|
|
1329
|
-
| **"Cannot find module" errors** | Ensure `npm install` completed successfully |
|
|
1330
|
-
| **TypeScript compilation errors** | Verify Node.js version is 20+ with `node --version` |
|
|
1331
254
|
| **Tools not appearing in Claude** | Restart Claude Desktop completely after config changes |
|
|
1332
|
-
| **
|
|
1333
|
-
| **Update/rollback issues** | Check write permissions; disable with `DOLLHOUSE_DISABLE_UPDATES=true` |
|
|
255
|
+
| **"Cannot find module" errors** | Reinstall: `npm install -g @dollhousemcp/mcp-server@latest` |
|
|
1334
256
|
| **Rate limit errors** | Wait 60 seconds; GitHub API has hourly limits |
|
|
1335
257
|
|
|
1336
|
-
###
|
|
1337
|
-
|
|
1338
|
-
1. **Check build status:**
|
|
1339
|
-
```bash
|
|
1340
|
-
npm run build
|
|
1341
|
-
```
|
|
1342
|
-
|
|
1343
|
-
2. **Verify persona files:**
|
|
1344
|
-
```bash
|
|
1345
|
-
ls -la personas/*.md
|
|
1346
|
-
```
|
|
1347
|
-
|
|
1348
|
-
3. **Test server startup:**
|
|
1349
|
-
```bash
|
|
1350
|
-
node dist/index.js
|
|
1351
|
-
```
|
|
1352
|
-
|
|
1353
|
-
4. **Validate configuration:**
|
|
1354
|
-
```bash
|
|
1355
|
-
# Check Claude Desktop config
|
|
1356
|
-
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
|
|
1357
|
-
|
|
1358
|
-
# Verify Node.js version (requires 20+)
|
|
1359
|
-
node --version
|
|
1360
|
-
|
|
1361
|
-
# Check npm version
|
|
1362
|
-
npm --version
|
|
1363
|
-
```
|
|
1364
|
-
|
|
1365
|
-
5. **Check system status:**
|
|
1366
|
-
```bash
|
|
1367
|
-
# Use within Claude Desktop
|
|
1368
|
-
get_build_info # Get build and runtime information
|
|
1369
|
-
```
|
|
1370
|
-
|
|
1371
|
-
6. **Validate personas:**
|
|
1372
|
-
Use the `reload_personas` tool to check for loading errors
|
|
1373
|
-
|
|
1374
|
-
## 📚 Documentation
|
|
1375
|
-
|
|
1376
|
-
### User Guides (START HERE!)
|
|
1377
|
-
- **[🎯 Roundtrip Workflow Guide](docs/guides/ROUNDTRIP_WORKFLOW_USER_GUIDE.md)** - Complete workflow: discover → customize → share
|
|
1378
|
-
- **[📁 Portfolio Setup Guide](docs/guides/PORTFOLIO_SETUP_GUIDE.md)** - Set up your GitHub portfolio step-by-step
|
|
1379
|
-
- **[🔧 Troubleshooting Guide](docs/guides/TROUBLESHOOTING_ROUNDTRIP.md)** - Solutions for common workflow issues
|
|
1380
|
-
|
|
1381
|
-
### Element System Documentation
|
|
1382
|
-
- **[Element Architecture](docs/ELEMENT_ARCHITECTURE.md)** - System design and core concepts
|
|
1383
|
-
- **[Element Types Reference](docs/ELEMENT_TYPES.md)** - Detailed guide for all element types
|
|
1384
|
-
- **[Developer Guide](docs/ELEMENT_DEVELOPER_GUIDE.md)** - How to create new element types
|
|
1385
|
-
- **[API Reference](docs/API_REFERENCE.md)** - Complete MCP tool documentation
|
|
1386
|
-
- **[Migration Guide](docs/MIGRATION_TO_PORTFOLIO.md)** - Upgrading from personas-only
|
|
1387
|
-
|
|
1388
|
-
### Setup & Configuration
|
|
1389
|
-
- **[OAuth Setup Guide](docs/setup/OAUTH_SETUP.md)** - GitHub authentication configuration
|
|
1390
|
-
- **[Anonymous Submission Guide](docs/ANONYMOUS_SUBMISSION_GUIDE.md)** - Use without GitHub authentication
|
|
1391
|
-
|
|
1392
|
-
### Additional Resources
|
|
1393
|
-
- **[Security Guidelines](docs/SECURITY.md)** - Security best practices
|
|
1394
|
-
- **[Contributing Guide](CONTRIBUTING.md)** - How to contribute
|
|
1395
|
-
|
|
1396
|
-
## 🤝 Contributing
|
|
1397
|
-
|
|
1398
|
-
We welcome contributions! DollhouseMCP includes integrated tools for submitting personas directly from Claude.
|
|
1399
|
-
|
|
1400
|
-
### Integrated Contribution Process (Recommended)
|
|
1401
|
-
|
|
1402
|
-
1. **Create or modify a persona** using the chat-based tools:
|
|
1403
|
-
```
|
|
1404
|
-
create_persona "My Awesome Persona" "A helpful assistant for..." "professional"
|
|
1405
|
-
```
|
|
1406
|
-
|
|
1407
|
-
2. **Validate your persona** to ensure quality:
|
|
1408
|
-
```
|
|
1409
|
-
validate_persona "My Awesome Persona"
|
|
1410
|
-
```
|
|
1411
|
-
|
|
1412
|
-
3. **Submit to the collection** directly from Claude:
|
|
1413
|
-
```
|
|
1414
|
-
submit_persona "My Awesome Persona"
|
|
1415
|
-
```
|
|
1416
|
-
This automatically creates a GitHub issue for community review.
|
|
1417
|
-
|
|
1418
|
-
### Manual Contribution Process
|
|
1419
|
-
|
|
1420
|
-
1. Fork the repository
|
|
1421
|
-
2. Create persona files in `personas/` or `custom-personas/`
|
|
1422
|
-
3. Follow the metadata format and naming conventions
|
|
1423
|
-
4. Test thoroughly with `validate_persona` tool
|
|
1424
|
-
5. Submit a pull request with clear description
|
|
1425
|
-
|
|
1426
|
-
### Reporting Issues
|
|
1427
|
-
|
|
1428
|
-
Please include:
|
|
1429
|
-
- Node.js version (`node --version`)
|
|
1430
|
-
- Operating system and version
|
|
1431
|
-
- Complete error messages
|
|
1432
|
-
- Steps to reproduce the issue
|
|
1433
|
-
- Relevant persona files (if applicable)
|
|
1434
|
-
- Claude Desktop configuration (without sensitive paths)
|
|
1435
|
-
|
|
1436
|
-
### Development Guidelines
|
|
1437
|
-
|
|
1438
|
-
1. **Follow TypeScript best practices**
|
|
1439
|
-
2. **Maintain existing code style and patterns**
|
|
1440
|
-
3. **Add comprehensive error handling**
|
|
1441
|
-
4. **Update documentation for new features**
|
|
1442
|
-
5. **Test thoroughly across platforms before submitting PRs**
|
|
1443
|
-
6. **Include tests for new functionality**
|
|
1444
|
-
7. **Follow semantic versioning for releases**
|
|
1445
|
-
|
|
1446
|
-
### Development Workflow
|
|
258
|
+
### Need Help?
|
|
1447
259
|
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
cd mcp-server
|
|
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)
|
|
1452
263
|
|
|
1453
|
-
|
|
1454
|
-
npm install
|
|
264
|
+
## 📚 Resources
|
|
1455
265
|
|
|
1456
|
-
|
|
1457
|
-
|
|
266
|
+
### 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)
|
|
1458
272
|
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
273
|
+
### 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)
|
|
1462
278
|
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
# Submit pull request
|
|
1468
|
-
```
|
|
1469
|
-
|
|
1470
|
-
## 📄 API Reference
|
|
1471
|
-
|
|
1472
|
-
### MCP Tool Specifications
|
|
1473
|
-
|
|
1474
|
-
Each tool follows the MCP specification:
|
|
1475
|
-
|
|
1476
|
-
```typescript
|
|
1477
|
-
interface DollhouseTool {
|
|
1478
|
-
name: string;
|
|
1479
|
-
description: string;
|
|
1480
|
-
inputSchema: {
|
|
1481
|
-
type: "object";
|
|
1482
|
-
properties: Record<string, any>;
|
|
1483
|
-
required?: string[];
|
|
1484
|
-
};
|
|
1485
|
-
}
|
|
1486
|
-
```
|
|
1487
|
-
|
|
1488
|
-
### Tool Categories
|
|
1489
|
-
|
|
1490
|
-
#### Persona Export/Import
|
|
1491
|
-
```typescript
|
|
1492
|
-
// export_persona - { persona: string }
|
|
1493
|
-
// export_all_personas - { includeDefaults?: boolean }
|
|
1494
|
-
// import_persona - { source: string, overwrite?: boolean }
|
|
1495
|
-
// share_persona - { persona: string, expiryDays?: number }
|
|
1496
|
-
// import_from_url - { url: string, overwrite?: boolean }
|
|
1497
|
-
```
|
|
1498
|
-
|
|
1499
|
-
#### Collection Integration
|
|
1500
|
-
```typescript
|
|
1501
|
-
// browse_collection - { section?: string, type?: string }
|
|
1502
|
-
// search_collection - { query: string }
|
|
1503
|
-
// get_collection_content - { path: string }
|
|
1504
|
-
// install_element - { path: string, type?: string }
|
|
1505
|
-
// submit_persona - { persona: string }
|
|
1506
|
-
```
|
|
1507
|
-
|
|
1508
|
-
#### User Identity Management
|
|
1509
|
-
```typescript
|
|
1510
|
-
// set_user_identity - { username: string }
|
|
1511
|
-
// get_user_identity - No parameters
|
|
1512
|
-
// clear_user_identity - No parameters
|
|
1513
|
-
```
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
### Error Handling
|
|
1518
|
-
|
|
1519
|
-
The server provides detailed error messages for:
|
|
1520
|
-
- **Invalid persona identifiers** - Clear suggestions for valid names
|
|
1521
|
-
- **File system issues** - Permission and path resolution errors
|
|
1522
|
-
- **Malformed persona files** - YAML parsing and validation errors
|
|
1523
|
-
- **Network errors** - GitHub API and collection connectivity issues
|
|
1524
|
-
- **Runtime errors** - Server startup and operation failures
|
|
1525
|
-
|
|
1526
|
-
### Response Formats
|
|
1527
|
-
|
|
1528
|
-
All responses follow consistent patterns:
|
|
1529
|
-
- **Success responses**: Include requested data and operation status
|
|
1530
|
-
- **Error responses**: Include error type, message, and suggested resolution
|
|
1531
|
-
- **Progress indicators**: Step-by-step feedback for long operations
|
|
1532
|
-
- **Validation results**: Detailed reports with recommendations
|
|
279
|
+
### Development
|
|
280
|
+
- [Contributing Guide](CONTRIBUTING.md)
|
|
281
|
+
- [Security Policy](SECURITY.md)
|
|
282
|
+
- [Full Changelog](CHANGELOG.md)
|
|
1533
283
|
|
|
1534
284
|
## 📄 License
|
|
1535
285
|
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
**Platform Stability Guarantees:**
|
|
1539
|
-
- 90-day advance notice for policy changes
|
|
1540
|
-
- 12-month revenue sharing locks
|
|
1541
|
-
- Full data portability rights
|
|
1542
|
-
- Community advisory input
|
|
1543
|
-
|
|
1544
|
-
## 🏷️ Version History
|
|
1545
|
-
|
|
1546
|
-
### v1.6.9 - August 26, 2025
|
|
1547
|
-
|
|
1548
|
-
**Critical Fixes**: Fixed OAuth helper NPM packaging and performance testing workflow
|
|
1549
|
-
|
|
1550
|
-
#### 🔧 Bug Fixes
|
|
1551
|
-
- **OAuth NPM Packaging**: Fixed missing `oauth-helper.mjs` file in NPM distribution
|
|
1552
|
-
- File was present in repository but not included in published package
|
|
1553
|
-
- OAuth authentication now works correctly for NPM users
|
|
1554
|
-
- **Performance Tests**: Fixed CI workflow running all tests instead of performance tests
|
|
1555
|
-
- Performance monitoring now works correctly in GitHub Actions
|
|
286
|
+
DollhouseMCP is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
|
|
1556
287
|
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
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
|
|
1560
293
|
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
#### 🔧 Bug Fixes
|
|
1564
|
-
- **OAuth Client ID**: Updated from incorrect ID to correct `Ov23li9gyNZP6m9aJ2EP`
|
|
1565
|
-
- **Error Handling**: Added comprehensive error codes throughout OAuth flow
|
|
1566
|
-
- **Debug Logging**: Added detailed logging at each authentication step
|
|
294
|
+
See [LICENSE](LICENSE) for full terms.
|
|
1567
295
|
|
|
1568
296
|
---
|
|
1569
297
|
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
**Critical Hotfix**: Fixed OAuth default client ID not being used in `setup_github_auth` tool
|
|
1573
|
-
|
|
1574
|
-
#### 🔧 Bug Fixes
|
|
1575
|
-
- **OAuth Authentication**: Fixed critical bug where default OAuth client ID wasn't used in `setupGitHubAuth()` method
|
|
1576
|
-
- **Configuration Fallback**: Now correctly uses `GitHubAuthManager.getClientId()` with proper fallback hierarchy
|
|
1577
|
-
|
|
1578
|
-
#### 📚 Technical Details
|
|
1579
|
-
- Made `GitHubAuthManager.getClientId()` public (was private)
|
|
1580
|
-
- Updated `setupGitHubAuth()` to use proper fallback chain
|
|
1581
|
-
- Restored "just works" authentication experience promised in v1.6.1
|
|
1582
|
-
|
|
1583
|
-
---
|
|
1584
|
-
|
|
1585
|
-
### v1.6.1 - August 25, 2025
|
|
1586
|
-
|
|
1587
|
-
**⚠️ Breaking Changes**:
|
|
1588
|
-
- 🔄 **Serialization Format Change** - `BaseElement.serialize()` now returns markdown with YAML frontmatter instead of JSON
|
|
1589
|
-
- Migration: Use new `serializeToJSON()` method for backward compatibility
|
|
1590
|
-
- 🏗️ **Server Initialization** - Portfolio initialization moved from constructor to `run()` method
|
|
1591
|
-
- New `ensureInitialized()` method provides lazy initialization for tests
|
|
1592
|
-
|
|
1593
|
-
**Major New Features**:
|
|
1594
|
-
- 🔍 **Enhanced Portfolio System** (6 new tools):
|
|
1595
|
-
- `portfolio_status` - Check GitHub portfolio status
|
|
1596
|
-
- `init_portfolio` - Create GitHub portfolio repository
|
|
1597
|
-
- `sync_portfolio` - Synchronize local/GitHub repositories
|
|
1598
|
-
- `search_portfolio` - Search with advanced indexing
|
|
1599
|
-
- `search_all` - Unified search across all sources
|
|
1600
|
-
- Complete GitHub integration with indexing
|
|
1601
|
-
- 📊 **Enhanced Collection Search**:
|
|
1602
|
-
- `search_collection_enhanced` - Pagination, filtering, sorting
|
|
1603
|
-
- `get_collection_cache_health` - Cache monitoring
|
|
1604
|
-
- Smart caching with ETags and conditional requests
|
|
1605
|
-
- 🛠️ **System Tools**:
|
|
1606
|
-
- `get_build_info` - Comprehensive build and runtime information
|
|
1607
|
-
- ⚙️ **Collection Configuration**:
|
|
1608
|
-
- `configure_collection_submission` - Auto-submit settings
|
|
1609
|
-
- `get_collection_submission_config` - Check submission config
|
|
1610
|
-
|
|
1611
|
-
**Infrastructure Improvements**:
|
|
1612
|
-
- 🚀 **High-Performance Caching** - Memory-aware LRU cache system
|
|
1613
|
-
- 🔒 **Enhanced Security** - YAML bomb protection, content validation
|
|
1614
|
-
- 📦 **Build Information Service** - Runtime and build info API
|
|
1615
|
-
- 🎯 **Error Handler** - Centralized error management system
|
|
1616
|
-
- 🔄 **Roundtrip Workflow** - Complete content submission cycle
|
|
1617
|
-
|
|
1618
|
-
**Statistics**:
|
|
1619
|
-
- 42 total MCP tools (down from 51 - 9 PersonaTools removed, 5 preserved)
|
|
1620
|
-
- 89 commits ahead of main
|
|
1621
|
-
- 257 files changed
|
|
1622
|
-
- 50,857 lines added
|
|
1623
|
-
- 76 test files modified/added
|
|
1624
|
-
|
|
1625
|
-
### v1.5.1 - August 5, 2025
|
|
1626
|
-
**Critical Bug Fixes**:
|
|
1627
|
-
- 🔧 **Fixed OAuth Token Retrieval** - `setup_github_auth` tokens now properly used for API calls
|
|
1628
|
-
- 🔧 **Fixed Collection Browsing** - Removed legacy category validation blocking browsing
|
|
1629
|
-
- 🔧 **Persona Creation Simplified** - Categories no longer required or validated
|
|
1630
|
-
- ✅ **Element System Alignment** - Full consistency with new architecture
|
|
1631
|
-
|
|
1632
|
-
### v1.5.0 - August 5, 2025
|
|
1633
|
-
**GitHub OAuth Authentication**:
|
|
1634
|
-
- 🔐 **OAuth Device Flow** - Secure authentication without manual token management
|
|
1635
|
-
- 🔒 **AES-256-GCM Encryption** - Tokens encrypted at rest with machine-specific keys
|
|
1636
|
-
- 🛡️ **Rate Limiting** - Built-in protection against brute force attacks
|
|
1637
|
-
- ✅ **Natural Language Flow** - User-friendly authentication instructions
|
|
1638
|
-
- 🧪 **Comprehensive Tests** - 420+ lines of OAuth implementation tests
|
|
1639
|
-
|
|
1640
|
-
### v1.4.5 - August 5, 2025
|
|
1641
|
-
**Claude Desktop Integration Fix**:
|
|
1642
|
-
- ✅ **Fixed "Server disconnected" errors** when using `npx` or `dollhousemcp` CLI
|
|
1643
|
-
- 🔄 **Progressive retry mechanism** for better compatibility across different machine speeds
|
|
1644
|
-
- 🔒 **Security improvements** - removed detailed error logging to prevent information disclosure
|
|
1645
|
-
- 🧪 **Added comprehensive tests** for execution detection logic
|
|
1646
|
-
|
|
1647
|
-
### v1.4.4 - August 4, 2025
|
|
1648
|
-
**Emergency Hotfix**:
|
|
1649
|
-
- 🚨 **Fixed v1.4.3 total failure** - initialization crashes fixed
|
|
1650
|
-
- 🔧 **Fixed jsdom crash** - heavy dependencies now load lazily
|
|
1651
|
-
- 🐳 **Fixed Docker compatibility** - handles read-only environments
|
|
1652
|
-
|
|
1653
|
-
### v1.4.3 - August 4, 2025
|
|
1654
|
-
**Directory Structure Fix**:
|
|
1655
|
-
- 🚨 **Fixed NPM installation failure** but introduced new crashes
|
|
1656
|
-
|
|
1657
|
-
### v1.4.2 - August 4, 2025
|
|
1658
|
-
**Critical NPM Installation Fix**:
|
|
1659
|
-
- 🚨 **Fixed NPM installation failure** where empty portfolios caused server crashes
|
|
1660
|
-
- 📦 **DefaultElementProvider** automatically populates default content on first run
|
|
1661
|
-
- 🔍 **Smart path detection** searches multiple NPM/Git installation locations
|
|
1662
|
-
- 💬 **Helpful error messages** guide new users when portfolios are empty
|
|
1663
|
-
- 🔒 **Security hardened** with audit logging and file integrity verification
|
|
1664
|
-
|
|
1665
|
-
### v1.4.1 - August 2, 2025
|
|
1666
|
-
**NPM Installation Support**:
|
|
1667
|
-
- 📦 **Install MCP servers from npm packages** with full cross-platform support
|
|
1668
|
-
- 🔄 **Atomic operations** with transaction-based rollback on failure
|
|
1669
|
-
- 📊 **Progress indicators** for better user experience during long operations
|
|
1670
|
-
- 🏗️ **Centralized configuration** respecting platform conventions (XDG on Linux)
|
|
1671
|
-
- 🛠️ **FileOperations utility** for consistent cross-platform behavior
|
|
1672
|
-
|
|
1673
|
-
### v1.4.0 - August 2, 2025
|
|
1674
|
-
**Complete Element System**:
|
|
1675
|
-
- 🎭 **Ensemble elements** for orchestrating multiple elements together
|
|
1676
|
-
- 🧠 **Memory elements** with retention policies and search capabilities
|
|
1677
|
-
- 🤖 **Agent elements** with goal-oriented decision making
|
|
1678
|
-
- 📝 **Template elements** with secure variable substitution
|
|
1679
|
-
- 🛠️ **Skill elements** with parameter system and proficiency tracking
|
|
1680
|
-
- 🔒 **Comprehensive security** throughout all element types
|
|
1681
|
-
|
|
1682
|
-
### v1.3.3 - August 2, 2025
|
|
1683
|
-
**Portfolio System & Element Types**:
|
|
1684
|
-
- 🎨 **Portfolio-based architecture** for managing all AI customization elements
|
|
1685
|
-
- 🛠️ **Generic element tools** that work with any element type
|
|
1686
|
-
- 📁 **Structured directory layout** under `~/.dollhouse/portfolio/`
|
|
1687
|
-
- 🔄 **Backward compatibility** maintained for existing personas
|
|
1688
|
-
|
|
1689
|
-
### v1.3.2 - August 1, 2025
|
|
1690
|
-
**GitFlow Implementation**:
|
|
1691
|
-
- 🔀 **GitFlow branching model** for better release management
|
|
1692
|
-
- 🏷️ **Automated version tagging** on releases
|
|
1693
|
-
- 📦 **NPM release automation** (pending token configuration)
|
|
1694
|
-
|
|
1695
|
-
### v1.3.1 - July 31, 2025
|
|
1696
|
-
**Collection System Updates**:
|
|
1697
|
-
- 🏪 **Improved collection browsing** with better error handling
|
|
1698
|
-
- 🔍 **Enhanced search functionality** for finding content
|
|
1699
|
-
- 📥 **Better installation process** with validation
|
|
1700
|
-
|
|
1701
|
-
### v1.3.0 - July 30, 2025
|
|
1702
|
-
**Major Architecture Refactor**:
|
|
1703
|
-
- 🏗️ **Element interface system** providing foundation for all element types
|
|
1704
|
-
- 🔐 **Security-first implementation** with comprehensive protections
|
|
1705
|
-
- 📊 **Improved test coverage** reaching 96%+
|
|
1706
|
-
|
|
1707
|
-
### v1.2.5 - July 2025
|
|
1708
|
-
|
|
1709
|
-
**Collection Rename & Breaking Changes**:
|
|
1710
|
-
- 🔄 **Renamed all "marketplace" tools to "collection"**:
|
|
1711
|
-
- `browse_marketplace` → `browse_collection`
|
|
1712
|
-
- `search_marketplace` → `search_collection`
|
|
1713
|
-
- `get_marketplace_persona` → `get_collection_content`
|
|
1714
|
-
- `install_persona` → `install_persona` (unchanged)
|
|
1715
|
-
- `submit_persona` → `submit_persona` (unchanged)
|
|
1716
|
-
- ✅ **Added backward compatibility aliases** (deprecated, will be removed in v2.0.0)
|
|
1717
|
-
- ✅ **Updated repository** from `/personas` to `/collection`
|
|
1718
|
-
- ✅ **Created migration guide** for users to update their scripts
|
|
1719
|
-
- ✅ **Fixed all date references** from January to July 2025
|
|
1720
|
-
|
|
1721
|
-
### v1.2.4 - July 10, 2025
|
|
1722
|
-
|
|
1723
|
-
**Critical Fix**:
|
|
1724
|
-
- ✅ **Fixed MCP protocol compatibility** - console output no longer breaks JSON-RPC communication
|
|
1725
|
-
- ✅ **Added MCP-safe logger utility** for proper logging during protocol sessions
|
|
1726
|
-
- ✅ **Resolves connection failures** in Claude Desktop
|
|
1727
|
-
- ✅ **Updated Docker tests** to work with new logging approach
|
|
1728
|
-
- ✅ **Added comprehensive logger unit tests**
|
|
1729
|
-
|
|
1730
|
-
### v1.2.3 - July 10, 2025
|
|
1731
|
-
|
|
1732
|
-
**Bug Fix**:
|
|
1733
|
-
- ✅ **Fixed personas directory path resolution** for production environments
|
|
1734
|
-
- ✅ **Changed from process.cwd() to __dirname-based paths**
|
|
1735
|
-
- ✅ **Fixed setup script** with correct tool count and repository URLs
|
|
1736
|
-
|
|
1737
|
-
### v1.2.2 - July 10, 2025
|
|
1738
|
-
- ✅ **Comprehensive security enhancements**:
|
|
1739
|
-
- Content sanitization with DOMPurify (SEC-001)
|
|
1740
|
-
- YAML injection prevention (SEC-003)
|
|
1741
|
-
- GitHub token security (SEC-004)
|
|
1742
|
-
- Docker container hardening (SEC-005)
|
|
1743
|
-
- ✅ **487 comprehensive tests** including extensive security coverage
|
|
1744
|
-
- ✅ **CI timing test fixes** for reliable cross-platform testing
|
|
1745
|
-
- ✅ **TypeScript compilation fixes** for all test files
|
|
1746
|
-
- ✅ **All security vulnerabilities resolved** (0 active alerts)
|
|
1747
|
-
|
|
1748
|
-
### v1.2.1 - July 8, 2025
|
|
1749
|
-
- ✅ **Critical bug fixes** for data protection:
|
|
1750
|
-
- Copy-on-write for default personas (Issue #145)
|
|
1751
|
-
- User personas included in backups (Issue #144)
|
|
1752
|
-
- ✅ **Node.js 20+ requirement** for npm publishing compatibility
|
|
1753
|
-
- ✅ **372 comprehensive tests** covering all functionality
|
|
1754
|
-
- ✅ **Enhanced security** with all vulnerabilities resolved
|
|
1755
|
-
- ✅ **Improved documentation** with clear prerequisites
|
|
1756
|
-
|
|
1757
|
-
### v1.2.0 - July 7, 2025
|
|
1758
|
-
- ✅ **Rate limiting implementation** to prevent API abuse
|
|
1759
|
-
- ✅ **GPG signature verification** for release authenticity
|
|
1760
|
-
- ✅ **GitHub Advanced Security** integration
|
|
1761
|
-
- ✅ **309 tests** with improved CI environment coverage
|
|
1762
|
-
- ✅ **Package optimization** at 279.3 kB
|
|
1763
|
-
|
|
1764
|
-
### v1.1.0 - July 4, 2025
|
|
1765
|
-
- ✅ **Platform-specific badges** for Windows, macOS, Linux visibility
|
|
1766
|
-
- ✅ **GitHub Project management** with issue templates and milestones
|
|
1767
|
-
- ✅ **ARM64 Docker fix** switching from Alpine to Debian base images
|
|
1768
|
-
- ✅ **100% workflow reliability** (except Docker ARM64)
|
|
1769
|
-
- ✅ **First GitHub release** with CHANGELOG.md
|
|
1770
|
-
- ✅ **21 total MCP tools** at time of release
|
|
1771
|
-
|
|
1772
|
-
### Phase 2B+ - July 3, 2025
|
|
1773
|
-
- ✅ **Enterprise-grade auto-update system** with 4 new MCP tools
|
|
1774
|
-
- ✅ **50 comprehensive tests** covering all functionality
|
|
1775
|
-
- ✅ **Security hardening** - eliminated all command injection vulnerabilities
|
|
1776
|
-
- ✅ **Cross-platform support** - Windows, macOS, Linux with CI/CD testing
|
|
1777
|
-
- ✅ **Docker containerization** with production and development configurations
|
|
1778
|
-
- ✅ **21 total MCP tools** with backup/rollback and dependency validation
|
|
1779
|
-
|
|
1780
|
-
### Phase 2B - July 1-2, 2025
|
|
1781
|
-
- ✅ Complete chat-based persona management
|
|
1782
|
-
- ✅ GitHub marketplace integration
|
|
1783
|
-
- ✅ User identity and attribution system
|
|
1784
|
-
- ✅ Real-time validation and editing
|
|
1785
|
-
- ✅ Enterprise-grade GitHub Actions security
|
|
1786
|
-
|
|
1787
|
-
### Phase 1 - July 1, 2025
|
|
1788
|
-
- ✅ Fresh AGPL-3.0 licensed repository
|
|
1789
|
-
- ✅ Enhanced unique ID system
|
|
1790
|
-
- ✅ Anonymous user support
|
|
1791
|
-
- ✅ Marketplace-ready metadata schema
|
|
1792
|
-
|
|
1793
|
-
---
|
|
1794
|
-
|
|
1795
|
-
**🎭 Transform your AI interactions with the power of personas**
|
|
1796
|
-
|
|
1797
|
-
For support, please [open an issue](https://github.com/DollhouseMCP/mcp-server/issues) or visit our [collection](https://github.com/DollhouseMCP/collection).
|
|
298
|
+
*Built with ❤️ by the DollhouseMCP team*
|