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.

Documentación

Octopus Deploy Logo

Servidor MCP Oficial de Octopus Deploy

Octopus facilita la entrega de software a Kubernetes, multi-nube, infraestructura local y cualquier otro lugar. Automatiza el lanzamiento, despliegue y operación de tu software y cargas de trabajo de IA con una herramienta que puede manejar CD a escala como ninguna otra.

Model Context Protocol (MCP) permite que los asistentes de IA que usas en tu día a día, como Claude Code o ChatGPT, se conecten a los sistemas y servicios que posees de forma estandarizada, permitiéndoles extraer información de esos sistemas y servicios para responder preguntas y realizar tareas.

El Servidor MCP de Octopus proporciona a tu asistente de IA herramientas poderosas que le permiten inspeccionar, consultar y diagnosticar problemas dentro de tu instancia de Octopus, transformándolo en tu compañero de DevOps definitivo. Para una lista de casos de uso compatibles y ejemplos de indicaciones, consulta nuestra documentación.

Compatibilidad con Octopus Server

La mayoría de las herramientas expuestas por el Servidor MCP 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, puedes 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 vía Docker

Las credenciales deben suministrarse mediante variables de entorno para evitar exponerlas en la lista de procesos del host (ps aux / /proc/<pid>/cmdline). La URL del servidor Octopus aún puede suministrarse mediante la bandera --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 necesites agregar los siguientes argumentos en la configuración para forzar a Docker a usar la plataforma Linux:

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

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

Instalar vía Node

Requisitos

  • Node.js >= v20.0.0
  • Instancia de Octopus Deploy a la que el servidor MCP pueda acceder mediante HTTPS
  • Clave API o Token de Acceso de Octopus Deploy (consulta 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 Servidor MCP de Octopus se configura típicamente dentro del cliente de IA de tu elección.

Se empaqueta como un paquete npm y se ejecuta mediante el comando npx de Node. Las credenciales (clave API o token de acceso) deben suministrarse 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 Octopus puede suministrarse mediante la variable de entorno OCTOPUS_SERVER_URL o la bandera --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 suministran mediante variables de entorno — las credenciales no se aceptan en la línea de comandos porque las banderas son visibles en la lista de procesos del host para cualquier usuario local.

Clave API (recomendado para uso interactivo)

Las claves API son el método de autenticación estándar para Octopus Deploy. Puedes generar una desde tu 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 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 uses tokens Bearer de larga duración — usa claves API en su lugar para sesiones interactivas o de larga ejecució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 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 Servidor MCP de Octopus admite varias opciones de línea de comandos para personalizar qué herramientas están disponibles.

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

Conjuntos de Herramientas

Usa 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 despliegues
  • releases - Gestión de lanzamientos
  • runbooks - Descubrimiento y ejecución de runbooks
  • tasks - Operaciones de tareas
  • tenants - Operaciones de multi-inquilino
  • kubernetes - Operaciones de Kubernetes
  • machines - Operaciones de objetivos de despliegue
  • 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 Git)

Modo de Solo Lectura

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

Herramientas habilitadas para escritura (siempre escriben):

  • create_release - Crear nuevos lanzamientos
  • deploy_release - Desplegar lanzamientos en entornos e inquilinos
  • run_runbook - Ejecutar un runbook en uno o más entornos (e inquilinos opcionales)
  • update_feature_toggle - Ajustar el estado por entorno y los porcentajes de despliegue en un feature toggle existente

Herramienta de escritura condicional: execute es una red de seguridad REST estructurada cuyo nivel (lectura / escritura / eliminación) está determinado por el método HTTP que se le pase. Consulta la sección Catálogo de API y Red de Seguridad para más detalles.

Las herramientas de escritura están controladas por un aviso de elicitación MCP: los clientes que soportan elicitación serán consultados para confirmar antes de que la llamada proceda. Los clientes sin soporte de elicitación deben pasar confirm: true en los argumentos de la herramienta — de lo contrario, la herramienta aborta con un error. Establece OCTOPUS_SKIP_ELICITATION=true para omitir el control por completo (destinado a automatización desatendida).

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

  • read — siempre permitido. Solicitudes GET a través de execute, además de todas las herramientas find_* / get_* / list_*.
  • write — POST/PUT/PATCH a través de execute y las herramientas de siempre escritura mencionadas anteriormente. Bloqueado cuando --read-only está establecido.
  • delete — DELETE a través de execute. Requiere --allow-deletes y está bloqueado 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 API están en una lista de denegación sensible estricta que ignora ambas banderas.
# 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: Usa una clave API con los permisos apropiados y de mínimo privilegio — las operaciones de escritura pueden crear lanzamientos y desencadenar despliegues en tu instancia de Octopus. Para producción, considera pasar --read-only a menos que tengas un caso de uso específico y controlado para escrituras. --allow-deletes está desactivado de forma predeterminada; solo habilítalo cuando el agente deba emitir solicitudes DELETE a través de execute. Si pasas --allow-deletes junto con --read-only, el servidor imprime una advertencia de inicio en stderr — las solicitudes DELETE permanecen bloqueadas por la puerta de solo lectura.

Ejemplos Completos

Todos los ejemplos a continuación asumen que OCTOPUS_API_KEY está configurado en el entorno. La bandera --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: deshabilita todas las herramientas de escritura seleccionadas y bloquea POST/PUT/PATCH/DELETE a través de execute. Las escrituras están habilitadas de forma predeterminada; esta bandera las desactiva. Consulta 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 mínimo de registro (info, error)
  • --log-file <path> - Ruta o nombre del archivo de registro. Si no se especifica, los registros se escriben solo en la consola
  • -q, --quiet - Deshabilitar el registro en archivo, solo registrar errores en la consola
  • --list-tools-by-version - Listar todas las herramientas registradas por su versión de Octopus Server compatible y salir

🔨 Herramientas

Herramientas Basadas en URL

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

  • get_deployment_from_url: Obtener detalles del despliegue desde la URL del despliegue (devuelve taskId para seguimiento)
  • get_task_from_url: Obtener detalles de la tarea y registros desde la URL de la tarea

Flujo de trabajo de investigación de despliegues:

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 directa de la tarea):

get_task_from_url with task URL
→ Returns task details and logs immediately

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

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

URLs de ejemplo:

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

Consulta Trabajar con URLs para 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 Red de Seguridad

Estas herramientas y recursos permiten al agente acceder a los endpoints REST de Octopus que no tienen una herramienta seleccionada dedicada, con un control estricto del 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 estilo grep (versión mínima de Octopus soportada: 2026.2.3916). El cuerpo del catálogo es grande (normalmente más de 300 KB); llama a esto en lugar de leer el cuerpo del recurso directamente. Los parámetros reflejan los de 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étodo está codificado en el lado del servidor:
    • GET siempre está permitido (sujeto a la verificación de forma de ruta + lista de denegación de datos sensibles).
    • POST/PUT/PATCH se bloquean cuando --read-only está establecido; de lo contrario, requieren confirmación del usuario mediante elicitación.
    • DELETE requiere --allow-deletes (y se bloquea cuando --read-only está establecido) más un mensaje de elicitación "IRREVERSIBLE" más fuerte.
    • La lista de denegación de datos sensibles (endpoints de clave API, DELETE /api/spaces/{id}, DELETE /api/users/{id}) se aplica incluso con ambas banderas activadas.
    • Se requiere que la ruta sea /api o comience con /api/ — las URL absolutas, las rutas relativas al SDK ~/api/... y las rutas relativas al host fuera de /api (por ejemplo, /octopus/portal/...) se rechazan de antemano, por lo que execute se mantiene limitado 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 cada conjunto de herramientas habilitado (el valor predeterminado, o --toolsets all explícito), la lista de permitidos se omite y cualquier ruta bajo /api es accesible sujeta a los controles anteriores. Cuando --toolsets está restringido, la lista de permitidos se convierte en el interruptor de apagado: 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 inaccesibles 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 indexada por 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 su minimumOctopusVersion) y si --read-only / --allow-deletes está activado. Útil para que el agente descubra qué es accesible en esta sesión.

Proyectos

  • list_projects: Lista todos los proyectos en un espacio dado

Despliegues

  • deploy_release: Despliega una versión en entornos (soporta despliegues con y sin inquilinos)
  • list_deployments: Lista despliegues 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)

El detalle de la versión también está disponible como un Recurso MCP en octopus://spaces/{spaceName}/releases/{releaseId} — obtén mediante resources/read (o la herramienta de respaldo read_resource) para obtener el cuerpo completo de la versión, incluyendo notas de versión y 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 la instantánea publicada, el modo de multi-inquilino 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. Soporta 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. Por defecto, usa la instantánea publicada del runbook si se omite runbookSnapshotId.

El cuerpo completo del runbook (incluyendo 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, tiempos, banderas de finalización)
  • octopus://spaces/{spaceName}/tasks/{taskId}/details — ServerTaskDetails completo (Progreso, árbol de ActivityLogs, etc.)

Para 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 los de GNU grep (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount). Devuelve líneas coincidentes con lineNumber indexado en 1, matrices opcionales de contexto antes/después y un recuento de totalMatches en todo el registro.

Intencionalmente no hay recurso /log: los registros de actividad pueden ser de 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: Obtiene variables de inquilino por tipo (todas, comunes o de proyecto)
  • get_missing_tenant_variables: Obtiene variables de inquilino que tienen valores faltantes

Kubernetes

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

Máquinas (Objetivos de Despliegue)

  • find_deployment_targets: Encuentra objetivos de despliegue 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 ligeros; desreferencia el recurso octopus://spaces/{spaceName}/interruptions/{interruptionId} para la definición completa del Formulario (tipos de control, instrucciones Markdown, opciones de botones, Form.Values enviados).

Conmutadores de Funcionalidades

  • find_feature_toggles: Lista los conmutadores de funcionalidades del cliente en un proyecto. Cada resumen incluye el estado por entorno (isEnabled, rolloutPercentage, clientRolloutPercentage) más 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 limitada — activa/desactiva un entorno, cambia porcentajes de despliegue o actualiza la descripción/estado predeterminado a nivel de conmutador. Internamente obtiene el conmutador actual, aplica tus parches en memoria y hace PUT del cuerpo fusionado, por lo que los entornos no mencionados y los campos no mencionados se preservan. Los parches que hacen referencia a un entorno no configurado ya en el conmutador son rechazados.

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 despliegue son direccionables en octopus://spaces/{spaceName}/projects/{projectId}/rolloutgroups/{rolloutGroupId} para inspección de solo lectura.

Fuera de alcance (usa la UI de Octopus): crear nuevos conmutadores de funcionalidades, eliminar conmutadores, renombrar o reetiquetar, adjuntar/desvincular grupos de despliegue, segmentación de inquilinos, segmentos, filtros de versión mínima y gestión de grupos de despliegue/identificador de cliente SDK.

Herramientas Adicionales

  • get_deployment_process: Obtiene el proceso de despliegue por ID para proyectos o versiones
  • get_variables: Obtiene todas las variables del proyecto y variables del conjunto de variables de biblioteca para un proyecto (soporta proyectos de configuración como código mediante gitRef)
  • get_branches: Obtiene ramas Git para un proyecto con control de versiones (versión mínima soportada: 2021.2)
  • get_current_user: Obtiene información sobre el usuario autenticado actual

🔒 Consideraciones de Seguridad

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

Operaciones de Lectura

  • Puede leer registros de despliegue completos, que podrían incluir secretos de producción si no fueron marcados como secretos
  • Acceso a datos de configuración sensibles y variables
  • Tenga precaución al conectarse a herramientas y modelos en los que no confíe plenamente

Operaciones de Escritura

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

  • Crear versiones: Puede crear nuevas versiones para proyectos
  • Desplegar versiones: Puede desencadenar despliegues en entornos (incluyendo producción)
  • Ejecutar runbooks: Puede ejecutar runbooks contra entornos e inquilinos
  • Actualizar conmutadores de funcionalidades: Puede cambiar el estado por entorno y cambiar los porcentajes de despliegue en conmutadores existentes
  • POST/PUT/PATCH arbitrarios a través del respaldo execute: Limitado a rutas bajo /api, con una lista de denegación de datos sensibles 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), los únicos controles de ruta son el límite /api y la lista de denegación de datos sensibles.

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

Medidas de Seguridad Críticas:

  1. Privilegio Mínimo: Use claves API con los permisos mínimos necesarios para su caso de uso
  2. Opte por el Modo de Solo Lectura: Las escrituras están habilitadas por defecto. Para producción, pase --read-only a menos que tenga un caso de uso específico y controlado para operaciones de escritura. DELETE siempre requiere la inclusión voluntaria adicional --allow-deletes.
  3. El control de método está en el lado del servidor y codificado: El método HTTP pasado a execute es el clasificador autoritativo. El agente no puede eludir el control tergiversando lo que hace la llamada — las solicitudes POST/PUT/PATCH/DELETE obtienen un control específico por nivel independientemente del texto en el cuerpo de la solicitud.
  4. El filtrado de conjuntos de herramientas funciona como un interruptor de apagado: Restringir --toolsets elimina tanto las herramientas curadas de los conjuntos de herramientas deshabilitados como sus rutas de la lista de permitidos 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á limitado por la verificación de forma /api y la lista de denegación de datos sensibles en su lugar).
  5. Riesgo de Inyección de Prompts: Ejecutar agentes de manera completamente automatizada podría hacerlo vulnerable a ataques de inyección de prompts

Recomendación: Para entornos de producción, pase --read-only a menos que tenga un caso de uso específico y controlado para operaciones de escritura. Deje --allow-deletes desactivado a menos que necesite 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 soportan el encadenamiento de llamadas a 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 busca procesar datos históricos de su instancia de Octopus con fines de análisis, recomendamos usar la API directamente o escribir su propio cliente MCP que sea capaz de procesar los resultados de las llamadas a herramientas de manera programática.

Rendimiento

El Servidor MCP es técnicamente solo una capa delgada sobre la API existente del Servidor Octopus. Como tal, es capaz de recuperar grandes cantidades de datos (por ejemplo, solicitando miles de despliegues). Tales consultas pueden tener un efecto significativo en el rendimiento de su instancia. Indique a sus modelos que solo recuperen el conjunto mínimo de datos que necesitan (la mayoría de los modelos son muy buenos en esto de fábrica).

🤝 Contribuciones

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

Estamos ansiosos por escuchar cómo planeas usar Octopus MCP Server y qué características te gustaría ver incluidas en futuras versiones.

Por favor, usa Issues para proporcionar comentarios o solicitar funciones.

Si eres un cliente actual de Octopus, por favor informa cualquier problema que experimentes usando nuestro servidor MCP a nuestro equipo de soporte. Esto asegurará que recibas 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 integrar un servidor MCP directamente en Octopus Server. Esto nos abrirá la puerta para construir herramientas MCP más complejas, así como:

  • Dar a los Administradores de Octopus un control más granular sobre los clientes MCP
  • Soportar de forma nativa OAuth para la autenticación de clientes
  • Integrar herramientas de escaneo de seguridad en la salida MCP

Si esto es de tu interés, por favor registra tu interés en nuestro elemento de la hoja de ruta.

Licencia

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