Предварительные требования
- Node.js версии 18 или новее, установленный на вашем компьютере
- API-ключ Avala (создайте его в Mission Control в разделе Settings > Security)
Настройка
Claude Desktop
Откройте файл конфигурации Claude Desktop:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Cursor
Создайте или отредактируйте файл.cursor/mcp.json в корне вашего проекта (или в глобальной директории конфигурации):
VS Code
Создайте или отредактируйте файл.vscode/mcp.json в вашем рабочем пространстве:
Claude Code
Добавьте Avala MCP Server в Claude Code одной командой:ChatGPT
Поддержка MCP в ChatGPT находится в процессе развития. Актуальные инструкции по настройке и доступность для вашего тарифного плана и региона смотрите в документации OpenAI.
Режим безопасности MCP
В целях безопасности MCP Server по умолчанию работает в режиме «только чтение». Инструменты, изменяющие данные, не регистрируются, если вы не включите их явно:create_datasetcreate_agent,delete_agentcreate_annotation_issue,update_annotation_issue,delete_annotation_issuecreate_storage_config,delete_storage_configcreate_webhook,delete_webhookcreate_exportevaluate_qualitycompute_consensusfleet_register_device,fleet_acknowledge_alert
Доступные MCP-инструменты
После подключения AI-ассистенту доступны следующие инструменты:| Инструмент | Описание |
|---|---|
list_datasets | Список всех датасетов в рабочем пространстве. |
get_dataset | Получение подробной информации о конкретном датасете. |
create_dataset | Создание нового датасета для аннотирования. mutation |
list_projects | Список всех проектов аннотирования. |
get_project | Получение полной информации о проекте. |
create_export | Запуск нового экспорта для датасета или проекта. (требуется AVALA_MCP_ENABLE_MUTATIONS=true) |
get_export_status | Проверка статуса экспорта. |
list_exports | Список всех экспортов. |
get_workspace_stats | Получение сводки по использованию рабочего пространства. |
list_tasks | Список задач с опциональной фильтрацией. |
get_task | Получение информации о задаче. |
list_agents | Список агентов автоматизации. |
get_agent | Получение информации об агенте. |
create_agent | Создание нового агента автоматизации. (требуется AVALA_MCP_ENABLE_MUTATIONS=true) |
delete_agent | Удаление агента. (требуется AVALA_MCP_ENABLE_MUTATIONS=true) |
list_webhooks | Список подписок на Webhook. |
create_webhook | Создание подписки на Webhook. (требуется AVALA_MCP_ENABLE_MUTATIONS=true) |
delete_webhook | Удаление Webhook. (требуется AVALA_MCP_ENABLE_MUTATIONS=true) |
list_storage_configs | Список конфигураций хранилища. |
create_storage_config | Создание конфигурации хранилища. (требуется AVALA_MCP_ENABLE_MUTATIONS=true) |
test_storage_config | Тестирование подключения к хранилищу. |
delete_storage_config | Удаление конфигурации хранилища. (требуется AVALA_MCP_ENABLE_MUTATIONS=true) |
list_quality_targets | Список целей качества для проекта. |
evaluate_quality | Оценка целей качества. (требуется AVALA_MCP_ENABLE_MUTATIONS=true) |
get_consensus_summary | Получение сводки по консенсусу для проекта. |
compute_consensus | Запуск вычисления консенсуса. (требуется AVALA_MCP_ENABLE_MUTATIONS=true) |
list_organizations | Список организаций. |
get_organization | Получение информации об организации. |
list_slices | Список срезов для владельца. |
get_slice | Получение информации о срезе. |
list_annotation_issues_by_sequence | Список проблем аннотирования для последовательности. |
create_annotation_issue | Создание новой проблемы аннотирования. (требуется AVALA_MCP_ENABLE_MUTATIONS=true) |
update_annotation_issue | Обновление проблемы аннотирования. (требуется AVALA_MCP_ENABLE_MUTATIONS=true) |
delete_annotation_issue | Удаление проблемы аннотирования. (требуется AVALA_MCP_ENABLE_MUTATIONS=true) |
list_annotation_issues_by_dataset | Список проблем аннотирования для датасета. |
get_annotation_issue_metrics | Получение метрик проблем для датасета. |
list_qc_tools | Список доступных инструментов QC. |
Fleet (предварительная версия)
Инструменты Fleet находятся в предварительной версии и могут измениться. Они предоставляют доступ на чтение и запись к устройствам, записям, событиям, оповещениям и правилам автопарка.
| Инструмент | Описание |
|---|---|
fleet_list_devices | Список устройств автопарка с опциональными фильтрами. |
fleet_get_device | Получение подробной информации об устройстве автопарка. |
fleet_list_recordings | Список записей автопарка с опциональными фильтрами. |
fleet_get_recording | Получение подробной информации о записи. |
fleet_list_events | Список событий автопарка с опциональными фильтрами. |
fleet_list_alerts | Список оповещений автопарка с опциональными фильтрами. |
fleet_list_rules | Список правил автопарка с опциональными фильтрами. |
fleet_register_device | Регистрация нового устройства автопарка. mutation |
fleet_acknowledge_alert | Подтверждение оповещения автопарка. mutation |
Определения инструментов
Подробные схемы для каждого MCP-инструмента. Все инструменты возвращают JSON в виде текстового содержимого.list_datasets
Список всех датасетов в рабочем пространстве. Параметры:dataType(string, optional) — Фильтр по типу данных (image,video,lidar,mcap,splat)name(string, optional) — Фильтр по названию датасета (частичное совпадение)status(string, optional) — Фильтр по статусу датасетаvisibility(string, optional) — Фильтр по видимости (privateилиpublic)limit(number, optional) — Максимальное количество возвращаемых датасетовcursor(string, optional) — Курсор пагинации из предыдущего запроса
get_dataset
Получение подробной информации о конкретном датасете. Параметры:uid(string, required) — Уникальный идентификатор (UUID) датасета
list_projects
Список всех проектов аннотирования. Параметры:limit(number, optional) — Максимальное количество возвращаемых проектовcursor(string, optional) — Курсор пагинации из предыдущего запроса
get_project
Получение подробной информации о конкретном проекте. Параметры:uid(string, required) — Уникальный идентификатор (UUID) проекта
create_dataset
Создание нового датасета для аннотирования. Параметры:name(string, required) — Отображаемое имя датасетаslug(string, required) — URL-совместимый идентификатор датасетаdataType(string, required) — Тип данных:image,video,lidarилиmcapisSequence(boolean, optional) — Содержит ли датасет последовательности (по умолчанию: false)visibility(string, optional) — Видимость датасета:privateилиpublic(по умолчанию:private)createMetadata(boolean, optional) — Создавать ли метаданные датасета (по умолчанию: true)providerConfig(object, optional) — Конфигурация облачного провайдера хранилищаownerName(string, optional) — Имя пользователя или email владельца датасета
create_export
Запуск нового экспорта для датасета или проекта. Параметры:project(string, optional) — UID проекта для экспортаdataset(string, optional) — UID датасета для экспорта
get_export_status
Проверка статуса экспорта. Параметры:uid(string, required) — Уникальный идентификатор (UUID) экспорта
list_exports
Список всех экспортов в рабочем пространстве. Параметры:limit(number, optional) — Максимальное количество возвращаемых экспортовcursor(string, optional) — Курсор пагинации из предыдущего запроса
get_workspace_stats
Быстрая проверка содержимого рабочего пространства (датасеты, проекты, экспорты). Параметры: нет Пример ответа:list_tasks
Список задач с опциональной фильтрацией по проекту или статусу. Параметры:project(string, optional) — Фильтр по UID проектаstatus(string, optional) — Фильтр по статусу задачиlimit(number, optional) — Максимальное количество возвращаемых задачcursor(string, optional) — Курсор пагинации из предыдущего запроса
get_task
Получение подробной информации о конкретной задаче. Параметры:uid(string, required) — Уникальный идентификатор (UUID) задачи
list_agents
Список всех агентов автоматизации, настроенных в вашем рабочем пространстве. Параметры:limit(number, optional) — Максимальное количество возвращаемых агентовcursor(string, optional) — Курсор пагинации из предыдущего запроса
get_agent
Получение подробной информации о конкретном агенте автоматизации. Параметры:uid(string, required) — Уникальный идентификатор (UUID) агента
create_agent
Создание нового агента автоматизации с подписками на события и URL обратного вызова. Параметры:name(string, required) — Имя агентаevents(string[], required) — Список типов событий, на которые подписывается агентcallbackUrl(string, optional) — URL для получения обратных вызовов по событиямdescription(string, optional) — Описание агентаproject(string, optional) — UID проекта для ограничения области агентаtaskTypes(string[], optional) — Типы задач, обрабатываемые агентом
delete_agent
Удаление агента автоматизации по его UID. Параметры:uid(string, required) — Уникальный идентификатор (UUID) удаляемого агента
list_webhooks
Список всех подписок на Webhook в вашем рабочем пространстве. Параметры:limit(number, optional) — Максимальное количество возвращаемых Webhookcursor(string, optional) — Курсор пагинации из предыдущего запроса
create_webhook
Создание новой подписки на Webhook для определённых событий. Параметры:targetUrl(string, required) — URL для получения Webhook-доставокevents(string[], required) — Список типов событий для подписки
delete_webhook
Удаление подписки на Webhook по её UID. Параметры:uid(string, required) — Уникальный идентификатор (UUID) удаляемого Webhook
list_storage_configs
Список всех конфигураций хранилища в вашем рабочем пространстве. Параметры:limit(number, optional) — Максимальное количество возвращаемых конфигурацийcursor(string, optional) — Курсор пагинации из предыдущего запроса
create_storage_config
Создание новой конфигурации хранилища (S3 или Google Cloud Storage). Параметры:name(string, required) — Имя конфигурации хранилищаprovider(string, required) — Тип провайдера хранилища (s3илиgcs)s3BucketName(string, optional) — Имя S3-бакетаs3BucketRegion(string, optional) — Регион S3-бакетаs3BucketPrefix(string, optional) — Префикс ключа S3s3AccessKeyId(string, optional) — Идентификатор ключа доступа S3 (надёжно хранится на стороне сервера)s3SecretAccessKey(string, optional) — Секретный ключ доступа S3 (надёжно хранится на стороне сервера)s3IsAccelerated(boolean, optional) — Включить S3 Transfer AccelerationgcStorageBucketName(string, optional) — Имя бакета Google Cloud StoragegcStoragePrefix(string, optional) — Префикс Google Cloud StoragegcStorageAuthJsonContent(string, optional) — JSON-учётные данные сервисного аккаунта GCS (надёжно хранятся на стороне сервера)
test_storage_config
Тестирование подключения к конфигурации хранилища. Параметры:uid(string, required) — Уникальный идентификатор (UUID) конфигурации хранилища для тестирования
delete_storage_config
Удаление конфигурации хранилища по её UID. Параметры:uid(string, required) — Уникальный идентификатор (UUID) удаляемой конфигурации хранилища
list_quality_targets
Список целей качества, настроенных для конкретного проекта. Параметры:projectUid(string, required) — Уникальный идентификатор (UUID) проектаlimit(number, optional) — Максимальное количество возвращаемых целей качестваcursor(string, optional) — Курсор пагинации из предыдущего запроса
evaluate_quality
Оценка всех целей качества для проекта и возврат их текущего статуса. Параметры:projectUid(string, required) — Уникальный идентификатор (UUID) оцениваемого проекта
get_consensus_summary
Получение сводки по консенсусу для проекта, включая средние/медианные оценки и распределение. Параметры:projectUid(string, required) — Уникальный идентификатор (UUID) проекта
compute_consensus
Запуск вычисления консенсуса для проекта. Параметры:projectUid(string, required) — Уникальный идентификатор (UUID) проекта
list_organizations
Список всех организаций, членом которых вы являетесь. Параметры:limit(number, optional) — Максимальное количество возвращаемых организацийcursor(string, optional) — Курсор пагинации из предыдущего запроса
get_organization
Получение подробной информации о конкретной организации. Параметры:slug(string, required) — Слаг-идентификатор организации
list_slices
Список срезов для владельца (пользователя или организации). Параметры:owner(string, required) — Имя владельца (слаг пользователя или организации)limit(number, optional) — Максимальное количество возвращаемых срезовcursor(string, optional) — Курсор пагинации из предыдущего запроса
get_slice
Получение подробной информации о конкретном срезе. Параметры:owner(string, required) — Имя владельца (слаг пользователя или организации)slug(string, required) — Слаг среза
list_annotation_issues_by_sequence
Список всех проблем аннотирования для конкретной последовательности. Параметры:sequenceUid(string, required) — UUID последовательностиdatasetItemUid(string, optional) — Фильтр по UUID элемента датасетаprojectUid(string, optional) — Фильтр по UUID проекта
create_annotation_issue
Создание новой проблемы аннотирования для последовательности. Параметры:sequenceUid(string, required) — UUID последовательностиtoolUid(string, required) — UUID инструмента аннотированияproblemUid(string, required) — UUID типа проблемыdatasetItemUid(string, optional) — UUID элемента датасетаprojectUid(string, optional) — UUID проектаpriority(string, optional) — Уровень приоритета:lowest,low,medium,high,highestseverity(string, optional) — Уровень серьёзности:critical,moderatedescription(string, optional) — Описание проблемыwrongClass(string, optional) — Неверная метка классаcorrectClass(string, optional) — Верная метка классаobjectUid(string, optional) — UUID объекта аннотацииshouldReAnnotate(boolean, optional) — Требуется ли повторное аннотированиеshouldDelete(boolean, optional) — Требуется ли удаление аннотацииframesAffected(string, optional) — Затронутые кадры
update_annotation_issue
Обновление существующей проблемы аннотирования (статус, приоритет и т. д.). Параметры:sequenceUid(string, required) — UUID последовательностиissueUid(string, required) — UUID проблемы аннотированияstatus(string, optional) — Статус:open,relabeling,in_review,completed,cant_reproduce,awaiting_feedback,no_action_takenpriority(string, optional) — Уровень приоритета:lowest,low,medium,high,highestseverity(string, optional) — Уровень серьёзности:critical,moderatedescription(string, optional) — Обновлённое описаниеtoolUid(string, optional) — UUID инструмента аннотированияproblemUid(string, optional) — UUID типа проблемыwrongClass(string, optional) — Неверная метка классаframesAffected(string, optional) — Затронутые кадры
delete_annotation_issue
Удаление проблемы аннотирования. Параметры:sequenceUid(string, required) — UUID последовательностиissueUid(string, required) — UUID удаляемой проблемы аннотирования
list_annotation_issues_by_dataset
Список всех проблем аннотирования для датасета. Параметры:owner(string, required) — Имя пользователя владельца датасетаdatasetSlug(string, required) — Слаг датасетаsequenceUid(string, optional) — Фильтр по UUID последовательности
get_annotation_issue_metrics
Получение агрегированных метрик проблем аннотирования для датасета (количество по статусу/приоритету/серьёзности, время закрытия). Параметры:owner(string, required) — Имя пользователя владельца датасетаdatasetSlug(string, required) — Слаг датасетаsequenceUid(string, optional) — Фильтр по UUID последовательности
list_qc_tools
Список доступных инструментов QC-аннотирования для заданного типа датасета. Параметры:datasetType(string, required) — Тип датасета (например,lidar,image,video)
fleet_list_devices
Список устройств автопарка с опциональными фильтрами. Параметры:status(string, optional) — Фильтр по статусу устройства (online,offline,maintenance)type(string, optional) — Фильтр по типу устройстваlimit(number, optional) — Максимальное количество возвращаемых устройствcursor(string, optional) — Курсор пагинации
fleet_get_device
Получение подробной информации о конкретном устройстве автопарка. Параметры:uid(string, required) — Уникальный идентификатор устройства
fleet_list_recordings
Список записей автопарка с опциональными фильтрами. Параметры:device(string, optional) — Фильтр по UID устройстваstatus(string, optional) — Фильтр по статусу записиlimit(number, optional) — Максимальное количество возвращаемых записейcursor(string, optional) — Курсор пагинации
fleet_get_recording
Получение подробной информации о конкретной записи. Параметры:uid(string, required) — Уникальный идентификатор записи
fleet_list_events
Список событий автопарка с опциональными фильтрами. Параметры:recording(string, optional) — Фильтр по UID записиdevice(string, optional) — Фильтр по UID устройстваtype(string, optional) — Фильтр по типу событияseverity(string, optional) — Фильтр по серьёзностиlimit(number, optional) — Максимальное количество возвращаемых событийcursor(string, optional) — Курсор пагинации
fleet_list_alerts
Список оповещений автопарка с опциональными фильтрами. Параметры:status(string, optional) — Фильтр по статусу оповещения (open,acknowledged,resolved)severity(string, optional) — Фильтр по серьёзности (info,warning,error,critical)device(string, optional) — Фильтр по UID устройстваrule(string, optional) — Фильтр по UID правилаlimit(number, optional) — Максимальное количество возвращаемых оповещенийcursor(string, optional) — Курсор пагинации
fleet_list_rules
Список правил автопарка с опциональными фильтрами. Параметры:enabled(boolean, optional) — Фильтр по статусу включенияlimit(number, optional) — Максимальное количество возвращаемых правилcursor(string, optional) — Курсор пагинации
fleet_register_device
Регистрация нового устройства автопарка. Параметры:name(string, required) — Имя устройстваtype(string, required) — Тип устройстваfirmwareVersion(string, optional) — Версия прошивкиtags(string[], optional) — Теги устройства
fleet_acknowledge_alert
Подтверждение оповещения автопарка. Параметры:uid(string, required) — Уникальный идентификатор подтверждаемого оповещения
Рецепты
Многошаговые рабочие процессы, которые можно выполнять на естественном языке. Каждый рецепт показывает вызовы инструментов, которые ассистент выполняет за кулисами.Рецепт 1: Проверка состояния датасетов
Попросите ассистента: «Проведи проверку состояния моего рабочего пространства — сколько у меня датасетов и в каких больше всего элементов?» Шаг 1 — Ассистент вызываетget_workspace_stats для получения обзора.
list_datasets с limit: 50 для получения всех датасетов.
Шаг 3 — Ассистент сортирует результаты по itemCount и представляет ранжированную сводку:
У вас 14 датасетов. Три самых больших:
- Warehouse Cameras — 34 200 элементов (image)
- Urban Driving Q1 — 12 450 элементов (lidar)
- Parking Lot Footage — 8 900 элементов (video)
Рецепт 2: Экспорт и скачивание
Попросите ассистента: «Экспортируй проект Urban Driving Q1 и сообщи, когда будет готово.» Шаг 1 — Ассистент вызываетlist_projects для поиска UID проекта, соответствующего «Urban Driving Q1».
Шаг 2 — Ассистент вызывает create_export с UID проекта.
get_export_status до тех пор, пока статус не изменится на completed.
Ваш экспорт готов (50 МБ). Скачайте его здесь: https://api.avala.ai/exports/.../download
Рецепт 3: Аудит качества по всем проектам
Попросите ассистента: «Оцени цели качества для всех моих проектов и отметь те, которые не проходят.» Шаг 1 — Ассистент вызываетlist_projects для получения всех проектов.
Шаг 2 — Для каждого проекта ассистент вызывает evaluate_quality с UID проекта.
Шаг 3 — Ассистент агрегирует результаты и выделяет несоответствия:
5 из 7 проектов проходят все цели качества. Два требуют внимания:
- Sidewalk Segmentation — цель «Точность меток» на 88% (порог: 95%)
- Fleet Camera Review — цель «Оценка консенсуса» на 0,72 (порог: 0,85)
Рецепт 4: Мониторинг устройств автопарка
Попросите ассистента: «Покажи все неподтверждённые оповещения автопарка, сгруппированные по серьёзности.» Шаг 1 — Ассистент вызываетfleet_list_alerts с status: "open".
Шаг 2 — Ассистент группирует и форматирует ответ:
Critical (1)Шаг 3 — Вы можете продолжить: «Подтверди все оповещения уровня warning.» Ассистент вызоветWarning (2)
- Dock Camera 3 — «Устройство офлайн более 24 часов» (с 18 марта)
- Forklift Sensor Unit 12 — «Температура устройства превысила пороговое значение (72C)» (с 19 марта)
- Rooftop LiDAR 1 — «Мало места на диске (< 5%)» (с 19 марта)
fleet_acknowledge_alert для каждого UID оповещения уровня warning.
Рецепт 5: Сортировка проблем аннотирования
Попросите ассистента: «Получи метрики проблем аннотирования для датасета urban-driving-q1 и покажи разбивку.» Шаг 1 — Ассистент вызываетget_annotation_issue_metrics с владельцем и слагом датасета.
Шаг 2 — Ассистент представляет форматированную сводку:
Urban Driving Q1 — Метрики проблем По статусу: 12 open, 5 in review, 3 relabeling, 45 completed По серьёзности: 8 critical, 57 moderate По приоритету: 2 highest, 6 high, 18 medium, 25 low, 14 lowest Среднее время закрытия: 4,2 часаШаг 3 — Вы продолжаете: «Покажи открытые critical проблемы.» Ассистент вызывает
list_annotation_issues_by_dataset с фильтрами и показывает результаты.
Примеры промптов
Вот несколько примеров промптов на естественном языке, которые можно использовать с любым MCP-совместимым клиентом:Устранение неполадок
AVALA_API_KEY не установлен
Если переменная окружения AVALA_API_KEY отсутствует, MCP Server немедленно завершается с кодом ошибки 1. Убедитесь, что ключ задан в блоке env конфигурации MCP или экспортирован в вашей оболочке перед запуском сервера.
Мутирующие инструменты не отображаются
Если такие инструменты, какcreate_export, create_agent или fleet_register_device, отсутствуют в списке инструментов, необходимо установить AVALA_MCP_ENABLE_MUTATIONS=true в среде сервера. Добавьте это в блок env файла конфигурации MCP:
npx не найден или неправильная версия Node.js
MCP Server требует Node.js 18 или новее. Если вы видите npx: command not found или ошибки синтаксиса модулей, проверьте версию Node.js:
Устаревший кэш MCP Server
Если вы недавно обновили пакет@avala-ai/mcp-server, но по-прежнему наблюдаете старое поведение или отсутствие инструментов, npx может использовать кэшированную версию. Принудительно выполните свежую установку:
API-ключ недействителен или просрочен
Если вызовы инструментов возвращают401 Unauthorized, ваш API-ключ может быть недействительным, просроченным или отозванным. Создайте новый ключ в Mission Control в разделе Settings > Security и обновите конфигурацию MCP.
Avala MCP Server является открытым исходным кодом. Посетите репозиторий GitHub, чтобы просмотреть исходный код или внести свой вклад.