Zum Hauptinhalt springen

Lösungen mit KI über den MCP-Server bauen

OctoMesh bringt einen MCP-Server mit, einen Model-Context-Protocol-Endpunkt, über den KI-Assistenten wie Claude Code oder Claude Desktop mit typisierten Tools in Ihrem Tenant arbeiten können: das Datenmodell erkunden, Entitäten und Zeitreihen abfragen, Pipelines untersuchen und, sofern Ihre Berechtigungen es erlauben, Änderungen vornehmen. In diesem Tutorial verbinden Sie einen Assistenten, lassen ihn die Energiedaten aus Tutorial 3 erkunden und eine kleine Auswertung für Sie bauen.

Zeitbedarf: etwa 45 Minuten.

So funktioniert es​

Der MCP-Server hat weder eigene Daten noch eigene Berechtigungen. Jeder Tool-Aufruf läuft mit Ihrem Access Token gegen dieselben Services, die auch das Studio und octo-cli verwenden. Der Assistent kann also genau das tun, was Sie tun können, und nicht mehr.

Schritt 1: Den KI-Client verbinden​

Der MCP-Endpunkt einer Installation ist https://mcp.<your-domain>/mcp. Er bedient alle Tenants; der Tenant wird beim Anmelden gewählt und kann pro Tool-Aufruf übergeben werden.

Claude Code:

claude mcp add --transport http --scope user octomesh https://mcp.<your-domain>/mcp

Führen Sie dann in Claude Code /mcp aus und wählen Sie octomesh.

Claude Desktop (claude_desktop_config.json, danach die App neu starten):

{
"mcpServers": {
"octomesh": {
"type": "http",
"url": "https://mcp.<your-domain>/mcp"
}
}
}

Andere Clients: Jeder Client, der den Transport streamable HTTP und die OAuth-Autorisierung für MCP-Server unterstützt, funktioniert auf dieselbe Weise.

Schritt 2: Authentifizieren​

Spezifikationskonforme Clients authentifizieren sich selbstständig:

  1. Die erste Anfrage ohne Token wird mit 401 und einem Verweis auf die Protected Resource Metadata des Servers beantwortet (https://mcp.<your-domain>/.well-known/oauth-protected-resource), die den Identity Service nennt.
  2. Der Client registriert sich beim Identity Service (Dynamic Client Registration; der Client erscheint als octo-dcr-...) und öffnet einen Browser.
  3. Sie geben Ihre E-Mail-Adresse ein, wählen Ihren Tenant und melden sich wie gewohnt an.
  4. Der Client erhält ein Token mit den Scopes openid profile email role octo_api offline_access und erneuert es automatisch.

Prüfen Sie die Verbindung mit der Frage:

Als wer bin ich angemeldet, und in welchem Tenant arbeite ich?

Der Assistent ruft whoami auf und zeigt Ihren Benutzer, Ihre Rollen und Ihren Tenant. Kann Ihr Client die Browser-Anmeldung nicht durchführen, bietet der Server eine Device-Code-Anmeldung über das Tool authenticate an; siehe MCP – Getting started.

Schritt 3: Das Datenmodell erkunden​

Fragen Sie in natürlicher Sprache. Der Assistent wählt die Tools selbst; die Namen in Klammern zeigen, was typischerweise passiert.

Welche Construction-Kit-Modelle sind in meinem Tenant installiert? (get_available_models)

Finde die Typen, die mit Zählpunkten zu tun haben, und zeige mir das Schema von EnergyCommunity/Consumer. (search_types, get_type_schema)

Welche Archive gibt es für Basic.Energy/EnergyMeasurement, und für welchen Zeitraum enthalten sie Daten? (get_available_archive_paths, get_archive_coverage)

Vergleichen Sie die Antworten mit dem, was Sie in Tutorial 1 im Studio gesehen haben.

Schritt 4: Daten abfragen​

Liste fünf Verbraucher mit Zählpunktnummer und Teilnahmefaktor auf. (query_entities)

Welche Messanker hat der Verbraucher mit der Zählpunktnummer <number>? (navigate_associations)

Summiere die Rohmesswerte von gestern je OBIS-Code. (query_stream_data_grouping)

Berechne mit dem monatlichen Rollup den Deckungsgrad und die Überschussquote der Gemeinschaft für jeden der letzten sechs Monate.

Die letzte Anfrage braucht mehrere Schritte: die Anker je Register finden, das Rollup abfragen und dividieren. Beobachten Sie, wie der Assistent sie plant, und prüfen Sie sein Ergebnis anhand der Zahlen aus Tutorial 3.

Lassen Sie den Assistenten seinen Lösungsweg zeigen

Bitten Sie den Assistenten, die verwendeten Tool-Aufrufe und Parameter zu zeigen oder seine Schritte in eine GraphQL-Abfrage oder ein Skript zu überführen. So wird ein Ergebnis reproduzierbar, und Sie können es ohne den Assistenten prüfen.

Schritt 5: Von der Erkundung zu einer kleinen Lösung​

Ist eine Frage beantwortet, lassen Sie den Assistenten daraus etwas Dauerhaftes machen:

Schreibe ein Python-Skript, das den monatlichen Deckungsgrad und die Überschussquote meiner Energiegemeinschaft über die GraphQL-API berechnet, mit dem Token aus einer Umgebungsvariable. Verwende die Abfragen, die du gerade ausgeführt hast.

Baue eine kleine Webseite, die den täglichen Deckungsgrad der letzten 30 Tage als Diagramm zeigt und die Daten über GraphQL liest.

Für größere Webanwendungen bietet der MCP-Server außerdem Scaffolding-Tools für OctoMesh-Custom-Apps (get_custom_app_template_manifest, plan_custom_app_scaffold, apply_custom_app_scaffold) und kann das GraphQL-Schema Ihres Tenants für die Codegenerierung exportieren (export_runtime_graphql_sdl). Der erzeugte Code spricht mit den regulären APIs, daher gilt alles aus Tutorial 2, insbesondere die Prüfung des errors-Arrays in GraphQL-Antworten.

Sicherheitsgrenzen​

  • Ihr Token, Ihre Rechte. Der Server reicht Ihre Identität weiter. Haben Sie in einem Tenant Schreibrollen, kann auch der Assistent dort schreiben. Arbeiten Sie zum Erkunden mit einem Konto oder Tenant, in dem Sie nur Leserollen haben, oder prüfen Sie jeden Schreibvorgang, den der Assistent vorschlägt.
  • Tenant-Isolation. Ein Token ist an einen Tenant gebunden. Aufrufe für einen anderen Tenant funktionieren nur, wenn Ihr Benutzer dort Zugriff erhalten hat; der Server tauscht dann das Token, mit den Rollen, die Sie in diesem Tenant haben.
  • Destruktive Operationen brauchen eine Bestätigung. Löschen, Deinstallieren oder Zurückrollen erfordert den expliziten Parameter confirm: true. Ohne ihn verweigert das Tool die Ausführung, und ein gut erzogener Assistent fragt Sie zuerst. Lassen Sie die Tool-Freigabeabfragen Ihres Clients für schreibende Tools eingeschaltet.
  • Risikostufen. Jedes Tool ist als niedriges, mittleres oder hohes Risiko eingestuft (get_tool_risk_metadata). Clients und Wrapper können damit für Aufrufe mit hohem Risiko eine Freigabe verlangen.
  • Geheimnisse. Fügen Sie keine Tokens, Passwörter oder Client Secrets in den Chat ein. Generische Entitätsabfragen können alle Attribute einer Entität liefern, auch Zugangsdaten auf Konfigurationsentitäten, wenn keine Attributliste angegeben ist; fragen Sie gezielt nach den benötigten Attributen.
  • Prüfen. Ein Assistent kann ein Modell falsch lesen oder das falsche Archiv wählen. Prüfen Sie wichtige Zahlen mit einer eigenen Abfrage.

Referenz​

Weiter: Eigene Daten über Pipeline-Endpunkte einbringen.