@dollhousemcp/mcp-server 1.9.2 → 1.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Get Welcome Message Tool
3
+ *
4
+ * A dedicated MCP tool that returns the welcome message
5
+ * This gives us more control over how the message is presented
6
+ */
7
+ import { ConfigManager } from '../config/ConfigManager.js';
8
+ export class GetWelcomeMessageTool {
9
+ configManager;
10
+ constructor() {
11
+ this.configManager = ConfigManager.getInstance();
12
+ }
13
+ /**
14
+ * Get the welcome message directly as a tool response
15
+ * This bypasses the response wrapping and gives us full control
16
+ */
17
+ async execute(options = {}) {
18
+ await this.configManager.initialize();
19
+ const config = this.configManager.getConfig();
20
+ // Check if we should show the welcome message
21
+ if (!options.skipCheck) {
22
+ if (config.wizard?.completed || config.wizard?.dismissed) {
23
+ return {
24
+ content: [{
25
+ type: "text",
26
+ text: "Welcome back to DollhouseMCP! The wizard has already been completed. Use 'Open configuration wizard' if you want to reconfigure."
27
+ }]
28
+ };
29
+ }
30
+ }
31
+ const welcomeMessage = `🎨 **Welcome to DollhouseMCP!**
32
+
33
+ Hi there! I see this is your first time here. DollhouseMCP helps you create powerful customization elements for your AI assistant - and it's easier than you might think!
34
+
35
+ **What can you do with DollhouseMCP?**
36
+
37
+ 🎭 **Personas** - Change your AI's personality (make it funny, professional, creative, or anything you imagine)
38
+ 💡 **Skills** - Give your AI new abilities like taking meeting notes, reviewing code, or organizing your thoughts
39
+ 📝 **Templates** - Create reusable formats for emails, documentation, resumes, and more
40
+ 🤖 **Agents** - Build smart assistants that handle specific tasks automatically
41
+ ✨ **And more!** - Just describe what you want, and DollhouseMCP will help you create it
42
+
43
+ The best part? Everything you create is saved and persistent. Your custom tools and assistants will be there whenever you need them. You can modify them anytime just by asking!
44
+
45
+ **Need ideas?** Just ask "What would be the best way to..." and I'll help you figure out the perfect solution.
46
+
47
+ **Ready to get started?** I'll help you:
48
+ - Choose a username (this tags your creations so you can find them later - or stay anonymous, that's totally fine!)
49
+ - Set up your workspace for saving all your customizations
50
+ - Browse examples to spark your creativity
51
+ - Create your first customization element
52
+
53
+ Just say:
54
+ - "Yes" or "Let's get started" → I'll guide you through setup
55
+ - "Skip for now" → You can set up later when you're ready
56
+ - "I'll stay anonymous" → Perfect! You can use everything without signing in
57
+
58
+ **What's a username for?** It simply tags your creations (like "created by: you") so you can find them easily. Staying anonymous means your creations are tagged with a fun random ID instead (like "created by: clever-fox"). Either way, all your work is saved locally on your computer!
59
+
60
+ Don't worry - this only takes a minute, and you can change any settings later! 🌟`;
61
+ // Return the message in the requested format
62
+ if (options.format === 'raw') {
63
+ // Just the text, no formatting
64
+ return welcomeMessage;
65
+ }
66
+ else if (options.format === 'markdown') {
67
+ // Return as markdown code block
68
+ return {
69
+ content: [{
70
+ type: "text",
71
+ text: "```markdown\n" + welcomeMessage + "\n```"
72
+ }]
73
+ };
74
+ }
75
+ else {
76
+ // Default: Return as clean text with instruction
77
+ return {
78
+ content: [{
79
+ type: "text",
80
+ text: welcomeMessage
81
+ }]
82
+ };
83
+ }
84
+ }
85
+ /**
86
+ * Tool definition for MCP
87
+ */
88
+ static get definition() {
89
+ return {
90
+ name: "dollhouse_welcome",
91
+ description: "Get the DollhouseMCP welcome message for first-time users",
92
+ inputSchema: {
93
+ type: "object",
94
+ properties: {
95
+ format: {
96
+ type: "string",
97
+ enum: ["text", "markdown", "raw"],
98
+ description: "Format for the welcome message (default: text)"
99
+ },
100
+ skipCheck: {
101
+ type: "boolean",
102
+ description: "Skip checking if wizard was already completed (default: false)"
103
+ }
104
+ }
105
+ }
106
+ };
107
+ }
108
+ }
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0V2VsY29tZU1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMvZ2V0V2VsY29tZU1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFPM0QsTUFBTSxPQUFPLHFCQUFxQjtJQUN4QixhQUFhLENBQWdCO0lBRXJDO1FBQ0UsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBb0MsRUFBRTtRQUNsRCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUU5Qyw4Q0FBOEM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN2QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7Z0JBQ3pELE9BQU87b0JBQ0wsT0FBTyxFQUFFLENBQUM7NEJBQ1IsSUFBSSxFQUFFLE1BQU07NEJBQ1osSUFBSSxFQUFFLGtJQUFrSTt5QkFDekksQ0FBQztpQkFDSCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0ZBNkJ1RCxDQUFDO1FBRS9FLDZDQUE2QztRQUM3QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDN0IsK0JBQStCO1lBQy9CLE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDekMsZ0NBQWdDO1lBQ2hDLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLENBQUM7d0JBQ1IsSUFBSSxFQUFFLE1BQU07d0JBQ1osSUFBSSxFQUFFLGVBQWUsR0FBRyxjQUFjLEdBQUcsT0FBTztxQkFDakQsQ0FBQzthQUNILENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLGlEQUFpRDtZQUNqRCxPQUFPO2dCQUNMLE9BQU8sRUFBRSxDQUFDO3dCQUNSLElBQUksRUFBRSxNQUFNO3dCQUNaLElBQUksRUFBRSxjQUFjO3FCQUNyQixDQUFDO2FBQ0gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLEtBQUssVUFBVTtRQUNuQixPQUFPO1lBQ0wsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixXQUFXLEVBQUUsMkRBQTJEO1lBQ3hFLFdBQVcsRUFBRTtnQkFDWCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxVQUFVLEVBQUU7b0JBQ1YsTUFBTSxFQUFFO3dCQUNOLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDO3dCQUNqQyxXQUFXLEVBQUUsZ0RBQWdEO3FCQUM5RDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsV0FBVyxFQUFFLGdFQUFnRTtxQkFDOUU7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldCBXZWxjb21lIE1lc3NhZ2UgVG9vbFxuICogXG4gKiBBIGRlZGljYXRlZCBNQ1AgdG9vbCB0aGF0IHJldHVybnMgdGhlIHdlbGNvbWUgbWVzc2FnZVxuICogVGhpcyBnaXZlcyB1cyBtb3JlIGNvbnRyb2wgb3ZlciBob3cgdGhlIG1lc3NhZ2UgaXMgcHJlc2VudGVkXG4gKi9cblxuaW1wb3J0IHsgQ29uZmlnTWFuYWdlciB9IGZyb20gJy4uL2NvbmZpZy9Db25maWdNYW5hZ2VyLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBHZXRXZWxjb21lTWVzc2FnZU9wdGlvbnMge1xuICBmb3JtYXQ/OiAndGV4dCcgfCAnbWFya2Rvd24nIHwgJ3Jhdyc7XG4gIHNraXBDaGVjaz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRXZWxjb21lTWVzc2FnZVRvb2wge1xuICBwcml2YXRlIGNvbmZpZ01hbmFnZXI6IENvbmZpZ01hbmFnZXI7XG4gIFxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNvbmZpZ01hbmFnZXIgPSBDb25maWdNYW5hZ2VyLmdldEluc3RhbmNlKCk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBHZXQgdGhlIHdlbGNvbWUgbWVzc2FnZSBkaXJlY3RseSBhcyBhIHRvb2wgcmVzcG9uc2VcbiAgICogVGhpcyBieXBhc3NlcyB0aGUgcmVzcG9uc2Ugd3JhcHBpbmcgYW5kIGdpdmVzIHVzIGZ1bGwgY29udHJvbFxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZShvcHRpb25zOiBHZXRXZWxjb21lTWVzc2FnZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgYXdhaXQgdGhpcy5jb25maWdNYW5hZ2VyLmluaXRpYWxpemUoKTtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZ01hbmFnZXIuZ2V0Q29uZmlnKCk7XG4gICAgXG4gICAgLy8gQ2hlY2sgaWYgd2Ugc2hvdWxkIHNob3cgdGhlIHdlbGNvbWUgbWVzc2FnZVxuICAgIGlmICghb3B0aW9ucy5za2lwQ2hlY2spIHtcbiAgICAgIGlmIChjb25maWcud2l6YXJkPy5jb21wbGV0ZWQgfHwgY29uZmlnLndpemFyZD8uZGlzbWlzc2VkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW3tcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgdGV4dDogXCJXZWxjb21lIGJhY2sgdG8gRG9sbGhvdXNlTUNQISBUaGUgd2l6YXJkIGhhcyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLiBVc2UgJ09wZW4gY29uZmlndXJhdGlvbiB3aXphcmQnIGlmIHlvdSB3YW50IHRvIHJlY29uZmlndXJlLlwiXG4gICAgICAgICAgfV1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgY29uc3Qgd2VsY29tZU1lc3NhZ2UgPSBg8J+OqCAqKldlbGNvbWUgdG8gRG9sbGhvdXNlTUNQISoqXG5cbkhpIHRoZXJlISBJIHNlZSB0aGlzIGlzIHlvdXIgZmlyc3QgdGltZSBoZXJlLiBEb2xsaG91c2VNQ1AgaGVscHMgeW91IGNyZWF0ZSBwb3dlcmZ1bCBjdXN0b21pemF0aW9uIGVsZW1lbnRzIGZvciB5b3VyIEFJIGFzc2lzdGFudCAtIGFuZCBpdCdzIGVhc2llciB0aGFuIHlvdSBtaWdodCB0aGluayFcblxuKipXaGF0IGNhbiB5b3UgZG8gd2l0aCBEb2xsaG91c2VNQ1A/Kipcblxu8J+OrSAqKlBlcnNvbmFzKiogLSBDaGFuZ2UgeW91ciBBSSdzIHBlcnNvbmFsaXR5IChtYWtlIGl0IGZ1bm55LCBwcm9mZXNzaW9uYWwsIGNyZWF0aXZlLCBvciBhbnl0aGluZyB5b3UgaW1hZ2luZSlcbvCfkqEgKipTa2lsbHMqKiAtIEdpdmUgeW91ciBBSSBuZXcgYWJpbGl0aWVzIGxpa2UgdGFraW5nIG1lZXRpbmcgbm90ZXMsIHJldmlld2luZyBjb2RlLCBvciBvcmdhbml6aW5nIHlvdXIgdGhvdWdodHNcbvCfk50gKipUZW1wbGF0ZXMqKiAtIENyZWF0ZSByZXVzYWJsZSBmb3JtYXRzIGZvciBlbWFpbHMsIGRvY3VtZW50YXRpb24sIHJlc3VtZXMsIGFuZCBtb3JlXG7wn6SWICoqQWdlbnRzKiogLSBCdWlsZCBzbWFydCBhc3Npc3RhbnRzIHRoYXQgaGFuZGxlIHNwZWNpZmljIHRhc2tzIGF1dG9tYXRpY2FsbHlcbuKcqCAqKkFuZCBtb3JlISoqIC0gSnVzdCBkZXNjcmliZSB3aGF0IHlvdSB3YW50LCBhbmQgRG9sbGhvdXNlTUNQIHdpbGwgaGVscCB5b3UgY3JlYXRlIGl0XG5cblRoZSBiZXN0IHBhcnQ/IEV2ZXJ5dGhpbmcgeW91IGNyZWF0ZSBpcyBzYXZlZCBhbmQgcGVyc2lzdGVudC4gWW91ciBjdXN0b20gdG9vbHMgYW5kIGFzc2lzdGFudHMgd2lsbCBiZSB0aGVyZSB3aGVuZXZlciB5b3UgbmVlZCB0aGVtLiBZb3UgY2FuIG1vZGlmeSB0aGVtIGFueXRpbWUganVzdCBieSBhc2tpbmchXG5cbioqTmVlZCBpZGVhcz8qKiBKdXN0IGFzayBcIldoYXQgd291bGQgYmUgdGhlIGJlc3Qgd2F5IHRvLi4uXCIgYW5kIEknbGwgaGVscCB5b3UgZmlndXJlIG91dCB0aGUgcGVyZmVjdCBzb2x1dGlvbi5cblxuKipSZWFkeSB0byBnZXQgc3RhcnRlZD8qKiBJJ2xsIGhlbHAgeW91OlxuLSBDaG9vc2UgYSB1c2VybmFtZSAodGhpcyB0YWdzIHlvdXIgY3JlYXRpb25zIHNvIHlvdSBjYW4gZmluZCB0aGVtIGxhdGVyIC0gb3Igc3RheSBhbm9ueW1vdXMsIHRoYXQncyB0b3RhbGx5IGZpbmUhKVxuLSBTZXQgdXAgeW91ciB3b3Jrc3BhY2UgZm9yIHNhdmluZyBhbGwgeW91ciBjdXN0b21pemF0aW9uc1xuLSBCcm93c2UgZXhhbXBsZXMgdG8gc3BhcmsgeW91ciBjcmVhdGl2aXR5XG4tIENyZWF0ZSB5b3VyIGZpcnN0IGN1c3RvbWl6YXRpb24gZWxlbWVudFxuXG5KdXN0IHNheTpcbi0gXCJZZXNcIiBvciBcIkxldCdzIGdldCBzdGFydGVkXCIg4oaSIEknbGwgZ3VpZGUgeW91IHRocm91Z2ggc2V0dXBcbi0gXCJTa2lwIGZvciBub3dcIiDihpIgWW91IGNhbiBzZXQgdXAgbGF0ZXIgd2hlbiB5b3UncmUgcmVhZHlcbi0gXCJJJ2xsIHN0YXkgYW5vbnltb3VzXCIg4oaSIFBlcmZlY3QhIFlvdSBjYW4gdXNlIGV2ZXJ5dGhpbmcgd2l0aG91dCBzaWduaW5nIGluXG5cbioqV2hhdCdzIGEgdXNlcm5hbWUgZm9yPyoqIEl0IHNpbXBseSB0YWdzIHlvdXIgY3JlYXRpb25zIChsaWtlIFwiY3JlYXRlZCBieTogeW91XCIpIHNvIHlvdSBjYW4gZmluZCB0aGVtIGVhc2lseS4gU3RheWluZyBhbm9ueW1vdXMgbWVhbnMgeW91ciBjcmVhdGlvbnMgYXJlIHRhZ2dlZCB3aXRoIGEgZnVuIHJhbmRvbSBJRCBpbnN0ZWFkIChsaWtlIFwiY3JlYXRlZCBieTogY2xldmVyLWZveFwiKS4gRWl0aGVyIHdheSwgYWxsIHlvdXIgd29yayBpcyBzYXZlZCBsb2NhbGx5IG9uIHlvdXIgY29tcHV0ZXIhXG5cbkRvbid0IHdvcnJ5IC0gdGhpcyBvbmx5IHRha2VzIGEgbWludXRlLCBhbmQgeW91IGNhbiBjaGFuZ2UgYW55IHNldHRpbmdzIGxhdGVyISDwn4yfYDtcbiAgICBcbiAgICAvLyBSZXR1cm4gdGhlIG1lc3NhZ2UgaW4gdGhlIHJlcXVlc3RlZCBmb3JtYXRcbiAgICBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdyYXcnKSB7XG4gICAgICAvLyBKdXN0IHRoZSB0ZXh0LCBubyBmb3JtYXR0aW5nXG4gICAgICByZXR1cm4gd2VsY29tZU1lc3NhZ2U7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmZvcm1hdCA9PT0gJ21hcmtkb3duJykge1xuICAgICAgLy8gUmV0dXJuIGFzIG1hcmtkb3duIGNvZGUgYmxvY2tcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgdGV4dDogXCJgYGBtYXJrZG93blxcblwiICsgd2VsY29tZU1lc3NhZ2UgKyBcIlxcbmBgYFwiXG4gICAgICAgIH1dXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBEZWZhdWx0OiBSZXR1cm4gYXMgY2xlYW4gdGV4dCB3aXRoIGluc3RydWN0aW9uXG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgIHRleHQ6IHdlbGNvbWVNZXNzYWdlXG4gICAgICAgIH1dXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBcbiAgLyoqXG4gICAqIFRvb2wgZGVmaW5pdGlvbiBmb3IgTUNQXG4gICAqL1xuICBzdGF0aWMgZ2V0IGRlZmluaXRpb24oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IFwiZG9sbGhvdXNlX3dlbGNvbWVcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkdldCB0aGUgRG9sbGhvdXNlTUNQIHdlbGNvbWUgbWVzc2FnZSBmb3IgZmlyc3QtdGltZSB1c2Vyc1wiLFxuICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGZvcm1hdDoge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGVudW06IFtcInRleHRcIiwgXCJtYXJrZG93blwiLCBcInJhd1wiXSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkZvcm1hdCBmb3IgdGhlIHdlbGNvbWUgbWVzc2FnZSAoZGVmYXVsdDogdGV4dClcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2tpcENoZWNrOiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlNraXAgY2hlY2tpbmcgaWYgd2l6YXJkIHdhcyBhbHJlYWR5IGNvbXBsZXRlZCAoZGVmYXVsdDogZmFsc2UpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG59Il19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dollhousemcp/mcp-server",
3
- "version": "1.9.2",
3
+ "version": "1.9.3",
4
4
  "description": "DollhouseMCP - A Model Context Protocol (MCP) server that enables dynamic AI persona management from markdown files, allowing Claude and other compatible AI assistants to activate and switch between different behavioral personas.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",