@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.
Files changed (272) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +494 -111
  3. package/data/agents/code-reviewer.md +8 -1
  4. package/data/agents/research-assistant.md +8 -1
  5. package/data/agents/task-manager.md +8 -1
  6. package/data/ensembles/business-advisor.md +8 -1
  7. package/data/ensembles/creative-studio.md +8 -1
  8. package/data/ensembles/development-team.md +8 -1
  9. package/data/ensembles/security-analysis-team.md +8 -1
  10. package/data/memories/conversation-history.md +8 -1
  11. package/data/memories/learning-progress.md +8 -1
  12. package/data/memories/project-context.md +8 -1
  13. package/data/personas/business-consultant.md +8 -1
  14. package/data/personas/creative-writer.md +8 -1
  15. package/data/personas/debug-detective.md +8 -1
  16. package/data/personas/eli5-explainer.md +8 -1
  17. package/data/personas/security-analyst.md +8 -1
  18. package/data/personas/technical-analyst.md +8 -1
  19. package/data/skills/code-review.md +8 -1
  20. package/data/skills/creative-writing.md +8 -1
  21. package/data/skills/data-analysis.md +8 -1
  22. package/data/skills/penetration-testing.md +8 -1
  23. package/data/skills/research.md +8 -1
  24. package/data/skills/threat-modeling.md +8 -1
  25. package/data/skills/translation.md +8 -1
  26. package/data/templates/code-documentation.md +8 -1
  27. package/data/templates/email-professional.md +8 -1
  28. package/data/templates/meeting-notes.md +8 -1
  29. package/data/templates/penetration-test-report.md +8 -1
  30. package/data/templates/project-brief.md +8 -1
  31. package/data/templates/report-executive.md +8 -1
  32. package/data/templates/security-vulnerability-report.md +8 -1
  33. package/data/templates/threat-assessment-report.md +8 -1
  34. package/dist/auth/GitHubAuthManager.d.ts +6 -1
  35. package/dist/auth/GitHubAuthManager.d.ts.map +1 -1
  36. package/dist/auth/GitHubAuthManager.js +45 -18
  37. package/dist/benchmarks/IndexPerformanceBenchmark.d.ts +98 -0
  38. package/dist/benchmarks/IndexPerformanceBenchmark.d.ts.map +1 -0
  39. package/dist/benchmarks/IndexPerformanceBenchmark.js +531 -0
  40. package/dist/cache/CollectionCache.d.ts.map +1 -1
  41. package/dist/cache/CollectionCache.js +13 -3
  42. package/dist/cache/CollectionIndexCache.d.ts +77 -0
  43. package/dist/cache/CollectionIndexCache.d.ts.map +1 -0
  44. package/dist/cache/CollectionIndexCache.js +349 -0
  45. package/dist/cache/LRUCache.d.ts +93 -0
  46. package/dist/cache/LRUCache.d.ts.map +1 -0
  47. package/dist/cache/LRUCache.js +299 -0
  48. package/dist/cache/index.d.ts +1 -0
  49. package/dist/cache/index.d.ts.map +1 -1
  50. package/dist/cache/index.js +2 -1
  51. package/dist/collection/CollectionBrowser.d.ts +21 -1
  52. package/dist/collection/CollectionBrowser.d.ts.map +1 -1
  53. package/dist/collection/CollectionBrowser.js +130 -10
  54. package/dist/collection/CollectionIndexManager.d.ts +151 -0
  55. package/dist/collection/CollectionIndexManager.d.ts.map +1 -0
  56. package/dist/collection/CollectionIndexManager.js +499 -0
  57. package/dist/collection/CollectionSearch.d.ts +55 -0
  58. package/dist/collection/CollectionSearch.d.ts.map +1 -1
  59. package/dist/collection/CollectionSearch.js +338 -13
  60. package/dist/collection/CollectionSeeder.d.ts.map +1 -1
  61. package/dist/collection/CollectionSeeder.js +38 -1
  62. package/dist/collection/ElementInstaller.d.ts +31 -0
  63. package/dist/collection/ElementInstaller.d.ts.map +1 -1
  64. package/dist/collection/ElementInstaller.js +77 -15
  65. package/dist/collection/PersonaSubmitter.d.ts +1 -1
  66. package/dist/collection/PersonaSubmitter.d.ts.map +1 -1
  67. package/dist/collection/PersonaSubmitter.js +2 -2
  68. package/dist/collection/index.d.ts +1 -0
  69. package/dist/collection/index.d.ts.map +1 -1
  70. package/dist/collection/index.js +2 -1
  71. package/dist/config/ConfigManager.d.ts +78 -0
  72. package/dist/config/ConfigManager.d.ts.map +1 -0
  73. package/dist/config/ConfigManager.js +216 -0
  74. package/dist/config/element-types.d.ts +135 -0
  75. package/dist/config/element-types.d.ts.map +1 -0
  76. package/dist/config/element-types.js +108 -0
  77. package/dist/config/index.d.ts +2 -0
  78. package/dist/config/index.d.ts.map +1 -1
  79. package/dist/config/index.js +3 -1
  80. package/dist/config/portfolio-constants.d.ts +83 -0
  81. package/dist/config/portfolio-constants.d.ts.map +1 -0
  82. package/dist/config/portfolio-constants.js +99 -0
  83. package/dist/elements/BaseElement.d.ts +14 -2
  84. package/dist/elements/BaseElement.d.ts.map +1 -1
  85. package/dist/elements/BaseElement.js +88 -6
  86. package/dist/elements/agents/Agent.d.ts +10 -1
  87. package/dist/elements/agents/Agent.d.ts.map +1 -1
  88. package/dist/elements/agents/Agent.js +66 -19
  89. package/dist/elements/agents/AgentManager.d.ts +2 -0
  90. package/dist/elements/agents/AgentManager.d.ts.map +1 -1
  91. package/dist/elements/agents/AgentManager.js +12 -10
  92. package/dist/elements/skills/Skill.d.ts +10 -1
  93. package/dist/elements/skills/Skill.d.ts.map +1 -1
  94. package/dist/elements/skills/Skill.js +40 -3
  95. package/dist/elements/skills/SkillManager.d.ts +1 -0
  96. package/dist/elements/skills/SkillManager.d.ts.map +1 -1
  97. package/dist/elements/skills/SkillManager.js +10 -4
  98. package/dist/elements/templates/Template.d.ts +10 -1
  99. package/dist/elements/templates/Template.d.ts.map +1 -1
  100. package/dist/elements/templates/Template.js +35 -18
  101. package/dist/elements/templates/TemplateManager.d.ts +1 -1
  102. package/dist/elements/templates/TemplateManager.d.ts.map +1 -1
  103. package/dist/elements/templates/TemplateManager.js +6 -5
  104. package/dist/generated/version.d.ts +2 -2
  105. package/dist/generated/version.js +3 -3
  106. package/dist/index.barrel.d.ts +1 -2
  107. package/dist/index.barrel.d.ts.map +1 -1
  108. package/dist/index.barrel.js +2 -4
  109. package/dist/index.d.ts +143 -25
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +1883 -310
  112. package/dist/persona/PersonaElement.d.ts +10 -0
  113. package/dist/persona/PersonaElement.d.ts.map +1 -1
  114. package/dist/persona/PersonaElement.js +55 -32
  115. package/dist/persona/PersonaElementManager.d.ts.map +1 -1
  116. package/dist/persona/PersonaElementManager.js +13 -11
  117. package/dist/persona/PersonaLoader.d.ts.map +1 -1
  118. package/dist/persona/PersonaLoader.js +8 -2
  119. package/dist/persona/export-import/PersonaImporter.d.ts.map +1 -1
  120. package/dist/persona/export-import/PersonaImporter.js +24 -5
  121. package/dist/persona/export-import/PersonaSharer.d.ts +21 -0
  122. package/dist/persona/export-import/PersonaSharer.d.ts.map +1 -1
  123. package/dist/persona/export-import/PersonaSharer.js +198 -22
  124. package/dist/portfolio/DefaultElementProvider.d.ts +90 -0
  125. package/dist/portfolio/DefaultElementProvider.d.ts.map +1 -1
  126. package/dist/portfolio/DefaultElementProvider.js +499 -7
  127. package/dist/portfolio/GitHubPortfolioIndexer.d.ts +129 -0
  128. package/dist/portfolio/GitHubPortfolioIndexer.d.ts.map +1 -0
  129. package/dist/portfolio/GitHubPortfolioIndexer.js +475 -0
  130. package/dist/portfolio/MigrationManager.d.ts.map +1 -1
  131. package/dist/portfolio/MigrationManager.js +136 -3
  132. package/dist/portfolio/PortfolioIndexManager.d.ts +130 -0
  133. package/dist/portfolio/PortfolioIndexManager.d.ts.map +1 -0
  134. package/dist/portfolio/PortfolioIndexManager.js +478 -0
  135. package/dist/portfolio/PortfolioManager.d.ts +5 -0
  136. package/dist/portfolio/PortfolioManager.d.ts.map +1 -1
  137. package/dist/portfolio/PortfolioManager.js +61 -20
  138. package/dist/portfolio/PortfolioRepoManager.d.ts +75 -0
  139. package/dist/portfolio/PortfolioRepoManager.d.ts.map +1 -0
  140. package/dist/portfolio/PortfolioRepoManager.js +337 -0
  141. package/dist/portfolio/UnifiedIndexManager.d.ts +388 -0
  142. package/dist/portfolio/UnifiedIndexManager.d.ts.map +1 -0
  143. package/dist/portfolio/UnifiedIndexManager.js +1434 -0
  144. package/dist/portfolio/index.d.ts +15 -0
  145. package/dist/portfolio/index.d.ts.map +1 -0
  146. package/dist/portfolio/index.js +15 -0
  147. package/dist/portfolio/types.d.ts +7 -0
  148. package/dist/portfolio/types.d.ts.map +1 -1
  149. package/dist/portfolio/types.js +6 -1
  150. package/dist/security/InputValidator.d.ts.map +1 -1
  151. package/dist/security/InputValidator.js +50 -48
  152. package/dist/security/audit/SecurityAuditor.d.ts.map +1 -1
  153. package/dist/security/audit/SecurityAuditor.js +17 -9
  154. package/dist/security/audit/config/suppressions.d.ts.map +1 -1
  155. package/dist/security/audit/config/suppressions.js +19 -3
  156. package/dist/security/contentValidator.d.ts +2 -0
  157. package/dist/security/contentValidator.d.ts.map +1 -1
  158. package/dist/security/contentValidator.js +115 -4
  159. package/dist/security/secureYamlParser.d.ts +1 -0
  160. package/dist/security/secureYamlParser.d.ts.map +1 -1
  161. package/dist/security/secureYamlParser.js +29 -7
  162. package/dist/security/securityMonitor.d.ts +1 -1
  163. package/dist/security/securityMonitor.d.ts.map +1 -1
  164. package/dist/security/securityMonitor.js +1 -1
  165. package/dist/security/tokenManager.d.ts +1 -1
  166. package/dist/security/tokenManager.d.ts.map +1 -1
  167. package/dist/security/tokenManager.js +30 -10
  168. package/dist/server/ServerSetup.d.ts +22 -2
  169. package/dist/server/ServerSetup.d.ts.map +1 -1
  170. package/dist/server/ServerSetup.js +77 -12
  171. package/dist/server/tools/AuthTools.d.ts.map +1 -1
  172. package/dist/server/tools/AuthTools.js +33 -1
  173. package/dist/server/tools/BuildInfoTools.d.ts +25 -0
  174. package/dist/server/tools/BuildInfoTools.d.ts.map +1 -0
  175. package/dist/server/tools/BuildInfoTools.js +36 -0
  176. package/dist/server/tools/CollectionTools.d.ts.map +1 -1
  177. package/dist/server/tools/CollectionTools.js +55 -46
  178. package/dist/server/tools/ConfigTools.d.ts.map +1 -1
  179. package/dist/server/tools/ConfigTools.js +29 -1
  180. package/dist/server/tools/PersonaTools.d.ts +4 -2
  181. package/dist/server/tools/PersonaTools.d.ts.map +1 -1
  182. package/dist/server/tools/PersonaTools.js +5 -152
  183. package/dist/server/tools/PortfolioTools.d.ts +12 -0
  184. package/dist/server/tools/PortfolioTools.d.ts.map +1 -0
  185. package/dist/server/tools/PortfolioTools.js +221 -0
  186. package/dist/server/tools/index.d.ts +3 -1
  187. package/dist/server/tools/index.d.ts.map +1 -1
  188. package/dist/server/tools/index.js +4 -2
  189. package/dist/server/types.d.ts +40 -5
  190. package/dist/server/types.d.ts.map +1 -1
  191. package/dist/server/types.js +1 -1
  192. package/dist/services/BuildInfoService.d.ts +84 -0
  193. package/dist/services/BuildInfoService.d.ts.map +1 -0
  194. package/dist/services/BuildInfoService.js +271 -0
  195. package/dist/tools/portfolio/PortfolioElementAdapter.d.ts +54 -0
  196. package/dist/tools/portfolio/PortfolioElementAdapter.d.ts.map +1 -0
  197. package/dist/tools/portfolio/PortfolioElementAdapter.js +229 -0
  198. package/dist/tools/portfolio/submitToPortfolioTool.d.ts +164 -0
  199. package/dist/tools/portfolio/submitToPortfolioTool.d.ts.map +1 -0
  200. package/dist/tools/portfolio/submitToPortfolioTool.js +1523 -0
  201. package/dist/tools/portfolio/types.d.ts +41 -0
  202. package/dist/tools/portfolio/types.d.ts.map +1 -0
  203. package/dist/tools/portfolio/types.js +15 -0
  204. package/dist/types/collection.d.ts +51 -0
  205. package/dist/types/collection.d.ts.map +1 -1
  206. package/dist/types/collection.js +1 -1
  207. package/dist/utils/EarlyTerminationSearch.d.ts +41 -0
  208. package/dist/utils/EarlyTerminationSearch.d.ts.map +1 -0
  209. package/dist/utils/EarlyTerminationSearch.js +164 -0
  210. package/dist/utils/ErrorHandler.d.ts +86 -0
  211. package/dist/utils/ErrorHandler.d.ts.map +1 -0
  212. package/dist/utils/ErrorHandler.js +201 -0
  213. package/dist/utils/FileDiscoveryUtil.d.ts +53 -0
  214. package/dist/utils/FileDiscoveryUtil.d.ts.map +1 -0
  215. package/dist/utils/FileDiscoveryUtil.js +169 -0
  216. package/dist/utils/GitHubRateLimiter.d.ts +88 -0
  217. package/dist/utils/GitHubRateLimiter.d.ts.map +1 -0
  218. package/dist/utils/GitHubRateLimiter.js +315 -0
  219. package/dist/utils/PerformanceMonitor.d.ts +134 -0
  220. package/dist/utils/PerformanceMonitor.d.ts.map +1 -0
  221. package/dist/utils/PerformanceMonitor.js +347 -0
  222. package/dist/utils/RateLimiter.d.ts.map +1 -0
  223. package/dist/utils/RateLimiter.js +172 -0
  224. package/dist/utils/SecureDownloader.d.ts +241 -0
  225. package/dist/utils/SecureDownloader.d.ts.map +1 -0
  226. package/dist/utils/SecureDownloader.js +759 -0
  227. package/dist/utils/ToolCache.d.ts +82 -0
  228. package/dist/utils/ToolCache.d.ts.map +1 -0
  229. package/dist/utils/ToolCache.js +196 -0
  230. package/dist/utils/errorCodes.d.ts +136 -0
  231. package/dist/utils/errorCodes.d.ts.map +1 -0
  232. package/dist/utils/errorCodes.js +87 -0
  233. package/dist/utils/index.d.ts +3 -0
  234. package/dist/utils/index.d.ts.map +1 -1
  235. package/dist/utils/index.js +4 -1
  236. package/dist/utils/installation.d.ts +1 -1
  237. package/dist/utils/installation.d.ts.map +1 -1
  238. package/dist/utils/installation.js +9 -8
  239. package/dist/utils/searchUtils.d.ts +31 -0
  240. package/dist/utils/searchUtils.d.ts.map +1 -1
  241. package/dist/utils/searchUtils.js +62 -1
  242. package/package.json +17 -7
  243. package/dist/config/updateConfig.d.ts +0 -84
  244. package/dist/config/updateConfig.d.ts.map +0 -1
  245. package/dist/config/updateConfig.js +0 -148
  246. package/dist/server/tools/UpdateTools.d.ts +0 -10
  247. package/dist/server/tools/UpdateTools.d.ts.map +0 -1
  248. package/dist/server/tools/UpdateTools.js +0 -85
  249. package/dist/update/BackupManager.d.ts +0 -63
  250. package/dist/update/BackupManager.d.ts.map +0 -1
  251. package/dist/update/BackupManager.js +0 -370
  252. package/dist/update/DependencyChecker.d.ts +0 -41
  253. package/dist/update/DependencyChecker.d.ts.map +0 -1
  254. package/dist/update/DependencyChecker.js +0 -132
  255. package/dist/update/RateLimiter.d.ts.map +0 -1
  256. package/dist/update/RateLimiter.js +0 -172
  257. package/dist/update/SignatureVerifier.d.ts +0 -71
  258. package/dist/update/SignatureVerifier.d.ts.map +0 -1
  259. package/dist/update/SignatureVerifier.js +0 -214
  260. package/dist/update/UpdateChecker.d.ts +0 -132
  261. package/dist/update/UpdateChecker.d.ts.map +0 -1
  262. package/dist/update/UpdateChecker.js +0 -506
  263. package/dist/update/UpdateManager.d.ts +0 -60
  264. package/dist/update/UpdateManager.d.ts.map +0 -1
  265. package/dist/update/UpdateManager.js +0 -730
  266. package/dist/update/VersionManager.d.ts +0 -31
  267. package/dist/update/VersionManager.d.ts.map +0 -1
  268. package/dist/update/VersionManager.js +0 -181
  269. package/dist/update/index.d.ts +0 -9
  270. package/dist/update/index.d.ts.map +0 -1
  271. package/dist/update/index.js +0 -9
  272. /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
+ [![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-green)](https://modelcontextprotocol.io)
5
+ [![npm version](https://img.shields.io/npm/v/@dollhousemcp/mcp-server.svg)](https://www.npmjs.com/package/@dollhousemcp/mcp-server)
6
+ [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
7
+ [![GitHub Views](https://komarev.com/ghpvc/?username=DollhouseMCP&repo=mcp-server&label=Repository+Views&style=flat)](https://github.com/DollhouseMCP/mcp-server)
8
+
9
+ ## Build & Quality
3
10
  [![Core Build & Test](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml/badge.svg)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml)
4
11
  [![Build Artifacts](https://github.com/DollhouseMCP/mcp-server/actions/workflows/build-artifacts.yml/badge.svg)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/build-artifacts.yml)
5
- [![Extended Node Compatibility](https://github.com/DollhouseMCP/mcp-server/actions/workflows/extended-node-compatibility.yml/badge.svg)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/extended-node-compatibility.yml)
6
- [![Docker Testing](https://github.com/DollhouseMCP/mcp-server/actions/workflows/docker-testing.yml/badge.svg)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/docker-testing.yml)
7
- [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
8
- [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
9
- [![Node.js](https://img.shields.io/badge/Node.js-339933?logo=nodedotjs&logoColor=white)](https://nodejs.org/)
12
+ [![Test Coverage](https://img.shields.io/badge/Coverage-1858%2B%20Tests-green)](https://github.com/DollhouseMCP/mcp-server/tree/main/__tests__)
13
+ [![Enterprise-Grade Security](https://img.shields.io/badge/Security-Enterprise%20Grade-purple)](docs/SECURITY.md)
10
14
 
11
15
  ## Platform Support
12
-
13
16
  [![Windows Build Status](https://img.shields.io/badge/Windows-✓_Tested-0078D4?logo=windows&logoColor=white)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "Windows CI Build Status")
14
17
  [![macOS Build Status](https://img.shields.io/badge/macOS-✓_Tested-000000?logo=apple&logoColor=white)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "macOS CI Build Status")
15
18
  [![Linux Build Status](https://img.shields.io/badge/Linux-✓_Tested-FCC624?logo=linux&logoColor=black)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "Linux CI Build Status")
16
19
  [![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?logo=docker&logoColor=white)](https://github.com/DollhouseMCP/mcp-server/blob/main/Dockerfile)
17
- [![Test Coverage](https://img.shields.io/badge/Coverage-600%2B%20Tests-green)](https://github.com/DollhouseMCP/mcp-server/tree/main/__tests__)
18
- [![Auto-Update](https://img.shields.io/badge/Auto--Update-Enterprise%20Grade-purple)](https://github.com/DollhouseMCP/mcp-server)
20
+
21
+ ## Technology
22
+ [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
23
+ [![Node.js](https://img.shields.io/badge/Node.js-339933?logo=nodedotjs&logoColor=white)](https://nodejs.org/)
24
+ [![Extended Node Compatibility](https://github.com/DollhouseMCP/mcp-server/actions/workflows/extended-node-compatibility.yml/badge.svg)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/extended-node-compatibility.yml)
25
+ [![Docker Testing](https://github.com/DollhouseMCP/mcp-server/actions/workflows/docker-testing.yml/badge.svg)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/docker-testing.yml)
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.5.2
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
- > **🎉 New in v1.5.2**: Anonymous collection browsing and submission! No GitHub authentication required for basic usage. See [Anonymous Submission Guide](docs/ANONYMOUS_SUBMISSION_GUIDE.md) for details.
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 `list_personas` to get started.
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
- | 🎭 **49 MCP Tools** | Complete portfolio element management through chat interface |
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. Your portfolio is your personal collection of AI customization elements that enhance and tailor your AI experience.
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
- | 🧠 **Memory** | Persistent context storage with retention policies and search capabilities | ✅ Available |
87
- | 🎯 **Ensemble** | Orchestrate multiple elements together as one unified entity | ✅ Available |
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
- ### Legacy Persona Tools
209
+ ### Persona Management via ElementTools
139
210
 
140
- For backward compatibility, the original persona-specific tools still work:
141
- - `list_personas` → calls `list_elements type="personas"`
142
- - `activate_persona` calls `activate_element type="personas"`
143
- - `get_active_persona` → calls `get_active_elements type="personas"`
144
- - etc.
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 @mickdarling/dollhousemcp
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 49 DollhouseMCP tools will be available
350
+ 3. All 42 DollhouseMCP tools will be available
276
351
 
277
- ## 🛠️ Available Tools (49 Total)
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
- ### Core Persona Management (Legacy - Still Supported)
292
- - **`list_personas`** - Display all local personas with enhanced metadata
293
- - **`activate_persona`** - Activate by name, filename, or unique ID
294
- - **`get_active_persona`** - Get current persona information
295
- - **`deactivate_persona`** - Return to default mode
296
- - **`get_persona_details`** - View complete persona details
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
- ### Auto-Update System
317
- - **`check_for_updates`** - Check GitHub releases for available DollhouseMCP updates
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
- browse_collection(section="library", type="personas") # Browse all personas
336
- browse_collection(section="library", type="skills") # Browse skills
337
- search_collection "writing" # Search for writing personas
338
- install_element "library/personas/storyteller.md" # Install from collection
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
- ### Persona Creation & Management
438
+ ### Portfolio Workflow (NEW!)
342
439
  ```
343
- create_persona "Study Buddy" "A helpful tutor" "educational" "You are a patient tutor..."
344
- edit_persona "Study Buddy" "description" "An encouraging academic mentor"
345
- validate_persona "Study Buddy" # Check quality and format
346
- submit_persona "Study Buddy" # Share with community
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
- ### User Identity
473
+ ### Portfolio Element Management
350
474
  ```
351
- set_user_identity "your-username" # Set attribution
352
- get_user_identity # Check current status
353
- clear_user_identity # Return to anonymous
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
- ### Auto-Update Operations
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
- The auto-update system provides enterprise-grade update management with safety features:
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
- check_for_updates # Check for new DollhouseMCP versions
362
- get_server_status # View current version and system info
363
- update_server true # Perform automated update with backup
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
- │ ├── marketplace/ # GitHub collection integration
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. **Test auto-update system:**
1369
+ 5. **Check system status:**
1017
1370
  ```bash
1018
1371
  # Use within Claude Desktop
1019
- check_for_updates # Check for available updates
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
- #### Core Persona Management
1494
+ #### Persona Export/Import
1134
1495
  ```typescript
1135
- // list_personas - No parameters
1136
- // activate_persona - { persona: string }
1137
- // get_active_persona - No parameters
1138
- // deactivate_persona - No parameters
1139
- // get_persona_details - { persona: string }
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
- <<<<<<< HEAD
1204
- ### v1.5.0 - August 5, 2025 (Current)
1205
- =======
1206
- ### v1.5.1 - August 5, 2025 (Current)
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