Octopus Deploy Official MCP Server
oficialEl 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_urldevuelve contexto y un ID de tarea para seguimiento. - Buscar en registros de tareas de implementación — Usa
grep_task_logpara 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_releasepara un proyecto y luegodeploy_releasea entornos específicos, incluidas implementaciones con inquilinos. - Ejecutar runbooks en varios entornos — Usa
run_runbookpara 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_variablespara identificar variables de inquilino sin valores y luego inspecciónalas conget_tenant_variables. - Verificar el estado en vivo de Kubernetes — Solicita el
get_kubernetes_live_statusde 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 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 lanzamientosdeploy_release- Implementar lanzamientos en entornos y tenantsrun_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 herramientasfind_*/get_*/list_*. - escritura — POST/PUT/PATCH a través de
executey las herramientas de escritura siempre mencionadas anteriormente. Bloqueado cuando--read-onlyestá establecido. - eliminación — DELETE a través de
execute. Requiere--allow-deletesy se bloquea cuando--read-onlyestá 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 deexecute. 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 herramientaexecute. Ignorado (con una advertencia de inicio) cuando--read-onlyestá establecido. Predeterminadofalse.--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 Deploylist_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 banderaisWriteque el LLM pueda establecer. El control de métodos está codificado en el lado del servidor:GETsiempre está permitido (sujeto a la verificación de forma de ruta + lista de denegación sensible).POST/PUT/PATCHestán bloqueados cuando--read-onlyestá establecido; de lo contrario, requieren confirmación del usuario mediante elicitación.DELETErequiere--allow-deletes(y está bloqueado cuando--read-onlyestá 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
/apio 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 queexecutepermanece acotado a la superficie de la API REST de Octopus. - La lista de permitidos de rutas por conjunto de herramientas se aplica solo cuando
--toolsetsse ha restringido. Con todos los conjuntos de herramientas habilitados (el valor predeterminado, o--toolsets allexplícito), la lista de permitidos se omite y cualquier ruta bajo/apies alcanzable sujeto a las compuertas anteriores. Cuando--toolsetsse 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 deexecuteincluso enGET.
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 Server2026.2.3916o posterior. Caché en memoria de 5 minutos claveada en la URL del servidor configurado. Prefieregrep_llms_txta 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 susminimumOctopusVersion) y si--read-only/--allow-deletesestá 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 proyectofind_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 sirunbookSnapshotIdse 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 conlineNumberindexado desde 1, matrices de contexto antes/después opcionales y un recuento detotalMatchesen 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 recursooctopus://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 unresourceUripara 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 versionesget_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 mediantegitRef)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--toolsetsse ha restringido; con todos los conjuntos de herramientas habilitados (el valor predeterminado), las únicas compuertas de ruta son el límite/apiy 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:
- Privilegio mínimo: Usa claves de API con los permisos mínimos necesarios para tu caso de uso
- Acepta el modo de solo lectura: Las escrituras están habilitadas por defecto. Para producción, pasa
--read-onlya menos que tengas un caso de uso específico y controlado para operaciones de escritura. DELETE siempre requiere la aceptación adicional--allow-deletes. - El control de métodos está en el lado del servidor y codificado: El método HTTP pasado a
executees 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. - El filtrado de conjuntos de herramientas funciona como interruptor de seguridad: Restringir
--toolsetselimina tanto las herramientas seleccionadas de los conjuntos deshabilitados como sus rutas de la lista de permitidos deexecute. (La lista de permitidos solo se consulta cuando los conjuntos de herramientas están restringidos; con todos los conjuntos de herramientas habilitados,executeestá acotado por la verificación de forma de/apiy la lista de denegación sensible en su lugar.) - 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.