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.
MCP · Claude Code · Cursor · VS Code · Codex
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.
Ü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.
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.
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.
Jedes Mitglied eines Projekts legt eines in der Console an, bis zu zehn aktive Tokens je Projekt.
Ö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.
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.
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.
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.
Einmal im Terminal ausführen, im Ordner deiner App.
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:
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/mcp.json oder .cursor/mcp.json in deinem Projekt.
{
"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:
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.
.vscode/mcp.json in deinem Projekt.
{
"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/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:
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:
security add-generic-password -a "$USER" -s lotse-mcp-token -w
Dann deinen Agenten damit starten, hier Claude Code:
LOTSE_MCP_TOKEN="$(security find-generic-password -a "$USER" -s lotse-mcp-token -w)" claude
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.
get_projectLesenName, Handle, Link-Domain, Apps, Sperre und Quoten.
list_segmentsLesenDeine gespeicherten Segmente.
count_segmentLesenWie viele Geräte zu einem gespeicherten Segment oder einem Prädikat passen.
create_segmentSchreibenSpeichert ein Segment und sagt, wie viele Geräte darin sind.
list_webhook_deliveriesLesenDas Zustellprotokoll der Webhooks: Ereignis, Endpunkt bis zum Host, Status, Versuche und letzter Statuscode. Nie die Payload oder ein Secret.
diagnose_setupLesenDie 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_linksLesenKurzlinks mit ihren Klickzahlen.
get_linkLesenEin Link, sein Ziel und seine Klicks.
get_acquisitionLesenKlicks, Installs, nach sieben Tagen noch aktiv und Ziel-Events, je Kampagne, Quelle und Medium.
create_linkVeröffentlichenLegt einen Kurzlink an, im Rahmen der Link-Quote.
get_overviewLesenAktive Geräte, Installs, Sessions, Top-Events und Top-Screens.
get_funnelLesenConversion zwischen Events in fester Reihenfolge, nach Kampagne oder Plattform.
get_retentionLesenKohorten nach Install-Woche, zurück an Tag 1, 7 und 30.
explore_eventsLesenEin Event über die Zeit, nach Property, Plattform, Version oder Kampagne.
list_eventsLesenDer rohe Event-Stream, neueste zuerst.
list_devicesLesenInstallationen, zuletzt gesehene zuerst.
get_device_timelineLesenAlles zu einem Gerät: Herkunft, Events, Feedback, Pushes.
list_usersLesenIdentifizierte Nutzer mit Attributen und Geräten.
get_user_timelineLesenAlles zu einem Nutzer, über alle Geräte.
list_heatmap_screensLesenScreens mit erfassten Taps und Rage-Taps, meistgetippte zuerst.
get_heatmapLesenTaps je Screen als Raster aus Zahlen, ohne Hintergrundbild.
list_feedbackLesenDie Inbox, gefiltert wie in der Console.
get_feedbackLesenEine Meldung mit Kontext, den Events davor und dem Gespräch. Kein Screenshot, kein Replay.
reply_to_feedbackVeröffentlichenAntwortet der einen Person, die geschrieben hat, als Push auf ihr Gerät.
set_feedback_statusVeröffentlichenOffen, in Arbeit, erledigt oder verworfen. Der Absender sieht den Status im Verlauf.
list_feature_requestsLesenDas Feature-Board mit seinen Stimmen.
create_feature_requestVeröffentlichenLegt eine Idee auf dem Board an, im Rahmen der Quote.
set_feature_request_statusVeröffentlichenVerschiebt eine Idee, etwa nach geplant oder ausgeliefert.
list_surveysLesenUmfragen und ihr Zustand.
get_survey_reportLesenErgebnisse einer Umfrage und ihre neuesten Kommentare.
list_campaignsLesenPush-Kampagnen mit ihrem Zustellstand.
get_campaign_reportLesenEmpfänger, gesendet, geöffnet und Ziel erreicht.
list_in_app_messagesLesenIn-App-Nachrichten und ihr Zustand.
get_in_app_reportLesenWie viele Geräte eine Nachricht gesehen, angetippt und weggeklickt haben.
list_messagesLesenPushes, die dein Backend über die Server-API an einen Nutzer oder eine Installation geschickt hat, mit Status, Zustellungen und Öffnungen.
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.
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.
Je Token. Gescheiterte und abgelehnte Aufrufe zählen mit, das Auflisten der Tools nicht.
Je Token, innerhalb der 600. Ein Tippfehler in einem Argument kostet keinen Schreibaufruf.
Je Projekt, geteilt von allen seinen Tokens. Ein neues Token bekommt ein frisches Budget, das Projekt nicht.
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.
Solange ein Projekt gesperrt ist, lesen seine Tokens weiter, aber jedes Schreib-Tool wird abgelehnt, auch die, die die Console zum Aufräumen erlaubt.
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.
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 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.
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.
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.
dart pub global activate skills
skills get --package lotse --all
lotse-setuplotse-eventslotse-deep-linkslotse-pushlotse-feedbacklotse-mcplotse-server-apiKostenlos während der Beta. Registrieren, Projekt anlegen, SDK einbinden.