mcp-altegio
MCP-сервер для Altegio API — управление записями, клиентами, услугами, сотрудниками и расписанием через AI-ассистента.
Возможности
- 18 MCP-инструментов — записи, клиенты, услуги, сотрудники, расписание, финансы
- CRUD-операции — полный цикл создания, чтения, обновления и удаления записей и клиентов
- Умный поиск — автоопределение типа запроса (телефон, email, имя)
- Docker-образ — multi-stage build на Alpine (~184MB), готов к продакшну
- 131 тест — unit, API-клиент, интеграционные MCP-тесты
- stdio-транспорт — работает с Claude Desktop, Claude Code, Cursor, VS Code Copilot
Инструменты
18 инструментов, разбитые по категориям:
📅 Записи
| Инструмент | Описание |
|---|---|
get_records |
Записи за период с фильтрами по мастеру/клиенту |
get_records_by_client |
Все записи конкретного клиента |
get_records_by_visit |
Поиск записей по api_id (привязка к внешней системе) |
create_record |
Создать запись с полной настройкой параметров |
book_service |
Быстрое бронирование с привязкой к визиту |
update_record |
Изменить существующую запись |
delete_record |
Удалить запись |
👥 Клиенты
| Инструмент | Описание |
|---|---|
search_clients |
Поиск по имени, телефону или email (авто-определение) |
get_client |
Карточка клиента по ID |
create_client |
Создать нового клиента |
update_client |
Редактировать данные клиента |
🛎️ Услуги и сотрудники
| Инструмент | Описание |
|---|---|
get_services |
Каталог услуг (фильтр по мастеру/категории) |
get_service_categories |
Категории услуг |
get_staff |
Список сотрудников (по умолчанию без уволенных) |
get_staff_member |
Детали конкретного сотрудника |
📊 Расписание и финансы
| Инструмент | Описание |
|---|---|
get_available_times |
Свободные слоты на дату |
get_available_dates |
Рабочие дни мастера |
get_transactions |
Финансовые транзакции за период |
Быстрый старт
Требования
- Bun >= 1.0 или Docker
- Партнёрский и пользовательский токены Altegio API
Установка
Bun (локально)git clone https://github.com/moro3k/mcp-altegio.git
cd mcp-altegio
bun install
Docker
git clone https://github.com/moro3k/mcp-altegio.git
cd mcp-altegio
docker build -t mcp-altegio .
Конфигурация
| Переменная | Обязательна | Описание |
|---|---|---|
ALTEGIO_TOKEN |
Да | Партнёрский токен API |
ALTEGIO_USER_TOKEN |
Да | Пользовательский токен |
ALTEGIO_COMPANY_ID |
Да | ID компании |
- ALTEGIO_TOKEN — партнёрский токен. Получается в кабинете разработчика после регистрации партнёрского аккаунта
- ALTEGIO_USER_TOKEN — пользовательский токен. Получается через авторизацию к API (
POST /auth) с логином и паролем аккаунта Altegio - ALTEGIO_COMPANY_ID — ID компании. Виден в URL панели управления:
app.alteg.io/company/XXXXXX/...
Подключение
Claude Desktop
Добавьте в конфигурацию (~/Library/Application Support/Claude/claude_desktop_config.json на macOS или %APPDATA%\Claude\claude_desktop_config.json на Windows):
{
"mcpServers": {
"altegio": {
"command": "bun",
"args": ["run", "/полный/путь/к/mcp-altegio/src/index.ts"],
"env": {
"ALTEGIO_TOKEN": "ваш_токен",
"ALTEGIO_USER_TOKEN": "ваш_токен",
"ALTEGIO_COMPANY_ID": "12345"
}
}
}
}
Docker
{
"mcpServers": {
"altegio": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "ALTEGIO_TOKEN",
"-e", "ALTEGIO_USER_TOKEN",
"-e", "ALTEGIO_COMPANY_ID",
"mcp-altegio"],
"env": {
"ALTEGIO_TOKEN": "ваш_токен",
"ALTEGIO_USER_TOKEN": "ваш_токен",
"ALTEGIO_COMPANY_ID": "12345"
}
}
}
}
Флаг
-iобязателен — MCP работает через stdio.
Claude Code
Добавьте в .mcp.json в корне проекта:
{
"mcpServers": {
"altegio": {
"command": "bun",
"args": ["run", "/полный/путь/к/mcp-altegio/src/index.ts"],
"cwd": "/полный/путь/к/mcp-altegio"
}
}
}
Cursor
Settings → MCP Servers → Add new server:
{
"altegio": {
"command": "bun",
"args": ["run", "/полный/путь/к/mcp-altegio/src/index.ts"],
"cwd": "/полный/путь/к/mcp-altegio"
}
}
Bun автоматически подтягивает
.envиз директорииcwd. Можно использовать.envфайл вместо передачи переменных напрямую.
Примеры
> Покажи все записи на сегодня
→ get_records
> Найди клиента по телефону +66812345678
→ search_clients → get_records_by_client
> Запиши Анну на тайский массаж к Kai на завтра в 14:00
→ get_services → get_available_times → create_record
> Покажи свободные слоты у Wanida на эту неделю
→ get_available_dates → get_available_times
Разработка
bun install # Установить зависимости
bun run start # Запустить сервер
bun test # Запустить тесты (131 тест)
Структура проекта
src/
index.ts # MCP-сервер, регистрация 18 инструментов
api.ts # HTTP-клиент (авторизация, подстановка company_id)
helpers.ts # Вспомогательные функции (поиск, фильтры)
tests/
helpers.test.ts # Unit-тесты хелперов (39)
api.test.ts # Тесты HTTP-клиента (37)
server.test.ts # Интеграционные MCP-тесты (55)
Тесты
131 тест с покрытием всех инструментов:
- Unit — автоопределение типа поиска, фильтрация сотрудников и записей
- API-клиент — HTTP-методы, авторизация, query-параметры, обработка ошибок
- Интеграционные — регистрация инструментов, схемы, вызов через MCP SDK клиент
Стек
| Компонент | Технология |
|---|---|
| Runtime | Bun 1.x |
| Язык | TypeScript 5.7 |
| SDK | @modelcontextprotocol/sdk 1.26 |
| Валидация | Zod v4 |
| Тесты | Bun Test |
| Контейнер | Docker (Alpine) |
| Transport | stdio |
Особенности Altegio API
| Параметр | Описание |
|---|---|
api_id |
Только number. Строки игнорируются, записывается 0 |
save_if_busy |
true при программном создании записей |
seance_length |
Длительность в секундах (3600 = 1 час) |
attendance |
-1 отменён · 0 ожидается · 1 подтверждён · 2 пришёл |
fired |
0 активный · 1 уволенный |
Участие
PR приветствуются. Форкните, улучшите, откройте PR.
Идеи:
- Групповые события (activities)
- Webhook-уведомления
- Кеширование запросов
- Работа с несколькими компаниями
- Складской учёт и товары
Лицензия
MIT