MCP Vue UI Kit Server
by TeodorDre
README.md
# MCP Vue UI Kit Server
MCP (Model Context Protocol) сервер для документации Vue UI компонентов. Позволяет AI-ассистентам (Cursor, Claude Desktop и др.) получать информацию о ваших компонентах, их props, events, slots и генерировать правильный код.
## 🎯 Зачем это нужно?
AI-ассистенты не знают про ваш UI-kit и пишут:
```vue
<button @click="submit">Отправить</button>
```
С этим MCP сервером они будут использовать ваши компоненты:
```vue
<AppButton variant="primary" :loading="isLoading" @click="submit">
Отправить
</AppButton>
```
## 🚀 Быстрый старт
### 1. Клонирование и установка
```bash
git clone https://github.com/your-username/mcp-vue-ui-kit.git
cd mcp-vue-ui-kit
npm install
```
### 2. Настройка путей к вашему UI-kit
Отредактируйте файл `scripts/generate-docs.ts`:
```typescript
const PACKAGES_TO_DOCUMENT: PackageConfig[] = [
{
name: 'my-ui-kit',
alias: '@my-company/ui-kit',
path: '/path/to/your/ui-kit', // 👈 Укажите путь к вашему UI-kit
componentsGlob: 'src/components/**/*.vue',
},
];
```
### 3. Генерация документации
```bash
npm run generate
```
Документация будет сохранена в папку `data/`.
### 4. Сборка сервера
```bash
npm run build
```
### 5. Подключение к Cursor
Добавьте в файл `.cursor/mcp.json` вашего проекта:
```json
{
"mcpServers": {
"ui-kit": {
"command": "node",
"args": ["/path/to/mcp-vue-ui-kit/dist/server.js"]
}
}
}
```
Перезапустите Cursor.
## 🔧 Доступные Tools
| Tool | Описание |
|------|----------|
| `uikit_list_components` | Список компонентов с фильтрацией по пакету и категории |
| `uikit_get_component` | Детальная информация о компоненте (props, events, slots) |
| `uikit_search` | Поиск компонентов по имени, описанию или категории |
| `uikit_generate_usage` | Генерация примера использования компонента |
| `uikit_stats` | Статистика документации UI Kit |
## 📁 Структура проекта
```
mcp-vue-ui-kit/
├── src/
│ └── server.ts # MCP сервер
├── scripts/
│ └── generate-docs.ts # Скрипт генерации документации
├── data/ # Сгенерированная документация
│ ├── index.json # Индекс всех компонентов
│ └── my-ui-kit/ # Документация по пакетам
│ ├── AppButton.json
│ └── ...
├── examples/ # Примеры структуры данных
├── package.json
├── tsconfig.json
└── README.md
```
## 📝 Формат документации компонента
Каждый компонент сохраняется как JSON-файл:
```json
{
"displayName": "AppButton",
"description": "Кнопка с поддержкой loading и иконок",
"package": "my-ui-kit",
"packageAlias": "@my-company/ui-kit",
"relativePath": "src/components/AppButton.vue",
"category": "elements",
"props": [
{
"name": "variant",
"type": { "name": "string" },
"required": false,
"defaultValue": { "value": "'default'" },
"values": ["default", "primary", "danger"]
}
],
"events": [
{ "name": "click", "type": { "names": ["MouseEvent"] } }
],
"slots": [
{ "name": "default", "description": "Содержимое кнопки" }
]
}
```
## 💡 Примеры использования
### Получить список компонентов форм
```
uikit_list_components(category: "form")
```
### Получить информацию о AppButton
```
uikit_get_component(name: "AppButton")
```
### Найти компоненты для модальных окон
```
uikit_search(query: "modal")
```
### Сгенерировать пример использования
```
uikit_generate_usage(name: "AppButton", framework: "vue")
```
## 🔄 Обновление документации
При изменении компонентов запустите:
```bash
npm run generate
```
Рекомендуется добавить эту команду в CI/CD pipeline или git hooks.
## ⚙️ Переменные окружения
| Переменная | Описание | По умолчанию |
|------------|----------|--------------|
| `UIKIT_DATA_DIR` | Путь к папке с документацией | `./data` |
## 🐛 Отладка
Для запуска сервера в режиме разработки (без сборки):
```bash
npm run dev
```
Логи выводятся в stderr.
## 📄 Лицензия
MIT
## 🤝 Contributing
1. Fork репозитория
2. Создайте feature branch (`git checkout -b feature/amazing-feature`)
3. Commit изменения (`git commit -m 'Add amazing feature'`)
4. Push в branch (`git push origin feature/amazing-feature`)
5. Откройте Pull Request
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues