Die MCP-(Model Context Protocol)-Services stellen rund 208 Tools bereit (MCP Services 3.4, Oktober 2026), gruppiert in die unten aufgeführten Familien. Die meisten Platform-Admin-Tools spiegeln den entsprechenden octo-cli-Befehl (snake_case-Namen – z. B. CLI CreateTenant → MCP create_tenant); die Aggregations- und Persisted-Query-Tools spiegeln die GraphQL-Transient-Query-Oberfläche des Asset Repository.
Startet den OAuth2 Device Authorization Flow – gibt Verifizierungs-URL und User-Code zurück
check_auth_status
Prüft, ob die Browser-Anmeldung abgeschlossen ist
auth_status
Zeigt den Authentifizierungsstatus an; aktualisiert optional ein abgelaufenes Access-Token
whoami
Gibt den authentifizierten Benutzer zurück (Name, E-Mail, Rollen, Tenants)
list_tenants
Listet jeden Tenant auf, auf den der authentifizierte Benutzer Zugriff hat
switch_tenant
Wechselt den operierenden Tenant der Sitzung ohne erneute Anmeldung (RFC 8693 Token Exchange; Rollen werden im Ziel-Tenant neu aufgelöst; fällt auf den Device Flow zurück, wenn kein tenant-übergreifender Zugriff bereitgestellt ist)
Listet Identity Provider im Tenant auf (clientSecret ist immer null — das Tool verwirft auch einen, den ein älterer Identity Service liefern könnte; stattdessen clientSecretIsSet)
update_identity_provider
Aktualisiert gemeinsame Felder an einem bestehenden Identity Provider. Das Client Secret ist nur schreibbar: clientSecret weglassen, um es zu behalten, einen neuen Wert angeben, um es zu rotieren
delete_identity_provider‡
Löscht einen Identity Provider
add_oauth_identity_provider
Erstellt einen Google-, Microsoft- oder Facebook-OAuth-Identity-Provider
add_azure_entra_id_identity_provider
Erstellt einen Azure-Entra-ID-Identity-Provider
add_open_ldap_identity_provider
Erstellt einen OpenLDAP-Identity-Provider
add_active_directory_identity_provider
Erstellt einen Microsoft-Active-Directory-Identity-Provider
add_octo_tenant_identity_provider
Erstellt einen OctoTenant-Identity-Provider für tenant-übergreifende Authentifizierung
Listet die für den Asset-Dienst konfigurierten CK-Modell-Katalogquellen auf
list_ck_catalog_models
Listet in Katalogen verfügbare Modelle auf, mit optionalem Filter
refresh_ck_catalogs
Aktualisiert die CK-Modell-Katalog-Caches
get_ck_library_status
Ruft den zusammengeführten Bibliotheksstatus eines Tenants mit Update-Flags ab
check_ck_dependencies
Löst Abhängigkeiten für ein Katalogmodell auf
check_ck_upgrade
Pre-Flight-Prüfung für das Upgrade/Migrieren eines installierten CK-Modells
import_ck_from_catalog
Importiert ein CK-Modell aus dem Katalog, einschließlich aller Abhängigkeiten
fix_all_ck_models‡
Findet jedes installierte CK-Modell, das ein Update/eine Reparatur benötigt, und reiht Importe in die Warteschlange ein
Service-managed CK models
import_ck_from_catalog ist für dienstverwaltete Modelle (System.*, z. B. System.Communication, System.StreamData, System.Reporting) stillschweigend ein No-Op. Verwenden Sie stattdessen das passende enable_<feature>-Tool – siehe Troubleshooting.
Aktiviert den Communication Controller für den Tenant
disable_communication‡
Deaktiviert den Communication Controller; wird mit einem Conflict-Fehler abgelehnt, solange noch Deployment Sites oder Workloads des Tenants bereitgestellt sind – führen Sie zuerst undeploy_workload / undeploy_deployment_site aus
Precondition chain
Machen Sie jedes Workload (undeploy_workload) und jeden Deployment Site (undeploy_deployment_site) rückgängig → disable_communication →
delete_tenant / detach_tenant. Jeder Schritt verweigert mit einem Conflict-Fehler und benennt, was noch im Weg steht;
Pipelines und Trigger benötigen keinen separaten Schritt.
Aktiviert die Streamdaten-Ingestion für den Tenant
disable_stream_data‡
Deaktiviert Streamdaten; wird abgelehnt, solange noch Archive aktiviert sind, Modell und Daten bleiben erhalten – Voraussetzung für delete_tenant / detach_tenant
activate_archive
Aktiviert ein CkArchive, indem seine archivspezifische CrateDB-Tabelle bereitgestellt wird
disable_archive
Deaktiviert ein CkArchive (Daten bleiben erhalten, Übergang zu Disabled)
enable_archive
Reaktiviert ein zuvor deaktiviertes Archiv
retry_archive_activation
Wiederholt die Archivaktivierung nach einem DDL-Fehler
delete_archive‡
Verwirft die archivspezifische CrateDB-Tabelle
list_rollups_for_archive
Listet jedes an ein Quell-CkArchive angehängte Rollup-Archiv auf
freeze_rollup_archive
Friert ein Rollup-Archiv zu einem gegebenen Zeitstempel ein
unfreeze_rollup_archive
Leert FrozenUntil an einem Rollup-Archiv
rewind_rollup_watermark‡
Setzt ein Rollup-Watermark zurück, sodass nachfolgende Ticks den Bereich neu aggregieren
backfill_rollup_archive
Stellt einen Hintergrund-Backfill ein, der ein Rollup über die gesamte Historie seines Quellarchivs befüllt oder zurücksetzt
list_recompute_jobs
Listet die letzten Recompute-Jobs eines Rollup-Archivs mit Zustand, Zählern, Laufzeiten und Fehlergrund
Führt eine transiente Aggregationsabfrage über Runtime-Entitäten aus
query_entities_grouping
Führt eine transiente gruppierte Aggregationsabfrage über Runtime-Entitäten aus
query_stream_data_simple
Liest rohe Zeitreihenzeilen aus einem Archiv mit Spaltenprojektion
query_stream_data_aggregation
Führt eine transiente Aggregationsabfrage auf einem Streamdaten-Archiv aus
query_stream_data_grouping
Führt eine transiente gruppierte Aggregationsabfrage auf einem Streamdaten-Archiv aus
query_stream_data_downsampling
Führt eine Downsampling-Abfrage aus, die zeitlich gebucketete Aggregatzeilen zurückgibt
execute_runtime_query
Führt eine persistierte Runtime-Query per RtId aus, mit optionalen Overrides
execute_stream_data_query
Führt eine persistierte Streamdaten-Query per RtId aus, mit optionalen Overrides
get_archive_storage_stats
Ruft archivspezifische Storage-Statistiken massenhaft ab (Zeilenanzahl, Speichergröße, Health)
get_rollup_query_metadata
Gibt Query-Konstruktions-Metadaten für ein Rollup-Archiv zurück
get_archive_coverage
Liefert die gemessene Abdeckung einer Archivfamilie (Basisarchiv und alle Rollups): Bucket-Größe, Ausrichtung, gespeicherte Funktionen, verfügbar von/bis je Stufe
resolve_series_query
Wählt für ein Zeitfenster, eine Ziel-Punktzahl und eine Aggregationsfunktion das abzufragende Archiv oder Rollup (auflösungsabhängiges Routing)
Die Namen der Aggregationsfunktionen sind Kleinbuchstaben-Kurzformen – count, sum, avg, min, max – gewählt, weil LLMs kleingeschriebene SQL-artige Strings zuverlässiger konstruieren als PascalCase-Enum-Namen. Die vollständige Menge der Filteroperatoren ist: Equals, NotEquals, Contains, StartsWith, EndsWith, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual, Between, In, NotIn, IsNull, IsNotNull, Regex, Like, AnyEq, AnyLike.
Jedes Tool, das Entitäten liefert (query_entities, get_entity_by_id, navigate_associations, execute_runtime_query, …), zeigt value: null plus secretIsSet: true|false — nie den Wert oder den Chiffretext.
create_entity / update_entity (mittleres Risiko) lehnen einen nicht leeren Wert für ein Secret-Attribut ab. null, "" oder ein zurückgesendetes { "isSet": … } lassen das gespeicherte Secret unverändert. update_entity akzeptiert clearSecretAttributes (Namen in camelCase oder PascalCase), um optionale Secrets zu löschen.
set_entity_secrets (rtId, ckTypeId, secrets: [{ attributePath, value }], clearSecretAttributes, expectedVersion, tenantId) setzt, rotiert oder löscht Secrets einer bestehenden Entität. secrets akzeptiert nur Secret-Attribute (Punkt-Notation durch Records, z. B. Endpoints.Token) und lehnt leere Werte ab. Jeder nicht leere Wert — auch einer, der wie ein Platzhalter aussieht (<…>, TODO_SET_*) — wird als Secret gespeichert.
create_entity_with_secrets (ckTypeId, entityData, secrets, tenantId) erstellt eine Entität zusammen mit ihren Secrets in einem Insert. Es ist für CK-Typen mit einem Pflicht-Secret gedacht: Der Server lehnt das Anlegen einer solchen Entität ohne Wert ab, daher kann create_entity gefolgt von set_entity_secrets sie nicht anlegen. Für entityData gelten die Regeln von create_entity, für secrets die von set_entity_secrets.
Nur diese beiden Tools mit hohem Risiko schreiben einen Secret-Wert.
Filter auf einem Secret unterstützen nur IsNull / IsNotNull. Andere Filteroperatoren, Aggregationen und Group-by auf einem Secret werden mit SecretAttributeNotQueryable abgelehnt; get_available_archive_paths listet nie Secrets.
Verschlüsselungsstatus eines Tenants (allTenants: true: jedes Tenants) — Umgebungsstatus (Key Ring konfiguriert, aktive und bekannte Key-IDs, strikter Modus, Verify-Cron, letzter Verify), die letzten Sweep-Läufe mit ihrem Dump-Zustand, der letzte Bericht mit Anzahlen pro Form und Key-ID und den nicht lesbaren, neu einzugebenden Werten; nie Werte
start_secret_sweep
Startet einen Sweep-Job: mode = Verify (Standard), Encrypt, Reprotect oder CleanupUnreadable; Encrypt, Reprotect und CleanupUnreadable brauchen confirm: true (wird an den Server weitergegeben); optional waitForCompletion. Decrypt wird abgelehnt — hohes Risiko
get_secret_inventory
Listet die Secret-Attribut-Slots eines Tenants (Entity, Attributpfad, Pflicht, Speicherform) aus der Secrets-Übersicht; nie Werte
restore_secret_sweep_dump‡
Spielt den vor einem Secret-Sweep erstellten Dump in seinen Tenant zurück (ersetzt die Tenant-Datenbank) — hohes Risiko
update_entity und delete_entity akzeptieren ein optionales expected_version (die RtVersion, die Sie bei Ihrem vorherigen Lesen beobachtet haben). Drei Verhaltensweisen:
expected_version
Ergebnis
Weggelassen
Last-Write-Wins. update_entity erhöht dennoch RtVersion, sodass ein späterer optimistischer Aufruf ein sinnvolles Token sieht.
Stimmt mit gespeichertem überein
Schreiben/Löschen wird durchgeführt; die Antwort trägt die erhöhte CurrentRtVersion.
Veraltet
Kein Schreiben. Die Antwort ist IsSuccess: false, IsConflict: true, plus das aktuelle Entity-Payload, sodass der Aufrufer ohne ein zweites get_entity_by_id rebasen kann.
Tools tragen eine [McpRisk(Low|Medium|High)]-Klassifizierung (ein Tool ohne explizites Attribut gilt als Low), die umschließende Clients (insbesondere der OctoMesh AI Adapter) beim Sitzungsstart über get_tool_risk_metadata lesen. Es handelt sich um informative Metadaten, nicht um einen Autorisierungsmechanismus (die Autorisierung liegt in den Backend-Diensten über das weitergereichte OAuth-Token).
Einzel-Instanz-Deletes, durch Schema-Introspektion getriebene Aktionen
Protokollieren; nicht pausieren
High
Massen-Deletes, Verwerfen eines CK-Typs/-Attributs/-Enum-Werts, Produktions-Deploy, Blueprint-Install/-Uninstall/-Apply-Update, Setzen von Secrets (set_entity_secrets, create_entity_with_secrets, add_oauth_identity_provider, add_azure_entra_id_identity_provider, update_identity_provider, start_secret_sweep)
Pausieren und den vorgeschlagenen Aufruf zur Benutzerfreigabe anzeigen
Die Klassifizierung ist pro Tool statisch. Deshalb schreiben nur eigene Tools mit hohem Risiko Secret-Werte, während das generische create_entity / update_entity mittleres Risiko behält und Secret-Werte ablehnt.
extraFilters wird per AND mit dem Filter der persistierten Query kombiniert; das Tool dispatcht anhand des Subtyps der persistierten Query (RtSimpleRtQuery / RtAggregationRtQuery / RtGroupingAggregationRtQuery) und projiziert das Ergebnis entsprechend.