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.
Documentación
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 lanzamientosdeploy_release- Desplegar lanzamientos en entornos e inquilinosrun_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 herramientasfind_*/get_*/list_*. - write — POST/PUT/PATCH a través de
executey las herramientas de siempre escritura mencionadas anteriormente. Bloqueado cuando--read-onlyestá establecido. - delete — DELETE a través de
execute. Requiere--allow-deletesy está bloqueado 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 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 deexecute. 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 herramientaexecute. Ignorado (con una advertencia de inicio) cuando--read-onlyestá establecido. Predeterminadofalse.--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 Deploylist_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 banderaisWriteque el LLM pueda establecer. El control de método está codificado en el lado del servidor:GETsiempre está permitido (sujeto a la verificación de forma de ruta + lista de denegación de datos sensibles).POST/PUT/PATCHse bloquean cuando--read-onlyestá establecido; de lo contrario, requieren confirmación del usuario mediante elicitación.DELETErequiere--allow-deletes(y se bloquea cuando--read-onlyestá 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
/apio 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 queexecutese 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
--toolsetsse ha restringido. Con cada conjunto de herramientas habilitado (el valor predeterminado, o--toolsets allexplícito), la lista de permitidos se omite y cualquier ruta bajo/apies accesible sujeta a los controles anteriores. Cuando--toolsetsestá 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 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 indexada por 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 suminimumOctopusVersion) y si--read-only/--allow-deletesestá 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 proyectofind_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 omiterunbookSnapshotId.
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 conlineNumberindexado en 1, matrices opcionales de contexto antes/después y un recuento detotalMatchesen 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 recursooctopus://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 unresourceUripara 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 versionesget_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 mediantegitRef)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--toolsetsse ha restringido; con todos los conjuntos de herramientas habilitados (el valor predeterminado), los únicos controles de ruta son el límite/apiy 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:
- Privilegio Mínimo: Use claves API con los permisos mínimos necesarios para su caso de uso
- Opte por el Modo de Solo Lectura: Las escrituras están habilitadas por defecto. Para producción, pase
--read-onlya 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. - El control de método está en el lado del servidor y codificado: El método HTTP pasado a
executees 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. - El filtrado de conjuntos de herramientas funciona como un interruptor de apagado: Restringir
--toolsetselimina tanto las herramientas curadas de los conjuntos de herramientas deshabilitados como sus rutas de la lista de permitidosexecute. (La lista de permitidos solo se consulta cuando los conjuntos de herramientas están restringidos; con todos los conjuntos de herramientas habilitados,executeestá limitado por la verificación de forma/apiy la lista de denegación de datos sensibles en su lugar). - 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.