cloadyDoku
Doku5 Min. Lesezeit

MCP-Server

Lass einen AI-Agenten über das Model Context Protocol in deinem Cloady-Konto arbeiten.

Cloady bringt einen MCP-Server mit, über den ein AI-Agent in deinem Konto arbeiten kann – mit Workspaces, Apps, Deploys, Umgebungsvariablen, Domains, Volumes, Mitgliedern, Integrationen, Abrechnung und Support-Tickets.

Worum es geht

Mit dem Model Context Protocol (MCP) kann ein AI-Client Tools auf einem Server finden und aufrufen. Die Operationen der REST-Referenz werden zu Cloady-Tools, und jeder Aufruf geht mit deinem API-Token an den passenden Endpunkt – mit denselben Berechtigungsprüfungen wie deine eigenen Anfragen.

Du kannst den Server lokal über stdio als @cloady/mcp ausführen oder dich mit dem gehosteten Endpunkt https://cloady.com/api/mcp verbinden, der dieselben Tools über Streamable HTTP bereitstellt, ganz ohne Installation. Der gehostete Endpunkt lässt die Tools weg, die Zugangsdaten zurückgeben (revealVar, getDbCredentials, getVolumeKeys, createSshSession, getSshSession, createToken, startCardSetup, die Einladungs-Tools, deren Links jedem Zugang geben, der sie öffnet, und die Tools für den Import von anderen Anbietern), außerdem generateImage. Auch die meisten Monitor-Tools fehlen dort: Am gehosteten Endpunkt lesen Agenten Metriken und Logs mit queryAppMetrics, queryAppMetricsRange, queryAppLogs und queryWorkspaceMetrics. Alles, was dort fehlt, bleibt im lokalen Paket und in der API verfügbar.

Die öffentliche Verbindung im OpenAI-Verzeichnis nutzt https://cloady.com/api/mcp?profile=openai. Sie bietet Diagnosen für Anwendungen, Einblick in Datenbankschemas, Repository-Operationen und die Verwaltung von Domains. Nicht enthalten sind das Abrufen von Zugangsdaten, Verifizierungscodes, das Einrichten von Zahlungen, Änderungen am Abonnement sowie das Anlegen von Anwendungen und das Ändern ihrer Größe. Diese Operationen bleiben über das Cloady-Dashboard, die REST-API und das lokale Paket @cloady/mcp verfügbar. Jede Git-Aktion ist ein eigenes Tool.

Clients mit OAuth-Unterstützung verbinden sich, ohne einen API-Schlüssel zu kopieren. Wähle bei der Zustimmung einen Scope und widerrufe das daraus entstandene Token unter Account → API tokens, sobald du es nicht mehr brauchst. Eine Verbindung auf Kontoebene kann auf alle Workspaces zugreifen, zu denen dein Konto gehört – im Rahmen ihres Scopes und deiner Rolle. Wie Daten weitergegeben, aufbewahrt und gelöscht werden, steht in der Datenschutzerklärung.

Ein Tool-Aufruf geht über stdio an den lokalen MCP-Server und dann über HTTPS an die REST-API, wo er dieselbe Autorisierungsprüfung durchläuft wie eine Anfrage aus dem DashboardAI-AgentClaude Code, Cursor, jeder MCP-ClientDashboardcloady.com in deinem Browserstdio@cloady/mcpein Tool pro API-OperationToken aus BEARER_TOKEN_CLOADYHTTPS, Bearer-TokenHTTPS, Session-Cookiedieselbe Autorisierungsprüfung, in derselben Route1 Aufrufer ermittelnToken oder Session2 Telefon verifiziertsonst phone_required3 Workspace-Rollepro Operation4 Bindung, dann Scopenur bei API-TokensPrüfungen 1–3 sind für beide Aufrufer gleich; Prüfung 4 (gestrichelt) gilt nur für API-Tokens.

Verbinden

Erstelle unter Account → API tokens ein Token und kopiere das Secret cldy_… – es wird nur einmal angezeigt. Du brauchst Node 20 oder neuer.

Claude Code

Terminal
claude mcp add cloady -e BEARER_TOKEN_CLOADY=cldy_… -- npx -y @cloady/mcp

Gehostet, ohne Installation

Terminal
claude mcp add --transport http cloady https://cloady.com/api/mcp --header "Authorization: Bearer cldy_…"

Jeder Client, der Streamable HTTP spricht, verwendet dieselbe URL und denselben Authorization: Bearer-Header. Jede Anfrage läuft im Namen des Token-Inhabers, genau wie beim Paket.

Claude Desktop / Cursor / jeder MCP-Client

JSON
{
  "mcpServers": {
    "cloady": {
      "command": "npx",
      "args": ["-y", "@cloady/mcp"],
      "env": { "BEARER_TOKEN_CLOADY": "cldy_xxxxxxxxxxxxxxxx" }
    }
  }
}

API_BASE_URL überschreibt den Ziel-Host, wenn du auf etwas anderes als https://cloady.com zeigst.

Tools

Ein Tool pro API-Operation, benannt nach ihrer Operation-ID – listVars, createVar, deployApp, execCommand, listDeploys. Pfad- und Query-Parameter sind Argumente auf oberster Ebene; alles, was ein JSON-Body wäre, kommt in ein verschachteltes requestBody-Objekt. createVar nimmt also workspaceSlug, appSlug, env und region, dazu requestBody: { key, value, isSecret }.

Jede App läuft in einer Region und einer Umgebung, und ihr Name ist innerhalb eines Workspaces und einer Umgebung eindeutig. env ist production (der Standard), preview oder development; region brauchst du nur, wenn es eine App dieses Namens in mehr als einer Region gibt.

Das flache Argumentobjekt eines Tools verteilt sich auf Pfad, Query-String und JSON-Body einer REST-Anfrage; das Token kommt als Authorization-Header hinzuein Tool, generiert aus einer Contract-Operationdie REST-Anfrage, die es stelltcreateVarworkspaceSlug"acme"appSlug"my-blog"env"production"region"usw1"key"API_KEY"value"s3cr3t"isSecrettruePOST /api/workspaces/acme/apps/my-blog/vars?env=production&region=usw1Authorization: Bearer cldy_…{ "key": "API_KEY","value": "s3cr3t","isSecret": true }PfadQueryBodyPfad, Query und Body bilden ein flaches Argumentobjekt; den Header setzt der lokale Server selbst.

Die vollständige Liste mit allen Argumenten ist die API-Referenz – alles, was dort steht, ist ein Tool. Ein paar, die du kennen solltest:

ToolFunktion
listWorkspaces, getWorkspaceWorkspaces mit ihren Apps unter services – Status, Region, Endpunkte, Limits.
deployAppLegt eine App aus dem Katalog, einem Git-Repo oder einem Upload an: source ist {type:"catalog", name}, {type:"git", repoUrl} oder {type:"upload", uploadId}, region bestimmt, wo sie läuft, und values setzt Einstellungen für die Installation.
updateAppBenennt um, wechselt den Branch, skaliert und stoppt oder startet mit status: "stopped" / "running".
deleteAppLöscht die App und ihre Daten.
listVars, createVar, updateVar, deleteVar, importVars, revealVarUmgebungsvariablen und Zugangsdaten.
listDeploys, createAppDeploy, redeployApp, rollbackDeployDeploy-Verlauf, neue Deploys und das Zurückrollen auf einen früheren Deploy.
execCommandFührt einen Shell-Befehl in einem laufenden Container aus.
readServiceLogsDie letzten 200 Zeilen eines Services – serviceName ist ein Service innerhalb der App.
listAppDomains, createDomain, listCertStatusesEigene Domains und ob HTTPS darauf schon bereit ist.

deleteApp ist destruktiv. Das Tool löscht die App und ihre Daten endgültig, und das lässt sich nicht rückgängig machen.

Umbenennen über updateApp ist der sichere Weg, den Namen einer App zu ändern: Die App behält ihre Daten, und ihre Adresse folgt dem neuen Namen – eine App namens My Blog im Workspace acme antwortet unter my-blog-k7q2v9ze-acme.cloady.io und zieht nach dem Umbenennen auf die Adresse des neuen Namens um. Lösche eine App nie und lege sie neu an, nur um sie umzubenennen; beim Löschen werden ihre Daten vernichtet.

Die fünf stream…-Tools (streamAppStatus, streamAppMetrics, streamActiveDeploy, streamDeployLogs, streamTicketMessages) liefern pro Aufruf einen aktuellen Frame statt eines Live-Feeds. Ruf sie also erneut auf, um einen Fortschritt zu verfolgen.

Scopes

Ein Token hat genau einen Scope, und der begrenzt die Workspace-Rolle, mit der das Token handeln kann: read handelt als Viewer, deploy als Developer, full bis hin zum Owner. Jede Operation braucht trotzdem dieselbe Rolle wie im Dashboard – ein Token mit Scope full kann also nichts in einem Workspace löschen, in dem du nur Viewer bist.

Ein Token kann außerdem an einen Workspace gebunden sein; bei einem anderen Workspace wird es mit dem Fehler forbidden abgelehnt.

Fehler

Fehler kommen als Fehler-Body des Endpunkts selbst zurück:

JSON
{ "error": { "code": "forbidden", "message": "API token scope 'read' cannot perform 'developer'-level actions" } }
CodeBedeutung
unauthorizedToken fehlt oder ist ungültig.
phone_requiredDie Telefonnummer des Token-Inhabers ist nicht verifiziert. Verifiziere sie einmal auf cloady.com, dann funktioniert jedes Tool.
forbiddenScope oder Workspace-Rolle reichen nicht, oder das Token ist an einen anderen Workspace gebunden.
not_foundWorkspace, App oder Eintrag existiert nicht.
region_requiredEine App dieses Namens gibt es in mehr als einer Region – gib region mit.
payment_requiredDie App würde den Workspace über sein Gratis-Kontingent bringen, und es ist keine Karte hinterlegt oder sie wurde abgelehnt. Der Inhaber des Workspaces muss auf cloady.com unter Account → Billing eine Karte hinterlegen.

Beispiel-Interaktion

You: Install WordPress in the acme workspace, region usw1, then show me its settings.

Agent → listTemplates
  ← the catalog, including { "slug": "wordpress", … }

Agent → deployApp { workspaceSlug: "acme",
                    requestBody: { name: "My Blog", region: "usw1",
                                   source: { type: "catalog", name: "wordpress" } } }
  ← the created app: slug "my-blog", status "deploying"

Agent → listVars { workspaceSlug: "acme", appSlug: "my-blog" }
  ← its variables and generated credentials

Agent: Installed My Blog in usw1; it's deploying now. Here are its settings — …

Auf dieser Seite