MCP · Claude Code · Cursor · VS Code · Codex

Frag deinen eigenen Agenten.Er kennt dein Lotse-Projekt.

Verbinde Claude Code, Cursor, VS Code oder Codex mit einem Lotse-Projekt. Dein Agent liest Zahlen, Feedback und Links und legt, wenn du es erlaubst, Links und Segmente an oder beantwortet Feedback.

LiveLäuft auf der Produktionsinstanz. Abgenommen mit Claude Code und Codex.

Dein Agent, dein Projekt.Lotse betreibt keine eigene KI.

Liest, was die Console zeigt

Übersicht, Funnels, Retention, Events, Geräte, Links, Kampagnen, Feedback, Umfragen und Heatmaps, mit denselben Zahlen und Zeiträumen wie die Console. Frag „Warum bricht der Checkout-Funnel ab?“ direkt im Editor.

Handelt nur, wo es harmlos ist

Mit einem Schreib-Token speichert er Segmente; das sieht nur dein Team. Feedback beantworten, den Status von Feedback und Ideen setzen, Ideen auf das Board stellen und Links anlegen erreicht deine Nutzer und braucht ein Token zum Veröffentlichen. Eine Kampagne senden oder etwas löschen kann er nicht.

An ein Projekt gebunden

Ein Token gehört zu genau einem Projekt. Kein Tool hat einen Projekt-Parameter, ein Agent kann also keine fremden Daten verlangen. Welchen Agenten und welchen KI-Anbieter du nutzt, entscheidest du.

Token holen

Jedes Mitglied eines Projekts legt eines in der Console an, bis zu zehn aktive Tokens je Projekt.

  1. 1

    AI agents öffnen

    Öffne in der Console die Projekt-Einstellungen und scroll zum Abschnitt AI agents. Wähle Create token und gib ihm einen Namen, den du später wiedererkennst, etwa das Werkzeug und deinen Namen.

  2. 2

    Stufe und Laufzeit wählen

    Read erlaubt dem Agenten jedes Lese-Tool. Read and write fügt die Schreib-Tools hinzu, deren Änderungen nur dein Team sieht. Read, write and publish fügt die Tools hinzu, die deine Nutzer erreichen: Antworten auf Feedback, Ideen auf dem Board und Links. Wähl die niedrigste Stufe, die reicht. Das Token läuft nach 30, 90 oder 365 Tagen ab; ein Token ohne Ablauf gibt es nicht.

  3. 3

    Einmal kopieren

    Das Token beginnt mit lt_at_ und wird genau einmal angezeigt, neben den Schnipseln unten. Lotse behält nur einen Hash davon. Widerrufen geht an derselben Stelle. Es endet auch mit seinem Ablauf und wird widerrufen, wenn du das Projekt verlässt oder daraus entfernt wirst.

Agenten verbinden

Dieselben Schnipsel, die die Console zeigt. Keiner enthält dein Token: Die Konfiguration nennt eine Variable, und das Token kommt erst beim Start deines Agenten hinein.

Claude Code

Einmal im Terminal ausführen, im Ordner deiner App.

Terminal
claude mcp add --transport http --scope local lotse https://api.lotse.dev/mcp --header 'Authorization: Bearer ${LOTSE_MCP_TOKEN}'

Dann aus einem Terminal starten und dein Token einfügen; es wird nicht angezeigt:

Terminal
printf 'Lotse token: ' && read -rs LOTSE_MCP_TOKEN && echo && export LOTSE_MCP_TOKEN && claude

Claude Code legt nur den Namen der Variable ab, in ~/.claude.json für diesen Ordner. Die einfachen Anführungszeichen sind wichtig, sonst schreibt die Shell das Token selbst in die Konfiguration.

Cursor

~/.cursor/mcp.json oder .cursor/mcp.json in deinem Projekt.

.cursor/mcp.json
{
  "mcpServers": {
    "lotse": {
      "url": "https://api.lotse.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${env:LOTSE_MCP_TOKEN}"
      }
    }
  }
}

Dann aus einem Terminal starten und dein Token einfügen; es wird nicht angezeigt:

Terminal
printf 'Lotse token: ' && read -rs LOTSE_MCP_TOKEN && echo && export LOTSE_MCP_TOKEN && cursor .

Die Datei nennt nur die Variable. Beende Cursor vorher: Aus dem Dock oder einem Menü gestartet, sieht es die Variable nicht.

VS Code

.vscode/mcp.json in deinem Projekt.

.vscode/mcp.json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "lotse-token",
      "description": "Lotse agent token",
      "password": true
    }
  ],
  "servers": {
    "lotse": {
      "type": "http",
      "url": "https://api.lotse.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${input:lotse-token}"
      }
    }
  }
}

VS Code fragt beim ersten Start nach dem Token und legt es in seinem Geheimnisspeicher ab.

Codex

~/.codex/config.toml.

~/.codex/config.toml
[mcp_servers.lotse]
url = "https://api.lotse.dev/mcp"
bearer_token_env_var = "LOTSE_MCP_TOKEN"

Dann aus einem Terminal starten und dein Token einfügen; es wird nicht angezeigt:

Terminal
printf 'Lotse token: ' && read -rs LOTSE_MCP_TOKEN && echo && export LOTSE_MCP_TOKEN && codex

Die Datei nennt nur die Variable; Codex schickt ihren Wert als Bearer-Token.

Das Token gehört auf keine Kommandozeile und in kein Shell-Profil: Die Shell-Historie behält jeden Befehl, und andere Programme sehen die Argumente eines laufenden. Damit du es nicht bei jedem Start einfügen musst, leg es im Schlüsselbund ab. Auf dem Mac einmal speichern; security fragt danach:

Terminal · macOS
security add-generic-password -a "$USER" -s lotse-mcp-token -w

Dann deinen Agenten damit starten, hier Claude Code:

Terminal · macOS
LOTSE_MCP_TOKEN="$(security find-generic-password -a "$USER" -s lotse-mcp-token -w)" claude

35 Tools.Nach Säule sortiert.

Lese-Tools gehen mit jedem Token. Schreib-Tools brauchen Read and write, die Tools, die deine Nutzer erreichen, Read, write and publish; beide werden abgelehnt, solange das Projekt gesperrt ist. Jedes tut, was die Console tut, mit denselben Quoten und Prüfungen.

Fundament

  • get_projectLesen

    Name, Handle, Link-Domain, Apps, Sperre und Quoten.

  • list_segmentsLesen

    Deine gespeicherten Segmente.

  • count_segmentLesen

    Wie viele Geräte zu einem gespeicherten Segment oder einem Prädikat passen.

  • create_segmentSchreiben

    Speichert ein Segment und sagt, wie viele Geräte darin sind.

  • list_webhook_deliveriesLesen

    Das Zustellprotokoll der Webhooks: Ereignis, Endpunkt bis zum Host, Status, Versuche und letzter Statuscode. Nie die Payload oder ein Secret.

Gewinnen

  • diagnose_setupLesen

    Die Einrichtungs-Diagnose: App Links, Fingerprints, Verkehr und APNs. Bis zu 10 Läufe je Stunde und Projekt für alle Agenten, getrennt von denen der Console.

  • list_linksLesen

    Kurzlinks mit ihren Klickzahlen.

  • get_linkLesen

    Ein Link, sein Ziel und seine Klicks.

  • get_acquisitionLesen

    Klicks, Installs, nach sieben Tagen noch aktiv und Ziel-Events, je Kampagne, Quelle und Medium.

  • create_linkVeröffentlichen

    Legt einen Kurzlink an, im Rahmen der Link-Quote.

Verstehen

  • get_overviewLesen

    Aktive Geräte, Installs, Sessions, Top-Events und Top-Screens.

  • get_funnelLesen

    Conversion zwischen Events in fester Reihenfolge, nach Kampagne oder Plattform.

  • get_retentionLesen

    Kohorten nach Install-Woche, zurück an Tag 1, 7 und 30.

  • explore_eventsLesen

    Ein Event über die Zeit, nach Property, Plattform, Version oder Kampagne.

  • list_eventsLesen

    Der rohe Event-Stream, neueste zuerst.

  • list_devicesLesen

    Installationen, zuletzt gesehene zuerst.

  • get_device_timelineLesen

    Alles zu einem Gerät: Herkunft, Events, Feedback, Pushes.

  • list_usersLesen

    Identifizierte Nutzer mit Attributen und Geräten.

  • get_user_timelineLesen

    Alles zu einem Nutzer, über alle Geräte.

  • list_heatmap_screensLesen

    Screens mit erfassten Taps und Rage-Taps, meistgetippte zuerst.

  • get_heatmapLesen

    Taps je Screen als Raster aus Zahlen, ohne Hintergrundbild.

Zuhören

  • list_feedbackLesen

    Die Inbox, gefiltert wie in der Console.

  • get_feedbackLesen

    Eine Meldung mit Kontext, den Events davor und dem Gespräch. Kein Screenshot, kein Replay.

  • reply_to_feedbackVeröffentlichen

    Antwortet der einen Person, die geschrieben hat, als Push auf ihr Gerät.

  • set_feedback_statusVeröffentlichen

    Offen, in Arbeit, erledigt oder verworfen. Der Absender sieht den Status im Verlauf.

  • list_feature_requestsLesen

    Das Feature-Board mit seinen Stimmen.

  • create_feature_requestVeröffentlichen

    Legt eine Idee auf dem Board an, im Rahmen der Quote.

  • set_feature_request_statusVeröffentlichen

    Verschiebt eine Idee, etwa nach geplant oder ausgeliefert.

  • list_surveysLesen

    Umfragen und ihr Zustand.

  • get_survey_reportLesen

    Ergebnisse einer Umfrage und ihre neuesten Kommentare.

Erreichen

  • list_campaignsLesen

    Push-Kampagnen mit ihrem Zustellstand.

  • get_campaign_reportLesen

    Empfänger, gesendet, geöffnet und Ziel erreicht.

  • list_in_app_messagesLesen

    In-App-Nachrichten und ihr Zustand.

  • get_in_app_reportLesen

    Wie viele Geräte eine Nachricht gesehen, angetippt und weggeklickt haben.

  • list_messagesLesen

    Pushes, die dein Backend über die Server-API an einen Nutzer oder eine Installation geschickt hat, mit Status, Zustellungen und Öffnungen.

Bewusst nicht

  • Eine Kampagne anlegen, senden oder planen. Ein Agent, der sich verrechnet, soll nicht zehntausend Telefone erreichen.

  • Eine In-App-Nachricht oder Umfrage aktivieren.

  • Irgendetwas löschen.

  • API-Keys, Mitglieder, Push-Credentials, neue Projekte.

  • CSV-Export, Screenshots und Replays.

Grenzen

Großzügig für echte Arbeit, eng genug, dass ein Agent in einer Schleife gebremst wird. Über einer Grenze sagt das Tool, wie lange er warten soll.

600 Aufrufe je Stunde

Je Token. Gescheiterte und abgelehnte Aufrufe zählen mit, das Auflisten der Tools nicht.

60 Schreibaufrufe je Stunde

Je Token, innerhalb der 600. Ein Tippfehler in einem Argument kostet keinen Schreibaufruf.

6.000 Aufrufe je Stunde

Je Projekt, geteilt von allen seinen Tokens. Ein neues Token bekommt ein frisches Budget, das Projekt nicht.

Ergebnisse bis 100 KiB

Ein größeres Ergebnis wird am Ende seiner längsten Liste gekürzt und sagt, wie es weitergeht: der nächste Offset oder Cursor, oder eine engere Frage.

Gesperrt heißt nur lesen

Solange ein Projekt gesperrt ist, lesen seine Tokens weiter, aber jedes Schreib-Tool wird abgelehnt, auch die, die die Console zum Aufräumen erlaubt.

Antworten in deinem Namen

Eine Antwort auf Feedback, die ein Agent schickt, steht in der Console unter dem Namen des Mitglieds, das das Token angelegt hat. In der App sieht man eine Antwort deines Teams.

Datenschutz

Was der Agent liest, geht an deinen KI-Anbieter

Lotse betreibt keine KI. Dein Agent sieht, was deine App an Lotse geschickt hat, so wie sie es geschickt hat: Nutzer-IDs, Attribute, Event-Properties, Feedback-Texte und die Metadaten, die deine App an Feedback hängt. All das geht an den KI-Anbieter, den du mit ihm nutzt. Als Verantwortlicher für die Daten deiner Nutzer wählst du den Anbieter und entscheidest, ob er für sie passt. Nimm besser pseudonyme Nutzer-IDs als Mail-Adressen.

Was ein Agent nie bekommt

Was Lotse selbst erhebt, bleibt bei Lotse: Screenshots, Replays, Heatmap-Bilder und die Kontaktadresse einer Meldung, Push-Tokens, Install-IDs, die gehashten IP-Adressen von Link-Klicks und User-Agents. Schlüssel ebenso wenig.

Was Lotse speichert

Tokens nur als Hash, mit Name, Stufe, Ersteller, Ablauf und letzter Nutzung. Jeder Aufruf wird mit Tool, Projekt, Token-ID, Dauer und Ergebnis protokolliert, nie mit dem Token oder den Argumenten.

Datenschutzerklärung

Skills für deinen Agenten

Sieben Skills bringen einem Coding-Agenten bei, Lotse richtig in eine Flutter-App und ihr Backend einzubauen, nur mit der öffentlichen SDK-API und der Server-API. Sie liegen dem SDK bei, lotse-server-api ab lotse 0.2.0.

In deiner App installiert sie das skills-CLI aus dem Paket lotse, nach jedem Update erneut.

Terminal
dart pub global activate skills
skills get --package lotse --all
lotse-setup
Lotse.init, der Public Key, Android-Manifest und App Links, Firebase und die Einrichtungs-Diagnose.
lotse-events
track, Namen für Events, Props ohne personenbezogene Daten, Screen-Views mit go_router, identify und reset.
lotse-deep-links
Links und Ziel-Routen, Deferred Deep Linking, Testen mit adb.
lotse-push
Das Token, der Kanal lotse_push, Ziele im Payload, APNs.
lotse-feedback
showFeedback, LotseConfidential und LotseUnmasked, Replay, Gespräche, Board und Umfragen.
lotse-mcp
Den MCP-Server anbinden, die Tools und Rezepte wie „Warum bricht der Funnel ab?“.
lotse-server-api
Dein Backend und Lotse: Server-Keys, Pushes an einzelne Nutzer, Server-Events, Nutzer löschen und Webhooks mit ihrer Signatur.

Kurs setzen.Das erste Projekt in zehn Minuten.

Kostenlos während der Beta. Registrieren, Projekt anlegen, SDK einbinden.