@dollhousemcp/mcp-server 1.5.2 → 1.6.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/CHANGELOG.md +56 -0
- package/README.md +494 -111
- package/data/agents/code-reviewer.md +8 -1
- package/data/agents/research-assistant.md +8 -1
- package/data/agents/task-manager.md +8 -1
- package/data/ensembles/business-advisor.md +8 -1
- package/data/ensembles/creative-studio.md +8 -1
- package/data/ensembles/development-team.md +8 -1
- package/data/ensembles/security-analysis-team.md +8 -1
- package/data/memories/conversation-history.md +8 -1
- package/data/memories/learning-progress.md +8 -1
- package/data/memories/project-context.md +8 -1
- package/data/personas/business-consultant.md +8 -1
- package/data/personas/creative-writer.md +8 -1
- package/data/personas/debug-detective.md +8 -1
- package/data/personas/eli5-explainer.md +8 -1
- package/data/personas/security-analyst.md +8 -1
- package/data/personas/technical-analyst.md +8 -1
- package/data/skills/code-review.md +8 -1
- package/data/skills/creative-writing.md +8 -1
- package/data/skills/data-analysis.md +8 -1
- package/data/skills/penetration-testing.md +8 -1
- package/data/skills/research.md +8 -1
- package/data/skills/threat-modeling.md +8 -1
- package/data/skills/translation.md +8 -1
- package/data/templates/code-documentation.md +8 -1
- package/data/templates/email-professional.md +8 -1
- package/data/templates/meeting-notes.md +8 -1
- package/data/templates/penetration-test-report.md +8 -1
- package/data/templates/project-brief.md +8 -1
- package/data/templates/report-executive.md +8 -1
- package/data/templates/security-vulnerability-report.md +8 -1
- package/data/templates/threat-assessment-report.md +8 -1
- package/dist/auth/GitHubAuthManager.d.ts +6 -1
- package/dist/auth/GitHubAuthManager.d.ts.map +1 -1
- package/dist/auth/GitHubAuthManager.js +45 -18
- package/dist/benchmarks/IndexPerformanceBenchmark.d.ts +98 -0
- package/dist/benchmarks/IndexPerformanceBenchmark.d.ts.map +1 -0
- package/dist/benchmarks/IndexPerformanceBenchmark.js +531 -0
- package/dist/cache/CollectionCache.d.ts.map +1 -1
- package/dist/cache/CollectionCache.js +13 -3
- package/dist/cache/CollectionIndexCache.d.ts +77 -0
- package/dist/cache/CollectionIndexCache.d.ts.map +1 -0
- package/dist/cache/CollectionIndexCache.js +349 -0
- package/dist/cache/LRUCache.d.ts +93 -0
- package/dist/cache/LRUCache.d.ts.map +1 -0
- package/dist/cache/LRUCache.js +299 -0
- package/dist/cache/index.d.ts +1 -0
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +2 -1
- package/dist/collection/CollectionBrowser.d.ts +21 -1
- package/dist/collection/CollectionBrowser.d.ts.map +1 -1
- package/dist/collection/CollectionBrowser.js +130 -10
- package/dist/collection/CollectionIndexManager.d.ts +151 -0
- package/dist/collection/CollectionIndexManager.d.ts.map +1 -0
- package/dist/collection/CollectionIndexManager.js +499 -0
- package/dist/collection/CollectionSearch.d.ts +55 -0
- package/dist/collection/CollectionSearch.d.ts.map +1 -1
- package/dist/collection/CollectionSearch.js +338 -13
- package/dist/collection/CollectionSeeder.d.ts.map +1 -1
- package/dist/collection/CollectionSeeder.js +38 -1
- package/dist/collection/ElementInstaller.d.ts +31 -0
- package/dist/collection/ElementInstaller.d.ts.map +1 -1
- package/dist/collection/ElementInstaller.js +77 -15
- package/dist/collection/PersonaSubmitter.d.ts +1 -1
- package/dist/collection/PersonaSubmitter.d.ts.map +1 -1
- package/dist/collection/PersonaSubmitter.js +2 -2
- package/dist/collection/index.d.ts +1 -0
- package/dist/collection/index.d.ts.map +1 -1
- package/dist/collection/index.js +2 -1
- package/dist/config/ConfigManager.d.ts +78 -0
- package/dist/config/ConfigManager.d.ts.map +1 -0
- package/dist/config/ConfigManager.js +216 -0
- package/dist/config/element-types.d.ts +135 -0
- package/dist/config/element-types.d.ts.map +1 -0
- package/dist/config/element-types.js +108 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +3 -1
- package/dist/config/portfolio-constants.d.ts +83 -0
- package/dist/config/portfolio-constants.d.ts.map +1 -0
- package/dist/config/portfolio-constants.js +99 -0
- package/dist/elements/BaseElement.d.ts +14 -2
- package/dist/elements/BaseElement.d.ts.map +1 -1
- package/dist/elements/BaseElement.js +88 -6
- package/dist/elements/agents/Agent.d.ts +10 -1
- package/dist/elements/agents/Agent.d.ts.map +1 -1
- package/dist/elements/agents/Agent.js +66 -19
- package/dist/elements/agents/AgentManager.d.ts +2 -0
- package/dist/elements/agents/AgentManager.d.ts.map +1 -1
- package/dist/elements/agents/AgentManager.js +12 -10
- package/dist/elements/skills/Skill.d.ts +10 -1
- package/dist/elements/skills/Skill.d.ts.map +1 -1
- package/dist/elements/skills/Skill.js +40 -3
- package/dist/elements/skills/SkillManager.d.ts +1 -0
- package/dist/elements/skills/SkillManager.d.ts.map +1 -1
- package/dist/elements/skills/SkillManager.js +10 -4
- package/dist/elements/templates/Template.d.ts +10 -1
- package/dist/elements/templates/Template.d.ts.map +1 -1
- package/dist/elements/templates/Template.js +35 -18
- package/dist/elements/templates/TemplateManager.d.ts +1 -1
- package/dist/elements/templates/TemplateManager.d.ts.map +1 -1
- package/dist/elements/templates/TemplateManager.js +6 -5
- package/dist/generated/version.d.ts +2 -2
- package/dist/generated/version.js +3 -3
- package/dist/index.barrel.d.ts +1 -2
- package/dist/index.barrel.d.ts.map +1 -1
- package/dist/index.barrel.js +2 -4
- package/dist/index.d.ts +143 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1883 -310
- package/dist/persona/PersonaElement.d.ts +10 -0
- package/dist/persona/PersonaElement.d.ts.map +1 -1
- package/dist/persona/PersonaElement.js +55 -32
- package/dist/persona/PersonaElementManager.d.ts.map +1 -1
- package/dist/persona/PersonaElementManager.js +13 -11
- package/dist/persona/PersonaLoader.d.ts.map +1 -1
- package/dist/persona/PersonaLoader.js +8 -2
- package/dist/persona/export-import/PersonaImporter.d.ts.map +1 -1
- package/dist/persona/export-import/PersonaImporter.js +24 -5
- package/dist/persona/export-import/PersonaSharer.d.ts +21 -0
- package/dist/persona/export-import/PersonaSharer.d.ts.map +1 -1
- package/dist/persona/export-import/PersonaSharer.js +198 -22
- package/dist/portfolio/DefaultElementProvider.d.ts +90 -0
- package/dist/portfolio/DefaultElementProvider.d.ts.map +1 -1
- package/dist/portfolio/DefaultElementProvider.js +499 -7
- package/dist/portfolio/GitHubPortfolioIndexer.d.ts +129 -0
- package/dist/portfolio/GitHubPortfolioIndexer.d.ts.map +1 -0
- package/dist/portfolio/GitHubPortfolioIndexer.js +475 -0
- package/dist/portfolio/MigrationManager.d.ts.map +1 -1
- package/dist/portfolio/MigrationManager.js +136 -3
- package/dist/portfolio/PortfolioIndexManager.d.ts +130 -0
- package/dist/portfolio/PortfolioIndexManager.d.ts.map +1 -0
- package/dist/portfolio/PortfolioIndexManager.js +478 -0
- package/dist/portfolio/PortfolioManager.d.ts +5 -0
- package/dist/portfolio/PortfolioManager.d.ts.map +1 -1
- package/dist/portfolio/PortfolioManager.js +61 -20
- package/dist/portfolio/PortfolioRepoManager.d.ts +75 -0
- package/dist/portfolio/PortfolioRepoManager.d.ts.map +1 -0
- package/dist/portfolio/PortfolioRepoManager.js +337 -0
- package/dist/portfolio/UnifiedIndexManager.d.ts +388 -0
- package/dist/portfolio/UnifiedIndexManager.d.ts.map +1 -0
- package/dist/portfolio/UnifiedIndexManager.js +1434 -0
- package/dist/portfolio/index.d.ts +15 -0
- package/dist/portfolio/index.d.ts.map +1 -0
- package/dist/portfolio/index.js +15 -0
- package/dist/portfolio/types.d.ts +7 -0
- package/dist/portfolio/types.d.ts.map +1 -1
- package/dist/portfolio/types.js +6 -1
- package/dist/security/InputValidator.d.ts.map +1 -1
- package/dist/security/InputValidator.js +50 -48
- package/dist/security/audit/SecurityAuditor.d.ts.map +1 -1
- package/dist/security/audit/SecurityAuditor.js +17 -9
- package/dist/security/audit/config/suppressions.d.ts.map +1 -1
- package/dist/security/audit/config/suppressions.js +19 -3
- package/dist/security/contentValidator.d.ts +2 -0
- package/dist/security/contentValidator.d.ts.map +1 -1
- package/dist/security/contentValidator.js +115 -4
- package/dist/security/secureYamlParser.d.ts +1 -0
- package/dist/security/secureYamlParser.d.ts.map +1 -1
- package/dist/security/secureYamlParser.js +29 -7
- package/dist/security/securityMonitor.d.ts +1 -1
- package/dist/security/securityMonitor.d.ts.map +1 -1
- package/dist/security/securityMonitor.js +1 -1
- package/dist/security/tokenManager.d.ts +1 -1
- package/dist/security/tokenManager.d.ts.map +1 -1
- package/dist/security/tokenManager.js +30 -10
- package/dist/server/ServerSetup.d.ts +22 -2
- package/dist/server/ServerSetup.d.ts.map +1 -1
- package/dist/server/ServerSetup.js +77 -12
- package/dist/server/tools/AuthTools.d.ts.map +1 -1
- package/dist/server/tools/AuthTools.js +33 -1
- package/dist/server/tools/BuildInfoTools.d.ts +25 -0
- package/dist/server/tools/BuildInfoTools.d.ts.map +1 -0
- package/dist/server/tools/BuildInfoTools.js +36 -0
- package/dist/server/tools/CollectionTools.d.ts.map +1 -1
- package/dist/server/tools/CollectionTools.js +55 -46
- package/dist/server/tools/ConfigTools.d.ts.map +1 -1
- package/dist/server/tools/ConfigTools.js +29 -1
- package/dist/server/tools/PersonaTools.d.ts +4 -2
- package/dist/server/tools/PersonaTools.d.ts.map +1 -1
- package/dist/server/tools/PersonaTools.js +5 -152
- package/dist/server/tools/PortfolioTools.d.ts +12 -0
- package/dist/server/tools/PortfolioTools.d.ts.map +1 -0
- package/dist/server/tools/PortfolioTools.js +221 -0
- package/dist/server/tools/index.d.ts +3 -1
- package/dist/server/tools/index.d.ts.map +1 -1
- package/dist/server/tools/index.js +4 -2
- package/dist/server/types.d.ts +40 -5
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +1 -1
- package/dist/services/BuildInfoService.d.ts +84 -0
- package/dist/services/BuildInfoService.d.ts.map +1 -0
- package/dist/services/BuildInfoService.js +271 -0
- package/dist/tools/portfolio/PortfolioElementAdapter.d.ts +54 -0
- package/dist/tools/portfolio/PortfolioElementAdapter.d.ts.map +1 -0
- package/dist/tools/portfolio/PortfolioElementAdapter.js +229 -0
- package/dist/tools/portfolio/submitToPortfolioTool.d.ts +164 -0
- package/dist/tools/portfolio/submitToPortfolioTool.d.ts.map +1 -0
- package/dist/tools/portfolio/submitToPortfolioTool.js +1523 -0
- package/dist/tools/portfolio/types.d.ts +41 -0
- package/dist/tools/portfolio/types.d.ts.map +1 -0
- package/dist/tools/portfolio/types.js +15 -0
- package/dist/types/collection.d.ts +51 -0
- package/dist/types/collection.d.ts.map +1 -1
- package/dist/types/collection.js +1 -1
- package/dist/utils/EarlyTerminationSearch.d.ts +41 -0
- package/dist/utils/EarlyTerminationSearch.d.ts.map +1 -0
- package/dist/utils/EarlyTerminationSearch.js +164 -0
- package/dist/utils/ErrorHandler.d.ts +86 -0
- package/dist/utils/ErrorHandler.d.ts.map +1 -0
- package/dist/utils/ErrorHandler.js +201 -0
- package/dist/utils/FileDiscoveryUtil.d.ts +53 -0
- package/dist/utils/FileDiscoveryUtil.d.ts.map +1 -0
- package/dist/utils/FileDiscoveryUtil.js +169 -0
- package/dist/utils/GitHubRateLimiter.d.ts +88 -0
- package/dist/utils/GitHubRateLimiter.d.ts.map +1 -0
- package/dist/utils/GitHubRateLimiter.js +315 -0
- package/dist/utils/PerformanceMonitor.d.ts +134 -0
- package/dist/utils/PerformanceMonitor.d.ts.map +1 -0
- package/dist/utils/PerformanceMonitor.js +347 -0
- package/dist/utils/RateLimiter.d.ts.map +1 -0
- package/dist/utils/RateLimiter.js +172 -0
- package/dist/utils/SecureDownloader.d.ts +241 -0
- package/dist/utils/SecureDownloader.d.ts.map +1 -0
- package/dist/utils/SecureDownloader.js +759 -0
- package/dist/utils/ToolCache.d.ts +82 -0
- package/dist/utils/ToolCache.d.ts.map +1 -0
- package/dist/utils/ToolCache.js +196 -0
- package/dist/utils/errorCodes.d.ts +136 -0
- package/dist/utils/errorCodes.d.ts.map +1 -0
- package/dist/utils/errorCodes.js +87 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -1
- package/dist/utils/installation.d.ts +1 -1
- package/dist/utils/installation.d.ts.map +1 -1
- package/dist/utils/installation.js +9 -8
- package/dist/utils/searchUtils.d.ts +31 -0
- package/dist/utils/searchUtils.d.ts.map +1 -1
- package/dist/utils/searchUtils.js +62 -1
- package/package.json +17 -7
- package/dist/config/updateConfig.d.ts +0 -84
- package/dist/config/updateConfig.d.ts.map +0 -1
- package/dist/config/updateConfig.js +0 -148
- package/dist/server/tools/UpdateTools.d.ts +0 -10
- package/dist/server/tools/UpdateTools.d.ts.map +0 -1
- package/dist/server/tools/UpdateTools.js +0 -85
- package/dist/update/BackupManager.d.ts +0 -63
- package/dist/update/BackupManager.d.ts.map +0 -1
- package/dist/update/BackupManager.js +0 -370
- package/dist/update/DependencyChecker.d.ts +0 -41
- package/dist/update/DependencyChecker.d.ts.map +0 -1
- package/dist/update/DependencyChecker.js +0 -132
- package/dist/update/RateLimiter.d.ts.map +0 -1
- package/dist/update/RateLimiter.js +0 -172
- package/dist/update/SignatureVerifier.d.ts +0 -71
- package/dist/update/SignatureVerifier.d.ts.map +0 -1
- package/dist/update/SignatureVerifier.js +0 -214
- package/dist/update/UpdateChecker.d.ts +0 -132
- package/dist/update/UpdateChecker.d.ts.map +0 -1
- package/dist/update/UpdateChecker.js +0 -506
- package/dist/update/UpdateManager.d.ts +0 -60
- package/dist/update/UpdateManager.d.ts.map +0 -1
- package/dist/update/UpdateManager.js +0 -730
- package/dist/update/VersionManager.d.ts +0 -31
- package/dist/update/VersionManager.d.ts.map +0 -1
- package/dist/update/VersionManager.js +0 -181
- package/dist/update/index.d.ts +0 -9
- package/dist/update/index.d.ts.map +0 -1
- package/dist/update/index.js +0 -9
- /package/dist/{update → utils}/RateLimiter.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,21 +1,28 @@
|
|
|
1
1
|
# DollhouseMCP
|
|
2
2
|
|
|
3
|
+
## Project Status
|
|
4
|
+
[](https://modelcontextprotocol.io)
|
|
5
|
+
[](https://www.npmjs.com/package/@dollhousemcp/mcp-server)
|
|
6
|
+
[](https://www.gnu.org/licenses/agpl-3.0)
|
|
7
|
+
[](https://github.com/DollhouseMCP/mcp-server)
|
|
8
|
+
|
|
9
|
+
## Build & Quality
|
|
3
10
|
[](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml)
|
|
4
11
|
[](https://github.com/DollhouseMCP/mcp-server/actions/workflows/build-artifacts.yml)
|
|
5
|
-
[](https://www.gnu.org/licenses/agpl-3.0)
|
|
8
|
-
[](https://www.typescriptlang.org/)
|
|
9
|
-
[](https://nodejs.org/)
|
|
12
|
+
[](https://github.com/DollhouseMCP/mcp-server/tree/main/__tests__)
|
|
13
|
+
[](docs/SECURITY.md)
|
|
10
14
|
|
|
11
15
|
## Platform Support
|
|
12
|
-
|
|
13
16
|
[](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "Windows CI Build Status")
|
|
14
17
|
[](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "macOS CI Build Status")
|
|
15
18
|
[](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "Linux CI Build Status")
|
|
16
19
|
[](https://github.com/DollhouseMCP/mcp-server/blob/main/Dockerfile)
|
|
17
|
-
|
|
18
|
-
|
|
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)
|
|
19
26
|
|
|
20
27
|
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.
|
|
21
28
|
|
|
@@ -23,9 +30,11 @@ A comprehensive Model Context Protocol (MCP) server that enables dynamic AI pers
|
|
|
23
30
|
**🏪 Collection**: https://github.com/DollhouseMCP/collection
|
|
24
31
|
**📦 NPM Package**: https://www.npmjs.com/package/@dollhousemcp/mcp-server
|
|
25
32
|
**🌍 Website**: https://dollhousemcp.com (planned)
|
|
26
|
-
**📦 Version**: v1.
|
|
33
|
+
**📦 Version**: v1.6.0
|
|
34
|
+
|
|
35
|
+
> **🎉 New in v1.6.0**: Portfolio management system with GitHub integration, enhanced collection search with pagination, and 42 total MCP tools! See [Migration Guide](docs/MIGRATION_GUIDE_v1.6.0.md) for upgrade instructions.
|
|
27
36
|
|
|
28
|
-
>
|
|
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.
|
|
29
38
|
|
|
30
39
|
## 🚀 Quick Start
|
|
31
40
|
|
|
@@ -54,28 +63,31 @@ npm install -g @dollhousemcp/mcp-server
|
|
|
54
63
|
}
|
|
55
64
|
```
|
|
56
65
|
|
|
57
|
-
Restart Claude Desktop and you're ready to use DollhouseMCP! Try `
|
|
66
|
+
Restart Claude Desktop and you're ready to use DollhouseMCP! Try `list_elements type="personas"` to get started.
|
|
67
|
+
|
|
68
|
+
> **🎯 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.
|
|
58
69
|
|
|
59
70
|
## ✨ Key Features
|
|
60
71
|
|
|
61
72
|
| Feature | Description |
|
|
62
73
|
|---------|-------------|
|
|
63
|
-
| 🎭 **
|
|
74
|
+
| 🎭 **42 MCP Tools** | Complete portfolio element management through chat interface |
|
|
64
75
|
| 🏪 **GitHub Collection** | Browse, search, install, and submit personas to community collection |
|
|
76
|
+
| 🔄 **Roundtrip Workflow** | Complete cycle: discover → customize → share → collaborate |
|
|
77
|
+
| 📁 **GitHub Portfolio** | Personal repository for storing and versioning your AI elements |
|
|
65
78
|
| 👤 **User Identity System** | Environment-based attribution for persona creators |
|
|
66
79
|
| 🆔 **Unique ID System** | Advanced ID generation: `{type}_{name}_{author}_{YYYYMMDD}-{HHMMSS}` |
|
|
67
80
|
| 💬 **Chat-Based Management** | Create, edit, and validate personas through conversational interface |
|
|
68
81
|
| 🔄 **Real-time Operations** | Live editing with automatic version bumping and validation |
|
|
69
|
-
| 🚀 **Auto-Update System** | Enterprise-grade auto-update with backup/rollback and dependency validation |
|
|
70
82
|
| 📦 **NPM Installation** | Install MCP servers from npm with cross-platform support and atomic operations |
|
|
71
83
|
| 🛡️ **Data Protection** | Copy-on-write for default personas, comprehensive backup system |
|
|
72
84
|
| 🏠 **Local-First Architecture** | Full functionality without cloud dependency |
|
|
73
85
|
|
|
74
86
|
## 🎨 Portfolio Customization Elements
|
|
75
87
|
|
|
76
|
-
DollhouseMCP introduces a comprehensive portfolio system for customizing AI behavior
|
|
88
|
+
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.
|
|
77
89
|
|
|
78
|
-
### Portfolio Element Types
|
|
90
|
+
### Current Portfolio Element Types
|
|
79
91
|
|
|
80
92
|
| Element | Purpose | Status |
|
|
81
93
|
|---------|---------|--------|
|
|
@@ -83,8 +95,16 @@ DollhouseMCP introduces a comprehensive portfolio system for customizing AI beha
|
|
|
83
95
|
| 🛠️ **Skills** | Add specific capabilities like code review, data analysis, or creative writing | ✅ Available |
|
|
84
96
|
| 📝 **Templates** | Create reusable response formats for emails, reports, documentation | ✅ Available |
|
|
85
97
|
| 🤖 **Agents** | Build autonomous assistants that can pursue goals and make decisions | ✅ Available |
|
|
86
|
-
|
|
87
|
-
|
|
98
|
+
|
|
99
|
+
### Coming Soon
|
|
100
|
+
|
|
101
|
+
| Element | Purpose | Status |
|
|
102
|
+
|---------|---------|--------|
|
|
103
|
+
| 💬 **Prompts** | Pre-configured conversation starters and structured interactions | 🔄 Coming Soon |
|
|
104
|
+
| 🧠 **Memory** | Persistent context storage with retention policies and search capabilities | 🔄 Coming Soon |
|
|
105
|
+
| 🎯 **Ensemble** | Orchestrate multiple elements together as one unified entity | 🔄 Coming Soon |
|
|
106
|
+
|
|
107
|
+
> **📢 Note**: Prompt, memory, and ensemble element types are actively being developed and will be available in upcoming releases.
|
|
88
108
|
|
|
89
109
|
### Managing Your Portfolio
|
|
90
110
|
|
|
@@ -97,6 +117,57 @@ Use these new generic tools to manage any element type in your portfolio:
|
|
|
97
117
|
- **`get_element_details`** - Examine element configuration and metadata
|
|
98
118
|
- **`reload_elements`** - Refresh portfolio from filesystem
|
|
99
119
|
|
|
120
|
+
### GitHub Portfolio Integration (NEW!)
|
|
121
|
+
|
|
122
|
+
Manage your portfolio on GitHub for sharing and collaboration:
|
|
123
|
+
|
|
124
|
+
- **`portfolio_status`** - Check your GitHub portfolio repository status
|
|
125
|
+
- **`init_portfolio`** - Create a new GitHub portfolio repository
|
|
126
|
+
- **`portfolio_config`** - Configure sync and submission settings
|
|
127
|
+
- **`sync_portfolio`** - Synchronize local and GitHub repositories
|
|
128
|
+
- **`search_portfolio`** - Search your local portfolio with advanced indexing
|
|
129
|
+
- **`search_all`** - Unified search across local, GitHub, and collection sources
|
|
130
|
+
- **`submit_content`** - Upload elements to your GitHub portfolio
|
|
131
|
+
|
|
132
|
+
> **📘 Getting Started**: New to portfolios? Follow our [Portfolio Setup Guide](docs/guides/PORTFOLIO_SETUP_GUIDE.md) for step-by-step instructions.
|
|
133
|
+
|
|
134
|
+
### Smart Element Detection
|
|
135
|
+
|
|
136
|
+
DollhouseMCP automatically detects element types when submitting content, eliminating the need to manually specify types:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# System automatically detects whether this is a persona, skill, template, etc.
|
|
140
|
+
submit_content name="code-review"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Key Features:**
|
|
144
|
+
- **Automatic Type Detection**: Searches all element directories simultaneously
|
|
145
|
+
- **Fuzzy Matching**: Finds content with partial names or different extensions
|
|
146
|
+
- **Clear Error Messages**: Provides actionable guidance when content isn't found
|
|
147
|
+
- **No More Mistakes**: Prevents accidentally submitting content as wrong element type
|
|
148
|
+
|
|
149
|
+
**Example Output:**
|
|
150
|
+
```
|
|
151
|
+
✅ Smart detection: Found "code-review" as SKILL
|
|
152
|
+
✅ Successfully uploaded code-review to your GitHub portfolio!
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
> **📖 Learn More**: See our [Element Detection Guide](docs/guides/ELEMENT_DETECTION_GUIDE.md) for detailed usage examples and troubleshooting tips.
|
|
156
|
+
|
|
157
|
+
### Complete Naming Freedom
|
|
158
|
+
|
|
159
|
+
DollhouseMCP gives you **complete freedom** to name your elements whatever you want. There are no naming restrictions or forbidden words.
|
|
160
|
+
|
|
161
|
+
**✅ You can create elements named**:
|
|
162
|
+
- "Test Assistant" - Previously blocked, now fully supported
|
|
163
|
+
- "Sample Code Reviewer" - No restrictions
|
|
164
|
+
- "テスト" (Japanese for "test") - Unicode supported
|
|
165
|
+
- "My Debugging Helper" - Any descriptive name
|
|
166
|
+
|
|
167
|
+
**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.
|
|
168
|
+
|
|
169
|
+
> **📘 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.
|
|
170
|
+
|
|
100
171
|
### Specialized Element Tools
|
|
101
172
|
|
|
102
173
|
Some portfolio elements have specialized operations:
|
|
@@ -135,13 +206,17 @@ Your portfolio lives in `~/.dollhouse/portfolio/` with elements organized by typ
|
|
|
135
206
|
└── agents/ # Autonomous assistants
|
|
136
207
|
```
|
|
137
208
|
|
|
138
|
-
###
|
|
209
|
+
### Persona Management via ElementTools
|
|
139
210
|
|
|
140
|
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
-
|
|
211
|
+
Personas are now managed through the generic ElementTools system:
|
|
212
|
+
- **`list_elements type="personas"`** - Display all local personas with enhanced metadata
|
|
213
|
+
- **`activate_element name="name" type="personas"`** - Activate by name, filename, or unique ID
|
|
214
|
+
- **`get_active_elements type="personas"`** - Get current active persona information
|
|
215
|
+
- **`deactivate_element type="personas"`** - Return to default mode
|
|
216
|
+
- **`get_element_details name="name" type="personas"`** - View complete persona details
|
|
217
|
+
- **`reload_elements type="personas"`** - Refresh personas from filesystem
|
|
218
|
+
|
|
219
|
+
> **📖 Migration**: Legacy PersonaTools were removed in v1.6.0. See [PersonaTools Migration Guide](docs/PERSONATOOLS_MIGRATION_GUIDE.md) for complete migration instructions.
|
|
145
220
|
|
|
146
221
|
## 🔒 Enterprise-Grade Security
|
|
147
222
|
|
|
@@ -178,7 +253,7 @@ DollhouseMCP implements comprehensive security measures to protect your personas
|
|
|
178
253
|
#### NPM Installation (NEW! - Recommended)
|
|
179
254
|
|
|
180
255
|
```bash
|
|
181
|
-
npm install -g @
|
|
256
|
+
npm install -g @dollhousemcp/mcp-server
|
|
182
257
|
```
|
|
183
258
|
|
|
184
259
|
After installation, add DollhouseMCP to your Claude Desktop configuration:
|
|
@@ -272,9 +347,9 @@ Add DollhouseMCP to your Claude Desktop configuration:
|
|
|
272
347
|
**🔄 After configuration:**
|
|
273
348
|
1. Save the file
|
|
274
349
|
2. Restart Claude Desktop completely
|
|
275
|
-
3. All
|
|
350
|
+
3. All 42 DollhouseMCP tools will be available
|
|
276
351
|
|
|
277
|
-
## 🛠️ Available Tools (
|
|
352
|
+
## 🛠️ Available Tools (42 Total)
|
|
278
353
|
|
|
279
354
|
### Portfolio Element Management (NEW!)
|
|
280
355
|
- **`list_elements`** - List all elements of a specific type
|
|
@@ -288,36 +363,42 @@ Add DollhouseMCP to your Claude Desktop configuration:
|
|
|
288
363
|
- **`render_template`** - Render a template element with provided variables
|
|
289
364
|
- **`execute_agent`** - Execute an agent element with a specific goal
|
|
290
365
|
|
|
291
|
-
###
|
|
292
|
-
- **`
|
|
293
|
-
- **`
|
|
294
|
-
- **`
|
|
295
|
-
- **`
|
|
296
|
-
- **`
|
|
297
|
-
- **`reload_personas`** - Refresh from filesystem
|
|
366
|
+
### Persona Export/Import (Specialized Tools)
|
|
367
|
+
- **`export_persona`** - Export single persona to JSON format
|
|
368
|
+
- **`export_all_personas`** - Export all personas to JSON bundle
|
|
369
|
+
- **`import_persona`** - Import persona from file path or JSON string
|
|
370
|
+
- **`share_persona`** - Generate shareable URL for persona
|
|
371
|
+
- **`import_from_url`** - Import persona from shared URL
|
|
298
372
|
|
|
299
373
|
### GitHub Collection Integration
|
|
300
374
|
- **`browse_collection`** - Browse content by section and type (flat structure, no categories)
|
|
301
375
|
- **`search_collection`** - Search across all collection content
|
|
376
|
+
- **`search_collection_enhanced`** - Enhanced search with pagination, filtering, and sorting
|
|
302
377
|
- **`get_collection_content`** - View detailed content info
|
|
378
|
+
- **`get_collection_cache_health`** - Monitor collection cache status and performance
|
|
303
379
|
- **`install_element`** - One-click download and installation of any element type
|
|
304
380
|
- **`submit_persona`** - Submit to collection via GitHub issue
|
|
305
381
|
|
|
382
|
+
### GitHub Portfolio Management (NEW!)
|
|
383
|
+
- **`portfolio_status`** - Check your GitHub portfolio repository status
|
|
384
|
+
- **`init_portfolio`** - Create a new GitHub portfolio repository
|
|
385
|
+
- **`sync_portfolio`** - Synchronize local and GitHub repositories
|
|
386
|
+
- **`search_portfolio`** - Search your local portfolio with advanced indexing
|
|
387
|
+
- **`search_all`** - Unified search across local, GitHub, and collection sources
|
|
388
|
+
- **`submit_content`** - Upload elements to your GitHub portfolio
|
|
389
|
+
|
|
390
|
+
### Collection Configuration (NEW!)
|
|
391
|
+
- **`configure_collection_submission`** - Configure auto-submit and default settings
|
|
392
|
+
- **`get_collection_submission_config`** - View current submission configuration
|
|
393
|
+
|
|
306
394
|
### User Identity Management
|
|
307
395
|
- **`set_user_identity`** - Set username for persona attribution
|
|
308
396
|
- **`get_user_identity`** - View current identity status
|
|
309
397
|
- **`clear_user_identity`** - Return to anonymous mode
|
|
310
398
|
|
|
311
|
-
### Chat-Based Persona Management
|
|
312
|
-
- **`create_persona`** - Guided persona creation through chat
|
|
313
|
-
- **`edit_persona`** - Modify existing persona fields
|
|
314
|
-
- **`validate_persona`** - Comprehensive quality validation
|
|
315
399
|
|
|
316
|
-
###
|
|
317
|
-
- **`
|
|
318
|
-
- **`update_server`** - Automated git pull + npm install + build with backup creation
|
|
319
|
-
- **`rollback_update`** - Restore previous version from automatic backups
|
|
320
|
-
- **`get_server_status`** - Comprehensive server status with version, git info, and system details
|
|
400
|
+
### System Tools
|
|
401
|
+
- **`get_build_info`** - Comprehensive build and runtime information
|
|
321
402
|
|
|
322
403
|
### Persona Indicators
|
|
323
404
|
- **`configure_indicator`** - Configure how persona indicators appear in AI responses
|
|
@@ -332,55 +413,137 @@ Add DollhouseMCP to your Claude Desktop configuration:
|
|
|
332
413
|
|
|
333
414
|
### Collection Operations
|
|
334
415
|
```
|
|
335
|
-
|
|
336
|
-
browse_collection
|
|
337
|
-
|
|
338
|
-
|
|
416
|
+
# Browse collection content by type
|
|
417
|
+
browse_collection section="library" type="personas" # Browse all personas
|
|
418
|
+
browse_collection section="library" type="skills" # Browse skills
|
|
419
|
+
browse_collection section="library" type="templates" # Browse templates
|
|
420
|
+
|
|
421
|
+
# Search collection content
|
|
422
|
+
search_collection query="writing" # Search for writing personas
|
|
423
|
+
search_collection query="code review" # Find code review skills
|
|
424
|
+
|
|
425
|
+
# Enhanced collection search with pagination
|
|
426
|
+
search_collection_enhanced query="data analysis" maxResults=10 elementType="skills"
|
|
427
|
+
search_collection_enhanced query="creative" page=2 resultsPerPage=5
|
|
428
|
+
|
|
429
|
+
# Install elements from collection
|
|
430
|
+
install_element path="library/personas/storyteller.md" # Install persona
|
|
431
|
+
install_element path="library/skills/code-reviewer.md" # Install skill
|
|
432
|
+
install_element path="library/templates/email-template.md" # Install template
|
|
433
|
+
|
|
434
|
+
# Check collection cache health
|
|
435
|
+
get_collection_cache_health
|
|
339
436
|
```
|
|
340
437
|
|
|
341
|
-
###
|
|
438
|
+
### Portfolio Workflow (NEW!)
|
|
342
439
|
```
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
440
|
+
# Check GitHub portfolio status
|
|
441
|
+
portfolio_status # Check repository status
|
|
442
|
+
|
|
443
|
+
# Initialize a new GitHub portfolio (first time setup)
|
|
444
|
+
init_portfolio # Create GitHub repository
|
|
445
|
+
init_portfolio repoName="my-ai-portfolio" # Custom repository name
|
|
446
|
+
|
|
447
|
+
# Synchronize local and GitHub portfolios
|
|
448
|
+
sync_portfolio # Sync both directions
|
|
449
|
+
sync_portfolio direction="push" # Push local to GitHub
|
|
450
|
+
sync_portfolio direction="pull" # Pull GitHub to local
|
|
451
|
+
|
|
452
|
+
# Search your local portfolio with advanced indexing
|
|
453
|
+
search_portfolio query="writing" # Search all element types
|
|
454
|
+
search_portfolio query="code" elementType="skills" # Search specific type
|
|
455
|
+
search_portfolio query="email" fuzzyMatch=true # Enable fuzzy matching
|
|
456
|
+
|
|
457
|
+
# Unified search across all sources (local, GitHub, collection)
|
|
458
|
+
search_all query="data analysis" # Search everywhere
|
|
459
|
+
search_all query="creative writing" maxResults=20 # Limit results
|
|
460
|
+
search_all query="templates" source="local" # Search specific source
|
|
461
|
+
|
|
462
|
+
# Submit content with smart auto-detection
|
|
463
|
+
submit_content name="code-review" # Auto-detects element type
|
|
464
|
+
submit_content name="my-persona" elementType="personas" # Explicit type
|
|
465
|
+
submit_content name="email-template" description="Professional email template"
|
|
466
|
+
|
|
467
|
+
# Configure collection submission settings
|
|
468
|
+
configure_collection_submission autoSubmit=true # Enable auto-submit
|
|
469
|
+
configure_collection_submission defaultLicense="MIT" # Set default license
|
|
470
|
+
get_collection_submission_config # View current config
|
|
347
471
|
```
|
|
348
472
|
|
|
349
|
-
###
|
|
473
|
+
### Portfolio Element Management
|
|
350
474
|
```
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
475
|
+
# List elements by type (works with all element types)
|
|
476
|
+
list_elements type="personas" # List personas
|
|
477
|
+
list_elements type="skills" # List skills
|
|
478
|
+
list_elements type="templates" # List templates
|
|
479
|
+
list_elements type="agents" # List agents
|
|
480
|
+
|
|
481
|
+
# Activate elements to customize AI behavior
|
|
482
|
+
activate_element name="code-reviewer" type="skills" # Activate skill
|
|
483
|
+
activate_element name="professional" type="personas" # Activate persona
|
|
484
|
+
activate_element name="email-format" type="templates" # Activate template
|
|
485
|
+
|
|
486
|
+
# View active elements
|
|
487
|
+
get_active_elements # All active elements
|
|
488
|
+
get_active_elements type="skills" # Active skills only
|
|
489
|
+
|
|
490
|
+
# Get detailed element information
|
|
491
|
+
get_element_details name="code-reviewer" type="skills" # View skill details
|
|
492
|
+
get_element_details name="my-persona" type="personas" # View persona details
|
|
493
|
+
|
|
494
|
+
# Deactivate elements
|
|
495
|
+
deactivate_element name="code-reviewer" type="skills" # Deactivate specific
|
|
496
|
+
deactivate_element type="personas" # Deactivate all personas
|
|
497
|
+
|
|
498
|
+
# Refresh elements from filesystem
|
|
499
|
+
reload_elements # Reload all elements
|
|
500
|
+
reload_elements type="skills" # Reload specific type
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
### Specialized Element Operations
|
|
504
|
+
```
|
|
505
|
+
# Render templates with variables
|
|
506
|
+
render_template name="project-update" variables='{"project": "DollhouseMCP", "status": "Released"}'
|
|
507
|
+
render_template name="email-professional" variables='{"recipient": "John", "subject": "Meeting"}'
|
|
508
|
+
|
|
509
|
+
# Execute agents with specific goals
|
|
510
|
+
execute_agent name="project-manager" goal="Create a sprint plan for next week"
|
|
511
|
+
execute_agent name="data-analyst" goal="Analyze sales trends for Q3"
|
|
354
512
|
```
|
|
355
513
|
|
|
356
|
-
###
|
|
514
|
+
### System Information
|
|
515
|
+
```
|
|
516
|
+
# Get comprehensive build and runtime information
|
|
517
|
+
get_build_info # Full system info
|
|
518
|
+
get_build_info section="version" # Version info only
|
|
519
|
+
get_build_info section="environment" # Environment details
|
|
520
|
+
get_build_info section="dependencies" # Dependency versions
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
### Persona Management with ElementTools
|
|
524
|
+
```
|
|
525
|
+
# List all personas
|
|
526
|
+
list_elements type="personas"
|
|
527
|
+
|
|
528
|
+
# Activate a persona
|
|
529
|
+
activate_element name="Study Buddy" type="personas"
|
|
357
530
|
|
|
358
|
-
|
|
531
|
+
# Get persona details
|
|
532
|
+
get_element_details name="Study Buddy" type="personas"
|
|
359
533
|
|
|
534
|
+
# Submit to community collection
|
|
535
|
+
submit_persona "Study Buddy" # Share with community
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
### User Identity
|
|
360
539
|
```
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
rollback_update true # Revert to previous version if needed
|
|
540
|
+
set_user_identity "your-username" # Set attribution
|
|
541
|
+
get_user_identity # Check current status
|
|
542
|
+
clear_user_identity # Return to anonymous
|
|
365
543
|
```
|
|
366
544
|
|
|
367
|
-
**How Auto-Update Works:**
|
|
368
545
|
|
|
369
|
-
1. **Version Check**: Queries GitHub releases API for latest version
|
|
370
|
-
2. **Backup Creation**: Automatically backs up current installation (including user personas)
|
|
371
|
-
3. **Update Process**:
|
|
372
|
-
- Performs `git pull` to fetch latest code
|
|
373
|
-
- Runs `npm install` for dependency updates
|
|
374
|
-
- Rebuilds TypeScript with `npm run build`
|
|
375
|
-
4. **Verification**: Validates the update succeeded
|
|
376
|
-
5. **Rollback Option**: Keep last 5 backups for easy recovery
|
|
377
546
|
|
|
378
|
-
**Safety Features:**
|
|
379
|
-
- Rate limiting prevents API abuse
|
|
380
|
-
- GPG signature verification (when available)
|
|
381
|
-
- Dependency version validation
|
|
382
|
-
- Automatic backup retention (5 most recent)
|
|
383
|
-
- User personas preserved during updates
|
|
384
547
|
|
|
385
548
|
### Persona Indicators
|
|
386
549
|
DollhouseMCP adds visual indicators to AI responses when a persona is active:
|
|
@@ -407,10 +570,203 @@ export DOLLHOUSE_INDICATOR_STYLE=minimal
|
|
|
407
570
|
export DOLLHOUSE_INDICATOR_EMOJI=🎨
|
|
408
571
|
```
|
|
409
572
|
|
|
573
|
+
## 🔄 Complete Workflows
|
|
574
|
+
|
|
575
|
+
### Setting Up Portfolio from Scratch
|
|
576
|
+
|
|
577
|
+
**Step 1: Initial Setup**
|
|
578
|
+
```
|
|
579
|
+
# Set your user identity for attribution
|
|
580
|
+
set_user_identity "your-username"
|
|
581
|
+
|
|
582
|
+
# Check current portfolio status
|
|
583
|
+
portfolio_status
|
|
584
|
+
|
|
585
|
+
# Initialize a new GitHub portfolio repository
|
|
586
|
+
init_portfolio repoName="my-ai-portfolio"
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
**Step 2: Browse and Install Elements**
|
|
590
|
+
```
|
|
591
|
+
# Browse the community collection
|
|
592
|
+
browse_collection section="library" type="personas"
|
|
593
|
+
browse_collection section="library" type="skills"
|
|
594
|
+
|
|
595
|
+
# Search for specific elements
|
|
596
|
+
search_collection query="code review"
|
|
597
|
+
search_collection_enhanced query="data analysis" elementType="skills" maxResults=5
|
|
598
|
+
|
|
599
|
+
# Install elements you like
|
|
600
|
+
install_element path="library/skills/code-reviewer.md"
|
|
601
|
+
install_element path="library/personas/technical-writer.md"
|
|
602
|
+
install_element path="library/templates/project-update.md"
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
**Step 3: Customize and Activate**
|
|
606
|
+
```
|
|
607
|
+
# Activate installed elements
|
|
608
|
+
activate_element name="code-reviewer" type="skills"
|
|
609
|
+
activate_element name="technical-writer" type="personas"
|
|
610
|
+
|
|
611
|
+
# View your active elements
|
|
612
|
+
get_active_elements
|
|
613
|
+
|
|
614
|
+
# Get details about any element
|
|
615
|
+
get_element_details name="technical-writer" type="personas"
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
**Step 4: Sync and Share**
|
|
619
|
+
```
|
|
620
|
+
# Submit your custom content to GitHub portfolio
|
|
621
|
+
submit_content name="My Assistant"
|
|
622
|
+
|
|
623
|
+
# Sync everything to GitHub
|
|
624
|
+
sync_portfolio direction="push"
|
|
625
|
+
|
|
626
|
+
# Optionally submit personas to community collection
|
|
627
|
+
submit_persona name="My Assistant"
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
### Searching Across All Sources
|
|
631
|
+
|
|
632
|
+
**Unified Search Example**
|
|
633
|
+
```
|
|
634
|
+
# Search everything (local portfolio, GitHub portfolio, community collection)
|
|
635
|
+
search_all query="writing assistant"
|
|
636
|
+
|
|
637
|
+
# Search with filters
|
|
638
|
+
search_all query="code" elementType="skills" maxResults=10
|
|
639
|
+
|
|
640
|
+
# Search specific sources
|
|
641
|
+
search_all query="templates" source="collection" # Collection only
|
|
642
|
+
search_all query="my content" source="local" # Local portfolio only
|
|
643
|
+
search_all query="my content" source="github" # GitHub portfolio only
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
**Advanced Portfolio Search**
|
|
647
|
+
```
|
|
648
|
+
# Search your local portfolio with fuzzy matching
|
|
649
|
+
search_portfolio query="analysi" fuzzyMatch=true # Finds "analysis" elements
|
|
650
|
+
|
|
651
|
+
# Search by element type
|
|
652
|
+
search_portfolio query="email" elementType="templates"
|
|
653
|
+
search_portfolio query="review" elementType="skills"
|
|
654
|
+
|
|
655
|
+
# Get all elements of a type
|
|
656
|
+
list_elements type="personas"
|
|
657
|
+
list_elements type="agents"
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
### Content Submission with Auto-Detection
|
|
661
|
+
|
|
662
|
+
**Smart Element Detection**
|
|
663
|
+
```
|
|
664
|
+
# System automatically detects element type
|
|
665
|
+
submit_content name="code-review" # Finds in skills/
|
|
666
|
+
submit_content name="email-template" # Finds in templates/
|
|
667
|
+
submit_content name="my-persona" # Finds in personas/
|
|
668
|
+
|
|
669
|
+
# Add description for better documentation
|
|
670
|
+
submit_content name="data-analyzer" description="Advanced data analysis skill"
|
|
671
|
+
|
|
672
|
+
# Override auto-detection if needed
|
|
673
|
+
submit_content name="ambiguous-name" elementType="skills"
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
**Batch Content Management**
|
|
677
|
+
```
|
|
678
|
+
# Configure submission settings
|
|
679
|
+
configure_collection_submission autoSubmit=true
|
|
680
|
+
configure_collection_submission defaultLicense="CC-BY-SA-4.0"
|
|
681
|
+
|
|
682
|
+
# Check configuration
|
|
683
|
+
get_collection_submission_config
|
|
684
|
+
|
|
685
|
+
# Submit multiple elements
|
|
686
|
+
submit_content name="skill-1"
|
|
687
|
+
submit_content name="skill-2"
|
|
688
|
+
submit_content name="template-1"
|
|
689
|
+
|
|
690
|
+
# Sync all changes to GitHub
|
|
691
|
+
sync_portfolio
|
|
692
|
+
```
|
|
693
|
+
|
|
694
|
+
### Daily Workflow Example
|
|
695
|
+
|
|
696
|
+
**Morning Setup**
|
|
697
|
+
```
|
|
698
|
+
# Check for updates
|
|
699
|
+
get_build_info section="version"
|
|
700
|
+
portfolio_status
|
|
701
|
+
|
|
702
|
+
# Activate your daily toolkit
|
|
703
|
+
activate_element name="code-reviewer" type="skills"
|
|
704
|
+
activate_element name="professional" type="personas"
|
|
705
|
+
activate_element name="email-template" type="templates"
|
|
706
|
+
|
|
707
|
+
# Check what's active
|
|
708
|
+
get_active_elements
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
**During Work**
|
|
712
|
+
```
|
|
713
|
+
# Use templates for communication
|
|
714
|
+
render_template name="email-template" variables='{"recipient": "team", "subject": "Sprint Update"}'
|
|
715
|
+
|
|
716
|
+
# Deploy agents for tasks
|
|
717
|
+
execute_agent name="project-manager" goal="Review pending tasks and prioritize"
|
|
718
|
+
|
|
719
|
+
# Search for tools as needed
|
|
720
|
+
search_all query="debugging" elementType="skills"
|
|
721
|
+
```
|
|
722
|
+
|
|
723
|
+
**End of Day**
|
|
724
|
+
```
|
|
725
|
+
# Save any new content
|
|
726
|
+
submit_content name="new-skill"
|
|
727
|
+
submit_content name="daily-template"
|
|
728
|
+
|
|
729
|
+
# Sync to GitHub
|
|
730
|
+
sync_portfolio
|
|
731
|
+
|
|
732
|
+
# Check system health
|
|
733
|
+
get_collection_cache_health
|
|
734
|
+
```
|
|
735
|
+
|
|
410
736
|
### GitHub Authentication (v1.5.0+)
|
|
411
737
|
|
|
412
738
|
DollhouseMCP supports GitHub OAuth device flow authentication for enhanced features. **NEW in v1.5.2**: Authentication is now optional - browse and submit anonymously!
|
|
413
739
|
|
|
740
|
+
#### OAuth Setup (For Self-Hosting)
|
|
741
|
+
|
|
742
|
+
If you're self-hosting or developing, you need to configure a GitHub OAuth app:
|
|
743
|
+
|
|
744
|
+
1. **Create GitHub OAuth App**:
|
|
745
|
+
- Go to GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
|
|
746
|
+
- **Application name**: `DollhouseMCP Server`
|
|
747
|
+
- **Homepage URL**: `https://github.com/DollhouseMCP/mcp-server`
|
|
748
|
+
- **Authorization callback URL**: `http://localhost:12345/callback` (required but not used)
|
|
749
|
+
- Click "Register application"
|
|
750
|
+
|
|
751
|
+
2. **Enable Device Flow**:
|
|
752
|
+
- In your OAuth app settings, check ✅ **Enable Device Flow**
|
|
753
|
+
- Copy your Client ID (format: `Ov23liXXXXXXXXXXXXXX`)
|
|
754
|
+
|
|
755
|
+
3. **Configure Environment**:
|
|
756
|
+
```bash
|
|
757
|
+
# Add to your shell profile (.bashrc, .zshrc, etc)
|
|
758
|
+
export DOLLHOUSE_GITHUB_CLIENT_ID="your_client_id_here"
|
|
759
|
+
|
|
760
|
+
# Or in Claude Desktop config:
|
|
761
|
+
"env": {
|
|
762
|
+
"DOLLHOUSE_GITHUB_CLIENT_ID": "your_client_id_here"
|
|
763
|
+
}
|
|
764
|
+
```
|
|
765
|
+
|
|
766
|
+
See [OAuth Setup Guide](docs/setup/OAUTH_SETUP.md) for detailed instructions.
|
|
767
|
+
|
|
768
|
+
#### Using Authentication
|
|
769
|
+
|
|
414
770
|
```
|
|
415
771
|
setup_github_auth # Start OAuth device flow
|
|
416
772
|
check_github_auth # Check authentication status
|
|
@@ -677,7 +1033,6 @@ npm run test:coverage
|
|
|
677
1033
|
npm run test:watch
|
|
678
1034
|
|
|
679
1035
|
# Run specific test suites
|
|
680
|
-
npm run test:auto-update
|
|
681
1036
|
npm run test:personas
|
|
682
1037
|
npm run test:collection
|
|
683
1038
|
```
|
|
@@ -705,10 +1060,6 @@ node dist/index.js --help 2>/dev/null || echo "Server compiled successfully"
|
|
|
705
1060
|
|
|
706
1061
|
# Verify personas directory
|
|
707
1062
|
ls -la personas/
|
|
708
|
-
|
|
709
|
-
# Test auto-update system
|
|
710
|
-
check_for_updates # Use in Claude Desktop
|
|
711
|
-
get_server_status # Check current system status
|
|
712
1063
|
```
|
|
713
1064
|
|
|
714
1065
|
## ☁️ Cloud Deployment
|
|
@@ -776,7 +1127,7 @@ DollhouseMCP/
|
|
|
776
1127
|
│ ├── index.ts # Main MCP server (DollhouseMCPServer)
|
|
777
1128
|
│ ├── cache/ # API caching layer
|
|
778
1129
|
│ ├── config/ # Configuration management
|
|
779
|
-
│ ├──
|
|
1130
|
+
│ ├── collection/ # GitHub collection integration
|
|
780
1131
|
│ ├── persona/ # Persona management core
|
|
781
1132
|
│ ├── security/ # Input validation and security
|
|
782
1133
|
│ ├── server/ # MCP server setup and tools
|
|
@@ -792,7 +1143,6 @@ DollhouseMCP/
|
|
|
792
1143
|
│ └── debug-detective.md
|
|
793
1144
|
├── custom-personas/ # User-created personas (git-ignored)
|
|
794
1145
|
├── docs/ # Documentation
|
|
795
|
-
│ ├── auto-update/ # Auto-update system docs
|
|
796
1146
|
│ └── development/ # Development notes and guides
|
|
797
1147
|
├── scripts/ # Management and utility scripts
|
|
798
1148
|
├── Dockerfile # Multi-stage Docker build
|
|
@@ -934,6 +1284,9 @@ Customize server behavior with these environment variables:
|
|
|
934
1284
|
export DOLLHOUSE_USER="your-username" # User attribution for persona creation
|
|
935
1285
|
export DOLLHOUSE_EMAIL="your-email" # Contact email (optional)
|
|
936
1286
|
|
|
1287
|
+
# GitHub OAuth Configuration
|
|
1288
|
+
export DOLLHOUSE_GITHUB_CLIENT_ID="Ov23li..." # OAuth app client ID (for self-hosting)
|
|
1289
|
+
|
|
937
1290
|
# Directory Configuration
|
|
938
1291
|
export PERSONAS_DIR="/custom/path/to/personas" # Custom personas directory
|
|
939
1292
|
|
|
@@ -1013,11 +1366,10 @@ If you upgraded from v1.4.2, the server will automatically migrate your director
|
|
|
1013
1366
|
npm --version
|
|
1014
1367
|
```
|
|
1015
1368
|
|
|
1016
|
-
5. **
|
|
1369
|
+
5. **Check system status:**
|
|
1017
1370
|
```bash
|
|
1018
1371
|
# Use within Claude Desktop
|
|
1019
|
-
|
|
1020
|
-
get_server_status # View system information
|
|
1372
|
+
get_build_info # Get build and runtime information
|
|
1021
1373
|
```
|
|
1022
1374
|
|
|
1023
1375
|
6. **Validate personas:**
|
|
@@ -1025,6 +1377,11 @@ If you upgraded from v1.4.2, the server will automatically migrate your director
|
|
|
1025
1377
|
|
|
1026
1378
|
## 📚 Documentation
|
|
1027
1379
|
|
|
1380
|
+
### User Guides (START HERE!)
|
|
1381
|
+
- **[🎯 Roundtrip Workflow Guide](docs/guides/ROUNDTRIP_WORKFLOW_USER_GUIDE.md)** - Complete workflow: discover → customize → share
|
|
1382
|
+
- **[📁 Portfolio Setup Guide](docs/guides/PORTFOLIO_SETUP_GUIDE.md)** - Set up your GitHub portfolio step-by-step
|
|
1383
|
+
- **[🔧 Troubleshooting Guide](docs/guides/TROUBLESHOOTING_ROUNDTRIP.md)** - Solutions for common workflow issues
|
|
1384
|
+
|
|
1028
1385
|
### Element System Documentation
|
|
1029
1386
|
- **[Element Architecture](docs/ELEMENT_ARCHITECTURE.md)** - System design and core concepts
|
|
1030
1387
|
- **[Element Types Reference](docs/ELEMENT_TYPES.md)** - Detailed guide for all element types
|
|
@@ -1032,6 +1389,10 @@ If you upgraded from v1.4.2, the server will automatically migrate your director
|
|
|
1032
1389
|
- **[API Reference](docs/API_REFERENCE.md)** - Complete MCP tool documentation
|
|
1033
1390
|
- **[Migration Guide](docs/MIGRATION_TO_PORTFOLIO.md)** - Upgrading from personas-only
|
|
1034
1391
|
|
|
1392
|
+
### Setup & Configuration
|
|
1393
|
+
- **[OAuth Setup Guide](docs/setup/OAUTH_SETUP.md)** - GitHub authentication configuration
|
|
1394
|
+
- **[Anonymous Submission Guide](docs/ANONYMOUS_SUBMISSION_GUIDE.md)** - Use without GitHub authentication
|
|
1395
|
+
|
|
1035
1396
|
### Additional Resources
|
|
1036
1397
|
- **[Security Guidelines](docs/SECURITY.md)** - Security best practices
|
|
1037
1398
|
- **[Contributing Guide](CONTRIBUTING.md)** - How to contribute
|
|
@@ -1130,14 +1491,13 @@ interface DollhouseTool {
|
|
|
1130
1491
|
|
|
1131
1492
|
### Tool Categories
|
|
1132
1493
|
|
|
1133
|
-
####
|
|
1494
|
+
#### Persona Export/Import
|
|
1134
1495
|
```typescript
|
|
1135
|
-
//
|
|
1136
|
-
//
|
|
1137
|
-
//
|
|
1138
|
-
//
|
|
1139
|
-
//
|
|
1140
|
-
// reload_personas - No parameters
|
|
1496
|
+
// export_persona - { persona: string }
|
|
1497
|
+
// export_all_personas - { includeDefaults?: boolean }
|
|
1498
|
+
// import_persona - { source: string, overwrite?: boolean }
|
|
1499
|
+
// share_persona - { persona: string, expiryDays?: number }
|
|
1500
|
+
// import_from_url - { url: string, overwrite?: boolean }
|
|
1141
1501
|
```
|
|
1142
1502
|
|
|
1143
1503
|
#### Collection Integration
|
|
@@ -1156,20 +1516,7 @@ interface DollhouseTool {
|
|
|
1156
1516
|
// clear_user_identity - No parameters
|
|
1157
1517
|
```
|
|
1158
1518
|
|
|
1159
|
-
#### Chat-Based Management
|
|
1160
|
-
```typescript
|
|
1161
|
-
// create_persona - { name: string, description: string, category?: string, instructions: string }
|
|
1162
|
-
// edit_persona - { persona: string, field: string, value: string }
|
|
1163
|
-
// validate_persona - { persona: string }
|
|
1164
|
-
```
|
|
1165
1519
|
|
|
1166
|
-
#### Auto-Update System
|
|
1167
|
-
```typescript
|
|
1168
|
-
// check_for_updates - No parameters
|
|
1169
|
-
// update_server - { confirm: boolean }
|
|
1170
|
-
// rollback_update - { confirm: boolean }
|
|
1171
|
-
// get_server_status - No parameters
|
|
1172
|
-
```
|
|
1173
1520
|
|
|
1174
1521
|
### Error Handling
|
|
1175
1522
|
|
|
@@ -1200,10 +1547,47 @@ This project is licensed under the **AGPL-3.0** License with Platform Stability
|
|
|
1200
1547
|
|
|
1201
1548
|
## 🏷️ Version History
|
|
1202
1549
|
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1550
|
+
### v1.6.0 - August 18, 2025 (Current - Develop Branch)
|
|
1551
|
+
|
|
1552
|
+
**⚠️ Breaking Changes**:
|
|
1553
|
+
- 🔄 **Serialization Format Change** - `BaseElement.serialize()` now returns markdown with YAML frontmatter instead of JSON
|
|
1554
|
+
- Migration: Use new `serializeToJSON()` method for backward compatibility
|
|
1555
|
+
- 🏗️ **Server Initialization** - Portfolio initialization moved from constructor to `run()` method
|
|
1556
|
+
- New `ensureInitialized()` method provides lazy initialization for tests
|
|
1557
|
+
|
|
1558
|
+
**Major New Features**:
|
|
1559
|
+
- 🔍 **Enhanced Portfolio System** (6 new tools):
|
|
1560
|
+
- `portfolio_status` - Check GitHub portfolio status
|
|
1561
|
+
- `init_portfolio` - Create GitHub portfolio repository
|
|
1562
|
+
- `sync_portfolio` - Synchronize local/GitHub repositories
|
|
1563
|
+
- `search_portfolio` - Search with advanced indexing
|
|
1564
|
+
- `search_all` - Unified search across all sources
|
|
1565
|
+
- Complete GitHub integration with indexing
|
|
1566
|
+
- 📊 **Enhanced Collection Search**:
|
|
1567
|
+
- `search_collection_enhanced` - Pagination, filtering, sorting
|
|
1568
|
+
- `get_collection_cache_health` - Cache monitoring
|
|
1569
|
+
- Smart caching with ETags and conditional requests
|
|
1570
|
+
- 🛠️ **System Tools**:
|
|
1571
|
+
- `get_build_info` - Comprehensive build and runtime information
|
|
1572
|
+
- ⚙️ **Collection Configuration**:
|
|
1573
|
+
- `configure_collection_submission` - Auto-submit settings
|
|
1574
|
+
- `get_collection_submission_config` - Check submission config
|
|
1575
|
+
|
|
1576
|
+
**Infrastructure Improvements**:
|
|
1577
|
+
- 🚀 **High-Performance Caching** - Memory-aware LRU cache system
|
|
1578
|
+
- 🔒 **Enhanced Security** - YAML bomb protection, content validation
|
|
1579
|
+
- 📦 **Build Information Service** - Runtime and build info API
|
|
1580
|
+
- 🎯 **Error Handler** - Centralized error management system
|
|
1581
|
+
- 🔄 **Roundtrip Workflow** - Complete content submission cycle
|
|
1582
|
+
|
|
1583
|
+
**Statistics**:
|
|
1584
|
+
- 42 total MCP tools (down from 51 - 9 PersonaTools removed, 5 preserved)
|
|
1585
|
+
- 89 commits ahead of main
|
|
1586
|
+
- 257 files changed
|
|
1587
|
+
- 50,857 lines added
|
|
1588
|
+
- 76 test files modified/added
|
|
1589
|
+
|
|
1590
|
+
### v1.5.1 - August 5, 2025
|
|
1207
1591
|
**Critical Bug Fixes**:
|
|
1208
1592
|
- 🔧 **Fixed OAuth Token Retrieval** - `setup_github_auth` tokens now properly used for API calls
|
|
1209
1593
|
- 🔧 **Fixed Collection Browsing** - Removed legacy category validation blocking browsing
|
|
@@ -1211,7 +1595,6 @@ This project is licensed under the **AGPL-3.0** License with Platform Stability
|
|
|
1211
1595
|
- ✅ **Element System Alignment** - Full consistency with new architecture
|
|
1212
1596
|
|
|
1213
1597
|
### v1.5.0 - August 5, 2025
|
|
1214
|
-
>>>>>>> origin/main
|
|
1215
1598
|
**GitHub OAuth Authentication**:
|
|
1216
1599
|
- 🔐 **OAuth Device Flow** - Secure authentication without manual token management
|
|
1217
1600
|
- 🔒 **AES-256-GCM Encryption** - Tokens encrypted at rest with machine-specific keys
|