Octopus Deploy Official MCP Server

официальный

MCP-сервер Octopus предоставляет вашему ИИ-ассистенту мощные инструменты, позволяющие проверять, запрашивать и диагностировать проблемы в вашем экземпляре Octopus, превращая его в вашего идеального напарника по DevOps.

Документация

Octopus Deploy Logo

Официальный MCP-сервер Octopus Deploy

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

Model Context Protocol (MCP) позволяет ИИ-ассистентам, которых вы используете в повседневной работе, таким как Claude Code или ChatGPT, подключаться к вашим системам и сервисам стандартизированным способом, извлекая из них информацию для ответов на вопросы и выполнения задач.

MCP-сервер Octopus предоставляет вашему ИИ-ассистенту мощные инструменты для проверки, запросов и диагностики проблем в вашем экземпляре Octopus, превращая его в вашего идеального DevOps-напарника. Список поддерживаемых сценариев использования и примеры запросов см. в нашей документации.

Совместимость с Octopus Server

Большинство инструментов, предоставляемых MCP-сервером, используют стабильные API, доступные как минимум с версии 2021.1 Octopus Server. Для более новых инструментов минимальная поддерживаемая версия будет указана в документации. Кроме того, вы можете использовать аргумент командной строки --list-tools-by-version, чтобы проверить, как конкретные инструменты соотносятся с версиями Octopus.

🚀 Установка

Установка через Docker

Учетные данные должны передаваться через переменные окружения, чтобы не раскрывать их в списке процессов хоста (ps aux / /proc/<pid>/cmdline). URL-адрес сервера Octopus по-прежнему можно указать с помощью флага --server-url.

docker run -i --rm -e OCTOPUS_API_KEY=your-key -e OCTOPUS_SERVER_URL=https://your-octopus.com octopusdeploy/mcp-server

Полный пример конфигурации (для Claude Desktop, Claude Code и Cursor):

{
  "mcpServers": {
    "octopus-deploy": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "OCTOPUS_SERVER_URL",
        "-e",
        "OCTOPUS_API_KEY",
        "octopusdeploy/mcp-server"
      ],
      "env": {
        "OCTOPUS_SERVER_URL": "https://your-octopus.com",
        "OCTOPUS_API_KEY": "YOUR_API_KEY"
      }
    },
  }
}

Пользователям Apple Mac может потребоваться добавить следующие аргументы в конфигурацию, чтобы принудительно использовать платформу Linux в Docker:

"--platform",
"linux/amd64",

В ближайшее время мы планируем выпустить нативную сборку для ARM, чтобы эти аргументы больше не требовались.

Установка через Node

Требования

  • Node.js >= v20.0.0
  • Экземпляр Octopus Deploy, доступный для MCP-сервера по HTTPS
  • API-ключ или токен доступа Octopus Deploy (см. раздел Аутентификация ниже)

Конфигурация

Полный пример конфигурации (для Claude Desktop, Claude Code и Cursor):

Инструменты записи включены (по умолчанию):

{
  "mcpServers": {
    "octopusdeploy": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@octopusdeploy/mcp-server"],
      "env": {
        "OCTOPUS_SERVER_URL": "https://your-octopus.com",
        "OCTOPUS_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Режим только для чтения (рекомендуется для production):

{
  "mcpServers": {
    "octopusdeploy": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@octopusdeploy/mcp-server", "--read-only"],
      "env": {
        "OCTOPUS_SERVER_URL": "https://your-octopus.com",
        "OCTOPUS_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

MCP-сервер Octopus обычно настраивается в выбранном вами ИИ-клиенте.

Он упакован как npm-пакет и выполняется через команду Node npx. Учетные данные (API-ключ или токен доступа) должны передаваться через переменные окружения — они не принимаются в качестве аргументов командной строки, чтобы избежать раскрытия секретов в списке процессов. URL-адрес сервера Octopus можно указать либо через переменную окружения OCTOPUS_SERVER_URL, либо через флаг --server-url.

OCTOPUS_API_KEY=API-KEY \
OCTOPUS_SERVER_URL=https://your-octopus.com \
npx -y @octopusdeploy/mcp-server

Или с URL-адресом сервера в командной строке:

OCTOPUS_API_KEY=API-KEY \
npx -y @octopusdeploy/mcp-server --server-url https://your-octopus.com

Аутентификация

MCP-сервер поддерживает два метода аутентификации. Оба передаются через переменные окружения — учетные данные не принимаются в командной строке, поскольку флаги видны в списке процессов хоста любому локальному пользователю.

API-ключ (рекомендуется для интерактивного использования)

API-ключи — это стандартный метод аутентификации для Octopus Deploy. Вы можете сгенерировать его в своем профиле пользователя Octopus Deploy.

OCTOPUS_API_KEY=API-XXXXXXXXXXXXXXXXXXXXXXXXXX \
OCTOPUS_SERVER_URL=https://your-octopus.com \
npx -y @octopusdeploy/mcp-server

Токен доступа / Bearer-токен (только для автоматизированных сценариев)

Сервер также поддерживает краткосрочные токены доступа (Bearer-токены) в качестве альтернативы API-ключам. Этот метод аутентификации предназначен только для автоматизированных сценариев, когда внешняя система выдает краткосрочный токен MCP-серверу (например, конвейеры CI/CD, автоматическая оркестрация или межмашинные рабочие процессы). Не используйте долгосрочные Bearer-токены — вместо этого используйте API-ключи для интерактивных или длительных сеансов.

OCTOPUS_ACCESS_TOKEN=your-short-lived-token \
OCTOPUS_SERVER_URL=https://your-octopus.com \
npx -y @octopusdeploy/mcp-server

Полный пример конфигурации с токеном доступа:

{
  "mcpServers": {
    "octopusdeploy": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@octopusdeploy/mcp-server"],
      "env": {
        "OCTOPUS_SERVER_URL": "https://your-octopus.com",
        "OCTOPUS_ACCESS_TOKEN": "YOUR_TOKEN"
      }
    }
  }
}

Если предоставлены и API-ключ, и токен доступа, приоритет имеет токен доступа. Активный метод аутентификации записывается в файл журнала (настраивается с помощью --log-file), чтобы операторы могли подтвердить, какие учетные данные используются.

Параметры конфигурации

MCP-сервер Octopus поддерживает несколько параметров командной строки для настройки доступных инструментов.

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

Наборы инструментов

Используйте параметр --toolsets для включения определенных групп инструментов:

# Enable all toolsets (default)
npx -y @octopusdeploy/mcp-server

# Enable only specific toolsets
npx -y @octopusdeploy/mcp-server --toolsets projects,deployments

# Enable all toolsets explicitly
npx -y @octopusdeploy/mcp-server --toolsets all

Доступные наборы инструментов:

  • core - Основные операции (всегда включены)
  • projects - Операции с проектами
  • deployments - Операции с развертываниями
  • releases - Управление релизами
  • runbooks - Обнаружение и выполнение runbook
  • tasks - Операции с задачами
  • tenants - Операции мультитенантности
  • kubernetes - Операции с Kubernetes
  • machines - Операции с целевыми средами развертывания
  • certificates - Операции с сертификатами
  • accounts - Операции с учетными записями
  • interruptions - Операции ручного вмешательства и утверждения
  • featureToggles - Проверка и настройка пользовательских переключателей функций
  • context - Контекст аутентифицированного пользователя и проекта (текущий пользователь, ветки Git)

Режим только для чтения

Сервер запускается с включенными инструментами записи по умолчанию. Передайте --read-only, чтобы отключить все инструменты записи и заблокировать POST/PUT/PATCH/DELETE через предохранитель execute. Большинство специализированных инструментов уже доступны только для чтения; лишь небольшой набор выполняет запись.

Инструменты с поддержкой записи (всегда запись):

  • create_release - Создание новых релизов
  • deploy_release - Развертывание релизов в средах и для арендаторов
  • run_runbook - Запуск runbook для одной или нескольких сред (и опциональных арендаторов)
  • update_feature_toggle - Настройка состояния для каждой среды и процентов развертывания для существующего переключателя функции

Условно записывающий инструмент: execute — это структурированный REST-предохранитель, уровень которого (чтение / запись / удаление) определяется переданным HTTP-методом. Подробнее см. в разделе Каталог API и предохранитель.

Инструменты записи защищены запросом подтверждения MCP: клиенты, поддерживающие запрос подтверждения, будут запрашивать подтверждение перед выполнением вызова. Клиенты без поддержки запроса подтверждения должны передавать confirm: true в аргументах инструмента — в противном случае инструмент прерывается с ошибкой. Установите OCTOPUS_SKIP_ELICITATION=true, чтобы полностью обойти шлюз (предназначено для автоматизации без участия человека).

Сервер использует трехуровневую классификацию чтение/запись/удаление, применяемую на стороне сервера на основе HTTP-метода (агент не может обойти это, солгав о намерениях):

  • read — всегда разрешено. GET-запросы через execute, а также все инструменты find_* / get_* / list_*.
  • write — POST/PUT/PATCH через execute и указанные выше инструменты постоянной записи. Блокируется, если установлен --read-only.
  • delete — DELETE через execute. Требуется --allow-deletes и блокируется, если установлен --read-only. Небольшой набор критических путей удаления (например, DELETE /api/spaces/{id}, DELETE /api/users/{id}) и конечных точек API-ключей находится в жестком запретном списке, который игнорирует оба флага.
# Default - write tools enabled (POST/PUT/PATCH)
npx -y @octopusdeploy/mcp-server

# Additionally permit DELETE requests through the execute tool
npx -y @octopusdeploy/mcp-server --allow-deletes

# Read-only mode - write/delete tools disabled
npx -y @octopusdeploy/mcp-server --read-only

Примечание по безопасности: Используйте API-ключ с соответствующими минимальными привилегиями — операции записи могут создавать релизы и запускать развертывания в вашем экземпляре Octopus. Для production-среды рассмотрите возможность передачи --read-only, если у вас нет конкретного контролируемого сценария использования записи. --allow-deletes по умолчанию отключен; включайте его только тогда, когда агенту необходимо выполнять DELETE-запросы через execute. Если вы передаете --allow-deletes вместе с --read-only, сервер выводит предупреждение при запуске в stderr — DELETE-запросы остаются заблокированными шлюзом только для чтения.

Полные примеры

Все примеры ниже предполагают, что OCTOPUS_API_KEY установлен в окружении. Флаг --server-url показан для ясности, но также может быть предоставлен через OCTOPUS_SERVER_URL.

# Development setup with only core and project tools
npx -y @octopusdeploy/mcp-server --toolsets core,projects --server-url https://your-octopus.com

# Production setup with all tools and read-only enforcement
npx -y @octopusdeploy/mcp-server --toolsets all --read-only --server-url https://your-octopus.com

# Default invocation - all tools and writes enabled
npx -y @octopusdeploy/mcp-server --server-url https://your-octopus.com

Другие аргументы командной строки

  • --read-only - Включить режим только для чтения: отключить все специализированные инструменты записи и заблокировать POST/PUT/PATCH/DELETE через execute. Запись включена по умолчанию; этот флаг отключает ее. См. Режим только для чтения.
  • --allow-deletes - Разрешить DELETE-запросы через инструмент execute. Игнорируется (с предупреждением при запуске), если установлен --read-only. По умолчанию false.
  • --log-level <level> - Минимальный уровень журналирования (info, error)
  • --log-file <path> - Путь или имя файла журнала. Если не указано, журналы выводятся только в консоль
  • -q, --quiet - Отключить файловое журналирование, выводить только ошибки в консоль
  • --list-tools-by-version - Вывести список всех зарегистрированных инструментов с указанием поддерживаемой версии Octopus Server и выйти

🔨 Инструменты

Инструменты на основе URL

Быстрый старт: Вставляйте URL-адреса Octopus напрямую для исследования проблем без ручного извлечения идентификаторов.

  • get_deployment_from_url: Получить детали развертывания из URL развертывания (возвращает taskId для дальнейших действий)
  • get_task_from_url: Получить детали задачи и журналы из URL задачи

Рабочий процесс исследования развертывания:

1. get_deployment_from_url with deployment URL
   → Returns deployment context + taskResourceUri + grepTaskLogHint

2a. Fetch the structured activity tree via resources/read (or read_resource)
    octopus://spaces/{spaceName}/tasks/{taskId}/details

2b. Or call grep_task_log with the taskId to search the raw log without
    fetching the full body:
       grep_task_log({ spaceName, taskId, pattern: "error|fail", caseInsensitive: true })

Исследование задачи (прямой URL задачи):

get_task_from_url with task URL
→ Returns task details and logs immediately

Эти инструменты устраняют ручное извлечение идентификаторов за счет:

  • Автоматического разбора URL
  • Преобразования идентификаторов пространств в имена пространств
  • Проверки форматов идентификаторов
  • Предоставления понятных сообщений об ошибках

Примеры URL:

  • Развертывание: https://your-octopus.com/app#/Spaces-1/projects/my-app/deployments/Deployments-123
  • Задача: https://your-octopus.com/app#/Spaces-1/tasks/ServerTasks-456

См. Работа с URL для подробных рабочих процессов, примеров и лучших практик.

Основные инструменты

  • list_spaces: Список всех пространств в экземпляре Octopus Deploy
  • list_environments: Список всех сред в заданном пространстве

Каталог API и предохранитель

Эти инструменты и ресурсы позволяют агенту обращаться к конечным точкам REST Octopus, для которых нет специализированного инструмента, с жестким серверным разделением между операциями чтения, записи и удаления.

  • grep_llms_txt: Поиск в каталоге API Octopus (octopus://api/llms.txt) с семантикой grep (минимальная поддерживаемая версия Octopus: 2026.2.3916). Тело каталога велико (обычно 300+ КБ) — вызывайте этот инструмент вместо прямого чтения тела ресурса. Параметры повторяют GNU grep (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount). Полезен для обнаружения конечных точек (POST /releases), перечисления конечных точек удаления (DELETE ) или поиска типа тела для операции записи (Body: Create.*Command).
  • execute: Структурированная страховочная сетка REST. Обращается к любой конечной точке REST Octopus в рамках /api. Метод HTTP является авторитетным классификатором чтения/записи/удаления — это не флаг isWrite, который может установить LLM. Ограничение по методам жестко задано на стороне сервера:
    • GET разрешен всегда (при условии проверки формы пути и чувствительного списка запретов).
    • POST/PUT/PATCH блокируются, если установлен --read-only; в противном случае требуют подтверждения пользователя через запрос.
    • DELETE требует --allow-deletes (и блокируется, если установлен --read-only), а также более строгого сообщения-запроса «НЕОБРАТИМО».
    • Чувствительный список запретов (конечные точки API-ключей, DELETE /api/spaces/{id}, DELETE /api/users/{id}) применяется, даже если оба флага включены.
    • Путь должен быть /api или начинаться с /api/ — абсолютные URL, пути относительно SDK ~/api/... и пути относительно хоста вне /api (например, /octopus/portal/...) отклоняются сразу, поэтому execute остается ограниченным поверхностью REST API Octopus.
    • Белый список путей для набора инструментов применяется, только если --toolsets сужен. При включенных всех наборах инструментов (по умолчанию или явно --toolsets all) белый список игнорируется, и любой путь в рамках /api доступен с учетом вышеуказанных ограничений. Когда --toolsets сужен, белый список становится аварийным выключателем: пути разрешаются, только если их набор инструментов включен, поэтому отключение набора инструментов (например, certificates) делает его пути недоступными через execute даже при GET.

Данные каталога также доступны как MCP-ресурсы:

  • octopus://api/llms.txt — markdown-каталог каждой конечной точки REST Octopus (метод HTTP, путь, параметры запроса, типы запросов/ответов). Требуется Octopus Server 2026.2.3916 или новее. 5-минутный кэш в памяти, ключом является настроенный URL сервера. Предпочитайте grep_llms_txt прямому чтению тела.
  • octopus://api/capabilities — JSON, описывающий текущий сеанс: версия сервера, включенные наборы инструментов, доступные инструменты (с их minimumOctopusVersion), а также включены ли --read-only / --allow-deletes. Полезен для агента, чтобы узнать, что доступно в этом сеансе.

Проекты

  • list_projects: Список всех проектов в указанном пространстве

Развертывания

  • deploy_release: Развернуть релиз в средах (поддерживает как тенантные, так и нетенантные развертывания)
  • list_deployments: Список развертываний в пространстве с возможностью фильтрации

Релизы

  • create_release: Создать новый релиз для проекта
  • find_releases: Найти релизы в пространстве (можно получить конкретный релиз по ID или перечислить/отфильтровать релизы по проекту)

Детали релиза также доступны как MCP-ресурс по адресу octopus://spaces/{spaceName}/releases/{releaseId} — извлекайте через resources/read (или страховочный инструмент read_resource), чтобы получить полное тело релиза, включая примечания к релизу и выбранные пакеты.

Сборники инструкций (Runbooks)

  • find_runbooks: Найти сборники инструкций в проекте (можно получить конкретный сборник по ID или перечислить/отфильтровать сборники по части имени). Каждый сводный результат включает ID опубликованного снимка, режим мультитенантности и область среды, чтобы вызывающие могли выбрать допустимые цели перед запуском.
  • run_runbook: Запустить сборник инструкций для одной или нескольких сред. Поддерживает тенантные запуски (по имени тенанта или тегу тенанта), запрашиваемые переменные, режим управляемого сбоя, запланированные окна запуска, а также включение/исключение шагов или машин. По умолчанию используется опубликованный снимок сборника, если runbookSnapshotId опущен.

Полное тело сборника инструкций (включая поля политики времени выполнения) доступно как MCP-ресурс по адресу octopus://spaces/{spaceName}/runbooks/{runbookId}.

Задачи

Данные задач в основном доступны как MCP-ресурсы. Используйте resources/read (или страховочный инструмент read_resource) с одним из:

  • octopus://spaces/{spaceName}/tasks/{taskId} — облегченные метаданные (состояние, время, флаги завершения)
  • octopus://spaces/{spaceName}/tasks/{taskId}/details — полные ServerTaskDetails (прогресс, дерево ActivityLogs и т. д.)

Для поиска в журналах используйте инструмент grep_task_log, а не ресурс /log:

  • grep_task_log: Поиск в журнале активности задачи без извлечения всего тела. Параметры повторяют GNU grep (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount). Возвращает совпадающие строки с 1-индексированным lineNumber, опциональными массивами контекста до/после и счетчиком totalMatches по всему журналу.

Ресурс /log намеренно отсутствует: журналы активности могут занимать много мегабайт, и адресуемый ресурс побуждал бы вызывающих извлекать все тело, тогда как grep почти всегда является правильным примитивом.

Тенанты

  • find_tenants: Найти тенантов в пространстве (можно получить конкретного тенанта по ID или перечислить/искать тенантов с фильтрами)
  • get_tenant_variables: Получить переменные тенанта по типу (все, общие или проекта)
  • get_missing_tenant_variables: Получить переменные тенанта с отсутствующими значениями

Kubernetes

  • get_kubernetes_live_status: Получить актуальный статус ресурсов Kubernetes для проекта и среды (минимальная поддерживаемая версия: 2025.3)

Машины (Цели развертывания)

  • find_deployment_targets: Найти цели развертывания в пространстве (можно получить конкретную цель по ID или перечислить/искать цели с фильтрами)

Сертификаты

  • find_certificates: Найти сертификаты в пространстве (можно получить конкретный сертификат по ID или перечислить/искать сертификаты с фильтрами)

Учетные записи

  • find_accounts: Найти учетные записи в пространстве (можно получить конкретную учетную запись по ID или перечислить/искать учетные записи с фильтрами)

Прерывания

  • find_interruptions: Найти ожидающие или исторические прерывания (ручные вмешательства, утверждения, запросы управляемого сбоя) в пространстве, опционально отфильтрованные по задаче, проекту, среде, связанному документу, ответственности или состоянию ожидания. Возвращает краткие сводки; разыменуйте ресурс octopus://spaces/{spaceName}/interruptions/{interruptionId} для получения полного определения формы (типы элементов управления, инструкции Markdown, варианты кнопок, отправленные Form.Values).

Переключатели функций

  • find_feature_toggles: Список клиентских переключателей функций в проекте. Каждый сводный результат включает состояние по средам (isEnabled, rolloutPercentage, clientRolloutPercentage), а также resourceUri, так что на вопрос «где X включен» можно ответить из ответа списка.
  • update_feature_toggle: Настроить существующий переключатель. Узкая поверхность — включить/выключить среду, изменить проценты развертывания или обновить описание уровня переключателя / состояние по умолчанию. Внутренне извлекает текущий переключатель, применяет ваши исправления в памяти и отправляет PUT с объединенным телом, поэтому неуказанные среды и поля сохраняются. Исправления, ссылающиеся на среду, еще не настроенную в переключателе, отклоняются.

Полное тело переключателя (описание, тенанты, сегменты, минимальные версии) доступно как MCP-ресурс по адресу octopus://spaces/{spaceName}/projects/{projectId}/featuretoggles/{slug}. Тела групп развертывания доступны по адресу octopus://spaces/{spaceName}/projects/{projectId}/rolloutgroups/{rolloutGroupId} для проверки только для чтения.

Вне области применения (используйте пользовательский интерфейс Octopus): создание новых переключателей функций, удаление переключателей, переименование или перетегирование, прикрепление/открепление групп развертывания, таргетинг тенантов, сегменты, фильтры минимальной версии, а также управление группами развертывания / идентификаторами клиентов SDK.

Дополнительные инструменты

  • get_deployment_process: Получить процесс развертывания по ID для проектов или релизов
  • get_variables: Получить все переменные проекта и переменные наборов библиотечных переменных для проекта (поддерживает проекты config-as-code через gitRef)
  • get_branches: Получить ветки Git для проекта с версионным контролем (минимальная поддерживаемая версия: 2021.2)
  • get_current_user: Получить информацию о текущем аутентифицированном пользователе

🔒 Вопросы безопасности

Octopus MCP Server включает операции как чтения, так и записи. Важные аспекты безопасности:

Операции чтения

  • Могут читать полные журналы развертывания, которые могут содержать производственные секреты, если они не были помечены как секреты
  • Доступ к конфиденциальным данным конфигурации и переменным
  • Соблюдайте осторожность при подключении к инструментам и моделям, которым вы не полностью доверяете

Операции записи

По умолчанию доступны следующие операции записи:

  • Создание релизов: Можно создавать новые релизы для проектов
  • Развертывание релизов: Можно запускать развертывания в средах (включая производственные)
  • Запуск сборников инструкций: Можно выполнять сборники инструкций для сред и тенантов
  • Обновление переключателей функций: Можно изменять состояние по средам и проценты развертывания для существующих переключателей
  • Произвольные POST/PUT/PATCH через страховочный инструмент execute: Ограничено путями в рамках /api, с постоянно включенным чувствительным списком запретов. Белый список путей для набора инструментов применяется, только если --toolsets сужен; при включенных всех наборах инструментов (по умолчанию) единственными ограничениями пути являются граница /api и чувствительный список запретов.

Передайте --read-only, чтобы отключить все вышеперечисленное. Запросы DELETE через execute требуют дополнительного флага --allow-deletes — преднамеренного согласия на необратимые операции — и остаются заблокированными, если установлен --read-only.

Критические меры безопасности:

  1. Минимальные привилегии: Используйте ключи API с минимальными разрешениями, необходимыми для вашего сценария использования
  2. Согласие на режим только для чтения: Записи включены по умолчанию. Для производственной среды передавайте --read-only, если у вас нет конкретного, контролируемого сценария использования операций записи. DELETE всегда требует дополнительного согласия --allow-deletes.
  3. Ограничение по методам задано на стороне сервера и жестко запрограммировано: Метод HTTP, переданный в execute, является авторитетным классификатором. Агент не может обойти ограничение, искажая суть вызова — запросы POST/PUT/PATCH/DELETE получают ограничения, соответствующие уровню, независимо от текста в теле запроса.
  4. Фильтрация набора инструментов служит аварийным выключателем: Сужение --toolsets удаляет как курируемые инструменты отключенных наборов, так и их пути из белого списка execute. (Белый список проверяется только при суженных наборах инструментов; при включенных всех наборах execute ограничивается проверкой формы /api и чувствительным списком запретов.)
  5. Риск инъекции подсказок: Запуск агентов в полностью автоматическом режиме может сделать вас уязвимым для атак с инъекцией подсказок

Рекомендация: Для производственных сред передавайте --read-only, если у вас нет конкретного, контролируемого сценария использования операций записи. Оставляйте --allow-deletes выключенным, если вам специально не нужна семантика DELETE через execute.

⚠️ Ограничения

Анализ данных

Природа современных инструментов чата с ИИ и самого протокола MCP делает непрактичным анализ больших объемов данных. Большинство клиентов MCP в настоящее время не поддерживают цепочки вызовов инструментов (использование вывода одного инструмента в качестве ввода для следующего) и вместо этого прибегают к копированию результатов токен за токеном, что часто приводит к галлюцинациям. Если вы хотите обрабатывать исторические данные из вашего экземпляра Octopus для целей анализа, мы рекомендуем использовать API напрямую или написать собственный клиент MCP, способный обрабатывать результаты вызовов инструментов программно.

Производительность

MCP Server технически представляет собой лишь тонкий слой поверх существующего API Octopus Server. Таким образом, он способен извлекать большие объемы данных (например, запрашивать тысячи развертываний). Такие запросы могут существенно повлиять на производительность вашего экземпляра. Инструктируйте ваши модели извлекать только минимальный набор необходимых данных (большинство моделей отлично справляются с этим «из коробки»).

🤝 Вклад

Мы рады вашим идеям! :heart: Ознакомьтесь с нашим Руководством для участников, чтобы узнать, как присоединиться к проекту.

Нам интересно узнать, как вы планируете использовать Octopus MCP Server и какие функции хотели бы видеть в будущих версиях.

Оставляйте отзывы и предложения по функциям в разделе Issues.

Если вы являетесь действующим клиентом Octopus, сообщайте о любых проблемах при использовании нашего MCP-сервера в службу поддержки. Это гарантирует оперативный ответ в рамках наших стандартных обязательств по поддержке.

🙋 Часто задаваемые вопросы

Планируете ли вы выпустить удаленный MCP-сервер?

Мы работаем над интеграцией MCP-сервера непосредственно в Octopus Server. Это позволит нам создавать более сложные инструменты MCP, а также:

  • Предоставит администраторам Octopus более детальный контроль над MCP-клиентами
  • Обеспечит встроенную поддержку OAuth для аутентификации клиентов
  • Интегрирует инструменты проверки безопасности в вывод MCP

Если вам это интересно, сообщите о своей заинтересованности в нашей дорожной карте.

Лицензия

Этот проект распространяется под открытой лицензией Mozilla Public License 2.0.