Kommandozeile
Jedes Tool des Costfluent-MCP-Servers mit dem Befehl costfluent aus einem Terminal, einem Skript oder einem CI-Job ausführen, ein Token mit costfluent whoami prüfen, sich statt mit einem Token mit costfluent login anmelden, die Kostenschätzung eines Terraform-Pull-Requests aus jeder CI senden und Claude Code, Cursor, Codex, VS Code oder Copilot CLI mit dem MCP-Server verbinden.
Der Befehl costfluent führt jedes Tool des MCP-Servers aus einem Terminal, einem Skript oder einem CI-Job aus. Ein Befehl ist der Name des Tools mit Bindestrichen und nimmt die Argumente des Tools als Flags, sodass er genau das liest, was das Tool liest, mit derselben Prüfung der Berechtigung, derselben Validierung und demselben Ergebnis. Er gibt JSON für ein Skript und eine Tabelle für Sie aus. Der Befehl eines lesenden Tools liest nur; der Befehl eines schreibenden Tools legt an oder ändert, was das Tool tut, und erst, wenn ein Eigentümer KI-Agenten Objekte anlegen und ändern lässt (die MCP-Seite sagt, wie). Kein Befehl löscht etwas in Costfluent oder greift auf Ihre Cloud zu. costfluent estimate, unten beschrieben, sendet die Kostenschätzung eines Terraform-Pull-Requests aus jeder CI.
Bevor Sie beginnen
Enthalten im Pro-, Business- und Custom-Tarif. Tarife vergleichen
- Ein API-Token. Erstellen Sie es, wie es Token erstellen in der Anleitung zum MCP-Server beschreibt, aus der Vorlage Nur lesen; ein CI-Job bekommt ein eigenes Token. Auf Ihrem eigenen Rechner können Sie sich stattdessen anmelden.
- Ein Rechner mit macOS, Linux oder Windows, amd64 oder arm64.
Installieren
Laden Sie das Archiv für Ihre Plattform aus dem neuesten Release herunter und legen Sie costfluent in Ihren PATH. Das Archiv enthält costfluent und den MCP-Server costfluent-mcp. Oder bauen Sie beide mit Go:
Code
Jedes Release trägt eine Build-Provenance-Attestierung, die gh attestation verify <archive> --repo costfluent/costfluent-mcp prüft.
Einen Befehl ausführen
- Setzen Sie
COSTFLUENT_API_TOKENauf das Token, oder melden Sie sich an.COSTFLUENT_BASE_URList optional, standardmäßighttps://api.costfluent.comund muss https verwenden. - Führen Sie
costfluent whoamiaus, um zu sehen, was die API über das Token sagt: seinen Namen, seinen Arbeitsbereich und seine Berechtigungen. - Führen Sie einen Befehl aus, etwa die Abfrage unten.
costfluent <command> --helplistet die Flags eines Befehls.
Code
Anmelden
Statt mit einem Token meldet costfluent login Sie über Ihren Browser an, wo Sie den Lesezugriff auf eine Organisation zulassen, wie Mit einer App anmelden beschreibt. Befehle laufen danach ohne COSTFLUENT_API_TOKEN; ein gesetztes Token hat weiter Vorrang. costfluent logout widerruft die Anmeldung und vergisst sie auf diesem Rechner, auch wenn der Widerruf Costfluent nicht erreicht.
Code
- Die Anmeldung liegt im Anmeldedatenspeicher des Betriebssystems: im macOS-Schlüsselbund, im Secret Service unter Linux oder in der Windows-Anmeldeinformationsverwaltung. Auf einem Rechner ohne einen solchen Speicher legt
costfluent login --insecure-storagesie incostfluent/credentials.jsonunterXDG_CONFIG_HOMEoder im Konfigurationsverzeichnis des Systems ab, nur für Sie lesbar, und ein Befehl lehnt die Datei ab, sobald andere sie lesen können. Ohne das Flag schlägt die Anmeldung dort fehl und widerruft, was sie erhalten hat. - Die Seite, die sich öffnet, zeigt
costfluent loginals App, die Costfluent nicht geprüft hat und die nur zu Ihrem Rechner zurückkehrt, weil ihre Antwort an den Befehl auf diesem Rechner zurückgeht: Lassen Sie sie zu, wenn Sie den Befehl selbst ausgeführt haben. --no-browsergibt die Adresse zum Öffnen aus, statt Ihren Browser zu öffnen.--timeoutlegt fest, wie lange der Befehl auf Ihre Zustimmung wartet, etwa--timeout 10m; sonst wartet er 5 Minuten.COSTFLUENT_BASE_URLwählt die API wie bei jedem Befehl, und jede API behält ihre eigene Anmeldung.- Ist die Anmeldung abgelaufen oder wurde sie widerrufen, endet ein Befehl mit 3 und bittet Sie,
costfluent loginerneut auszuführen.
Befehle
| Befehl | Was er tut | Berechtigung |
|---|---|---|
costfluent list-workspaces | Die Arbeitsbereiche, die das Token lesen kann | Arbeitsbereiche anzeigen |
costfluent query-costs | Kosten, Nutzung oder Ressourcenanzahl über einen Zeitraum, nach bis zu drei Dimensionen gruppiert und durch einen Kostenfilter eingegrenzt | Kosten anzeigen |
costfluent list-cost-reports | Die gespeicherten Kostenberichte eines Arbeitsbereichs | Kostenberichte anzeigen |
costfluent get-cost-report-data | Die Zahlen, die ein gespeicherter Bericht jetzt zeigt | Kosten anzeigen, für einen Bericht mit einer Geschäftskennzahl auch Kostenberichte anzeigen |
costfluent list-annotations | Die Anmerkungen eines Arbeitsbereichs nach Datum | Kostenberichte anzeigen |
costfluent list-budgets | Budgets mit ihren aktuellen Ausgaben und ihrem Zustand | Budgets anzeigen |
costfluent list-anomalies | Erkannte Kostenanomalien, die neuesten zuerst | Anomalien anzeigen |
costfluent list-savings-items | Die Einsparpotenziale eines Arbeitsbereichs mit ihrer geschätzten monatlichen Einsparung und ihrem Status | Einsparungen anzeigen |
costfluent list-commitments | Die Savings Plans, Reservierungen und Committed Use Discounts eines Arbeitsbereichs | Kosten anzeigen |
costfluent get-commitment-coverage | Wie viel der dafür infrage kommenden Nutzung Commitments in einem Zeitraum abgedeckt haben | Kosten anzeigen |
costfluent get-kubernetes-efficiency | Kosten, Leerlaufkosten sowie genutzte gegenüber angeforderter CPU und angefordertem Speicher je Cluster, Namespace oder Workload | Kosten anzeigen |
costfluent create-annotation | Setzt eine Notiz an einem Datum an einen oder mehrere gespeicherte Kostenberichte | Kostenberichte bearbeiten |
costfluent create-cost-report | Speichert einen neuen Kostenbericht | Kostenberichte erstellen |
costfluent update-cost-report | Ändert einen gespeicherten Kostenbericht; was der Aufruf auslässt, bleibt, wie es ist | Kostenberichte bearbeiten |
costfluent create-budget | Legt ein Budget an | Budgets erstellen |
costfluent update-budget | Ändert ein Budget; was der Aufruf auslässt, seine Warnungen eingeschlossen, bleibt, wie es ist | Budgets bearbeiten |
costfluent create-cost-alert | Legt eine Kostenwarnung an | Kostenwarnungen verwalten |
costfluent update-cost-alert | Ändert eine Kostenwarnung; was der Aufruf auslässt, bleibt, wie es ist | Kostenwarnungen verwalten |
costfluent pause-cost-alert | Pausiert eine Kostenwarnung | Kostenwarnungen verwalten |
costfluent resume-cost-alert | Setzt eine pausierte Kostenwarnung fort | Kostenwarnungen verwalten |
costfluent create-dashboard | Legt ein Dashboard an | Dashboards erstellen |
costfluent add-dashboard-widget | Fügt einem Dashboard ein Widget hinzu | Dashboards bearbeiten, dazu Kostenberichte anzeigen |
costfluent acknowledge-anomaly | Bestätigt eine erkannte Kostenanomalie | Anomalien bestätigen |
costfluent set-savings-item-status | Setzt ein Einsparpotenzial auf Angenommen, Umgesetzt oder Abgelehnt, eine Ablehnung mit ihrem Grund | Auf Einsparungen reagieren |
costfluent assign-savings-item-owner | Legt fest, wer für ein Einsparpotenzial verantwortlich ist | Einsparungen verwalten |
costfluent search-docs | Durchsucht die Costfluent-Dokumentation auf Deutsch oder Englisch nach den Abschnitten, die eine Frage beantworten; braucht kein Token | Keine |
costfluent get-doc-page | Gibt eine Seite der Costfluent-Dokumentation oder einen ihrer Abschnitte als Markdown aus; braucht kein Token | Keine |
Ein Flag ist das Argument des Tools mit Bindestrichen: Aus start_date von query_costs wird --start-date. Ein Flag, das eine Liste nimmt, etwa --group-by, geben Sie für jeden Wert einmal an.
In Planung: Commitment-Abdeckung
costfluent list-commitments und costfluent get-commitment-coverage lesen die Commitments, die die Verbindungen eines Arbeitsbereichs halten, und wie viel der infrage kommenden Nutzung sie abgedeckt haben.
Einen Assistenten verbinden
costfluent mcp install gibt den Eintrag aus, der costfluent-mcp in Ihrem Assistenten startet, oder fügt ihn mit --write der Konfigurationsdatei des Assistenten hinzu.
- Führen Sie
costfluent mcp install --client <client>mitclaude-code,cursor,codex,vscodeodercopilotaus und prüfen Sie den ausgegebenen Eintrag. - Führen Sie den Befehl erneut mit
--writeaus, um den Eintrag der Datei hinzuzufügen, die die Tabelle unten nennt. Mit--projectschreibt er stattdessen die Projektdatei von Cursor oder Codex im aktuellen Verzeichnis. - Starten Sie den Assistenten neu, aus einer Shell, in der
COSTFLUENT_API_TOKENgesetzt ist.
| Client | Datei |
|---|---|
claude-code | .mcp.json im aktuellen Verzeichnis |
cursor | ~/.cursor/mcp.json, mit --project .cursor/mcp.json |
codex | ~/.codex/config.toml, mit --project .codex/config.toml |
vscode | .vscode/mcp.json im aktuellen Verzeichnis |
copilot | ~/.copilot/mcp-config.json, oder mcp-config.json in COPILOT_HOME |
Der Eintrag enthält das Token nur, wenn Sie es verlangen. Claude Code, Cursor, Codex und Copilot CLI lesen es aus COSTFLUENT_API_TOKEN in ihrer eigenen Umgebung, und VS Code fragt beim ersten Start des Servers danach. Mit --write --embed-token enthält der Eintrag stattdessen das Token aus COSTFLUENT_API_TOKEN, für einen Assistenten, der ohne diese Variable startet, und nur Sie können die Datei dann lesen: Halten Sie sie aus der Versionskontrolle heraus, und widerrufen Sie das Token, wenn Sie den Assistenten nicht mehr nutzen. Ein aus dem Dock gestartetes Cursor sieht die Variablen Ihrer Shell nicht: Starten Sie es aus einer Shell, oder lassen Sie envFile im Eintrag auf eine Datei zeigen, die die Variable setzt. Ein ohne die Variable gestartetes Claude Code gibt dem Server den Text ${COSTFLUENT_API_TOKEN} statt eines Tokens, den die API ablehnt.
Kostenschätzungen aus der CI senden
costfluent estimate submit sendet die Schätzung, die Infracost für einen Terraform-Pull-Request erstellt, an Costfluent, und costfluent estimate apply hält fest, dass die Änderung angewendet wurde, mit den IDs, die Terraform den erstellten oder ersetzten Ressourcen gegeben hat. Mit diesen IDs findet Costfluent jede Ressource in Ihren Abrechnungsdaten und vergleicht die Schätzung mit den Kosten, die folgten. Die beiden Befehle tun aus jeder CI, was die Kostenschätzungs-Action von Costfluent in GitHub Actions tut, und wandeln das JSON von Infracost und Terraform mit den Programmen der Action selbst um, sodass beide dieselbe Schätzung senden.
- Öffnen Sie Einstellungen, dann API-Token, und wählen Sie API-Token erstellen. Wählen Sie unter Zugriff den Arbeitsbereich, zu dem die Schätzungen gehören, und unter Vorlage die Vorlage Nur lesen; entfernen Sie dann jede Berechtigung und wählen Sie Kostenschätzungen übermitteln, die einzige, die die Befehle brauchen.
- Speichern Sie das Token als maskiertes Secret der Pipeline und geben Sie es dem Job als
COSTFLUENT_API_TOKEN. Kein Flag nimmt das Token. - Schreiben Sie im Job, der bei Merge Requests oder Pull Requests läuft, den Vergleich von Infracost als JSON (
infracost diff --format jsonmit Infracost v0.10,infracost diff --jsonmit Infracost v2) und den gespeicherten Plan mitterraform show -json, und führen Sie danncostfluent estimate submitaus. - Wenden Sie im Job, der die gemergte Änderung anwendet, den gespeicherten Plan an, schreiben Sie den Plan und dann den Zustand mit
terraform show -jsonund führen Siecostfluent estimate applymit der Nummer des gemergten Pull Requests aus.
| Flag | Was es nimmt |
|---|---|
--workspace-id | Den Arbeitsbereich, zu dem die Schätzung gehört; erforderlich |
--repository | Das Repository, etwa acme/infra; erforderlich |
--pull-request | Die Nummer des Pull Requests oder Merge Requests; erforderlich |
--infracost-json | Für submit das JSON von Infracost; erforderlich |
--terraform-plan-json | terraform show -json des gespeicherten Plans: optional für submit, wo es jeder geänderten Ressource die IDs gibt, über die Costfluent ihre Kosten misst, und erforderlich für apply |
--terraform-state-json | Für apply terraform show -json des Zustands nach dem Anwenden; erforderlich |
--commit, --url, --infracost-version | Für submit den Commit, einen https-Link zum Pull Request und die Version von Infracost, die mit der Schätzung gespeichert werden |
--fail-above | Für submit den Höchstwert der geplanten monatlichen Änderung in der Währung der Schätzung |
GitLab CI
Dieser Job läuft bei Merge Requests, nach einem Job plan, der infracost.json und plan.json als Artefakte behält. COSTFLUENT_API_TOKEN ist eine maskierte CI/CD-Variable.
Code
Azure Pipelines
Diese Pipeline läuft bei Pull Requests in Azure Repos, die eine Richtlinie zur Buildvalidierung auf dem Zielbranch startet. COSTFLUENT_API_TOKEN ist eine geheime Pipelinevariable, die ein Schritt nur sieht, wenn sein env sie zuordnet.
Code
Das Anwenden festhalten
Nachdem die gemergte Änderung aus ihrem gespeicherten Plan angewendet ist, in jeder CI:
Code
submiterstellt die Schätzung des Pull Requests beim ersten Senden und ersetzt sie bei jedem weiteren, bis die Änderung angewendet ist. Ein Vergleich, der keine bepreiste Ressource ändert, sendet nichts, und der Befehl endet mit 0.- Beide Befehle geben die Quittung der Schätzung aus: ihre ID und ihren Zustand und, von
submit, die geplanten monatlichen Kosten vorher und nachher, die Änderung und wie viele Ressourcen Infracost nicht bepreisen konnte, wie Costfluent sie in der Währung der Schätzung berechnet hat. Eine Zeile auf stderr sagt, ob die Schätzung erstellt oder aktualisiert wurde. --fail-abovewird geprüft, nachdem die Quittung ausgegeben ist, und vergleicht die exakten Beträge: Eine Änderung gleich--fail-abovebesteht, eine Änderung darüber endet mit 4, und eine negative Änderung nie. Antwortet Costfluent ohne die geplanten Summen, sagt eine Warnung, dass--fail-abovenicht angewendet wird, und der Befehl endet mit 0, statt jeden Pull Request an einer Änderung scheitern zu lassen, die er nicht lesen kann.applywarnt vor jeder Ressource, die der Plan erstellt oder ersetzt hat und für die der Zustand keine ID enthält, und lässt sie weg. Ein Pull Request ohne Schätzung im Arbeitsbereich hat nichts anzuwenden: Der Befehl sagt es mit dem Grund der API und endet mit 0.- Ein falsches oder fehlendes Flag oder eine Eingabedatei, die kein JSON ist, endet mit 2, bevor eine Anfrage gesendet wird.
Wie es sich verhält
- Ein Befehl gibt JSON aus, wenn seine Ausgabe in eine Datei, eine Pipe oder ein CI-Log geht, und eine Tabelle, wenn sie in ein Terminal geht;
--output jsonoder--output tablelegt es fest. Beträge behalten jede Stelle, die die API sendet. - Ein Befehl endet mit 0, wenn er erfolgreich war, mit 1, wenn der Aufruf fehlschlug, mit 2, wenn die Kommandozeile falsch ist, mit 3, wenn das Token fehlt, abgelehnt wird oder die Berechtigung nicht trägt, die der Befehl braucht, bevor der Befehl etwas liest, und mit 4, wenn ein von Ihnen gesetzter Schwellenwert überschritten wurde, wie ihn
costfluent estimate submit --fail-abovesetzt. - Ein Fehler geht nach stderr: der Fehler der API als JSON, mit Status, Code, Detail und Trace-ID, wenn stderr kein Terminal ist, und eine Zeile, wenn es eines ist.
- Eine Liste liefert eine Seite, wie das Tool; das Ergebnis nennt die nächste Seite, die
--pageliest. - Jeder Befehl zählt gegen das Anfragelimit des Tokens und wartet ein kurzes Limit ab, wie es der MCP-Server tut.
- Eine Tabelle schreibt Steuerzeichen in Namen, Titeln und Tag-Werten als Escape-Folgen, denn Ihre Nutzer und Ihre Cloud-Konten schreiben sie, und ein Terminal würde sie ausführen.
- Kein Befehl gibt das Token aus, und
costfluent mcp installschreibt es nur mit--embed-tokenin eine Datei, das--writevoraussetzt. --writebehält jeden anderen Server in der Datei und lehnt eine Datei ab, die schon einen Eintragcostfluenthat, sofern--forceihn nicht ersetzt. Eine Datei, die es nicht als reines JSON lesen kann, etwa eine mit Kommentaren, lässt es unverändert.