ariekogan/ateam-mcp

ariekogan/ateam-mcp

от ariekogan
ateam-mcp - MCP-сервер, дающий AI-ассистентам (ChatGPT, Claude) создавать, проверять и разворачивать многоагентные системы через платформу ADAS без ручного конфигурирования.

ateam-mcp

Give any AI the ability to build, validate, and deploy production multi-agent systems.

This is an MCP server that connects AI assistants — ChatGPT, Claude, Gemini, Copilot, Cursor, Windsurf, and any MCP-compatible environment — directly to the ADAS platform.

An AI developer says "Build me a customer support system with order tracking and escalation" — and their AI assistant handles the entire lifecycle: reads the spec, builds skill definitions, validates them, deploys to production, and verifies health. No manual JSON authoring, no docs reading, no copy-paste workflows.

Why this matters

Today, building multi-agent systems requires deep platform knowledge, manual configuration, and switching between docs, editors, and dashboards. ateam-mcp eliminates all of that by making the ADAS platform a native capability of the AI tools developers already use.

The AI assistant becomes the developer interface:

Developer: "Create an identity verification agent that checks documents,
            validates faces, and escalates fraud cases"

AI Assistant:
  → reads ADAS spec (adas_get_spec)
  → studies working examples (adas_get_examples)
  → builds skill + solution definitions
  → validates iteratively (adas_validate_skill, adas_validate_solution)
  → deploys to production (adas_deploy_solution)
  → verifies everything is running (adas_get_solution → health)

Developer: "Add a new skill that handles address verification"

AI Assistant:
  → deploys into the existing solution (adas_deploy_skill)
  → redeploys (adas_redeploy)
  → confirms health
ateam_auth

Аутентификация с A-Team. Требуется перед любой операцией, учитывающей тенант (чтение решений, развертывание, тестирование и т. д.). Пользователь может получить свой API-ключ по адресу https://mcp.ateam-ai.com/get-api-key. Только глобальные конечные точки (spec, examples, validate) работают без аутентификации. ВАЖНО: Даже если настроены переменные окружения (ADAS_API_KEY), вы ОБЯЗАНЫ явно вызывать ateam_auth - только env vars недостаточно. Для кросс-тенантных административных операций используйте master_key вместо api_key.

Аутентификация с A-Team. Требуется перед любой операцией, учитывающей тенант (чтение решений, развертывание, тестирование и т. д.). Пользователь может получить свой API-ключ по адресу https://mcp.ateam-ai.com/get-api-key. Только глобальные конечные точки (spec, examples, validate) работают без аутентификации. ВАЖНО: Даже если настроены переменные окружения (ADAS_API_KEY), вы ОБЯЗАНЫ явно вызывать ateam_auth - только env vars недостаточно. Для кросс-тенантных административных операций используйте master_key вместо api_key.

Параметры

  • api_keystring

    Your A-Team API key (e.g., adas_xxxxx)

  • master_keystring

    Master key for cross-tenant operations. Authenticates across ALL tenants without per-tenant API keys. Requires tenant parameter.

  • tenantstring

    Tenant name (e.g., dev, main). Optional with api_key if format is adas_<tenant>_<hex>. REQUIRED with master_key.

  • urlstring

    Optional API URL override (e.g., https://dev-api.ateam-ai.com). Use this to target a different environment without restarting the MCP server.

ateam_bootstrap

ОБЯЗАТЕЛЬНАЯ точка входа для A-Team MCP. ДОЛЖНА вызываться, когда пользователь приветствует, говорит «привет», спрашивает, что это, просит помощи, изучает возможности или при первом подключении MCP. Возвращает объяснение платформы, примеры решений и инструкции по поведению ассистента. НЕ импровизируйте с приветствием, вместо этого вызывайте этот инструмент.

ОБЯЗАТЕЛЬНАЯ точка входа для A-Team MCP. ДОЛЖНА вызываться, когда пользователь приветствует, говорит «привет», спрашивает, что это, просит помощи, изучает возможности или при первом подключении MCP. Возвращает объяснение платформы, примеры решений и инструкции по поведению ассистента. НЕ импровизируйте с приветствием, вместо этого вызывайте этот инструмент.

Параметры

Без параметров.

ateam_build_and_run

РАЗВЕРНУТЬ ТЕКУЩУЮ ВЕТКУ MAIN НА A-TEAM CORE. ⚠️ САМАЯ ТЯЖЕЛАЯ ОПЕРАЦИЯ (60-180 с): проверяет solution+skills → разворачивает все connectors+skills на Core (пересоздаёт MCP серверы) → проверяет здоровье → опционально запускает warm test → автоматически пушит в GitHub. 🌳 DEV/PROD РАБОЧИЙ ПРОЦЕСС: 1. Редактировать файлы → ateam_github_patch (по умолчанию пишет в ветку `dev`) 2. (Опционально) Посмотреть, что скоро отправится → ateam_github_diff 3. Отправить dev → main → ateam_github_promote (слияние + автоматический тег `prod-YYYY-MM-DD-NNN`) 4. Развернуть main на Core → ateam_build_and_run Этот инструмент ВСЕГДА разворачивает ветку `main` — параметра `ref` нет. Чтобы развернуть незаконченную dev-работу, сначала продвигайте её. АВТОМАТИЧЕСКИ ОПРЕДЕЛЯЕТ GitHub репозиторий: если опустить mcp_store и репозиторий существует, код коннектора автоматически подтягивается из main. При первом развертывании требуется mcp_store. После этого редактируйте через ateam_github_patch + promote, затем build_and_run. Для небольших изменений предпочтительнее ateam_patch (быстрее, инкрементально). Требуется аутентификация.

РАЗВЕРНУТЬ ТЕКУЩУЮ ВЕТКУ MAIN НА A-TEAM CORE. ⚠️ САМАЯ ТЯЖЕЛАЯ ОПЕРАЦИЯ (60-180 с): проверяет solution+skills → разворачивает все connectors+skills на Core (пересоздаёт MCP серверы) → проверяет здоровье → опционально запускает warm test → автоматически пушит в GitHub. 🌳 DEV/PROD РАБОЧИЙ ПРОЦЕСС: 1. Редактировать файлы → ateam_github_patch (по умолчанию пишет в ветку `dev`) 2. (Опционально) Посмотреть, что скоро отправится → ateam_github_diff 3. Отправить dev → main → ateam_github_promote (слияние + автоматический тег `prod-YYYY-MM-DD-NNN`) 4. Развернуть main на Core → ateam_build_and_run Этот инструмент ВСЕГДА разворачивает ветку `main` — параметра `ref` нет. Чтобы развернуть незаконченную dev-работу, сначала продвигайте её. АВТОМАТИЧЕСКИ ОПРЕДЕЛЯЕТ GitHub репозиторий: если опустить mcp_store и репозиторий существует, код коннектора автоматически подтягивается из main. При первом развертывании требуется mcp_store. После этого редактируйте через ateam_github_patch + promote, затем build_and_run. Для небольших изменений предпочтительнее ateam_patch (быстрее, инкрементально). Требуется аутентификация.

Параметры

  • solution_idstring

    The solution ID. Use this INSTEAD of passing the full solution object — the solution definition is auto-pulled from main. Required if solution object is omitted.

  • solutionobject

    Full solution definition. Required on first deploy. After first deploy, just pass solution_id instead — everything is auto-pulled from GitHub main.

  • skillsobject[]

    Optional after first deploy: skill definitions. If omitted, auto-pulled from main (skills/{id}/skill.json).

  • connectorsobject[]

    Optional: connector metadata (id, name, transport). Entry points auto-detected from mcp_store.

  • mcp_storeobject

    Optional: connector source code files. Key = connector id, value = array of {path, content}.

  • githubboolean

    Optional: if true, pull connector source code from main. AUTO-DETECTED: if you omit both mcp_store and github, the system checks if a repo exists and pulls from main automatically.

  • test_messagestring

    Optional: send a test message after deployment to verify the skill works. Returns the full execution result.

  • test_skill_idstring

    Optional: which skill to test (defaults to the first skill).

ateam_chain_status

SLIM chain status — the chip-quick poll. Given a chain_id (from ateam_conversation), returns the WHOLE-CHAIN aggregate status cheaply: chain_status + chain_done (true only when the ENTIRE chain — root job + every handoff + askAnySkill subcall — is terminal), plus pending_question, result, and a short progress line. This is what you poll on a loop after ateam_conversation — NOT ateam_get_chain (that returns the full tree; too heavy for periodic polling). A single job can finish while the chain is still running, so poll chain_done, not a job's status. Loop: call every ~2s until chain_done === true (or pending_question is set — the assistant is waiting on the user). Then read `result` / fetch the full tree once via ateam_get_chain if you need per-job detail.

SLIM chain status — the chip-quick poll. Given a chain_id (from ateam_conversation), returns the WHOLE-CHAIN aggregate status cheaply: chain_status + chain_done (true only when the ENTIRE chain — root job + every handoff + askAnySkill subcall — is terminal), plus pending_question, result, and a short progress line. This is what you poll on a loop after ateam_conversation — NOT ateam_get_chain (that returns the full tree; too heavy for periodic polling). A single job can finish while the chain is still running, so poll chain_done, not a job's status. Loop: call every ~2s until chain_done === true (or pending_question is set — the assistant is waiting on the user). Then read `result` / fetch the full tree once via ateam_get_chain if you need per-job detail.

Параметры

  • chain_idstringобязательный

    The chain id returned by ateam_conversation (the conversation's identity). Any job id in the chain also works — Core resolves the chain aggregate.

ateam_conversation

Отправляет сообщение развернутому решению и возвращает результат. skill_id не нужен — система сама направляет запрос нужному навыку. Поддерживает многошаговые диалоги: передайте actor_id из предыдущего ответа, чтобы продолжить беседу (например, ответить на подтверждение). Каждый вызов создает новое задание, но один и тот же actor_id сохраняет контекст разговора.

Отправляет сообщение развернутому решению и возвращает результат. skill_id не нужен — система сама направляет запрос нужному навыку. Поддерживает многошаговые диалоги: передайте actor_id из предыдущего ответа, чтобы продолжить беседу (например, ответить на подтверждение). Каждый вызов создает новое задание, но один и тот же actor_id сохраняет контекст разговора.

Параметры

  • solution_idstringобязательный

    The solution ID

  • messagestringобязательный

    The message to send (e.g., 'send email to X' or 'I confirm')

  • actor_idstring

    Optional: actor ID from a previous response to continue the conversation. Omit for a new conversation.

ateam_create_connector

Создайте каркас нового MCP коннектора с файлами server.js + package.json + README. Устраняет ~50% одинакового шаблонного кода (настройка MCP сервера, регистрация инструментов, stdio транспорт). Затем заполните реализации инструментов. Установите ui_capable=true, чтобы включить заглушки ui.listPlugins / ui.getPlugin (файлы исходного кода плагинов добавляются отдельно через ateam_create_plugin). После создания каркаса файлы загружаются в Core по тому же пути, что и ateam_upload_connector.

Создайте каркас нового MCP коннектора с файлами server.js + package.json + README. Устраняет ~50% одинакового шаблонного кода (настройка MCP сервера, регистрация инструментов, stdio транспорт). Затем заполните реализации инструментов. Установите ui_capable=true, чтобы включить заглушки ui.listPlugins / ui.getPlugin (файлы исходного кода плагинов добавляются отдельно через ateam_create_plugin). После создания каркаса файлы загружаются в Core по тому же пути, что и ateam_upload_connector.

Параметры

  • solution_idstringобязательный

    The solution ID

  • connector_idstringобязательный

    Connector ID (lowercase-with-dashes, no spaces). Becomes the directory name.

  • namestring

    Human-readable name for the connector (e.g. 'Hue Lights'). Defaults to connector_id.

  • ui_capableboolean

    If true, include ui.listPlugins/ui.getPlugin handler stubs. Default: false.

ateam_create_plugin

Создай каркас UI-плагина (iframe HTML, React Native TSX или оба варианта) внутри существующего коннектора. Это устраняет ~50% однотипного шаблонного кода (импорты, хуки темы/моста, протокол postMessage, форма экспорта по умолчанию). Остаётся только написать тело компонента. Используй kind='iframe' только для веба, 'rn' только для мобильных, 'adaptive' для обоих. Автообнаружение (Phase 5 of the strip) подхватит новый плагин при следующем деплое без объявления манифеста.

Создай каркас UI-плагина (iframe HTML, React Native TSX или оба варианта) внутри существующего коннектора. Это устраняет ~50% однотипного шаблонного кода (импорты, хуки темы/моста, протокол postMessage, форма экспорта по умолчанию). Остаётся только написать тело компонента. Используй kind='iframe' только для веба, 'rn' только для мобильных, 'adaptive' для обоих. Автообнаружение (Phase 5 of the strip) подхватит новый плагин при следующем деплое без объявления манифеста.

Параметры

  • solution_idstringобязательный

    The solution ID

  • connector_idstringобязательный

    Existing connector to add the plugin into (e.g. 'personal-assistant-ui-mcp')

  • plugin_namestringобязательный

    Plugin name (lowercase-with-dashes). E.g. 'memories-panel'. Becomes the dir name.

  • kindenum

    Render mode. 'adaptive' (default) produces both iframe + RN scaffolds.

    iframernadaptive
ateam_delete_connector

⚠️ CASCADING — любой навык, чьи engine.bootstrap_tools или tools[] ссылаются на коннектор из этого набора, ПРОВАЛИТ своё следующее выполнение. Останавливает и удаляет коннектор из A-Team Core; убирает ссылки из определения решения (grant'ы, platform_connectors, ui_plugins с идентификаторами, начинающимися на `mcp:<connector-id>:*`) и определений навыков (массив connectors); очищает файлы mcp-store. Исходный код на GitHub сохраняется — последующий вызов `ateam_build_and_run(github:true)` может восстановить коннектор. ТРЕБУЕТ `confirm:true`.

⚠️ CASCADING — любой навык, чьи engine.bootstrap_tools или tools[] ссылаются на коннектор из этого набора, ПРОВАЛИТ своё следующее выполнение. Останавливает и удаляет коннектор из A-Team Core; убирает ссылки из определения решения (grant'ы, platform_connectors, ui_plugins с идентификаторами, начинающимися на `mcp:<connector-id>:*`) и определений навыков (массив connectors); очищает файлы mcp-store. Исходный код на GitHub сохраняется — последующий вызов `ateam_build_and_run(github:true)` может восстановить коннектор. ТРЕБУЕТ `confirm:true`.

Параметры

  • solution_idstringобязательный

    The solution ID (e.g. 'smart-home-assistant')

  • connector_idstringобязательный

    The connector ID to remove (e.g. 'device-mock-mcp')

  • confirmbooleanобязательный

    REQUIRED. Must be exactly true. A missing/false value refuses the call with a recovery hint.

ateam_delete_skill

⚠️ НЕОБРАТИМО в Core + Builder FS — убивает работающий процесс MCP, удаляет из реестра навыков, удаляет запись в Mongo, убирает из solution.skills[] и solution.linked_skills, а также удаляет файлы навыка из Builder FS. ТРЕБУЕТ `confirm:true`. ВОССТАНОВЛЕНИЕ: навык остаётся в GitHub — `ateam_github_pull` пересобирает всё решение (отдельного пути восстановления навыка нет).

⚠️ НЕОБРАТИМО в Core + Builder FS — убивает работающий процесс MCP, удаляет из реестра навыков, удаляет запись в Mongo, убирает из solution.skills[] и solution.linked_skills, а также удаляет файлы навыка из Builder FS. ТРЕБУЕТ `confirm:true`. ВОССТАНОВЛЕНИЕ: навык остаётся в GitHub — `ateam_github_pull` пересобирает всё решение (отдельного пути восстановления навыка нет).

Параметры

  • solution_idstringобязательный

    The solution ID (e.g. 'personal-adas')

  • skill_idstringобязательный

    The skill ID to remove (e.g. 'linkedin-agent')

  • confirmbooleanобязательный

    REQUIRED. Must be exactly true. A missing/false value refuses the call with a recovery hint.

ateam_delete_solution

⚠️ НЕОБРАТИМО — уничтожает состояние Mongo, запущенные MCP-процессы и файловую систему Builder для всего решения и каждого скилла. ТРЕБУЕТ `confirm:true` И `confirm_solution_id`, который повторяет идентификатор уничтожаемого решения (защита от опечаток и галлюцинированных ID). ВОССТАНОВЛЕНИЕ: GitHub-репозиторий нетронут; `ateam_github_pull` пересобирает решение из `main`. Предпочитайте его повторному развёртыванию по памяти.

⚠️ НЕОБРАТИМО — уничтожает состояние Mongo, запущенные MCP-процессы и файловую систему Builder для всего решения и каждого скилла. ТРЕБУЕТ `confirm:true` И `confirm_solution_id`, который повторяет идентификатор уничтожаемого решения (защита от опечаток и галлюцинированных ID). ВОССТАНОВЛЕНИЕ: GitHub-репозиторий нетронут; `ateam_github_pull` пересобирает решение из `main`. Предпочитайте его повторному развёртыванию по памяти.

Параметры

  • solution_idstringобязательный

    The solution ID to delete

  • confirmbooleanобязательный

    REQUIRED. Must be exactly true. A missing/false value refuses the call with a recovery hint.

  • confirm_solution_idstringобязательный

    REQUIRED. Must exactly equal `solution_id`. This defeats typos and hallucinated ids — you can't wipe a solution you couldn't spell.

ateam_get_chain

Проверяет полное дерево цепочки для любой задачи — начиная с указанного job_id, проходя по всем handoff и askAnySkill subcall. Используйте, когда цепочка уже выполнилась и вы хотите проанализировать структуру: какой скилл кого вызвал, насколько глубоко ушло дерево вызовов, какой инструмент внутри какой задачи вызвал какой под-инструмент. Две основные формы: • response.chain.chainJobs[] — одна запись на каждую задачу в цепочке. Поля: jobId, skill, status, iteration, depth (0 = корень, +1 за каждый hop askAnySkill), relation ('root' | 'subcall' | 'handoff'), parentJobId, parentSkill, goal. • response.chain.executionSteps[] — каждый вызов инструмента во всех задачах цепочки, размеченный _skill, _jobId, _depth (= глубина задачи), _relation, _parentSkill, _parentJobId, _toolDepth (вложенность инструмента в инструмент через opId/parentOpId). Отличается от ateam_test_status по назначению: status нужен для живого опроса задачи, которую вы только что запустили; get_chain — для посмертного анализа дерева (отладка многоскилловых потоков, регрессионное тестирование, сравнение двух запусков). Авторизация: пробрасывает ваш авторизованный api_key. Ограничивается тенантом самого ключа. Доступ по актору: вы можете просматривать только цепочки, корневые задачи которых доступны вашему актору.

Проверяет полное дерево цепочки для любой задачи — начиная с указанного job_id, проходя по всем handoff и askAnySkill subcall. Используйте, когда цепочка уже выполнилась и вы хотите проанализировать структуру: какой скилл кого вызвал, насколько глубоко ушло дерево вызовов, какой инструмент внутри какой задачи вызвал какой под-инструмент. Две основные формы: • response.chain.chainJobs[] — одна запись на каждую задачу в цепочке. Поля: jobId, skill, status, iteration, depth (0 = корень, +1 за каждый hop askAnySkill), relation ('root' | 'subcall' | 'handoff'), parentJobId, parentSkill, goal. • response.chain.executionSteps[] — каждый вызов инструмента во всех задачах цепочки, размеченный _skill, _jobId, _depth (= глубина задачи), _relation, _parentSkill, _parentJobId, _toolDepth (вложенность инструмента в инструмент через opId/parentOpId). Отличается от ateam_test_status по назначению: status нужен для живого опроса задачи, которую вы только что запустили; get_chain — для посмертного анализа дерева (отладка многоскилловых потоков, регрессионное тестирование, сравнение двух запусков). Авторизация: пробрасывает ваш авторизованный api_key. Ограничивается тенантом самого ключа. Доступ по актору: вы можете просматривать только цепочки, корневые задачи которых доступны вашему актору.

Параметры

  • job_idstringобязательный

    The root job ID of the chain to inspect (or any job inside the chain — Core walks up to the root).

  • skill_slugstring

    Optional. The skill slug for the job — speeds up the lookup when the job isn't in memory and must be loaded from storage. Omit if you don't have it; lookup still works but does an extra round-trip.

ateam_get_connector_source

Читает исходные файлы развернутого MCP-коннектора. Возвращает все файлы (server.js, package.json и т.д.), хранящиеся в mcp_store для этого коннектора. Используйте это ПЕРЕД патчингом или переписыванием коннектора: всегда сначала читайте текущий код, чтобы вносить точечные исправления, а не слепые перезаписи целиком.

Читает исходные файлы развернутого MCP-коннектора. Возвращает все файлы (server.js, package.json и т.д.), хранящиеся в mcp_store для этого коннектора. Используйте это ПЕРЕД патчингом или переписыванием коннектора: всегда сначала читайте текущий код, чтобы вносить точечные исправления, а не слепые перезаписи целиком.

Параметры

  • solution_idstringобязательный

    The solution ID (e.g. 'smart-home-assistant')

  • connector_idstringобязательный

    The connector ID to read (e.g. 'home-assistant-mcp')

ateam_get_examples

Получите полные рабочие примеры, которые проходят проверку. Изучите их, прежде чем создавать свои собственные.

Получите полные рабочие примеры, которые проходят проверку. Изучите их, прежде чем создавать свои собственные.

Параметры

  • typeenumобязательный

    Example type: 'skill' = Order Support Agent, 'connector' = stdio MCP connector, 'connector-ui' = UI-capable connector, 'solution' = full 3-skill e-commerce solution, 'script-cache-skill' = fat-tool skill with script_cache opt-in (reference implementation of script-level JIT shortcuts — study this before building any browser-automation skill), 'index' = list all available examples

    skillconnectorconnector-uisolutionscript-cache-skillindex
ateam_get_solution

Чтение состояния решения: определение, навыки, работоспособность, статус или экспорт. Используйте это для проверки развернутых решений.

Чтение состояния решения: определение, навыки, работоспособность, статус или экспорт. Используйте это для проверки развернутых решений.

Параметры

  • solution_idstringобязательный

    The solution ID

  • viewenumобязательный

    What to read: 'definition' = full solution def, 'skills' = list skills, 'health' = live health check, 'status' = deploy status, 'export' = exportable bundle, 'validate' = re-validate from stored state, 'connectors_health' = connector status

    definitionskillshealthstatusexportvalidateconnectors_health
  • skill_idstring

    Optional: read a specific skill by ID (original or internal)

ateam_get_spec

Получите спецификацию A-Team — схемы, правила валидации, системные инструменты, руководства по агентам и шаблоны. Начните здесь после начальной загрузки, чтобы понять, как создавать скиллы и решения. Используйте 'section', чтобы получить только одну часть спецификации скилла (гораздо меньше полной спецификации). Используйте 'search', чтобы найти конкретные поля или понятия по всей спецификации. При разработке персоны, которая управляет логикой через run_python_script (паттерн Python-as-orchestrator), также загрузите topic='python_helpers' — он вернет ссылку на пространство имен помощников adas.*. Скиллы, разработанные без знания adas.*, получаются в 5-10 раз больше и более хрупкими. При подключении виджетов (UI-плагинов) к решению загрузите topic='widgets' — он вернет спецификацию виджетов (модель каталога, блоки how_to_use, форму opener_call, правила формулировок персоны, семантику привязки), чтобы вы могли правильно объявить `ui_plugins`. Для получения живого каталога виджетов, фактически доступных в развернутом тенанте, используйте ateam_get_widget_catalog.

Получите спецификацию A-Team — схемы, правила валидации, системные инструменты, руководства по агентам и шаблоны. Начните здесь после начальной загрузки, чтобы понять, как создавать скиллы и решения. Используйте 'section', чтобы получить только одну часть спецификации скилла (гораздо меньше полной спецификации). Используйте 'search', чтобы найти конкретные поля или понятия по всей спецификации. При разработке персоны, которая управляет логикой через run_python_script (паттерн Python-as-orchestrator), также загрузите topic='python_helpers' — он вернет ссылку на пространство имен помощников adas.*. Скиллы, разработанные без знания adas.*, получаются в 5-10 раз больше и более хрупкими. При подключении виджетов (UI-плагинов) к решению загрузите topic='widgets' — он вернет спецификацию виджетов (модель каталога, блоки how_to_use, форму opener_call, правила формулировок персоны, семантику привязки), чтобы вы могли правильно объявить `ui_plugins`. Для получения живого каталога виджетов, фактически доступных в развернутом тенанте, используйте ateam_get_widget_catalog.

Параметры

  • topicenumобязательный

    What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler), 'widgets' = widget (UI plugin) spec: catalog model, how_to_use block shape (solution.json snippet + opener_call + persona_phrasing + binding_notes), and rules for declaring ui_plugins. Pair with ateam_get_widget_catalog for the live per-tenant inventory.

    overviewskillsolutionenumsconnector-multi-userpython_helperswidgets
  • sectionenum

    Optional: get just one section of the skill spec (only works with topic='skill'). Sections: 'engine' = model/reasoning/planner optimization/bootstrap tools, 'tools' = tool definitions/meta tools, 'intents' = intents/problem/scenarios, 'policy' = access control/grants/workflows, 'triggers' = automation triggers, 'connectors' = connector linking/channels, 'role' = persona/goals, 'template' = minimal quick start, 'guide' = build steps/common mistakes

    enginetoolsintentspolicytriggersconnectorsroletemplateguide
  • searchstring

    Optional: filter the spec to only sections containing this search term. Works with any topic. Example: search='bootstrap' returns only fields/sections mentioning 'bootstrap'.

ateam_get_widget_catalog

Получает живой каталог виджетов (UI-плагинов), доступных в решении данного экземпляра. Возвращает виджеты, входящие в состав платформы + решения + объявленные навыком, каждый с готовым к вставке блоком how_to_use (фрагмент solution.json + opener_call + persona_phrasing + binding_notes). Используйте это при подключении виджетов к навыку или решению: блок how_to_use предназначен для дословного копирования в запись ui_plugins[] в solution.json и в формулировку открывающей фразы персонажа. Так вам не придётся писать ничего вручную. Каталог отражает то, что фактически развёрнуто в экземпляре прямо сейчас, а не абстрактную спецификацию (для самой спецификации используйте ateam_get_spec topic='widgets'). Источники: • 'platform' = виджеты, входящие в состав платформы (всегда доступны). • 'solution' = виджеты, входящие в состав решения данного экземпляра. • 'skill' = виджеты, объявленные конкретным навыком в решении. Аутентификация: передаёт ваш аутентифицированный api_key в Core (без участия мастер-секрета). Область действия экземпляра определяется самим ключом.

Получает живой каталог виджетов (UI-плагинов), доступных в решении данного экземпляра. Возвращает виджеты, входящие в состав платформы + решения + объявленные навыком, каждый с готовым к вставке блоком how_to_use (фрагмент solution.json + opener_call + persona_phrasing + binding_notes). Используйте это при подключении виджетов к навыку или решению: блок how_to_use предназначен для дословного копирования в запись ui_plugins[] в solution.json и в формулировку открывающей фразы персонажа. Так вам не придётся писать ничего вручную. Каталог отражает то, что фактически развёрнуто в экземпляре прямо сейчас, а не абстрактную спецификацию (для самой спецификации используйте ateam_get_spec topic='widgets'). Источники: • 'platform' = виджеты, входящие в состав платформы (всегда доступны). • 'solution' = виджеты, входящие в состав решения данного экземпляра. • 'skill' = виджеты, объявленные конкретным навыком в решении. Аутентификация: передаёт ваш аутентифицированный api_key в Core (без участия мастер-секрета). Область действия экземпляра определяется самим ключом.

Параметры

  • solution_idstring

    Optional. The solution to query. Defaults to the tenant's current solution.

  • originenum

    Optional. Filter by widget origin. 'all' (default) returns everything. 'platform' = platform-bundled only. 'solution' = solution-bundled only. 'skill' = skill-declared only.

    allplatformsolutionskill
  • include_unusedboolean

    Optional. If true, includes widgets that are available but not currently referenced by any skill or ui_plugins entry. Default false (only widgets actually wired into the solution).

  • formatenum

    Optional. 'full' (default) returns each widget with its paste-ready how_to_use block (solution.json snippet, opener_call, persona_phrasing, binding_notes). 'summary' returns just id/name/origin/description for a quick overview.

    summaryfull
ateam_get_workflows

Получите рабочие процессы сборщика: пошаговые конечные автоматы для создания навыков и решений. Используйте это, чтобы направлять пользователей через весь процесс разработки в разговорном режиме. Возвращает фазы, что спрашивать, что создавать, критерии выхода и советы для каждого этапа.

Получите рабочие процессы сборщика: пошаговые конечные автоматы для создания навыков и решений. Используйте это, чтобы направлять пользователей через весь процесс разработки в разговорном режиме. Возвращает фазы, что спрашивать, что создавать, критерии выхода и советы для каждого этапа.

Параметры

Без параметров.

ateam_github_diff

ПРЕДВАРИТЕЛЬНАЯ ПРОВЕРКА ПЕРЕД ПРОДВИЖЕНИЕМ. По умолчанию сравнивает `dev` (голова) и `main` (база): показывает точно, какие коммиты и файлы будут отправлены, если следующим вызвать ateam_github_promote(). Используйте это, когда хотите: • Просмотреть изменения перед продвижением в продакшн • Узнать, опережает ли dev main вообще (возвращает ahead_by: 0, если продвигать нечего) • Проверить произвольные сравнения веток/тегов/коммитов (переопределить base/head)

ПРЕДВАРИТЕЛЬНАЯ ПРОВЕРКА ПЕРЕД ПРОДВИЖЕНИЕМ. По умолчанию сравнивает `dev` (голова) и `main` (база): показывает точно, какие коммиты и файлы будут отправлены, если следующим вызвать ateam_github_promote(). Используйте это, когда хотите: • Просмотреть изменения перед продвижением в продакшн • Узнать, опережает ли dev main вообще (возвращает ahead_by: 0, если продвигать нечего) • Проверить произвольные сравнения веток/тегов/коммитов (переопределить base/head)

Параметры

  • solution_idstringобязательный

    The solution ID

  • basestring

    Base branch/tag/sha (the target — what you're comparing TO). Default: 'main'.

  • headstring

    Head branch/tag/sha (the source — what you're comparing FROM). Default: 'dev'.

ateam_github_list_versions

Выводит список всех доступных контрольных точек (теги safe-*) для решения. Показывает имя тега, дату, счётчик и SHA коммита. Используйте перед откатом, чтобы увидеть доступные точки восстановления.

Выводит список всех доступных контрольных точек (теги safe-*) для решения. Показывает имя тега, дату, счётчик и SHA коммита. Используйте перед откатом, чтобы увидеть доступные точки восстановления.

Параметры

  • solution_idstringобязательный

    The solution ID

ateam_github_log

Просматривает историю коммитов для GitHub-репозитория решения. Показывает последние коммиты с сообщениями, SHA, временными метками и ссылками. По умолчанию читает из `main` (прод). Укажите `ref: 'dev'`, чтобы увидеть текущую работу.

Просматривает историю коммитов для GitHub-репозитория решения. Показывает последние коммиты с сообщениями, SHA, временными метками и ссылками. По умолчанию читает из `main` (прод). Укажите `ref: 'dev'`, чтобы увидеть текущую работу.

Параметры

  • solution_idstringобязательный

    The solution ID

  • limitnumber

    Max commits to return (default: 10)

  • refstring

    Branch to read commits from. Default: 'main'.

ateam_github_patch

Редактирует файл в GitHub-репозитории решения и делает коммит. Два режима: 1. FULL FILE: передаёшь `content` — заменяет весь файл (подходит для новых или маленьких файлов) 2. SEARCH/REPLACE: передаёшь `search` + `replace` — точечное редактирование без отправки полного файла (предпочтительно для больших файлов вроде server.js) Всегда используй search/replace для больших файлов (>5 КБ). Сначала всегда читай файл через ateam_github_read, чтобы получить точный текст для поиска. ПО УМОЛЧАНИЮ работает с веткой `dev` — изменения не трогают прод. Используй ateam_github_promote, чтобы перенести из dev → main, когда будет готово. Передавай ref:'main' только для экстренных исправлений.

Редактирует файл в GitHub-репозитории решения и делает коммит. Два режима: 1. FULL FILE: передаёшь `content` — заменяет весь файл (подходит для новых или маленьких файлов) 2. SEARCH/REPLACE: передаёшь `search` + `replace` — точечное редактирование без отправки полного файла (предпочтительно для больших файлов вроде server.js) Всегда используй search/replace для больших файлов (>5 КБ). Сначала всегда читай файл через ateam_github_read, чтобы получить точный текст для поиска. ПО УМОЛЧАНИЮ работает с веткой `dev` — изменения не трогают прод. Используй ateam_github_promote, чтобы перенести из dev → main, когда будет готово. Передавай ref:'main' только для экстренных исправлений.

Параметры

  • solution_idstringобязательный

    The solution ID

  • pathstringобязательный

    File path to create/update (e.g. 'connectors/home-assistant-mcp/server.js')

  • contentstring

    The full file content to write (mode 1 — full file replacement)

  • searchstring

    Exact text to find in the file (mode 2 — search/replace). Must match exactly including whitespace.

  • replacestring

    Text to replace the search string with (mode 2 — required with search)

  • messagestring

    Optional commit message (default: 'Update <path>')

  • refstring

    Target branch. Default: 'dev' (safe — won't touch prod). Use 'main' only for emergency hotfixes.

ateam_github_promote

SHIP DEV TO PROD. Сливает ветку `dev` с `main` и автоматически помечает новую голову main тегом safe-YYYY-MM-DD-NNN. Используйте после тестирования вашей разработки, когда будете готовы развернуть изменения в продакшене. Рабочий процесс: 1) ateam_github_patch (записывает в dev) → 2) ateam_github_promote (сливает dev→main) → 3) ateam_build_and_run (развёртывает main). Передайте dry_run:true, чтобы увидеть, что будет отправлено, без слияния. При конфликте слияния вызов возвращает 409 - разрешите конфликт вручную на GitHub (откройте PR или используйте веб-интерфейс), затем повторите попытку.

SHIP DEV TO PROD. Сливает ветку `dev` с `main` и автоматически помечает новую голову main тегом safe-YYYY-MM-DD-NNN. Используйте после тестирования вашей разработки, когда будете готовы развернуть изменения в продакшене. Рабочий процесс: 1) ateam_github_patch (записывает в dev) → 2) ateam_github_promote (сливает dev→main) → 3) ateam_build_and_run (развёртывает main). Передайте dry_run:true, чтобы увидеть, что будет отправлено, без слияния. При конфликте слияния вызов возвращает 409 - разрешите конфликт вручную на GitHub (откройте PR или используйте веб-интерфейс), затем повторите попытку.

Параметры

  • solution_idstringобязательный

    The solution ID

  • labelstring

    Optional: human-readable label for the auto-tag (e.g., 'v2 stable', 'before refactor')

  • dry_runboolean

    If true: show the diff (commits + files about to ship) without merging. Default: false.

  • skip_tagboolean

    If true: merge without creating an auto-tag. Default: false (auto-tag enabled).

ateam_github_pull

Разверните решение ИЗ его репозитория GitHub. Читает .ateam/export.json + исходный код коннектора из репозитория и передаёт их в пайплайн развёртывания. Используйте это, чтобы восстановить предыдущую версию или развернуть из GitHub как источник истины.

Разверните решение ИЗ его репозитория GitHub. Читает .ateam/export.json + исходный код коннектора из репозитория и передаёт их в пайплайн развёртывания. Используйте это, чтобы восстановить предыдущую версию или развернуть из GitHub как источник истины.

Параметры

  • solution_idstringобязательный

    The solution ID to pull and deploy from GitHub

ateam_github_push

Отправляет текущее развёрнутое решение в GitHub. Автоматически создаёт репозиторий при первом использовании. Фиксирует атомарно полный пакет (решение + навыки + исходный код коннектора). Используйте после ateam_build_and_run, чтобы версионировать ваше решение, или в любой момент, когда хотите сделать снимок текущего состояния.

Отправляет текущее развёрнутое решение в GitHub. Автоматически создаёт репозиторий при первом использовании. Фиксирует атомарно полный пакет (решение + навыки + исходный код коннектора). Используйте после ateam_build_and_run, чтобы версионировать ваше решение, или в любой момент, когда хотите сделать снимок текущего состояния.

Параметры

  • solution_idstringобязательный

    The solution ID (e.g. 'smart-home-assistant')

  • messagestring

    Optional commit message (default: 'Deploy <solution_id>')

ateam_github_read

Читает любой файл из репозитория GitHub решения. Возвращает содержимое файла. Используйте, чтобы читать исходный код коннектора, определения скиллов или любой версионированный файл. По умолчанию читает из `main` (развёрнутое/продакшн состояние). Передайте `ref: 'dev'`, чтобы читать незавершённую работу.

Читает любой файл из репозитория GitHub решения. Возвращает содержимое файла. Используйте, чтобы читать исходный код коннектора, определения скиллов или любой версионированный файл. По умолчанию читает из `main` (развёрнутое/продакшн состояние). Передайте `ref: 'dev'`, чтобы читать незавершённую работу.

Параметры

  • solution_idstringобязательный

    The solution ID

  • pathstringобязательный

    File path in the repo (e.g. 'connectors/home-assistant-mcp/server.js', 'solution.json', 'skills/order-support/skill.json')

  • refstring

    Branch, tag, or commit SHA to read from. Default: 'main' (prod). Use 'dev' to read in-progress work.

ateam_github_rollback

Откати прод (ветку `main`) до предыдущего состояния. ADDITIVE — НЕ уничтожает историю. Создаёт новый коммит поверх main, дерево которого совпадает с деревом целевого коммита. История всего, что находится между целевым коммитом и текущим main, сохраняется (можно откатить откат). Порядок действий: 1) ateam_github_list_versions (найти тег safe-*) → 2) ateam_github_rollback(target: 'safe-...') → 3) ateam_build_and_run (разворачивает откаченное состояние).

Откати прод (ветку `main`) до предыдущего состояния. ADDITIVE — НЕ уничтожает историю. Создаёт новый коммит поверх main, дерево которого совпадает с деревом целевого коммита. История всего, что находится между целевым коммитом и текущим main, сохраняется (можно откатить откат). Порядок действий: 1) ateam_github_list_versions (найти тег safe-*) → 2) ateam_github_rollback(target: 'safe-...') → 3) ateam_build_and_run (разворачивает откаченное состояние).

Параметры

  • solution_idstringобязательный

    The solution ID

  • targetstringобязательный

    Tag (e.g., 'safe-2026-05-19-001') or commit SHA to revert main to. Use ateam_github_list_versions to find safe-* tags.

ateam_github_status

Проверьте, есть ли у решения репозиторий на GitHub, его URL и последний коммит. Используйте это, чтобы убедиться, что интеграция с GitHub работает для решения.

Проверьте, есть ли у решения репозиторий на GitHub, его URL и последний коммит. Используйте это, чтобы убедиться, что интеграция с GitHub работает для решения.

Параметры

  • solution_idstringобязательный

    The solution ID

ateam_github_write

Записывает файл в GitHub-репозиторий решения. Используйте это для создания новых файлов коннекторов или замены существующих — один файл за вызов. Это ОСНОВНОЙ способ записи кода коннектора после первого развёртывания. Записывайте каждый файл по отдельности (server.js, package.json, ресурсы UI), затем вызывайте ateam_github_promote() для отправки в продакшн (dev→main), затем ateam_build_and_run() для развёртывания. ПО УМОЛЧАНИЮ используется ветка `dev`.

Записывает файл в GitHub-репозиторий решения. Используйте это для создания новых файлов коннекторов или замены существующих — один файл за вызов. Это ОСНОВНОЙ способ записи кода коннектора после первого развёртывания. Записывайте каждый файл по отдельности (server.js, package.json, ресурсы UI), затем вызывайте ateam_github_promote() для отправки в продакшн (dev→main), затем ateam_build_and_run() для развёртывания. ПО УМОЛЧАНИЮ используется ветка `dev`.

Параметры

  • solution_idstringобязательный

    The solution ID

  • pathstringобязательный

    File path to write (e.g. 'connectors/my-mcp/server.js', 'connectors/my-mcp/package.json')

  • contentstringобязательный

    The full file content

  • messagestring

    Optional commit message (default: 'Write <path>')

  • refstring

    Target branch. Default: 'dev'.

ateam_list_solutions

Перечислите все решения, развернутые в Skill Builder.

Перечислите все решения, развернутые в Skill Builder.

Параметры

Без параметров.

ateam_patch

Хирургически обновляет ЛЮБОЕ поле в определении навыка или решения, переразворачивает и опционально перезапускает тесты — всё за один шаг. ⚠️ MERGE-BY-DEFAULT (v0.4.0) — Массивы защищены от молчаливой замены. Прямая запись массива в solution.linked_skills / ui_plugins / platform_connectors / handoffs / grants / triggers (и т.д.) и skill.tools / connectors / handoffs / scenarios ОТКЛОНЯЕТСЯ — чтобы не потерять соседние элементы. Добавляйте или удаляйте элементы с суффиксами _push / _delete / _update; переключайтесь на полную замену массива, только когда вы намерены это сделать. ОПЕРАЦИИ (безопасные по построению): 1. Скалярные (точечная нотация): { "problem.statement": "новое значение", "role.persona": "Ты..." } 2. Глубоко вложенные: { "intents.thresholds.accept": 0.9, "policy.escalation.enabled": true } 3. ДОБАВЛЕНИЕ в массив: { "tools_push": [{ name: "new_tool", description: "..." }] } 4. УДАЛЕНИЕ из массива: { "tools_delete": ["tool_name"] } 5. ИЗМЕНЕНИЕ одного элемента: { "tools_update": [{ name: "existing_tool", description: "обновлено" }] } 6. Полная ЗАМЕНА массива (согласие обязательно): { "linked_skills": [...], "linked_skills_replace": true } — или { _replace: true, ... }, чтобы согласиться на замену всех массивов в этом вызове. ПРИМЕРЫ ДЛЯ РЕШЕНИЯ (target='solution'): - ДОБАВИТЬ навык в решение: updates: { "linked_skills_push": ["my-new-skill"] } ← НЕ { linked_skills: ["my-new-skill"] } (это ОТКЛОНИТСЯ — вы потеряете остальные навыки) - УДАЛИТЬ навык: updates: { "linked_skills_delete": ["old-skill"] } - ДОБАВИТЬ UI-плагин: updates: { "ui_plugins_push": [{ id: "mcp:conn:panel", ... }] } - ДОБАВИТЬ handoff: updates: { "handoffs_push": [{ id: "h1", ... }] } ПРИМЕРЫ ДЛЯ НАВЫКА (target='skill' + skill_id): - Изменить персону: updates: { "role.persona": "Ты — дружелюбный ассистент" } - Дополнить персону: updates: { "persona_append": "\n\nВСЕГДА отвечай двумя предложениями." } - Добавить ограничение: updates: { "policy.guardrails.never_push": ["Никогда не передавай пароли"] } - Добавить инструмент: updates: { "tools_push": [{ name: "conn.tool", description: "...", inputs: [...], output: {...} }] } - Изменить intent: updates: ...

Хирургически обновляет ЛЮБОЕ поле в определении навыка или решения, переразворачивает и опционально перезапускает тесты — всё за один шаг. ⚠️ MERGE-BY-DEFAULT (v0.4.0) — Массивы защищены от молчаливой замены. Прямая запись массива в solution.linked_skills / ui_plugins / platform_connectors / handoffs / grants / triggers (и т.д.) и skill.tools / connectors / handoffs / scenarios ОТКЛОНЯЕТСЯ — чтобы не потерять соседние элементы. Добавляйте или удаляйте элементы с суффиксами _push / _delete / _update; переключайтесь на полную замену массива, только когда вы намерены это сделать. ОПЕРАЦИИ (безопасные по построению): 1. Скалярные (точечная нотация): { "problem.statement": "новое значение", "role.persona": "Ты..." } 2. Глубоко вложенные: { "intents.thresholds.accept": 0.9, "policy.escalation.enabled": true } 3. ДОБАВЛЕНИЕ в массив: { "tools_push": [{ name: "new_tool", description: "..." }] } 4. УДАЛЕНИЕ из массива: { "tools_delete": ["tool_name"] } 5. ИЗМЕНЕНИЕ одного элемента: { "tools_update": [{ name: "existing_tool", description: "обновлено" }] } 6. Полная ЗАМЕНА массива (согласие обязательно): { "linked_skills": [...], "linked_skills_replace": true } — или { _replace: true, ... }, чтобы согласиться на замену всех массивов в этом вызове. ПРИМЕРЫ ДЛЯ РЕШЕНИЯ (target='solution'): - ДОБАВИТЬ навык в решение: updates: { "linked_skills_push": ["my-new-skill"] } ← НЕ { linked_skills: ["my-new-skill"] } (это ОТКЛОНИТСЯ — вы потеряете остальные навыки) - УДАЛИТЬ навык: updates: { "linked_skills_delete": ["old-skill"] } - ДОБАВИТЬ UI-плагин: updates: { "ui_plugins_push": [{ id: "mcp:conn:panel", ... }] } - ДОБАВИТЬ handoff: updates: { "handoffs_push": [{ id: "h1", ... }] } ПРИМЕРЫ ДЛЯ НАВЫКА (target='skill' + skill_id): - Изменить персону: updates: { "role.persona": "Ты — дружелюбный ассистент" } - Дополнить персону: updates: { "persona_append": "\n\nВСЕГДА отвечай двумя предложениями." } - Добавить ограничение: updates: { "policy.guardrails.never_push": ["Никогда не передавай пароли"] } - Добавить инструмент: updates: { "tools_push": [{ name: "conn.tool", description: "...", inputs: [...], output: {...} }] } - Изменить intent: updates: ...

Параметры

  • solution_idstringобязательный

    The solution ID

  • targetenumобязательный

    What to update: 'solution' for solution definition, 'skill' for skill definition fields (problem, role, intents, tools, policy, engine, scenarios, etc.)

    solutionskill
  • skill_idstring

    Required when target is 'skill'. The skill ID to patch.

  • updatesobjectобязательный

    The update payload. Use dot notation for nested scalars (e.g. 'problem.statement': 'new value'). For arrays, use _push/_delete/_update suffixes (e.g. 'tools_push', 'tools_delete'). You can update ANY field in the skill definition: problem, role, intents, tools, policy, engine, scenarios, glossary, etc.

  • test_messagestring

    Optional: re-test the skill after patching. Requires skill_id.

  • dry_runboolean

    If true, apply the patch in memory and return the diff (arrays_merged, arrays_replaced, dropped_ids, added_ids, would_write_bytes) WITHOUT writing to GitHub or redeploying. Preview a change before committing to it.

  • sourceenum

    Where the solution/skill definition lives. 'github' (DEFAULT) — read from and write to the tenant's GitHub repo (GitHub is master; the normal path). 'local' — read from and write to the Builder FS store (no GitHub repo required). Use 'local' ONLY for a repo-less bootstrap tenant (e.g. freshly onboarded from a template, before GitHub is connected). This is a DEDICATED, EXPLICIT switch — never a fallback. Redeploy is local in both modes.

    githublocal
ateam_redeploy

Переразвернуть навыки БЕЗ изменения определений. ⚠️ ТЯЖЁЛАЯ ОПЕРАЦИЯ: заново генерирует MCP серверы (код на Python) для каждого навыка, отправляет каждый в A-Team Core, перезапускает коннекторы и проверяет обнаружение инструментов. Занимает 30-120 секунд в зависимости от количества навыков. Используйте после перезапусков коннекторов, сбоев Core или устаревшего состояния. Для инкрементальных изменений предпочитайте `ateam_patch` (обновляет и переразвёртывает за один шаг).

Переразвернуть навыки БЕЗ изменения определений. ⚠️ ТЯЖЁЛАЯ ОПЕРАЦИЯ: заново генерирует MCP серверы (код на Python) для каждого навыка, отправляет каждый в A-Team Core, перезапускает коннекторы и проверяет обнаружение инструментов. Занимает 30-120 секунд в зависимости от количества навыков. Используйте после перезапусков коннекторов, сбоев Core или устаревшего состояния. Для инкрементальных изменений предпочитайте `ateam_patch` (обновляет и переразвёртывает за один шаг).

Параметры

  • solution_idstringобязательный

    The solution ID to redeploy

  • skill_idstring

    Optional: redeploy a single skill only. Omit to redeploy ALL skills in the solution.

ateam_show_skill_minimal

Показывает минимальное представление авторской части навыка — только persona, connectors, handoff_when, style и policy guardrails. ~10× меньше, чем ateam_get_solution(view:'skills') для того же навыка. Используйте, когда нужно только несократимое авторское содержимое (Phase 9 of the strip).

Показывает минимальное представление авторской части навыка — только persona, connectors, handoff_when, style и policy guardrails. ~10× меньше, чем ateam_get_solution(view:'skills') для того же навыка. Используйте, когда нужно только несократимое авторское содержимое (Phase 9 of the strip).

Параметры

  • solution_idstringобязательный

    The solution ID

  • skill_idstringобязательный

    The skill ID

ateam_show_solution_minimal

Покажите минимальное представление решения для редактирования — только name + description + style + routing_mode + identity_mode + skill ids + connector ids. Пропускает deployed metadata, handoffs (автоматически сгенерированные), grants, ui_plugins, validation results. Используйте для быстрой проверки без подробных полей (Phase 9 of the strip).

Покажите минимальное представление решения для редактирования — только name + description + style + routing_mode + identity_mode + skill ids + connector ids. Пропускает deployed metadata, handoffs (автоматически сгенерированные), grants, ui_plugins, validation results. Используйте для быстрой проверки без подробных полей (Phase 9 of the strip).

Параметры

  • solution_idstringобязательный

    The solution ID

ateam_status_all

Показывает статус синхронизации с GitHub для ВСЕХ тенантов и решений за один вызов. Требует аутентификации по мастер-ключу. Возвращает сводную таблицу решений каждого тенанта с их статусом синхронизации с GitHub.

Показывает статус синхронизации с GitHub для ВСЕХ тенантов и решений за один вызов. Требует аутентификации по мастер-ключу. Возвращает сводную таблицу решений каждого тенанта с их статусом синхронизации с GitHub.

Параметры

Без параметров.

ateam_sync_all

Синхронизировать ВСЕ тенанты: отправить Builder FS → GitHub, затем вытянуть GitHub → Core MongoDB. Требуется аутентификация с мастер-ключом. Возвращает сводную таблицу с результатами для каждого тенанта/решения.

Синхронизировать ВСЕ тенанты: отправить Builder FS → GitHub, затем вытянуть GitHub → Core MongoDB. Требуется аутентификация с мастер-ключом. Возвращает сводную таблицу с результатами для каждого тенанта/решения.

Параметры

  • push_onlyboolean

    Only push to GitHub (skip pull to Core). Default: false (full sync).

  • pull_onlyboolean

    Only pull from GitHub to Core (skip push). Default: false (full sync).

ateam_test_abort

Прервать выполняющийся тест навыка. Останавливает выполнение задания на границе следующей итерации. (Продвинутый.)

Прервать выполняющийся тест навыка. Останавливает выполнение задания на границе следующей итерации. (Продвинутый.)

Параметры

  • solution_idstringобязательный

    The solution ID

  • skill_idstringобязательный

    The skill ID

  • job_idstringобязательный

    The job ID to abort

ateam_test_connector

Вызовите инструмент на работающем коннекторе и получите результат. Используйте это для тестирования отдельных инструментов коннектора (например, triggers.list, entities.list, google.command) без развертывания на клиенте. Коннектор должен быть подключен и работать.

Вызовите инструмент на работающем коннекторе и получите результат. Используйте это для тестирования отдельных инструментов коннектора (например, triggers.list, entities.list, google.command) без развертывания на клиенте. Коннектор должен быть подключен и работать.

Параметры

  • solution_idstringобязательный

    The solution ID

  • connector_idstringобязательный

    The connector ID (e.g., 'home-assistant-mcp', 'google-home-mcp')

  • toolstringобязательный

    The tool name to call (e.g., 'triggers.list', 'entities.list', 'google.devices')

  • argsobject

    Optional: arguments to pass to the tool

ateam_test_notification

Отправляет НАСТОЯЩЕЕ уведомление существующему актору в развёрнутом решении — для сквозного тестирования пути уведомлений, инициированных системой (каналы telegram/push/app). В отличие от ateam_test_skill (синтетический тестовый актор без каналов) и ateam_conversation (поток, инициированный пользователем), этот вызов идёт по пути /api/internal/notify-user, который используют PCM и другие смежные сервисы — поэтому реальные включённые каналы актора действительно получают сообщение. Используется для: • Дымового теста разветвления по каналам (telegram/push/app — доходит ли?) • Проверки результата доставки (статус ok/failed для каждого канала в ответе). Аутентификация: передаёт ваш api_key в Core (без привлечения master-secret). Tenant привязывается самим ключом — технически невозможно отправить уведомление в чужой tenant. ⚠️ БЕЗОПАСНОСТЬ: • Текст уведомления получает префикс [TEST] — виден пользователю, защита от фишинга. • Ограничение частоты: 10 вызовов в минуту на сессию. • Каждый вызов аудируется (кто вызвал, tenant, актор, хэш содержимого) независимо от результата. • actor_id ограничен вашим tenant — попытка обратиться к чужому tenant отклоняется из-за изоляции по tenant в Core на уровне Mongo. • reply_handler НЕ поддерживается при аутентификации через api-key (Core его игнорирует). Направление следующего ответа пользователя в произвольный навык — это поверхность для повышения привилегий. Для тестов маршрутизации и вовлечения используйте ateam_test_skill.

Отправляет НАСТОЯЩЕЕ уведомление существующему актору в развёрнутом решении — для сквозного тестирования пути уведомлений, инициированных системой (каналы telegram/push/app). В отличие от ateam_test_skill (синтетический тестовый актор без каналов) и ateam_conversation (поток, инициированный пользователем), этот вызов идёт по пути /api/internal/notify-user, который используют PCM и другие смежные сервисы — поэтому реальные включённые каналы актора действительно получают сообщение. Используется для: • Дымового теста разветвления по каналам (telegram/push/app — доходит ли?) • Проверки результата доставки (статус ok/failed для каждого канала в ответе). Аутентификация: передаёт ваш api_key в Core (без привлечения master-secret). Tenant привязывается самим ключом — технически невозможно отправить уведомление в чужой tenant. ⚠️ БЕЗОПАСНОСТЬ: • Текст уведомления получает префикс [TEST] — виден пользователю, защита от фишинга. • Ограничение частоты: 10 вызовов в минуту на сессию. • Каждый вызов аудируется (кто вызвал, tenant, актор, хэш содержимого) независимо от результата. • actor_id ограничен вашим tenant — попытка обратиться к чужому tenant отклоняется из-за изоляции по tenant в Core на уровне Mongo. • reply_handler НЕ поддерживается при аутентификации через api-key (Core его игнорирует). Направление следующего ответа пользователя в произвольный навык — это поверхность для повышения привилегий. Для тестов маршрутизации и вовлечения используйте ateam_test_skill.

Параметры

  • solution_idstringобязательный

    The solution ID (required for tenant scoping + audit context).

  • actor_idstringобязательный

    Target actor ID in your tenant (e.g. 'usr_arie_admin_0001'). Must exist; Core rejects if not found in your tenant.

  • contentstringобязательный

    Notification text. Will be sent to all of the actor's enabled channels, prefixed with [TEST] for the recipient.

  • urgencyenum

    Notification urgency. Default 'normal'.

    lownormalhigh
  • sourcestring

    Audit label for message.source. Default 'ateam-test'.

  • metadataobject

    Optional metadata merged into message.metadata. Useful for correlation IDs.

ateam_test_pipeline

Тестирует конвейер принятия решений (определение намерения → планирование) для навыка БЕЗ выполнения инструментов. Возвращает классификацию намерения, первое запланированное действие и время. Используйте это, чтобы отладить, почему навык неправильно классифицирует намерение или планирует неверное действие.

Тестирует конвейер принятия решений (определение намерения → планирование) для навыка БЕЗ выполнения инструментов. Возвращает классификацию намерения, первое запланированное действие и время. Используйте это, чтобы отладить, почему навык неправильно классифицирует намерение или планирует неверное действие.

Параметры

  • solution_idstringобязательный

    The solution ID

  • skill_idstringобязательный

    The skill ID to test

  • messagestringобязательный

    The test message to classify and plan for

ateam_test_skill

Отправляет тестовое сообщение в развёрнутый скилл и возвращает результат выполнения. Режимы ожидания (wait_for): • 'root' (по умолчанию, обратная совместимость) — ждать завершения корневой задачи сообщения, вернуть результат одной задачи. Быстро, игнорирует любые подскиллы, которым корневая задача делегировала через askAnySkill. • 'chain' — ждать, пока КАЖДАЯ задача в цепочке (корневая + handoffs + вызовы askAnySkill, рекурсивно) не достигнет терминального состояния, затем вернуть полное дерево цепочки. Используйте при тестировании многоскилльных потоков (оркестратор → воркеры, билдеры → суббилдеры и т.д.). Поле response.chain содержит chainJobs[] с parentJobId/relation/depth и executionSteps[] с вложенностью инструментов (opId/parentOpId/_toolDepth). Legacy: wait:false эквивалентно wait_for:'never' — сразу возвращает job_id для опроса через ateam_test_status. wait:true — то же, что и wait_for:'root' по умолчанию.

Отправляет тестовое сообщение в развёрнутый скилл и возвращает результат выполнения. Режимы ожидания (wait_for): • 'root' (по умолчанию, обратная совместимость) — ждать завершения корневой задачи сообщения, вернуть результат одной задачи. Быстро, игнорирует любые подскиллы, которым корневая задача делегировала через askAnySkill. • 'chain' — ждать, пока КАЖДАЯ задача в цепочке (корневая + handoffs + вызовы askAnySkill, рекурсивно) не достигнет терминального состояния, затем вернуть полное дерево цепочки. Используйте при тестировании многоскилльных потоков (оркестратор → воркеры, билдеры → суббилдеры и т.д.). Поле response.chain содержит chainJobs[] с parentJobId/relation/depth и executionSteps[] с вложенностью инструментов (opId/parentOpId/_toolDepth). Legacy: wait:false эквивалентно wait_for:'never' — сразу возвращает job_id для опроса через ateam_test_status. wait:true — то же, что и wait_for:'root' по умолчанию.

Параметры

  • solution_idstringобязательный

    The solution ID

  • skill_idstringобязательный

    The skill ID to test (original or internal ID)

  • messagestringобязательный

    The test message to send to the skill

  • waitboolean

    Legacy: if false, return job_id immediately for polling. If true or omitted, behaves like wait_for:'root'. Prefer wait_for going forward.

  • wait_forenum

    What to wait for before returning. 'root' (default) = root job done; 'chain' = every chain job terminal (use for multi-skill flows); 'never' = return job_id immediately (poll via ateam_test_status). When 'chain', the response includes the chain tree under response.chain.

    rootchainnever
  • chain_timeout_msnumber

    Optional. Max total ms to wait when wait_for:'chain'. Default 300000 (5 min). Long-running chains (skill-factory, large bundle builds) may need higher. Clamped to [10000, 900000].

  • actor_idstring

    Optional actor ID for conversation continuity. Pass the actor_id from a previous test response to continue the conversation. Omit to auto-generate a test actor (test_<timestamp>_<random>, auto-expires in 24h).

ateam_test_status

Опрашивает прогресс асинхронного теста навыка. Возвращает количество итераций, шаги вызова инструментов, статус (выполняется/завершено/ошибка) и результат по завершении. Установите include_chain:true, чтобы ТАКЖЕ включить полное дерево цепочек (каждое задание в цепочке, начиная с этого job_id, со связями родитель/потомок). Используйте, если это задание запускало подвызовы askAnySkill и вы хотите получить единый снимок состояния всех навыков вместо опроса каждого дочернего job_id по отдельности.

Опрашивает прогресс асинхронного теста навыка. Возвращает количество итераций, шаги вызова инструментов, статус (выполняется/завершено/ошибка) и результат по завершении. Установите include_chain:true, чтобы ТАКЖЕ включить полное дерево цепочек (каждое задание в цепочке, начиная с этого job_id, со связями родитель/потомок). Используйте, если это задание запускало подвызовы askAnySkill и вы хотите получить единый снимок состояния всех навыков вместо опроса каждого дочернего job_id по отдельности.

Параметры

  • solution_idstringобязательный

    The solution ID

  • skill_idstringобязательный

    The skill ID

  • job_idstringобязательный

    The job ID returned by ateam_test_skill

  • include_chainboolean

    If true, includes response.chain — the full chain tree rooted at this job_id (chainJobs[] with parentJobId/relation/depth, executionSteps[] with tool-nesting). Costs one extra Core call. Default false (back-compat).

ateam_test_voice

Симулирует голосовой разговор с развёрнутым решением. Запускает полный голосовой пайплайн (сессия → верификация вызывающего → промпт → диспетчер навыков → ответ), используя текст вместо аудио. Возвращает каждый шаг с ответом бота, статусом верификации, вызовами инструментов и сущностями. Используйте это, чтобы тестировать голосовые решения от начала до конца без телефонного звонка.

Симулирует голосовой разговор с развёрнутым решением. Запускает полный голосовой пайплайн (сессия → верификация вызывающего → промпт → диспетчер навыков → ответ), используя текст вместо аудио. Возвращает каждый шаг с ответом бота, статусом верификации, вызовами инструментов и сущностями. Используйте это, чтобы тестировать голосовые решения от начала до конца без телефонного звонка.

Параметры

  • solution_idstringобязательный

    The solution ID

  • messagesstring[]обязательный

    Array of user messages to send sequentially (simulates a multi-turn phone conversation)

  • phone_numberstring

    Optional: simulated caller phone number (e.g., '+14155551234'). If the number is in the solution's known phones list, the caller is auto-verified.

  • skill_slugstring

    Optional: target a specific skill by slug instead of using voice routing.

  • timeout_msnumber

    Optional: max wait time per skill execution in milliseconds (default: 60000).

ateam_upload_connector

Загрузить код коннектора в Core и перезапустить - БЕЗ переразвёртывания навыков. По умолчанию СЛИВАЕТ с состоянием GitHub на `ref` (значение по умолчанию: 'dev'). Отправка частичного набора файлов ТОЛЬКО накладывает эти файлы — остальная часть коннектора сохраняется из GitHub. Чтобы полностью заменить директорию коннектора (как раньше), передайте replace:true. Режимы: • github:true (без файлов) — развернуть состояние GitHub на `ref` как есть. • github:true + files:[] — состояние GitHub на `ref` как БАЗА, ваши файлы накладываются поверх (входящие побеждают). • files:[] (без github) — по умолчанию СЛИЯНИЕ с состоянием GitHub на `ref`. Отказывается, если базы GitHub нет (никакого молчаливого удаления). • files:[] + replace:true — полная замена. Стирает директорию коннектора и записывает только переданные файлы. Используйте осознанно. Распространённые ловушки, которые предотвращает такое поведение: • Баг до исправления (2026-06-06): отправка только ui-dist HTML удаляла server.js + node_modules — коннектор ломался до полной перезагрузки. Сейчас: эти файлы сливаются с базой GitHub. • Баг до исправления: github:true молча читал из `main`, даже когда патчи были на `dev`. Сейчас: по умолчанию — dev; передайте ref:'main', чтобы использовать старый путь.

Загрузить код коннектора в Core и перезапустить - БЕЗ переразвёртывания навыков. По умолчанию СЛИВАЕТ с состоянием GitHub на `ref` (значение по умолчанию: 'dev'). Отправка частичного набора файлов ТОЛЬКО накладывает эти файлы — остальная часть коннектора сохраняется из GitHub. Чтобы полностью заменить директорию коннектора (как раньше), передайте replace:true. Режимы: • github:true (без файлов) — развернуть состояние GitHub на `ref` как есть. • github:true + files:[] — состояние GitHub на `ref` как БАЗА, ваши файлы накладываются поверх (входящие побеждают). • files:[] (без github) — по умолчанию СЛИЯНИЕ с состоянием GitHub на `ref`. Отказывается, если базы GitHub нет (никакого молчаливого удаления). • files:[] + replace:true — полная замена. Стирает директорию коннектора и записывает только переданные файлы. Используйте осознанно. Распространённые ловушки, которые предотвращает такое поведение: • Баг до исправления (2026-06-06): отправка только ui-dist HTML удаляла server.js + node_modules — коннектор ломался до полной перезагрузки. Сейчас: эти файлы сливаются с базой GitHub. • Баг до исправления: github:true молча читал из `main`, даже когда патчи были на `dev`. Сейчас: по умолчанию — dev; передайте ref:'main', чтобы использовать старый путь.

Параметры

  • solution_idstringобязательный

    The solution ID

  • connector_idstringобязательный

    The connector ID to upload (e.g. 'personal-assistant-ui-mcp')

  • githubboolean

    If true, pull connector files from GitHub repo at `ref`. Default: false. Combine with files:[] to use GitHub as the base and overlay your files.

  • refstring

    GitHub branch to read from for the BASE state. Default: 'dev' (matches ateam_github_patch). Pass 'main' to read from production. Pre-2026-06-05 callers that relied on the silent-main default must pass ref:'main' explicitly.

  • filesobject[]

    Files to upload. By default merges with the GitHub state at `ref`. Set replace:true to wipe the connector dir and write only these files.

  • replaceboolean

    Opt into FULL REPLACE: wipe the connector dir and write only the provided `files`. Default: false (= merge with GitHub state at `ref`). Use with intent — sending an incomplete file set with replace:true will break the connector.

ateam_verify_consistency

Проверяет, синхронизированы ли состояние файловой системы Builder и состояние GitHub для решения. Только чтение — НЕ запускает деплой. Возвращает: • ok: true + drifts: [], если всё совпадает • ok: false + drifts: [{path, kind}], со списком файлов, которые различаются (типы: fs_missing, gh_missing, content_differs) Расхождение может появиться, когда GitHub пишет, а Builder FS не получает обновление зеркала (сбой сети, перезапуск контейнера посередине записи). Boot-синхронизация исправляет большую часть при следующем перезапуске бэкенда; этот инструмент выявляет расхождение раньше. Запускай после серии вызовов ateam_github_patch, чтобы убедиться, что бэкенд Builder согласован с GitHub, перед тем как вызывать ateam_build_and_run.

Проверяет, синхронизированы ли состояние файловой системы Builder и состояние GitHub для решения. Только чтение — НЕ запускает деплой. Возвращает: • ok: true + drifts: [], если всё совпадает • ok: false + drifts: [{path, kind}], со списком файлов, которые различаются (типы: fs_missing, gh_missing, content_differs) Расхождение может появиться, когда GitHub пишет, а Builder FS не получает обновление зеркала (сбой сети, перезапуск контейнера посередине записи). Boot-синхронизация исправляет большую часть при следующем перезапуске бэкенда; этот инструмент выявляет расхождение раньше. Запускай после серии вызовов ateam_github_patch, чтобы убедиться, что бэкенд Builder согласован с GitHub, перед тем как вызывать ateam_build_and_run.

Параметры

  • solution_idstringобязательный

    The solution ID to verify

Другие проверенные MCP-сервера

metatool-ai/metatool-app

metatool-ai/metatool-app

официальный

MetaMCP — агрегатор MCP серверов, объединяющий их в один endpoint с SSE, HTTP и middlewares. Группирует инструменты по пространствам имён, управляет доступом, наблюдает за трафиком. Для разработчиков MCP-инфраструктуры.

TypeScript2533
callstackincubator/agent-device

callstackincubator/agent-device

agent-device — CLI для автоматизации устройств, позволяющий AI-агентам открывать приложения на iOS, Android и десктопе, инспектировать UI, взаимодействовать с элементами и собирать отладочную инфор...

TypeScript3496
basicmachines-co/basic-memory

basicmachines-co/basic-memory

Basic Memory — MCP-сервер для постоянной памяти AI. Хранит заметки в Markdown с графом знаний и семантическим поиском. AI и человек пишут в одни файлы, контекст не теряется. Доступен локально или о...

Python3460
Doist/todoist-mcp

Doist/todoist-mcp

официальный

MCP сервер для Todoist даёт AI-агентам полный доступ к задачам. Создавайте, ищите и редактируйте задачи через LLM. Поддерживает streamable HTTP, OAuth, интеграцию с Claude, Cursor и VS Code. Инструменты переиспользуемы и работают как MCP, так и напрямую.

TypeScript528
redis/mcp-redis

redis/mcp-redis

официальный

MCP сервер Redis дает AI-агентам управлять Redis на естественном языке: кэширование, сессии и векторный поиск. Интегрируется с MCP клиентами, упрощает разработку приложений для работы с данными в р...

Python548
Perplexity MCP

Perplexity MCP

официальный

Официальный MCP-сервер Perplexity: веб-поиск, ответы на вопросы, ресёрч и рассуждения через модели Sonar и Search API.

TypeScript2389
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин