Octopus Deploy Official MCP Server

oficial

El servidor MCP de Octopus proporciona a tu asistente de IA herramientas potentes que le permiten inspeccionar, consultar y diagnosticar problemas dentro de tu instancia de Octopus, transformándolo en tu compañero definitivo de DevOps.

¿Qué puedes hacer con Octopus Deploy Official MCP?

  • Inspeccionar implementaciones desde una URL — Solicita investigar una implementación pegando su URL de Octopus; get_deployment_from_url devuelve contexto y un ID de tarea para seguimiento.
  • Buscar en registros de tareas de implementación — Usa grep_task_log para encontrar patrones de error o fallo en el registro de actividad de una tarea sin descargar todo el cuerpo de varios megabytes.
  • Crear e implementar versiones — Solicita create_release para un proyecto y luego deploy_release a entornos específicos, incluidas implementaciones con inquilinos.
  • Ejecutar runbooks en varios entornos — Usa run_runbook para ejecutar un runbook en uno o más entornos, con soporte para ejecuciones con inquilinos y variables solicitadas.
  • Encontrar y corregir variables de inquilino faltantes — Usa get_missing_tenant_variables para identificar variables de inquilino sin valores y luego inspecciónalas con get_tenant_variables.
  • Verificar el estado en vivo de Kubernetes — Solicita el get_kubernetes_live_status de los recursos de un proyecto y entorno para diagnosticar problemas de implementación.

Documentación

[!WARNING] Obsoleto: Este servidor MCP está obsoleto. El Remote MCP Server está disponible en Octopus Server 2026.3 y versiones posteriores. Consulte la documentación del Remote MCP Server.

Octopus Deploy Logo

Octopus Deploy Official MCP Server

Octopus facilita la entrega de software a Kubernetes, multi-nube, infraestructura local y cualquier otro lugar. Automatice el lanzamiento, la implementación y las operaciones de su software y cargas de trabajo de IA con una herramienta que puede manejar CD a escala de maneras que ninguna otra herramienta puede.

Model Context Protocol (MCP) permite que los asistentes de IA que utiliza en su trabajo diario, como Claude Code o ChatGPT, se conecten a los sistemas y servicios que posee de manera estandarizada, permitiéndoles extraer información de esos sistemas y servicios para responder preguntas y realizar tareas.

El Octopus MCP Server proporciona a su asistente de IA potentes herramientas que le permiten inspeccionar, consultar y diagnosticar problemas dentro de su instancia de Octopus, transformándolo en su compañero definitivo de DevOps. Para obtener una lista de casos de uso compatibles y ejemplos de prompts, consulte nuestra documentación.

Compatibilidad con Octopus Server

La mayoría de las herramientas expuestas por el MCP Server utilizan APIs estables que han estado disponibles desde al menos la versión 2021.1 de Octopus Server. Las herramientas más nuevas especificarán la versión mínima compatible en la documentación. Alternativamente, puede usar el argumento de línea de comandos --list-tools-by-version para verificar cómo se relacionan herramientas específicas con las versiones de Octopus.

🚀 Instalación

Instalar mediante Docker

Las credenciales deben proporcionarse mediante variables de entorno para evitar exponerlas en la lista de procesos del host (ps aux / /proc/<pid>/cmdline). La URL del servidor de Octopus aún se puede proporcionar mediante el indicador --server-url.

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

Ejemplo de configuración completa (para Claude Desktop, Claude Code y 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"
      }
    },
  }
}

Para usuarios de Apple Mac, es posible que deba agregar los siguientes argumentos en la configuración para forzar a Docker a usar la plataforma Linux:

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

Planeamos lanzar una compilación ARM nativa próximamente para que esos argumentos ya no sean necesarios.

Instalar mediante Node

Requisitos

  • Node.js >= v20.0.0
  • Instancia de Octopus Deploy a la que el servidor MCP pueda acceder mediante HTTPS
  • Clave de API o token de acceso de Octopus Deploy (consulte Autenticación a continuación)

Configuración

Ejemplo de configuración completa (para Claude Desktop, Claude Code y Cursor):

Herramientas de escritura habilitadas (predeterminado):

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

Modo de solo lectura (recomendado para producción):

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

El Octopus MCP Server se configura típicamente dentro de su cliente de IA de elección.

Se empaqueta como un paquete npm y se ejecuta mediante el comando npx de Node. Las credenciales (clave de API o token de acceso) deben proporcionarse mediante variables de entorno; no se aceptan como argumentos de línea de comandos para evitar exponer secretos en la lista de procesos. La URL del servidor de Octopus puede proporcionarse mediante la variable de entorno OCTOPUS_SERVER_URL o el indicador --server-url.

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

O con la URL del servidor en la línea de comandos:

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

Autenticación

El servidor MCP admite dos métodos de autenticación. Ambos se proporcionan mediante variables de entorno; las credenciales no se aceptan en la línea de comandos porque los indicadores son visibles en la lista de procesos del host para cualquier usuario local.

Clave de API (recomendada para uso interactivo)

Las claves de API son el método de autenticación estándar para Octopus Deploy. Puede generar una desde su perfil de usuario de Octopus Deploy.

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

Token de acceso / Token Bearer (solo escenarios automatizados)

El servidor también admite tokens de acceso de corta duración (tokens Bearer) como alternativa a las claves de API. Este método de autenticación está destinado solo para escenarios automatizados donde un sistema externo emite un token de corta duración al servidor MCP (por ejemplo, pipelines de CI/CD, orquestación automatizada o flujos de trabajo máquina a máquina). No use tokens Bearer de larga duración; use claves de API en su lugar para sesiones interactivas o de larga duración.

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

Ejemplo de configuración completa con un token de acceso:

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

Si se proporcionan tanto una clave de API como un token de acceso, el token de acceso tiene prioridad. El método de autenticación activo se registra en el archivo de registro (configurable con --log-file) para que los operadores puedan confirmar qué credencial está en uso.

Opciones de configuración

El Octopus MCP Server admite varias opciones de línea de comandos para personalizar qué herramientas están disponibles.

Si no está seguro de qué herramientas necesita, recomendamos ejecutar sin opciones de línea de comandos adicionales y usar los valores predeterminados proporcionados.

Conjuntos de herramientas

Use el parámetro --toolsets para habilitar grupos específicos de herramientas:

# 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

Conjuntos de herramientas disponibles:

  • core - Operaciones básicas (siempre habilitado)
  • projects - Operaciones de proyectos
  • deployments - Operaciones de implementaciones
  • releases - Gestión de lanzamientos
  • runbooks - Descubrimiento y ejecución de runbooks
  • tasks - Operaciones de tareas
  • tenants - Operaciones de multi-tenencia
  • kubernetes - Operaciones de Kubernetes
  • machines - Operaciones de objetivos de implementación
  • certificates - Operaciones de certificados
  • accounts - Operaciones de cuentas
  • interruptions - Operaciones de intervención manual y aprobación
  • featureToggles - Inspeccionar y ajustar los feature toggles del cliente
  • context - Contexto de usuario autenticado y proyecto (usuario actual, ramas de Git)

Modo de solo lectura

El servidor se ejecuta con herramientas de escritura habilitadas de forma predeterminada. Pase --read-only para deshabilitar todas las herramientas de escritura y bloquear POST/PUT/PATCH/DELETE a través del respaldo execute. La mayoría de las herramientas seleccionadas ya son de solo lectura; solo un pequeño conjunto realiza escrituras.

Herramientas con escritura habilitada (siempre escritura):

  • create_release - Crear nuevos lanzamientos
  • deploy_release - Implementar lanzamientos en entornos y tenants
  • run_runbook - Ejecutar un runbook en uno o más entornos (y tenants opcionales)
  • update_feature_toggle - Ajustar el estado por entorno y los porcentajes de implementación gradual en un feature toggle existente

Herramienta con escritura condicional: execute es un respaldo REST estructurado cuyo nivel (lectura / escritura / eliminación) está determinado por el método HTTP que se le pasa. Consulte la sección Catálogo de API y Respaldo para obtener detalles.

Las herramientas de escritura están controladas por un prompt de elicitación de MCP: los clientes que admiten elicitación recibirán una solicitud de confirmación antes de que continúe la llamada. Los clientes sin soporte de elicitación deben pasar confirm: true en los argumentos de la herramienta; de lo contrario, la herramienta se aborta con un error. Establezca OCTOPUS_SKIP_ELICITATION=true para omitir la compuerta por completo (destinado a automatización no supervisada).

El servidor utiliza una clasificación de tres niveles de lectura/escritura/eliminación, aplicada en el lado del servidor según el método HTTP (el agente no puede omitir esto mintiendo sobre la intención):

  • lectura — siempre permitida. Solicitudes GET a través de execute, más todas las herramientas find_* / get_* / list_*.
  • escritura — POST/PUT/PATCH a través de execute y las herramientas de escritura siempre mencionadas anteriormente. Bloqueado cuando --read-only está establecido.
  • eliminación — DELETE a través de execute. Requiere --allow-deletes y se bloquea cuando --read-only está establecido. Un pequeño conjunto de rutas de eliminación catastrófica (por ejemplo, DELETE /api/spaces/{id}, DELETE /api/users/{id}) y endpoints de clave de API están en una lista de denegación sensible que ignora ambos indicadores.
# 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

Nota de seguridad: Use una clave de API con permisos apropiados de privilegio mínimo; las operaciones de escritura pueden crear lanzamientos y desencadenar implementaciones en su instancia de Octopus. Para producción, considere pasar --read-only a menos que tenga un caso de uso específico y controlado para escrituras. --allow-deletes está desactivado de forma predeterminada; solo habilítelo cuando el agente deba emitir solicitudes DELETE a través de execute. Si pasa --allow-deletes junto con --read-only, el servidor imprime una advertencia de inicio en stderr: las solicitudes DELETE permanecen bloqueadas por la compuerta de solo lectura.

Ejemplos completos

Todos los ejemplos a continuación asumen que OCTOPUS_API_KEY está establecido en el entorno. El indicador --server-url se muestra para mayor claridad, pero también se puede proporcionar mediante 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

Otros argumentos de línea de comandos

  • --read-only - Habilitar modo de solo lectura: deshabilitar todas las herramientas de escritura seleccionadas y bloquear POST/PUT/PATCH/DELETE a través de execute. Las escrituras están habilitadas de forma predeterminada; este indicador las desactiva. Consulte Modo de solo lectura.
  • --allow-deletes - Permitir solicitudes DELETE a través de la herramienta execute. Ignorado (con una advertencia de inicio) cuando --read-only está establecido. Predeterminado false.
  • --log-level <level> - Nivel de registro mínimo (info, error)
  • --log-file <path> - Ruta o nombre de archivo de registro. Si no se especifica, los registros se escriben solo en la consola
  • -q, --quiet - Deshabilitar el registro en archivos, solo registrar errores en la consola
  • --list-tools-by-version - Listar todas las herramientas registradas por su versión compatible de Octopus Server y salir

🔨 Herramientas

Herramientas basadas en URL

Inicio rápido: Pegue URLs de Octopus directamente para investigar problemas sin extracción manual de ID.

  • get_deployment_from_url: Obtener detalles de implementación desde la URL de implementación (devuelve taskId para seguimiento)
  • get_task_from_url: Obtener detalles de tarea y registros desde la URL de tarea

Flujo de trabajo de investigación de implementaciones:

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

Investigación de tareas (URL de tarea directa):

get_task_from_url with task URL
→ Returns task details and logs immediately

Estas herramientas eliminan la extracción manual de ID al:

  • Analizar URLs automáticamente
  • Resolver IDs de espacio a nombres de espacio
  • Validar formatos de ID
  • Proporcionar mensajes de error claros

Ejemplos de URLs:

  • Implementación: https://your-octopus.com/app#/Spaces-1/projects/my-app/deployments/Deployments-123
  • Tarea: https://your-octopus.com/app#/Spaces-1/tasks/ServerTasks-456

Consulte Trabajar con URLs para obtener flujos de trabajo detallados, ejemplos y mejores prácticas.

Herramientas principales

  • list_spaces: Listar todos los espacios en la instancia de Octopus Deploy
  • list_environments: Listar todos los entornos en un espacio dado

Catálogo de API y Respaldo

Estas herramientas y recursos permiten que el agente acceda a endpoints REST de Octopus que no tienen una herramienta seleccionada dedicada, con una compuerta estricta en el lado del servidor entre operaciones de lectura, escritura y eliminación.

  • grep_llms_txt: Busca en el catálogo de la API de Octopus (octopus://api/llms.txt) con semántica de estilo grep (versión mínima de Octopus compatible: 2026.2.3916). El cuerpo del catálogo es grande (normalmente más de 300 KB) — usa esto en lugar de leer el cuerpo del recurso directamente. Los parámetros reflejan GNU grep (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount). Útil para descubrir endpoints (POST /releases), enumerar endpoints de eliminación (DELETE ) o encontrar el tipo de cuerpo para una operación de escritura (Body: Create.*Command).
  • execute: Respaldo REST estructurado. Alcanza cualquier endpoint REST de Octopus bajo /api. El método HTTP es el clasificador autoritativo de lectura/escritura/eliminación — nunca una bandera isWrite que el LLM pueda establecer. El control de métodos está codificado en el lado del servidor:
    • GET siempre está permitido (sujeto a la verificación de forma de ruta + lista de denegación sensible).
    • POST/PUT/PATCH están bloqueados cuando --read-only está establecido; de lo contrario, requieren confirmación del usuario mediante elicitación.
    • DELETE requiere --allow-deletes (y está bloqueado cuando --read-only está establecido) además de un mensaje de elicitación "IRREVERSIBLE" más fuerte.
    • La lista de denegación sensible (endpoints de claves de API, DELETE /api/spaces/{id}, DELETE /api/users/{id}) se aplica incluso con ambas banderas activadas.
    • Se requiere que la ruta sea /api o que comience con /api/ — las URL absolutas, las rutas ~/api/... relativas al SDK y las rutas relativas al host fuera de /api (por ejemplo, /octopus/portal/...) se rechazan de antemano, por lo que execute permanece acotado a la superficie de la API REST de Octopus.
    • La lista de permitidos de rutas por conjunto de herramientas se aplica solo cuando --toolsets se ha restringido. Con todos los conjuntos de herramientas habilitados (el valor predeterminado, o --toolsets all explícito), la lista de permitidos se omite y cualquier ruta bajo /api es alcanzable sujeto a las compuertas anteriores. Cuando --toolsets se restringe, la lista de permitidos se convierte en el interruptor de seguridad: las rutas solo se resuelven si su conjunto de herramientas propietario está habilitado, por lo que deshabilitar un conjunto de herramientas (por ejemplo, certificates) hace que sus rutas sean inalcanzables a través de execute incluso en GET.

Los datos del catálogo también se exponen como Recursos MCP:

  • octopus://api/llms.txt — catálogo en markdown de cada endpoint REST de Octopus (método HTTP, ruta, parámetros de consulta, tipos de solicitud/respuesta). Requiere Octopus Server 2026.2.3916 o posterior. Caché en memoria de 5 minutos claveada en la URL del servidor configurado. Prefiere grep_llms_txt a leer el cuerpo directamente.
  • octopus://api/capabilities — JSON que describe la sesión en ejecución: versión del servidor, conjuntos de herramientas habilitados, herramientas disponibles (con sus minimumOctopusVersion) y si --read-only / --allow-deletes está activado. Útil para que el agente descubra qué es alcanzable en esta sesión.

Proyectos

  • list_projects: Lista todos los proyectos en un espacio determinado

Implementaciones

  • deploy_release: Implementa una versión en entornos (admite implementaciones con y sin inquilinos)
  • list_deployments: Lista implementaciones en un espacio con filtrado opcional

Versiones

  • create_release: Crea una nueva versión para un proyecto
  • find_releases: Encuentra versiones en un espacio (puede obtener una versión específica por ID, o listar/filtrar versiones por proyecto)

Los detalles de la versión también están disponibles como un Recurso MCP en octopus://spaces/{spaceName}/releases/{releaseId} — obténlos mediante resources/read (o la herramienta de respaldo read_resource) para obtener el cuerpo completo de la versión, incluidas las notas de la versión y los paquetes seleccionados.

Runbooks

  • find_runbooks: Encuentra runbooks en un proyecto (puede obtener un runbook específico por ID, o listar/filtrar runbooks por nombre parcial). Cada resumen incluye el ID de instantánea publicada, el modo de multiinquilinato y el alcance del entorno para que los llamadores puedan elegir objetivos válidos antes de ejecutar.
  • run_runbook: Ejecuta un runbook contra uno o más entornos. Admite ejecuciones con inquilinos (por nombre de inquilino o etiqueta de inquilino), variables solicitadas, modo de fallo guiado, ventanas de ejecución programadas e inclusión/exclusión de pasos o máquinas. Usa la instantánea publicada del runbook por defecto si runbookSnapshotId se omite.

El cuerpo completo del runbook (incluidos los campos de política de tiempo de ejecución) está disponible como un Recurso MCP en octopus://spaces/{spaceName}/runbooks/{runbookId}.

Tareas

Los datos de tareas se exponen principalmente como Recursos MCP. Usa resources/read (o la herramienta de respaldo read_resource) con uno de:

  • octopus://spaces/{spaceName}/tasks/{taskId} — metadatos ligeros (estado, tiempo, banderas de finalización)
  • octopus://spaces/{spaceName}/tasks/{taskId}/details — ServerTaskDetails completo (Progreso, árbol de ActivityLogs, etc.)

Para la búsqueda de registros, usa la herramienta grep_task_log en lugar de un recurso /log:

  • grep_task_log: Busca en el registro de actividad de una tarea sin obtener el cuerpo completo. Los parámetros reflejan GNU grep (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount). Devuelve líneas coincidentes con lineNumber indexado desde 1, matrices de contexto antes/después opcionales y un recuento de totalMatches en todo el registro.

Intencionalmente no hay un recurso /log: los registros de actividad pueden tener varios megabytes, y un recurso direccionable tentaría a los llamadores a obtener el cuerpo completo cuando grep es casi siempre la primitiva correcta.

Inquilinos

  • find_tenants: Encuentra inquilinos en un espacio (puede obtener un inquilino específico por ID o listar/buscar inquilinos con filtros)
  • get_tenant_variables: Obtén variables de inquilino por tipo (todas, comunes o de proyecto)
  • get_missing_tenant_variables: Obtén variables de inquilino que faltan valores

Kubernetes

  • get_kubernetes_live_status: Obtén el estado en vivo de los recursos de Kubernetes para un proyecto y entorno (versión mínima compatible: 2025.3)

Máquinas (Objetivos de implementación)

  • find_deployment_targets: Encuentra objetivos de implementación en un espacio (puede obtener un objetivo específico por ID o listar/buscar objetivos con filtros)

Certificados

  • find_certificates: Encuentra certificados en un espacio (puede obtener un certificado específico por ID o listar/buscar certificados con filtros)

Cuentas

  • find_accounts: Encuentra cuentas en un espacio (puede obtener una cuenta específica por ID o listar/buscar cuentas con filtros)

Interrupciones

  • find_interruptions: Encuentra interrupciones pendientes o históricas (intervenciones manuales, aprobaciones, avisos de fallo guiado) en un espacio, opcionalmente filtradas por tarea, proyecto, entorno, documento relacionado, responsabilidad o estado pendiente. Devuelve resúmenes breves; desreferencia el recurso octopus://spaces/{spaceName}/interruptions/{interruptionId} para la definición completa del Formulario (tipos de control, instrucciones en Markdown, opciones de botones, Form.Values enviados).

Conmutadores de funciones

  • find_feature_toggles: Lista los conmutadores de funciones de cliente en un proyecto. Cada resumen incluye el estado por entorno (isEnabled, rolloutPercentage, clientRolloutPercentage) además de un resourceUri para que "dónde está X activado" se pueda responder desde la respuesta de la lista.
  • update_feature_toggle: Ajusta un conmutador existente. Superficie estrecha — cambia un entorno a activado/desactivado, modifica porcentajes de implementación o actualiza la descripción / estado predeterminado a nivel de conmutador. Internamente obtiene el conmutador actual, aplica tus parches en memoria y envía el cuerpo combinado con PUT, por lo que los entornos no mencionados y los campos no mencionados se conservan. Los parches que hacen referencia a un entorno no configurado en el conmutador se rechazan.

El cuerpo completo del conmutador (descripción, inquilinos, segmentos, versiones mínimas) está disponible como un Recurso MCP en octopus://spaces/{spaceName}/projects/{projectId}/featuretoggles/{slug}. Los cuerpos de grupos de implementación son direccionables en octopus://spaces/{spaceName}/projects/{projectId}/rolloutgroups/{rolloutGroupId} para inspección de solo lectura.

Fuera de alcance (usa la interfaz de Octopus): crear nuevos conmutadores de funciones, eliminar conmutadores, renombrar o reetiquetar, adjuntar/desadjuntar grupos de implementación, segmentación de inquilinos, segmentos, filtros de versión mínima y gestión de grupos de implementación / identificadores de cliente SDK.

Herramientas adicionales

  • get_deployment_process: Obtén el proceso de implementación por ID para proyectos o versiones
  • get_variables: Obtén todas las variables de proyecto y variables de conjuntos de variables de biblioteca para un proyecto (admite proyectos de configuración como código mediante gitRef)
  • get_branches: Obtén ramas de Git para un proyecto controlado por versiones (versión mínima compatible: 2021.2)
  • get_current_user: Obtén información sobre el usuario autenticado actual

🔒 Consideraciones de seguridad

El Servidor MCP de Octopus incluye operaciones de lectura y escritura. Consideraciones de seguridad importantes:

Operaciones de lectura

  • Puede leer registros de implementación completos, que podrían incluir secretos de producción si no se marcaron como secretos
  • Acceso a datos de configuración y variables sensibles
  • Ten precaución al conectarte a herramientas y modelos en los que no confíes completamente

Operaciones de escritura

Por defecto, las siguientes operaciones de escritura están disponibles:

  • Crear versiones: Puede crear nuevas versiones para proyectos
  • Implementar versiones: Puede desencadenar implementaciones en entornos (incluida producción)
  • Ejecutar runbooks: Puede ejecutar runbooks contra entornos e inquilinos
  • Actualizar conmutadores de funciones: Puede cambiar el estado por entorno y modificar porcentajes de implementación en conmutadores existentes
  • POST/PUT/PATCH arbitrarios mediante el respaldo execute: Acotado a rutas bajo /api, con una lista de denegación sensible siempre activa. La lista de permitidos de rutas por conjunto de herramientas se aplica solo cuando --toolsets se ha restringido; con todos los conjuntos de herramientas habilitados (el valor predeterminado), las únicas compuertas de ruta son el límite /api y la lista de denegación sensible.

Pasa --read-only para deshabilitar todo lo anterior. Las solicitudes DELETE a través de execute requieren una bandera adicional --allow-deletes — una aceptación deliberada para operaciones irreversibles — y permanecen bloqueadas cuando --read-only está establecido.

Medidas de seguridad críticas:

  1. Privilegio mínimo: Usa claves de API con los permisos mínimos necesarios para tu caso de uso
  2. Acepta el modo de solo lectura: Las escrituras están habilitadas por defecto. Para producción, pasa --read-only a menos que tengas un caso de uso específico y controlado para operaciones de escritura. DELETE siempre requiere la aceptación adicional --allow-deletes.
  3. El control de métodos está en el lado del servidor y codificado: El método HTTP pasado a execute es el clasificador autoritativo. El agente no puede eludir la compuerta tergiversando lo que hace la llamada — las solicitudes POST/PUT/PATCH/DELETE reciben compuertas específicas por nivel independientemente de la prosa en el cuerpo de la solicitud.
  4. El filtrado de conjuntos de herramientas funciona como interruptor de seguridad: Restringir --toolsets elimina tanto las herramientas seleccionadas de los conjuntos deshabilitados como sus rutas de la lista de permitidos de execute. (La lista de permitidos solo se consulta cuando los conjuntos de herramientas están restringidos; con todos los conjuntos de herramientas habilitados, execute está acotado por la verificación de forma de /api y la lista de denegación sensible en su lugar.)
  5. Riesgo de inyección de avisos: Ejecutar agentes de forma totalmente automatizada podría hacerte vulnerable a ataques de inyección de avisos

Recomendación: Para entornos de producción, pasa --read-only a menos que tengas un caso de uso específico y controlado para operaciones de escritura. Deja --allow-deletes desactivado a menos que necesites específicamente semántica DELETE a través de execute.

⚠️ Limitaciones

Análisis de datos

La naturaleza de las herramientas de chat de IA actuales y el propio protocolo MCP hace que sea poco práctico analizar grandes cantidades de datos. La mayoría de los clientes MCP actualmente no admiten encadenar llamadas de herramientas (usar la salida de una herramienta como entrada para la siguiente) y en su lugar recurren a copiar los resultados token por token, lo que frecuentemente conduce a alucinaciones. Si buscas procesar datos históricos de tu instancia de Octopus con fines de análisis, recomendamos usar la API directamente o escribir tu propio cliente MCP que sea capaz de procesar los resultados de las llamadas de herramientas programáticamente.

Rendimiento

El Servidor MCP es técnicamente solo una capa delgada sobre la API existente del Servidor de Octopus. Como tal, es capaz de recuperar grandes cantidades de datos (por ejemplo, solicitar miles de implementaciones). Tales consultas pueden tener un efecto significativo en el rendimiento de tu instancia. Instruye a tus modelos para que solo recuperen el conjunto mínimo de datos que necesiten (la mayoría de los modelos son muy buenos en esto de forma nativa).

🤝 Contribuciones

¡Las contribuciones son bienvenidas! :heart: Por favor, lea nuestra Guía de Contribución para obtener información sobre cómo participar en este proyecto.

Estamos ansiosos por saber cómo planea usar Octopus MCP Server y qué funciones le gustaría ver incluidas en versiones futuras.

Utilice Issues para proporcionar comentarios o solicitar funciones.

Si es un cliente actual de Octopus, informe cualquier problema que experimente al usar nuestro servidor MCP a nuestro equipo de soporte. Esto garantizará que reciba una respuesta oportuna dentro de nuestras garantías de soporte estándar.

🙋 Preguntas frecuentes

¿Tienen planes de lanzar un servidor MCP remoto?

Estamos trabajando en la integración de un servidor MCP directamente en Octopus Server. Esto nos abrirá la puerta para construir herramientas MCP más complejas, así como:

  • Brindar a los administradores de Octopus un control más granular sobre los clientes MCP
  • Compatibilidad nativa con OAuth para la autenticación de clientes
  • Integrar herramientas de escaneo de seguridad en la salida de MCP

Si esto es de su interés, registre su interés en nuestro elemento de hoja de ruta.

Licencia

Este proyecto está licenciado bajo los términos de la licencia de código abierto Mozilla Public License 2.0.