UNPKG

@mickdarling/dollhousemcp

Version:

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.

75 lines 14.6 kB
/** * Type definitions for MCP-related structures */ import { z } from 'zod'; // Re-export ErrorCode from MCP SDK export { ErrorCode } from '@modelcontextprotocol/sdk/types.js'; // Tool parameter schemas export const ListPersonasArgsSchema = z.object({}); export const ActivatePersonaArgsSchema = z.object({ identifier: z.string().describe("Persona name, filename, or unique ID") }); export const GetActivePersonaArgsSchema = z.object({}); export const DeactivatePersonaArgsSchema = z.object({}); export const GetPersonaDetailsArgsSchema = z.object({ identifier: z.string().describe("Persona name, filename, or unique ID") }); export const ReloadPersonasArgsSchema = z.object({}); export const BrowseMarketplaceArgsSchema = z.object({ category: z.string().optional().describe("Category to browse (creative, professional, etc.)") }); export const SearchMarketplaceArgsSchema = z.object({ query: z.string().describe("Search query") }); export const GetMarketplacePersonaArgsSchema = z.object({ path: z.string().describe("Path to the persona file in the marketplace repository") }); export const InstallPersonaArgsSchema = z.object({ path: z.string().describe("Path to the persona file in the marketplace repository") }); export const SubmitPersonaArgsSchema = z.object({ persona_name: z.string().describe("Name of the local persona to submit") }); export const SetUserIdentityArgsSchema = z.object({ username: z.string().describe("Your username for persona attribution"), email: z.string().optional().describe("Your email address (optional)") }); export const GetUserIdentityArgsSchema = z.object({}); export const ClearUserIdentityArgsSchema = z.object({}); export const CreatePersonaArgsSchema = z.object({ name: z.string().describe("Name for the new persona"), description: z.string().describe("Brief description of the persona"), category: z.string().describe("Category (creative, professional, educational, gaming, personal)"), instructions: z.string().describe("The persona instructions/content") }); export const EditPersonaArgsSchema = z.object({ persona_name: z.string().describe("Name of the persona to edit"), field: z.string().describe("Field to edit (name, description, instructions, category, triggers, version)"), value: z.string().describe("New value for the field") }); export const ValidatePersonaArgsSchema = z.object({ persona_name: z.string().describe("Name of the persona to validate") }); export const CheckForUpdatesArgsSchema = z.object({}); export const UpdateServerArgsSchema = z.object({ createBackup: z.boolean().optional().describe("Whether to create a backup before updating (default: true)") }); export const RollbackUpdateArgsSchema = z.object({ force: z.boolean().optional().describe("Force rollback even if current version is working (default: false)") }); export const GetServerStatusArgsSchema = z.object({}); export const ConfigureIndicatorArgsSchema = z.object({ enabled: z.boolean().optional().describe("Whether to show indicators"), style: z.enum(['full', 'minimal', 'compact', 'custom']).optional().describe("Display style"), customFormat: z.string().optional().describe("Custom format string"), showEmoji: z.boolean().optional().describe("Show emoji in indicator"), showName: z.boolean().optional().describe("Show persona name"), showVersion: z.boolean().optional().describe("Show version"), showAuthor: z.boolean().optional().describe("Show author"), showCategory: z.boolean().optional().describe("Show category"), separator: z.string().optional().describe("Separator after indicator"), emoji: z.string().optional().describe("Custom emoji to use"), bracketStyle: z.enum(['square', 'round', 'curly', 'angle', 'none']).optional().describe("Bracket style") }); export const GetIndicatorConfigArgsSchema = z.object({}); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWNwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL21jcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsbUNBQW1DO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUvRCx5QkFBeUI7QUFDekIsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hELFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLHNDQUFzQyxDQUFDO0NBQ3hFLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUV4RCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xELFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLHNDQUFzQyxDQUFDO0NBQ3hFLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNsRCxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxtREFBbUQsQ0FBQztDQUM5RixD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RUFBRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7SUFDOUQsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsMkJBQTJCLENBQUM7SUFDdEUsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUM7SUFDNUQsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO0NBQ3pHLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGUgZGVmaW5pdGlvbnMgZm9yIE1DUC1yZWxhdGVkIHN0cnVjdHVyZXNcbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcblxuLy8gUmUtZXhwb3J0IEVycm9yQ29kZSBmcm9tIE1DUCBTREtcbmV4cG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJ0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvdHlwZXMuanMnO1xuXG4vLyBUb29sIHBhcmFtZXRlciBzY2hlbWFzXG5leHBvcnQgY29uc3QgTGlzdFBlcnNvbmFzQXJnc1NjaGVtYSA9IHoub2JqZWN0KHt9KTtcblxuZXhwb3J0IGNvbnN0IEFjdGl2YXRlUGVyc29uYUFyZ3NTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGlkZW50aWZpZXI6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJQZXJzb25hIG5hbWUsIGZpbGVuYW1lLCBvciB1bmlxdWUgSURcIilcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0QWN0aXZlUGVyc29uYUFyZ3NTY2hlbWEgPSB6Lm9iamVjdCh7fSk7XG5cbmV4cG9ydCBjb25zdCBEZWFjdGl2YXRlUGVyc29uYUFyZ3NTY2hlbWEgPSB6Lm9iamVjdCh7fSk7XG5cbmV4cG9ydCBjb25zdCBHZXRQZXJzb25hRGV0YWlsc0FyZ3NTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGlkZW50aWZpZXI6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJQZXJzb25hIG5hbWUsIGZpbGVuYW1lLCBvciB1bmlxdWUgSURcIilcbn0pO1xuXG5leHBvcnQgY29uc3QgUmVsb2FkUGVyc29uYXNBcmdzU2NoZW1hID0gei5vYmplY3Qoe30pO1xuXG5leHBvcnQgY29uc3QgQnJvd3NlTWFya2V0cGxhY2VBcmdzU2NoZW1hID0gei5vYmplY3Qoe1xuICBjYXRlZ29yeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiQ2F0ZWdvcnkgdG8gYnJvd3NlIChjcmVhdGl2ZSwgcHJvZmVzc2lvbmFsLCBldGMuKVwiKVxufSk7XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hNYXJrZXRwbGFjZUFyZ3NTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHF1ZXJ5OiB6LnN0cmluZygpLmRlc2NyaWJlKFwiU2VhcmNoIHF1ZXJ5XCIpXG59KTtcblxuZXhwb3J0IGNvbnN0IEdldE1hcmtldHBsYWNlUGVyc29uYUFyZ3NTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHBhdGg6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJQYXRoIHRvIHRoZSBwZXJzb25hIGZpbGUgaW4gdGhlIG1hcmtldHBsYWNlIHJlcG9zaXRvcnlcIilcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5zdGFsbFBlcnNvbmFBcmdzU2NoZW1hID0gei5vYmplY3Qoe1xuICBwYXRoOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiUGF0aCB0byB0aGUgcGVyc29uYSBmaWxlIGluIHRoZSBtYXJrZXRwbGFjZSByZXBvc2l0b3J5XCIpXG59KTtcblxuZXhwb3J0IGNvbnN0IFN1Ym1pdFBlcnNvbmFBcmdzU2NoZW1hID0gei5vYmplY3Qoe1xuICBwZXJzb25hX25hbWU6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJOYW1lIG9mIHRoZSBsb2NhbCBwZXJzb25hIHRvIHN1Ym1pdFwiKVxufSk7XG5cbmV4cG9ydCBjb25zdCBTZXRVc2VySWRlbnRpdHlBcmdzU2NoZW1hID0gei5vYmplY3Qoe1xuICB1c2VybmFtZTogei5zdHJpbmcoKS5kZXNjcmliZShcIllvdXIgdXNlcm5hbWUgZm9yIHBlcnNvbmEgYXR0cmlidXRpb25cIiksXG4gIGVtYWlsOiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJZb3VyIGVtYWlsIGFkZHJlc3MgKG9wdGlvbmFsKVwiKVxufSk7XG5cbmV4cG9ydCBjb25zdCBHZXRVc2VySWRlbnRpdHlBcmdzU2NoZW1hID0gei5vYmplY3Qoe30pO1xuXG5leHBvcnQgY29uc3QgQ2xlYXJVc2VySWRlbnRpdHlBcmdzU2NoZW1hID0gei5vYmplY3Qoe30pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlUGVyc29uYUFyZ3NTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIG5hbWU6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJOYW1lIGZvciB0aGUgbmV3IHBlcnNvbmFcIiksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiQnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIHBlcnNvbmFcIiksXG4gIGNhdGVnb3J5OiB6LnN0cmluZygpLmRlc2NyaWJlKFwiQ2F0ZWdvcnkgKGNyZWF0aXZlLCBwcm9mZXNzaW9uYWwsIGVkdWNhdGlvbmFsLCBnYW1pbmcsIHBlcnNvbmFsKVwiKSxcbiAgaW5zdHJ1Y3Rpb25zOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIHBlcnNvbmEgaW5zdHJ1Y3Rpb25zL2NvbnRlbnRcIilcbn0pO1xuXG5leHBvcnQgY29uc3QgRWRpdFBlcnNvbmFBcmdzU2NoZW1hID0gei5vYmplY3Qoe1xuICBwZXJzb25hX25hbWU6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJOYW1lIG9mIHRoZSBwZXJzb25hIHRvIGVkaXRcIiksXG4gIGZpZWxkOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiRmllbGQgdG8gZWRpdCAobmFtZSwgZGVzY3JpcHRpb24sIGluc3RydWN0aW9ucywgY2F0ZWdvcnksIHRyaWdnZXJzLCB2ZXJzaW9uKVwiKSxcbiAgdmFsdWU6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJOZXcgdmFsdWUgZm9yIHRoZSBmaWVsZFwiKVxufSk7XG5cbmV4cG9ydCBjb25zdCBWYWxpZGF0ZVBlcnNvbmFBcmdzU2NoZW1hID0gei5vYmplY3Qoe1xuICBwZXJzb25hX25hbWU6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJOYW1lIG9mIHRoZSBwZXJzb25hIHRvIHZhbGlkYXRlXCIpXG59KTtcblxuZXhwb3J0IGNvbnN0IENoZWNrRm9yVXBkYXRlc0FyZ3NTY2hlbWEgPSB6Lm9iamVjdCh7fSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVTZXJ2ZXJBcmdzU2NoZW1hID0gei5vYmplY3Qoe1xuICBjcmVhdGVCYWNrdXA6IHouYm9vbGVhbigpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJXaGV0aGVyIHRvIGNyZWF0ZSBhIGJhY2t1cCBiZWZvcmUgdXBkYXRpbmcgKGRlZmF1bHQ6IHRydWUpXCIpXG59KTtcblxuZXhwb3J0IGNvbnN0IFJvbGxiYWNrVXBkYXRlQXJnc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgZm9yY2U6IHouYm9vbGVhbigpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJGb3JjZSByb2xsYmFjayBldmVuIGlmIGN1cnJlbnQgdmVyc2lvbiBpcyB3b3JraW5nIChkZWZhdWx0OiBmYWxzZSlcIilcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0U2VydmVyU3RhdHVzQXJnc1NjaGVtYSA9IHoub2JqZWN0KHt9KTtcblxuZXhwb3J0IGNvbnN0IENvbmZpZ3VyZUluZGljYXRvckFyZ3NTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGVuYWJsZWQ6IHouYm9vbGVhbigpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJXaGV0aGVyIHRvIHNob3cgaW5kaWNhdG9yc1wiKSxcbiAgc3R5bGU6IHouZW51bShbJ2Z1bGwnLCAnbWluaW1hbCcsICdjb21wYWN0JywgJ2N1c3RvbSddKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiRGlzcGxheSBzdHlsZVwiKSxcbiAgY3VzdG9tRm9ybWF0OiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJDdXN0b20gZm9ybWF0IHN0cmluZ1wiKSxcbiAgc2hvd0Vtb2ppOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiU2hvdyBlbW9qaSBpbiBpbmRpY2F0b3JcIiksXG4gIHNob3dOYW1lOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiU2hvdyBwZXJzb25hIG5hbWVcIiksXG4gIHNob3dWZXJzaW9uOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiU2hvdyB2ZXJzaW9uXCIpLFxuICBzaG93QXV0aG9yOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiU2hvdyBhdXRob3JcIiksXG4gIHNob3dDYXRlZ29yeTogei5ib29sZWFuKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIlNob3cgY2F0ZWdvcnlcIiksXG4gIHNlcGFyYXRvcjogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiU2VwYXJhdG9yIGFmdGVyIGluZGljYXRvclwiKSxcbiAgZW1vamk6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIkN1c3RvbSBlbW9qaSB0byB1c2VcIiksXG4gIGJyYWNrZXRTdHlsZTogei5lbnVtKFsnc3F1YXJlJywgJ3JvdW5kJywgJ2N1cmx5JywgJ2FuZ2xlJywgJ25vbmUnXSkub3B0aW9uYWwoKS5kZXNjcmliZShcIkJyYWNrZXQgc3R5bGVcIilcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0SW5kaWNhdG9yQ29uZmlnQXJnc1NjaGVtYSA9IHoub2JqZWN0KHt9KTsiXX0=