mcp-cline-personas
by: bradfair
An MCP server for managing `.clinerules` files using shared components and persona templates.
📌Overview
Purpose: To provide an MCP server for managing .clinerules
files through shared components and persona templates.
Overview: The Cline Personas MCP Server facilitates the management of reusable components and customizable persona templates, allowing developers to easily create, modify, and utilize personalized messaging systems in their applications.
Key Features:
-
Component Management: Enables users to create, read, update, and delete reusable components, ensuring flexibility in component usage.
-
Persona Templates: Allows the definition of persona templates with mustache-style variable substitution, providing customization for user interactions.
-
Dependency Validation: Ensures that persona templates only reference existing components, maintaining data integrity and reliability.
-
Activation System: Provides functionality to activate personas by writing to the
.clinerules
file, simplifying the deployment of personalized messages. -
Version Tracking: Tracks versions for both components and personas, enabling users to manage updates and changes effectively.
-
File-based Storage: Stores components and personas as JSON files, providing an easy-to-handle and human-readable format for data management.
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