Octopus Deploy Official MCP Server
offiziellDer Octopus MCP Server stattet Ihren KI-Assistenten mit leistungsstarken Werkzeugen aus, mit denen er Probleme in Ihrer Octopus-Instanz untersuchen, abfragen und diagnostizieren kann, und verwandelt ihn so in Ihren ultimativen DevOps-Begleiter.
Was kann man mit Octopus Deploy Official MCP machen?
- Bereitstellungen von URLs aus prüfen — Bitten Sie darum, eine Bereitstellung zu untersuchen, indem Sie deren Octopus-URL einfügen;
get_deployment_from_urlliefert Kontext und eine Aufgaben-ID für die Nachverfolgung. - Bereitstellungsaufgabenprotokolle durchsuchen — Verwenden Sie
grep_task_log, um Fehler- oder Ausfallmuster im Aktivitätsprotokoll einer Aufgabe zu finden, ohne den gesamten mehrere Megabyte großen Inhalt herunterzuladen. - Releases erstellen und bereitstellen — Bitten Sie darum,
create_releasefür ein Projekt auszuführen und es dann mitdeploy_releasein bestimmte Umgebungen bereitzustellen, einschließlich tenanted Bereitstellungen. - Runbooks über Umgebungen hinweg ausführen — Verwenden Sie
run_runbook, um ein Runbook gegen eine oder mehrere Umgebungen auszuführen, mit Unterstützung für tenanted Ausführungen und abgefragte Variablen. - Fehlende Tenant-Variablen finden und beheben — Verwenden Sie
get_missing_tenant_variables, um Tenant-Variablen ohne Werte zu identifizieren, und prüfen Sie diese dann mitget_tenant_variables. - Kubernetes-Livestatus prüfen — Fragen Sie nach dem
get_kubernetes_live_statusvon Ressourcen für ein Projekt und eine Umgebung, um Bereitstellungsprobleme zu diagnostizieren.
Dokumentation
[!WARNING] Veraltet: Dieser MCP-Server ist veraltet. Der Remote-MCP-Server ist in Octopus Server 2026.3 und später verfügbar. Siehe die Remote-MCP-Server-Dokumentation.
Octopus Deploy Official MCP Server
Octopus macht es einfach, Software an Kubernetes, Multi-Cloud, On-Premises-Infrastruktur und überall sonst auszuliefern. Automatisieren Sie Release, Deployment und Betrieb Ihrer Software- und KI-Workloads mit einem Tool, das CD in großem Maßstab auf eine Weise bewältigen kann, wie es kein anderes Tool kann.
Model Context Protocol (MCP) ermöglicht es den KI-Assistenten, die Sie in Ihrer täglichen Arbeit verwenden, wie Claude Code oder ChatGPT, sich auf standardisierte Weise mit den Systemen und Diensten zu verbinden, die Sie besitzen, sodass sie Informationen aus diesen Systemen und Diensten abrufen können, um Fragen zu beantworten und Aufgaben auszuführen.
Der Octopus-MCP-Server bietet Ihrem KI-Assistenten leistungsstarke Tools, mit denen er Probleme in Ihrer Octopus-Instanz untersuchen, abfragen und diagnostizieren kann – und wird so zu Ihrem ultimativen DevOps-Begleiter. Eine Liste der unterstützten Anwendungsfälle und Beispiel-Prompts finden Sie in unserer Dokumentation.
Octopus-Server-Kompatibilität
Die meisten vom MCP-Server bereitgestellten Tools verwenden stabile APIs, die mindestens seit Version 2021.1 des Octopus-Servers verfügbar sind. Neuere Tools geben die mindestens unterstützte Version in der Dokumentation an. Alternativ können Sie das Befehlszeilenargument --list-tools-by-version verwenden, um zu prüfen, wie bestimmte Tools mit Octopus-Versionen zusammenhängen.
🚀 Installation
Installation über Docker
Anmeldeinformationen müssen über Umgebungsvariablen bereitgestellt werden, um sie nicht in der Host-Prozessliste offenzulegen (ps aux / /proc/<pid>/cmdline). Die Octopus-Server-URL kann weiterhin über das --server-url-Flag angegeben werden.
docker run -i --rm -e OCTOPUS_API_KEY=your-key -e OCTOPUS_SERVER_URL=https://your-octopus.com octopusdeploy/mcp-server
Vollständige Beispielkonfiguration (für Claude Desktop, Claude Code und 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"
}
},
}
}
Für Apple-Mac-Benutzer kann es erforderlich sein, die folgenden Argumente in der Konfiguration hinzuzufügen, um Docker zu zwingen, die Linux-Plattform zu verwenden:
"--platform",
"linux/amd64",
Wir planen, in Kürze einen nativen ARM-Build zu veröffentlichen, sodass diese Argumente nicht mehr erforderlich sein werden.
Installation über Node
Voraussetzungen
- Node.js >= v20.0.0
- Octopus-Deploy-Instanz, auf die der MCP-Server über HTTPS zugreifen kann
- Octopus-Deploy-API-Schlüssel oder Zugriffstoken (siehe Authentifizierung unten)
Konfiguration
Vollständige Beispielkonfiguration (für Claude Desktop, Claude Code und Cursor):
Schreibtools aktiviert (Standard):
{
"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"
}
}
}
}
Nur-Lese-Modus (für die Produktion empfohlen):
{
"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"
}
}
}
}
Der Octopus-MCP-Server wird normalerweise in Ihrem KI-Client Ihrer Wahl konfiguriert.
Er ist als npm-Paket verpackt und wird über den npx-Befehl von Node ausgeführt. Anmeldeinformationen (API-Schlüssel oder Zugriffstoken) müssen über Umgebungsvariablen bereitgestellt werden – sie werden nicht als Befehlszeilenargumente akzeptiert, um Geheimnisse nicht in der Prozessliste offenzulegen. Die Octopus-Server-URL kann entweder über die OCTOPUS_SERVER_URL-Umgebungsvariable oder das --server-url-Flag angegeben werden.
OCTOPUS_API_KEY=API-KEY \
OCTOPUS_SERVER_URL=https://your-octopus.com \
npx -y @octopusdeploy/mcp-server
Oder mit der Server-URL in der Befehlszeile:
OCTOPUS_API_KEY=API-KEY \
npx -y @octopusdeploy/mcp-server --server-url https://your-octopus.com
Authentifizierung
Der MCP-Server unterstützt zwei Authentifizierungsmethoden. Beide werden über Umgebungsvariablen bereitgestellt – Anmeldeinformationen werden nicht in der Befehlszeile akzeptiert, da Flags in der Host-Prozessliste für jeden lokalen Benutzer sichtbar sind.
API-Schlüssel (für interaktive Nutzung empfohlen)
API-Schlüssel sind die Standard-Authentifizierungsmethode für Octopus Deploy. Sie können einen aus Ihrem Octopus-Deploy-Benutzerprofil generieren.
OCTOPUS_API_KEY=API-XXXXXXXXXXXXXXXXXXXXXXXXXX \
OCTOPUS_SERVER_URL=https://your-octopus.com \
npx -y @octopusdeploy/mcp-server
Zugriffstoken / Bearer-Token (nur für automatisierte Szenarien)
Der Server unterstützt auch kurzlebige Zugriffstoken (Bearer-Token) als Alternative zu API-Schlüsseln. Diese Authentifizierungsmethode ist nur für automatisierte Szenarien gedacht, in denen ein externes System ein kurzlebiges Token an den MCP-Server ausstellt (z. B. CI/CD-Pipelines, automatisierte Orchestrierung oder Machine-to-Machine-Workflows). Verwenden Sie keine langlebigen Bearer-Token – verwenden Sie stattdessen API-Schlüssel für interaktive oder langlebige Sitzungen.
OCTOPUS_ACCESS_TOKEN=your-short-lived-token \
OCTOPUS_SERVER_URL=https://your-octopus.com \
npx -y @octopusdeploy/mcp-server
Vollständige Beispielkonfiguration mit einem Zugriffstoken:
{
"mcpServers": {
"octopusdeploy": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@octopusdeploy/mcp-server"],
"env": {
"OCTOPUS_SERVER_URL": "https://your-octopus.com",
"OCTOPUS_ACCESS_TOKEN": "YOUR_TOKEN"
}
}
}
}
Wenn sowohl ein API-Schlüssel als auch ein Zugriffstoken bereitgestellt werden, hat das Zugriffstoken Vorrang. Die aktive Authentifizierungsmethode wird in der Protokolldatei aufgezeichnet (konfigurierbar mit --log-file), sodass Betreiber bestätigen können, welche Anmeldeinformationen verwendet werden.
Konfigurationsoptionen
Der Octopus-MCP-Server unterstützt mehrere Befehlszeilenoptionen, um anzupassen, welche Tools verfügbar sind.
Wenn Sie nicht sicher sind, welche Tools Sie benötigen, empfehlen wir, ohne zusätzliche Befehlszeilenoptionen auszuführen und die bereitgestellten Standardeinstellungen zu verwenden.
Toolsets
Verwenden Sie den Parameter --toolsets, um bestimmte Gruppen von Tools zu aktivieren:
# 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
Verfügbare Toolsets:
- core – Grundlegende Operationen (immer aktiviert)
- projects – Projektoperationen
- deployments – Deployment-Operationen
- releases – Release-Verwaltung
- runbooks – Runbook-Erkennung und -Ausführung
- tasks – Aufgabenoperationen
- tenants – Multi-Tenancy-Operationen
- kubernetes – Kubernetes-Operationen
- machines – Deployment-Zieloperationen
- certificates – Zertifikatsoperationen
- accounts – Kontenoperationen
- interruptions – Manuelle Eingriffs- und Genehmigungsoperationen
- featureToggles – Kunden-Feature-Toggles untersuchen und anpassen
- context – Authentifizierter Benutzer- und Projektkontext (aktueller Benutzer, Git-Zweige)
Nur-Lese-Modus
Der Server läuft standardmäßig mit aktivierten Schreibtools. Übergeben Sie --read-only, um alle Schreibtools zu deaktivieren und POST/PUT/PATCH/DELETE über den execute-Backstop zu blockieren. Die meisten kuratierten Tools sind bereits nur lesbar; nur eine kleine Gruppe führt Schreibvorgänge aus.
Schreibaktivierte Tools (immer schreibend):
create_release– Neue Releases erstellendeploy_release– Releases in Umgebungen und Tenants bereitstellenrun_runbook– Ein Runbook gegen eine oder mehrere Umgebungen ausführen (und optionale Tenants)update_feature_toggle– Pro-Umgebungs-Status und Rollout-Prozentsätze für ein vorhandenes Feature-Toggle anpassen
Bedingt schreibendes Tool: execute ist ein strukturierter REST-Backstop, dessen Stufe (Lesen / Schreiben / Löschen) durch die an ihn übergebene HTTP-Methode bestimmt wird. Siehe Abschnitt API-Katalog & Backstop für Details.
Schreibtools sind durch einen MCP-Elicitation-Prompt geschützt: Clients, die Elicitation unterstützen, werden aufgefordert, zu bestätigen, bevor der Aufruf fortgesetzt wird. Clients ohne Elicitation-Unterstützung müssen confirm: true in den Tool-Argumenten übergeben – andernfalls bricht das Tool mit einem Fehler ab. Setzen Sie OCTOPUS_SKIP_ELICITATION=true, um die Sperre vollständig zu umgehen (für unbeaufsichtigte Automatisierung gedacht).
Der Server verwendet eine dreistufige Lese-/Schreib-/Lösch-Klassifizierung, die serverseitig basierend auf der HTTP-Methode erzwungen wird (der Agent kann dies nicht umgehen, indem er über die Absicht lügt):
- read – immer erlaubt. GET-Anfragen über
execute, plus allefind_*/get_*/list_*-Tools. - write – POST/PUT/PATCH über
executeund die oben genannten immer schreibenden Tools. Blockiert, wenn--read-onlygesetzt ist. - delete – DELETE über
execute. Erfordert--allow-deletesund wird blockiert, wenn--read-onlygesetzt ist. Eine kleine Gruppe katastrophaler Löschpfade (z. B.DELETE /api/spaces/{id},DELETE /api/users/{id}) und API-Schlüssel-Endpunkte befinden sich auf einer harten sensiblen Denylist, die beide Flags ignoriert.
# 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
Sicherheitshinweis: Verwenden Sie einen API-Schlüssel mit angemessenen Berechtigungen mit geringsten Rechten – Schreiboperationen können Releases erstellen und Deployments in Ihrer Octopus-Instanz auslösen. Für die Produktion sollten Sie erwägen, --read-only zu übergeben, es sei denn, Sie haben einen spezifischen, kontrollierten Anwendungsfall für Schreibvorgänge. --allow-deletes ist standardmäßig deaktiviert; aktivieren Sie es nur, wenn der Agent DELETE-Anfragen über execute senden muss. Wenn Sie --allow-deletes zusammen mit --read-only übergeben, gibt der Server eine Startwarnung an stderr aus – DELETE-Anfragen bleiben durch die Nur-Lese-Sperre blockiert.
Vollständige Beispiele
Alle Beispiele unten setzen voraus, dass OCTOPUS_API_KEY in der Umgebung gesetzt ist. Das --server-url-Flag wird zur Verdeutlichung gezeigt, kann aber auch über OCTOPUS_SERVER_URL bereitgestellt werden.
# 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
Andere Befehlszeilenargumente
--read-only– Nur-Lese-Modus aktivieren: alle kuratierten Schreibtools deaktivieren und POST/PUT/PATCH/DELETE überexecuteblockieren. Schreibvorgänge sind standardmäßig aktiviert; dieses Flag schaltet sie aus. Siehe Nur-Lese-Modus.--allow-deletes– DELETE-Anfragen über dasexecute-Tool zulassen. Wird ignoriert (mit einer Startwarnung), wenn--read-onlygesetzt ist. Standardfalse.--log-level <level>– Minimale Protokollebene (info, error)--log-file <path>– Pfad oder Dateiname der Protokolldatei. Wenn nicht angegeben, werden Protokolle nur in der Konsole geschrieben-q, --quiet– Dateiprotokollierung deaktivieren, nur Fehler in der Konsole protokollieren--list-tools-by-version– Alle registrierten Tools nach ihrer unterstützten Octopus-Server-Version auflisten und beenden
🔨 Tools
URL-basierte Tools
Schnellstart: Fügen Sie Octopus-URLs direkt ein, um Probleme zu untersuchen, ohne manuelle ID-Extraktion.
get_deployment_from_url: Deployment-Details aus der Deployment-URL abrufen (gibt taskId für Folgeaktionen zurück)get_task_from_url: Aufgabendetails und Protokolle aus der Aufgaben-URL abrufen
Workflow zur Deployment-Untersuchung:
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 })
Aufgabenuntersuchung (direkte Aufgaben-URL):
get_task_from_url with task URL
→ Returns task details and logs immediately
Diese Tools eliminieren die manuelle ID-Extraktion durch:
- Automatisches Parsen von URLs
- Auflösen von Space-IDs in Space-Namen
- Validieren von ID-Formaten
- Bereitstellen klarer Fehlermeldungen
Beispiel-URLs:
- Deployment:
https://your-octopus.com/app#/Spaces-1/projects/my-app/deployments/Deployments-123 - Aufgabe:
https://your-octopus.com/app#/Spaces-1/tasks/ServerTasks-456
Siehe Arbeiten mit URLs für detaillierte Workflows, Beispiele und Best Practices.
Kern-Tools
list_spaces: Alle Spaces in der Octopus-Deploy-Instanz auflistenlist_environments: Alle Umgebungen in einem bestimmten Space auflisten
API-Katalog & Backstop
Diese Tools und Ressourcen ermöglichen es dem Agenten, Octopus-REST-Endpunkte zu erreichen, für die es kein dediziertes kuratiertes Tool gibt, mit harter serverseitiger Trennung zwischen Lese-, Schreib- und Löschoperationen.
grep_llms_txt: Durchsuchen Sie den Octopus-API-Katalog (octopus://api/llms.txt) mit grep-ähnlicher Semantik (mindestens unterstützte Octopus-Version:2026.2.3916). Der Kataloginhalt ist groß (typischerweise über 300 KB) – rufen Sie dies auf, anstatt den Ressourcentext direkt zu lesen. Die Parameter spiegeln GNU grep wider (pattern,caseInsensitive,invertMatch,fixedString,beforeContext,afterContext,maxCount). Nützlich zum Entdecken von Endpunkten (POST /releases), zum Auflisten von Lösch-Endpunkten (DELETE) oder zum Finden des Body-Typs für einen Schreibvorgang (Body: Create.*Command).execute: Strukturierter REST-Rückhalt. Erreicht jeden Octopus-REST-Endpunkt unter/api. Die HTTP-Methode ist der maßgebliche Lese-/Schreib-/Lösch-Klassifikator – niemals einisWrite-Flag, das das LLM setzen kann. Die Methodensperre ist serverseitig fest codiert:GETist immer erlaubt (vorbehaltlich der Pfadformprüfung + sensiblen Denylist).POST/PUT/PATCHsind blockiert, wenn--read-onlygesetzt ist; andernfalls erfordern sie eine Benutzerbestätigung per Elicitation.DELETEerfordert--allow-deletes(und ist blockiert, wenn--read-onlygesetzt ist) plus eine stärkere „IRREVERSIBLE“-Elicitation-Nachricht.- Die sensible Denylist (API-Key-Endpunkte,
DELETE /api/spaces/{id},DELETE /api/users/{id}) wird auch bei beiden gesetzten Flags durchgesetzt. - Der Pfad muss
/apisein oder mit/api/beginnen – absolute URLs, SDK-relative~/api/...-Pfade und host-relative Pfade außerhalb von/api(z. B./octopus/portal/...) werden im Voraus abgelehnt, sodassexecuteauf die Octopus-REST-API-Oberfläche begrenzt bleibt. - Die Pfad-Allowlist pro Toolset gilt nur, wenn
--toolsetseingeschränkt wurde. Bei jedem aktivierten Toolset (Standard oder explizit--toolsets all) wird die Allowlist umgangen und jeder Pfad unter/apiist vorbehaltlich der obigen Sperren erreichbar. Wenn--toolsetseingeschränkt ist, wird die Allowlist zum Kill-Switch: Pfade werden nur aufgelöst, wenn ihr zugehöriges Toolset aktiviert ist. Das Deaktivieren eines Toolsets (z. B.certificates) macht seine Pfade überexecuteunerreichbar, selbst beiGET.
Katalogdaten werden auch als MCP-Ressourcen bereitgestellt:
octopus://api/llms.txt– Markdown-Katalog jedes Octopus-REST-Endpunkts (HTTP-Methode, Pfad, Abfrageparameter, Anfrage-/Antworttypen). Erfordert Octopus Server2026.2.3916oder höher. 5-Minuten-In-Memory-Cache, der auf der konfigurierten Server-URL basiert. Bevorzugen Siegrep_llms_txtgegenüber dem direkten Lesen des Texts.octopus://api/capabilities– JSON, das die laufende Sitzung beschreibt: Serverversion, aktivierte Toolsets, verfügbare Tools (mit ihrenminimumOctopusVersion) und ob--read-only/--allow-deletesaktiviert ist. Nützlich, damit der Agent entdecken kann, was in dieser Sitzung erreichbar ist.
Projekte
list_projects: Alle Projekte in einem bestimmten Space auflisten
Bereitstellungen
deploy_release: Eine Version in Umgebungen bereitstellen (unterstützt sowohl mandantenfähige als auch nicht mandantenfähige Bereitstellungen)list_deployments: Bereitstellungen in einem Space mit optionaler Filterung auflisten
Versionen
create_release: Eine neue Version für ein Projekt erstellenfind_releases: Versionen in einem Space finden (kann eine bestimmte Version per ID abrufen oder Versionen nach Projekt auflisten/filtern)
Versionsdetails sind auch als MCP-Ressource unter octopus://spaces/{spaceName}/releases/{releaseId} verfügbar – rufen Sie sie über resources/read (oder das read_resource-Rückhalt-Tool) ab, um den vollständigen Versionsinhalt einschließlich Versionshinweisen und ausgewählter Pakete zu erhalten.
Runbooks
find_runbooks: Runbooks in einem Projekt finden (kann ein bestimmtes Runbook per ID abrufen oder Runbooks nach Teilnamen auflisten/filtern). Jede Zusammenfassung enthält die veröffentlichte Snapshot-ID, den Multi-Tenancy-Modus und den Umgebungsbereich, sodass Aufrufer vor der Ausführung gültige Ziele auswählen können.run_runbook: Ein Runbook gegen eine oder mehrere Umgebungen ausführen. Unterstützt mandantenfähige Ausführungen (nach Mandantenname oder Mandanten-Tag), Eingabeaufforderungsvariablen, geführten Fehlermodus, geplante Ausführungsfenster sowie Schritt- oder Maschinen-Ein-/Ausschluss. Standardmäßig wird der veröffentlichte Snapshot des Runbooks verwendet, wennrunbookSnapshotIdweggelassen wird.
Der vollständige Runbook-Inhalt (einschließlich Laufzeitrichtlinienfelder) ist als MCP-Ressource unter octopus://spaces/{spaceName}/runbooks/{runbookId} verfügbar.
Aufgaben
Aufgabendaten werden hauptsächlich als MCP-Ressourcen bereitgestellt. Verwenden Sie resources/read (oder das read_resource-Rückhalt-Tool) mit einem der folgenden:
octopus://spaces/{spaceName}/tasks/{taskId}– leichtgewichtige Metadaten (Status, Zeitplanung, Abschlussflags)octopus://spaces/{spaceName}/tasks/{taskId}/details– vollständige ServerTaskDetails (Fortschritt, ActivityLogs-Baum usw.)
Verwenden Sie für die Logsuche das grep_task_log-Tool anstelle einer /log-Ressource:
grep_task_log: Das Aktivitätsprotokoll einer Aufgabe durchsuchen, ohne den vollständigen Inhalt abzurufen. Die Parameter spiegeln GNU grep wider (pattern,caseInsensitive,invertMatch,fixedString,beforeContext,afterContext,maxCount). Gibt übereinstimmende Zeilen mit 1-basiertemlineNumber, optionalen Vorher-/Nachher-Kontextarrays und einertotalMatches-Zählung über das gesamte Protokoll zurück.
Es gibt bewusst keine /log-Ressource: Aktivitätsprotokolle können mehrere Megabyte groß sein, und eine adressierbare Ressource würde Aufrufer verleiten, den gesamten Inhalt abzurufen, obwohl grep fast immer das richtige Primitive ist.
Mandanten
find_tenants: Mandanten in einem Space finden (kann einen bestimmten Mandanten per ID abrufen oder Mandanten mit Filtern auflisten/suchen)get_tenant_variables: Mandantenvariablen nach Typ abrufen (alle, allgemein oder projektbezogen)get_missing_tenant_variables: Mandantenvariablen abrufen, denen Werte fehlen
Kubernetes
get_kubernetes_live_status: Live-Status von Kubernetes-Ressourcen für ein Projekt und eine Umgebung abrufen (mindestens unterstützte Version:2025.3)
Maschinen (Bereitstellungsziele)
find_deployment_targets: Bereitstellungsziele in einem Space finden (kann ein bestimmtes Ziel per ID abrufen oder Ziele mit Filtern auflisten/suchen)
Zertifikate
find_certificates: Zertifikate in einem Space finden (kann ein bestimmtes Zertifikat per ID abrufen oder Zertifikate mit Filtern auflisten/suchen)
Konten
find_accounts: Konten in einem Space finden (kann ein bestimmtes Konto per ID abrufen oder Konten mit Filtern auflisten/suchen)
Unterbrechungen
find_interruptions: Ausstehende oder historische Unterbrechungen (manuelle Eingriffe, Genehmigungen, Eingabeaufforderungen im geführten Fehlermodus) in einem Space finden, optional gefiltert nach Aufgabe, Projekt, Umgebung, betreffendem Dokument, Verantwortlichkeit oder ausstehendem Status. Gibt schlanke Zusammenfassungen zurück; dereferenzieren Sie dieoctopus://spaces/{spaceName}/interruptions/{interruptionId}-Ressource für die vollständige Formulardefinition (Steuerelementtypen, Markdown-Anweisungen, Schaltflächenoptionen, übermittelte Form.Values).
Feature-Schalter
find_feature_toggles: Kundenspezifische Feature-Schalter in einem Projekt auflisten. Jede Zusammenfassung enthält den Zustand pro Umgebung (isEnabled,rolloutPercentage,clientRolloutPercentage) plus einresourceUri, sodass „Wo ist X aktiviert“ aus der Listenantwort beantwortet werden kann.update_feature_toggle: Einen vorhandenen Schalter anpassen. Schmale Oberfläche – eine Umgebung ein-/ausschalten, Rollout-Prozentsätze ändern oder die Beschreibung auf Schalterebene / den Standardzustand aktualisieren. Intern wird der aktuelle Schalter abgerufen, Ihre Patches werden im Speicher angewendet und der zusammengeführte Inhalt per PUT gesendet, sodass nicht erwähnte Umgebungen und nicht erwähnte Felder erhalten bleiben. Patches, die auf eine Umgebung verweisen, die nicht bereits auf dem Schalter konfiguriert ist, werden abgelehnt.
Der vollständige Schalterinhalt (Beschreibung, Mandanten, Segmente, Mindestversionen) ist als MCP-Ressource unter octopus://spaces/{spaceName}/projects/{projectId}/featuretoggles/{slug} verfügbar. Rollout-Gruppeninhalte sind unter octopus://spaces/{spaceName}/projects/{projectId}/rolloutgroups/{rolloutGroupId} für schreibgeschützte Prüfung adressierbar.
Außerhalb des Rahmens (Octopus-Benutzeroberfläche verwenden): Erstellen neuer Feature-Schalter, Löschen von Schaltern, Umbenennen oder Neubeschriften, Anhängen/Trennen von Rollout-Gruppen, Mandanten-Targeting, Segmente, Mindestversionsfilter sowie Rollout-Gruppen-/SDK-Client-Identifikatorverwaltung.
Zusätzliche Tools
get_deployment_process: Bereitstellungsprozess per ID für Projekte oder Versionen abrufenget_variables: Alle Projektvariablen und Bibliotheksvariablensatzvariablen für ein Projekt abrufen (unterstützt Config-as-Code-Projekte übergitRef)get_branches: Git-Zweige für ein versionskontrolliertes Projekt abrufen (mindestens unterstützte Version:2021.2)get_current_user: Informationen über den aktuell authentifizierten Benutzer abrufen
🔒 Sicherheitsüberlegungen
Der Octopus-MCP-Server umfasst sowohl Lese- als auch Schreibvorgänge. Wichtige Sicherheitsüberlegungen:
Lesevorgänge
- Kann vollständige Bereitstellungsprotokolle lesen, die Produktionsgeheimnisse enthalten könnten, wenn sie nicht als Geheimnisse markiert wurden
- Zugriff auf sensible Konfigurationsdaten und Variablen
- Seien Sie vorsichtig, wenn Sie sich mit Tools und Modellen verbinden, denen Sie nicht vollständig vertrauen
Schreibvorgänge
Standardmäßig sind die folgenden Schreibvorgänge verfügbar:
- Versionen erstellen: Kann neue Versionen für Projekte erstellen
- Versionen bereitstellen: Kann Bereitstellungen in Umgebungen auslösen (einschließlich Produktion)
- Runbooks ausführen: Kann Runbooks gegen Umgebungen und Mandanten ausführen
- Feature-Schalter aktualisieren: Kann den Zustand pro Umgebung umschalten und Rollout-Prozentsätze auf vorhandenen Schaltern ändern
- Beliebige POST/PUT/PATCH über das
execute-Rückhalt-Tool: Begrenzt auf Pfade unter/api, mit einer immer aktiven sensiblen Denylist. Die Pfad-Allowlist pro Toolset gilt nur, wenn--toolsetseingeschränkt wurde; bei allen aktivierten Toolsets (Standard) sind die einzigen Pfadsperren die/api-Grenze und die sensible Denylist.
Übergeben Sie --read-only, um alle oben genannten Vorgänge zu deaktivieren. DELETE-Anfragen über execute erfordern ein zusätzliches --allow-deletes-Flag – ein bewusstes Opt-in für irreversible Vorgänge – und bleiben blockiert, wenn --read-only gesetzt ist.
Kritische Sicherheitsmaßnahmen:
- Prinzip der geringsten Rechte: Verwenden Sie API-Schlüssel mit den Mindestberechtigungen, die für Ihren Anwendungsfall erforderlich sind
- Opt-in in den Nur-Lese-Modus: Schreibvorgänge sind standardmäßig aktiviert. Für die Produktion übergeben Sie
--read-only, es sei denn, Sie haben einen spezifischen, kontrollierten Anwendungsfall für Schreibvorgänge. DELETE erfordert immer das zusätzliche--allow-deletes-Opt-in. - Methodensperre ist serverseitig und fest codiert: Die HTTP-Methode, die an
executeübergeben wird, ist der maßgebliche Klassifikator. Der Agent kann die Sperre nicht umgehen, indem er falsch darstellt, was der Aufruf tut – POST/PUT/PATCH/DELETE-Anfragen erhalten eine stufenspezifische Sperre, unabhängig vom Text im Anfragetext. - Toolset-Filterung dient als Kill-Switch: Das Einschränken von
--toolsetsentfernt sowohl die kuratierten Tools der deaktivierten Toolsets als auch deren Pfade aus derexecute-Allowlist. (Die Allowlist wird nur bei eingeschränkten Toolsets konsultiert; bei allen aktivierten Toolsets istexecutedurch die/api-Formprüfung und die sensible Denylist begrenzt.) - Prompt-Injection-Risiko: Das Ausführen von Agenten in vollautomatischer Weise könnte Sie anfällig für Prompt-Injection-Angriffe machen
Empfehlung: Für Produktionsumgebungen übergeben Sie --read-only, es sei denn, Sie haben einen spezifischen, kontrollierten Anwendungsfall für Schreibvorgänge. Lassen Sie --allow-deletes deaktiviert, es sei denn, Sie benötigen speziell DELETE-Semantik über execute.
⚠️ Einschränkungen
Datenanalyse
Die Natur aktueller KI-Chat-Tools und des MCP-Protokolls selbst macht es unpraktisch, große Datenmengen zu analysieren. Die meisten MCP-Clients unterstützen derzeit keine Verkettung von Tool-Aufrufen (Verwenden der Ausgabe eines Tools als Eingabe für das nächste) und greifen stattdessen darauf zurück, die Ergebnisse Token für Token zu kopieren, was häufig zu Halluzinationen führt. Wenn Sie historische Daten Ihrer Octopus-Instanz zu Analysezwecken verarbeiten möchten, empfehlen wir, die API direkt zu verwenden oder einen eigenen MCP-Client zu schreiben, der die Tool-Aufrufergebnisse programmatisch verarbeiten kann.
Leistung
Der MCP-Server ist technisch nur eine dünne Schicht über der vorhandenen Octopus-Server-API. Daher kann er große Datenmengen abrufen (z. B. Tausende von Bereitstellungen anfordern). Solche Abfragen können erhebliche Auswirkungen auf die Leistung Ihrer Instanz haben. Weisen Sie Ihre Modelle an, nur die Mindestmenge an Daten abzurufen, die sie benötigen (die meisten Modelle sind darin standardmäßig sehr gut).
🤝 Beiträge
Contributions are welcome! :heart: Please read our Contributing Guide for information about how to get involved in this project.
We are eager to hear how you plan to use Octopus MCP Server and what features you would like to see included in future version.
Please use Issues to provide feedback, or request features.
If you are a current Octopus customer, please report any issues you experience using our MCP server to our support team. This will ensure you get a timely response within our standard support guarantees.
🙋 FAQ
Do you have plans to release a remote MCP server?
We are working on integrating an MCP server directly into Octopus Server. This will open up the door for us to build more complex MCP tools, as well as:
- Giving Octopus Administrators more granular control over MCP clients
- Natively support OAuth for client authentication
- Integrating security scanning tools into the MCP output
If this is of interest to you, please register your interest on our roadmap item.
License
This project is licensed under the terms of Mozilla Public License 2.0 open source license.