MCP-сервер для Altegio API — управление записями, клиентами, услугами, сотрудниками и расписанием через AI-ассистента. - 18 MCP-инструментов — записи, клиенты, услуги, сотрудники, расписание, финансы - CRUD-операции — полный цикл создания, чтения, обновления и удаления записей и клиентов - Умный поиск — автоопределение типа запроса (телефон, email, имя) - Docker-образ — multi-stage build на Alpine
Add this skill
npx mdskills install moro3k/mcp-altegioComprehensive MCP server with 18 well-organized tools for booking system management and excellent documentation
1# mcp-altegio23MCP-сервер для [Altegio API](https://developer.alteg.io/api) — управление записями, клиентами, услугами, сотрудниками и расписанием через AI-ассистента.45[](LICENSE)6[](https://www.typescriptlang.org/)7[](https://bun.sh)8[](Dockerfile)9[](https://github.com/modelcontextprotocol/typescript-sdk)10[](tests/)1112## Возможности1314- **18 MCP-инструментов** — записи, клиенты, услуги, сотрудники, расписание, финансы15- **CRUD-операции** — полный цикл создания, чтения, обновления и удаления записей и клиентов16- **Умный поиск** — автоопределение типа запроса (телефон, email, имя)17- **Docker-образ** — multi-stage build на Alpine (~184MB), готов к продакшну18- **141 тест** — unit, API-клиент, интеграционные MCP-тесты19- **Dual transport** — stdio (локально) и Streamable HTTP (удалённо, Smithery, облако)20- **stdio-транспорт** — работает с Claude Desktop, Claude Code, Cursor, VS Code Copilot2122## Инструменты2324**18 инструментов**, разбитые по категориям:2526### 📅 Записи2728| Инструмент | Описание |29|------------|----------|30| `get_records` | Записи за период с фильтрами по мастеру/клиенту |31| `get_records_by_client` | Все записи конкретного клиента |32| `get_records_by_visit` | Поиск записей по `api_id` (привязка к внешней системе) |33| `create_record` | Создать запись с полной настройкой параметров |34| `book_service` | Быстрое бронирование с привязкой к визиту |35| `update_record` | Изменить существующую запись |36| `delete_record` | Удалить запись |3738### 👥 Клиенты3940| Инструмент | Описание |41|------------|----------|42| `search_clients` | Поиск по имени, телефону или email (авто-определение) |43| `get_client` | Карточка клиента по ID |44| `create_client` | Создать нового клиента |45| `update_client` | Редактировать данные клиента |4647### 🛎️ Услуги и сотрудники4849| Инструмент | Описание |50|------------|----------|51| `get_services` | Каталог услуг (фильтр по мастеру/категории) |52| `get_service_categories` | Категории услуг |53| `get_staff` | Список сотрудников (по умолчанию без уволенных) |54| `get_staff_member` | Детали конкретного сотрудника |5556### 📊 Расписание и финансы5758| Инструмент | Описание |59|------------|----------|60| `get_available_times` | Свободные слоты на дату |61| `get_available_dates` | Рабочие дни мастера |62| `get_transactions` | Финансовые транзакции за период |6364## Быстрый старт6566### Требования6768- [Bun](https://bun.sh/) >= 1.0 **или** [Docker](https://www.docker.com/)69- Партнёрский и пользовательский токены [Altegio API](https://developer.alteg.io)7071### Установка7273<details>74<summary><b>Bun (локально)</b></summary>7576```bash77git clone https://github.com/moro3k/mcp-altegio.git78cd mcp-altegio79bun install80```8182</details>8384<details>85<summary><b>Docker</b></summary>8687```bash88git clone https://github.com/moro3k/mcp-altegio.git89cd mcp-altegio90docker build -t mcp-altegio .91```9293</details>9495### Конфигурация9697| Переменная | Обязательна | Описание |98|------------|:-----------:|----------|99| `ALTEGIO_TOKEN` | Да | Партнёрский токен API |100| `ALTEGIO_USER_TOKEN` | Да | Пользовательский токен |101| `ALTEGIO_COMPANY_ID` | Да | ID компании |102103<details>104<summary><b>Где взять токены?</b></summary>105106- **ALTEGIO_TOKEN** — партнёрский токен. Получается в [кабинете разработчика](https://developer.alteg.io) после регистрации партнёрского аккаунта107- **ALTEGIO_USER_TOKEN** — пользовательский токен. Получается через авторизацию к API (`POST /auth`) с логином и паролем аккаунта Altegio108- **ALTEGIO_COMPANY_ID** — ID компании. Виден в URL панели управления: `app.alteg.io/company/XXXXXX/...`109110</details>111112## Подключение113114### Claude Desktop115116Добавьте в конфигурацию (`~/Library/Application Support/Claude/claude_desktop_config.json` на macOS или `%APPDATA%\Claude\claude_desktop_config.json` на Windows):117118<details>119<summary><b>Bun</b></summary>120121```json122{123 "mcpServers": {124 "altegio": {125 "command": "bun",126 "args": ["run", "/полный/путь/к/mcp-altegio/src/index.ts"],127 "env": {128 "ALTEGIO_TOKEN": "ваш_токен",129 "ALTEGIO_USER_TOKEN": "ваш_токен",130 "ALTEGIO_COMPANY_ID": "12345"131 }132 }133 }134}135```136137</details>138139<details>140<summary><b>Docker</b></summary>141142```json143{144 "mcpServers": {145 "altegio": {146 "command": "docker",147 "args": ["run", "-i", "--rm",148 "-e", "ALTEGIO_TOKEN",149 "-e", "ALTEGIO_USER_TOKEN",150 "-e", "ALTEGIO_COMPANY_ID",151 "mcp-altegio"],152 "env": {153 "ALTEGIO_TOKEN": "ваш_токен",154 "ALTEGIO_USER_TOKEN": "ваш_токен",155 "ALTEGIO_COMPANY_ID": "12345"156 }157 }158 }159}160```161162> Флаг `-i` обязателен — MCP работает через stdio.163164</details>165166### Claude Code167168Добавьте в `.mcp.json` в корне проекта:169170```json171{172 "mcpServers": {173 "altegio": {174 "command": "bun",175 "args": ["run", "/полный/путь/к/mcp-altegio/src/index.ts"],176 "cwd": "/полный/путь/к/mcp-altegio"177 }178 }179}180```181182### Cursor183184Settings → MCP Servers → Add new server:185186```json187{188 "altegio": {189 "command": "bun",190 "args": ["run", "/полный/путь/к/mcp-altegio/src/index.ts"],191 "cwd": "/полный/путь/к/mcp-altegio"192 }193}194```195196> Bun автоматически подтягивает `.env` из директории `cwd`. Можно использовать `.env` файл вместо передачи переменных напрямую.197198### HTTP-транспорт (Streamable HTTP)199200Для облачных деплоев и Smithery используйте HTTP-режим:201202```bash203# Локально204bun run start:http205206# Docker207docker run --rm -p 3000:3000 \208 -e ALTEGIO_TOKEN=ваш_токен \209 -e ALTEGIO_USER_TOKEN=ваш_токен \210 -e ALTEGIO_COMPANY_ID=12345 \211 mcp-altegio bun run src/http.ts212```213214Сервер слушает на порту `3000` (переопределяется через `PORT`). Endpoint: `POST /mcp`.215216Подключение через URL:217218```json219{220 "mcpServers": {221 "altegio": {222 "url": "http://localhost:3000/mcp"223 }224 }225}226```227228## Примеры229230```231> Покажи все записи на сегодня232 → get_records233234> Найди клиента по телефону +66812345678235 → search_clients → get_records_by_client236237> Запиши Анну на тайский массаж к Kai на завтра в 14:00238 → get_services → get_available_times → create_record239240> Покажи свободные слоты у Wanida на эту неделю241 → get_available_dates → get_available_times242```243244## Разработка245246```bash247bun install # Установить зависимости248bun run start # Запустить сервер249bun test # Запустить тесты (141 тест)250```251252### Структура проекта253254```255src/256 server.ts # Фабрика MCP-сервера, регистрация 18 инструментов257 index.ts # Точка входа stdio258 http.ts # Точка входа HTTP (Streamable HTTP)259 api.ts # HTTP-клиент (авторизация, подстановка company_id)260 helpers.ts # Вспомогательные функции (поиск, фильтры)261tests/262 helpers.test.ts # Unit-тесты хелперов (39)263 api.test.ts # Тесты HTTP-клиента (37)264 server.test.ts # Интеграционные MCP-тесты (55)265```266267### Тесты268269141 тест с покрытием всех инструментов:270271- **Unit** — автоопределение типа поиска, фильтрация сотрудников и записей272- **API-клиент** — HTTP-методы, авторизация, query-параметры, обработка ошибок273- **Интеграционные** — регистрация инструментов, схемы, вызов через MCP SDK клиент274275## Стек276277| Компонент | Технология |278|-----------|-----------|279| Runtime | [Bun](https://bun.sh/) 1.x |280| Язык | TypeScript 5.7 |281| SDK | [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk) 1.26 |282| Валидация | Zod v4 |283| Тесты | Bun Test |284| Контейнер | Docker (Alpine) |285| Transport | stdio, Streamable HTTP |286287## Особенности Altegio API288289| Параметр | Описание |290|----------|----------|291| `api_id` | Только `number`. Строки игнорируются, записывается `0` |292| `save_if_busy` | `true` при программном создании записей |293| `seance_length` | Длительность в **секундах** (3600 = 1 час) |294| `attendance` | `-1` отменён · `0` ожидается · `1` подтверждён · `2` пришёл |295| `fired` | `0` активный · `1` уволенный |296297## Участие298299PR приветствуются. Форкните, улучшите, откройте PR.300301Идеи:302- Групповые события (activities)303- Webhook-уведомления304- Кеширование запросов305- Работа с несколькими компаниями306- Складской учёт и товары307308## Лицензия309310[MIT](LICENSE)311
Full transparency — inspect the skill content before installing.