Octopus Deploy Official MCP Server

официальный

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

Что можно делать с Octopus Deploy Official MCP?

  • Проверка развертываний по URL — Попросите исследовать развертывание, вставив его URL-адрес Octopus; get_deployment_from_url возвращает контекст и идентификатор задачи для последующих действий.
  • Поиск в журналах задач развертывания — Используйте grep_task_log, чтобы найти шаблоны ошибок или сбоев в журнале активности задачи без загрузки всего тела размером в несколько мегабайт.
  • Создание и развертывание релизов — Попросите create_release для проекта, затем deploy_release его в конкретные среды, включая развертывания с арендаторами.
  • Запуск runbook-ов в разных средах — Используйте run_runbook для выполнения runbook-а в одной или нескольких средах, с поддержкой запусков с арендаторами и переменных с запросом.
  • Поиск и исправление отсутствующих переменных арендатора — Используйте get_missing_tenant_variables, чтобы определить переменные арендатора без значений, затем проверьте их с помощью get_tenant_variables.
  • Проверка статуса Kubernetes в реальном времени — Попросите get_kubernetes_live_status ресурсов для проекта и среды, чтобы диагностировать проблемы развертывания.

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

[!WARNING] Устарело: Этот MCP-сервер устарел. Remote MCP Server доступен в Octopus Server 2026.3 и более поздних версиях. См. документацию Remote MCP Server.

Octopus Deploy Logo

Octopus Deploy Official MCP Server

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

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

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

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

Большинство инструментов, предоставляемых MCP Server, используют стабильные 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, возможно, потребуется добавить следующие аргументы в конфигурацию, чтобы заставить Docker использовать платформу Linux:

"--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"
      }
    }
  }
}

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

{
  "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"
      }
    }
  }
}

Octopus MCP Server обычно настраивается в вашем AI-клиенте по выбору.

Он поставляется как npm-пакет и выполняется через команду npx Node. Учетные данные (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), чтобы операторы могли подтвердить, какие учетные данные используются.

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

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

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

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

Используйте параметр --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 Catalog & Backstop.

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

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

  • чтение — всегда разрешено. GET-запросы через execute, а также все инструменты find_* / get_* / list_*.
  • запись — POST/PUT/PATCH через execute и указанные выше инструменты с постоянной записью. Блокируется, если установлен --read-only.
  • удаление — 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. Для продакшена рассмотрите возможность передачи --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 Catalog & Backstop

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

  • grep_llms_txt: Поиск по каталогу Octopus API (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-запасной вариант. Обращается к любой конечной точке Octopus REST в рамках /api. HTTP-метод является авторитетным классификатором чтения/записи/удаления — никогда не флаг isWrite, который может установить LLM. Ограничение методов жестко задано на стороне сервера:
    • GET всегда разрешен (при условии проверки формы пути + чувствительного денylist).
    • POST/PUT/PATCH блокируются, когда установлен --read-only; в противном случае они требуют подтверждения пользователя через элиситацию.
    • DELETE требует --allow-deletes (и блокируется, когда установлен --read-only) плюс более строгое сообщение элиситации "НЕОБРАТИМО".
    • Чувствительный денylist (конечные точки API-ключей, DELETE /api/spaces/{id}, DELETE /api/users/{id}) применяется даже при включенных обоих флагах.
    • Путь должен быть /api или начинаться с /api/ — абсолютные URL, пути ~/api/... относительно SDK и пути относительно хоста вне /api (например, /octopus/portal/...) отклоняются заранее, поэтому execute остается ограниченным поверхностью Octopus REST API.
    • Разрешающий список путей для каждого набора инструментов применяется только когда --toolsets сужен. При включенных всех наборах инструментов (по умолчанию или явный --toolsets all) разрешающий список обходится, и любой путь в рамках /api доступен с учетом вышеуказанных ограничений. Когда --toolsets сужен, разрешающий список становится аварийным выключателем: пути разрешаются только если их набор инструментов включен, поэтому отключение набора (например, certificates) делает его пути недоступными через execute даже на GET.

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

  • octopus://api/llms.txt — markdown-каталог каждой конечной точки Octopus REST (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: Поиск runbook'ов в проекте (можно получить конкретный runbook по ID или список/фильтр runbook'ов по частичному имени). Каждая сводка включает ID опубликованного снимка, режим мультиарендности и область сред, чтобы вызывающие могли выбрать допустимые цели перед запуском.
  • run_runbook: Запуск runbook'а против одной или нескольких сред. Поддерживает арендованные запуски (по имени арендатора или тегу арендатора), переменные с запросом, управляемый режим сбоев, запланированные окна запуска и включение/исключение шагов или машин. По умолчанию используется опубликованный снимок runbook'а, если runbookSnapshotId опущен.

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

Задачи

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

  • octopus://spaces/{spaceName}/tasks/{taskId} — легковесные метаданные (состояние, время, флаги завершения)
  • octopus://spaces/{spaceName}/tasks/{taskId}/details — полные ServerTaskDetails (Progress, дерево 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 включает как операции чтения, так и записи. Важные соображения безопасности:

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

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

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

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

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

Передайте --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 и чувствительным денylist.)
  5. Риск инъекции подсказок: Запуск агентов в полностью автоматическом режиме может сделать вас уязвимыми к атакам инъекции подсказок

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

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

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

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

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

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

🤝 Вклад

Contributions are welcome! :heart: Please read our Contributing Guide for information about how to get involved in this project.

We are eager to hear how you plan to use Octopus MCP Server and what features you would like to see included in future version.

Please use Issues to provide feedback, or request features.

If you are a current Octopus customer, please report any issues you experience using our MCP server to our support team. This will ensure you get a timely response within our standard support guarantees.

🙋 FAQ

Do you have plans to release a remote MCP server?

We are working on integrating an MCP server directly into Octopus Server. This will open up the door for us to build more complex MCP tools, as well as:

  • Giving Octopus Administrators more granular control over MCP clients
  • Natively support OAuth for client authentication
  • Integrating security scanning tools into the MCP output

If this is of interest to you, please register your interest on our roadmap item.

License

This project is licensed under the terms of Mozilla Public License 2.0 open source license.