activate_persona
Activate a specific AI persona by name or filename to enable behavioral adjustments in Claude and compatible AI assistants via the DollhouseMCP server.
Instructions
Activate a specific persona by name or filename
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| persona | Yes | The persona name or filename to activate |
Implementation Reference
- src/types/mcp.ts:13-15 (schema)Zod input schema defining the 'identifier' parameter for the activate_persona toolexport const ActivatePersonaArgsSchema = z.object({ identifier: z.string().describe("Persona name, filename, or unique ID") });
- src/persona/PersonaManager.ts:83-100 (handler)Core handler logic that finds the persona by identifier and activates it by setting this.activePersonaactivatePersona(identifier: string): { success: boolean; message: string; persona?: Persona } { const persona = this.findPersona(identifier); if (!persona) { return { success: false, message: `Persona not found: "${identifier}"` }; } this.activePersona = persona.filename; return { success: true, message: `Activated persona: ${persona.metadata.name}`, persona }; }
- src/persona/PersonaManager.ts:54-78 (helper)Helper method used by activatePersona to locate the persona by filename, name, or unique_idfindPersona(identifier: string): Persona | undefined { // Try direct filename match let persona = this.personas.get(identifier); if (!persona) { // Try with .md extension persona = this.personas.get(`${identifier}.md`); } if (!persona) { // Search by name (case-insensitive) persona = Array.from(this.personas.values()).find(p => p.metadata.name.toLowerCase() === identifier.toLowerCase() ); } if (!persona) { // Search by unique_id persona = Array.from(this.personas.values()).find(p => p.unique_id === identifier ); } return persona; }
- src/server/types.ts:8-10 (registration)Interface definition for the server's activatePersona method, used in IToolHandler for tool dispatching (likely legacy persona tool)activatePersona(persona: string): Promise<any>; getActivePersona(): Promise<any>; deactivatePersona(): Promise<any>;