内容
# Cline Personas MCP Server
一个使用共享组件和角色模板来管理 `.clinerules` 文件的 MCP server。
## 功能
- **组件管理**: 创建、读取、更新和删除可重用组件
- **角色模板**: 使用 Mustache 风格的变量替换定义角色模板
- **依赖验证**: 确保角色模板仅引用现有组件
- **激活系统**: 通过写入 `.clinerules` 文件来激活角色
- **版本跟踪**: 跟踪组件和角色的版本
- **基于文件的存储**: 将组件和角色存储为 JSON 文件
## 安装
1. 克隆 GitHub 仓库
2. 安装依赖:
```bash
npm install
```
3. 构建项目:
```bash
npm run build
```
## 使用
### 管理组件
```typescript
import { ComponentPersonaService } from './src/service';
const service = new ComponentPersonaService(process.cwd());
// 创建一个新组件
service.setComponent('greeting', 'Welcome message', 'Hello {{name}}!', 1);
// 获取一个组件
const component = service.getComponent('greeting');
// 列出所有组件
const components = service.listComponents();
```
### 管理角色
```typescript
// 创建一个新角色
service.setPersona(
'welcome',
'Welcome persona',
'{{greeting}}\nPlease enjoy your stay!',
1
);
// 激活一个角色
service.activatePersona('welcome');
// 获取激活的角色
const active = service.getActivePersona();
```
## 文件结构
```
.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 文档
### ComponentPersonaService
提供所有操作的主服务类:
- **组件操作**:
- `setComponent(name, description, text, version)`
- `getComponent(name)`
- `listComponents()`
- `deleteComponent(name)`
- **角色操作**:
- `setPersona(name, description, template, version)`
- `getPersona(name)`
- `listPersonas()`
- `deletePersona(name)`
- `activatePersona(name)`
- `getActivePersona()`
- `renderPersona(name)`
## 开发
运行测试:
```bash
npm test
```
构建项目:
```bash
npm run build
```
运行 MCP server:
```bash
npm start
```