An MCP server for managing .clinerules files using shared components and persona templates.
20 stars3 watching2 forks
Cline Personas MCP Server
An MCP server for managing .clinerules
files using shared components and persona templates.
Features
- Component Management: Create, read, update and delete reusable components
- Persona Templates: Define persona templates with mustache-style variable substitution
- Dependency Validation: Ensure persona templates only reference existing components
- Activation System: Activate personas by writing to
.clinerules
file - Version Tracking: Track versions for both components and personas
- File-based Storage: Store components and personas as JSON files
Installation
- Clone the repository
- Install dependencies:
npm install
- Build the project:
npm run build
Usage
Managing Components
import { ComponentPersonaService } from './src/service';
const service = new ComponentPersonaService(process.cwd());
// Create a new component
service.setComponent('greeting', 'Welcome message', 'Hello {{name}}!', 1);
// Get a component
const component = service.getComponent('greeting');
// List all components
const components = service.listComponents();
Managing Personas
// Create a new persona
service.setPersona(
'welcome',
'Welcome persona',
'{{greeting}}\nPlease enjoy your stay!',
1
);
// Activate a persona
service.activatePersona('welcome');
// Get active persona
const active = service.getActivePersona();
File Structure
.cline-personas/
components/
[component-name].json
personas/
[persona-name].json
src/
component.ts # Component class and operations
persona.ts # Persona class and template rendering
service.ts # Main service implementation
index.ts # MCP server entry point
test/ # Unit tests
API Documentation
ComponentPersonaService
The main service class providing all operations:
-
Component Operations:
setComponent(name, description, text, version)
getComponent(name)
listComponents()
deleteComponent(name)
-
Persona Operations:
setPersona(name, description, template, version)
getPersona(name)
listPersonas()
deletePersona(name)
activatePersona(name)
getActivePersona()
renderPersona(name)
Development
Run tests:
npm test
Build the project:
npm run build
Run the MCP server:
npm start
Features
Components
Templates
Validation
Activation
Versioning
Storage
Category
File Systems