install_community_persona
Add community personas to your local collection for the Persona MCP server, enabling AI to switch between expert personas with context detection and token-saving features.
Instructions
커뮤니티 페르소나를 로컬 컬렉션에 설치합니다
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 설치할 커뮤니티 페르소나 이름 |
Implementation Reference
- src/index.ts:234-246 (handler)Core handler function that installs a community persona by validating the name, reading from community directory, and writing to local persona directory.async function installCommunityPersona(name: string): Promise<string> { const validatedName = validatePersonaName(name); const communityPath = path.join(COMMUNITY_DIR, `${validatedName}.txt`); const localPath = path.join(PERSONA_DIR, `${validatedName}.txt`); try { const content = await fs.readFile(communityPath, 'utf-8'); await fs.writeFile(localPath, content, 'utf-8'); return localPath; } catch (error) { throw new Error(`Failed to install community persona "${validatedName}": ${(error as Error).message}`); } }
- src/validation.ts:47-49 (schema)Zod schema for validating the tool input, requiring a 'name' field validated by personaNameSchema.export const installCommunityPersonaSchema = z.object({ name: personaNameSchema, });
- src/index.ts:436-448 (registration)Tool registration in the MCP server's listTools response, defining name, description, and input schema.name: 'install_community_persona', description: '커뮤니티 페르소나를 로컬 컬렉션에 설치합니다', inputSchema: { type: 'object', properties: { name: { type: 'string', description: '설치할 커뮤니티 페르소나 이름', }, }, required: ['name'], }, },
- src/index.ts:674-690 (handler)MCP CallToolRequest handler case that parses arguments with schema, calls the install function, reads preview, and returns success message with usage instructions.case 'install_community_persona': { const validated = installCommunityPersonaSchema.parse(args); const installedPath = await installCommunityPersona(validated.name); // 간단한 프리뷰 제공 const content = await readCommunityPersona(validated.name); const preview = content.split('\n').slice(0, 10).join('\n'); return { content: [ { type: 'text', text: `✅ Persona "${validated.name}" installed successfully!\n\n📁 Location: ${installedPath}\n\n📄 Preview:\n${preview}\n...\n\n💡 **How to use:**\n@persona:${validated.name} your question or task\n\nExample:\n@persona:${validated.name} help me with this code\n\n🎯 The persona will only activate when you use the @persona:${validated.name} trigger (Submarine Mode = 0 tokens otherwise)`, }, ], }; }