REA
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Live runtime data from a running Flutter app: exceptions, logs, network, frames, diagnosis.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
3/3 Prüfungen bestanden · Läuft auf deinem Computer
Zuerst: Welche KI nutzt du?
Wähle deine App, dann erscheinen die Schritte unten.
Klappt mit Claude, aber erst etwas vorbereiten
Installiere zuerst Node.js auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
Nur einmal; gilt für alle Server, die Node.js brauchen
SettingsDeveloperEdit Config
{
"mcpServers": {
"flutter-lamp": {
"command": "npx",
"args": [
"-y",
"flutter-lamp"
]
}
}
}Nutze Flutter Lamp und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude sagt, dass es Flutter Lamp nutzt, oder ein Werkzeug von Flutter Lamp in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
ChatGPT kann Flutter Lamp noch nicht verbinden
Flutter Lamp läuft auf deinem Computer, aber ChatGPT verbindet nur Server, die im Web laufen
A · Eine App nutzen, die Flutter Lamp verbinden kann
B · Andere in Entwicklertools, die mit ChatGPT funktionieren
Aus den meistgenutzten derselben Kategorie, nur solche, die per Adresse ohne Schlüssel verbinden
Klappt mit Claude Code, aber erst etwas vorbereiten
Installiere zuerst Node.js auf deinem Computer (nur einmal)
Nur einmal; gilt für alle Server, die Node.js brauchen
Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen
claude mcp add --scope user flutter-lamp -- npx -y flutter-lampFlutter Lamp sollte in der Liste als verbunden erscheinen
Nutze Flutter Lamp und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude Code sagt, dass es Flutter Lamp nutzt, oder ein Werkzeug von Flutter Lamp in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit Cursor, aber erst etwas vorbereiten
Installiere zuerst Node.js auf deinem Computer (nur einmal)
Nur einmal; gilt für alle Server, die Node.js brauchen
Nutze Flutter Lamp und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Cursor sagt, dass es Flutter Lamp nutzt, oder ein Werkzeug von Flutter Lamp in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit VS Code, aber erst etwas vorbereiten
Installiere zuerst Node.js auf deinem Computer (nur einmal)
Nur einmal; gilt für alle Server, die Node.js brauchen
VS Code fragt nach einer Bestätigung; klicke Install
Nutze Flutter Lamp und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn VS Code sagt, dass es Flutter Lamp nutzt, oder ein Werkzeug von Flutter Lamp in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Claude Code
claude mcp add --scope user flutter-lamp -- npx -y flutter-lampClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"flutter-lamp": {
"command": "npx",
"args": [
"-y",
"flutter-lamp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"flutter-lamp": {
"command": "npx",
"args": [
"-y",
"flutter-lamp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"flutter-lamp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"flutter-lamp"
]
}
}
}Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
npm: flutter-lampBasierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.
Laufen auf deinem Computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 12. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto itsonu bestätigt, dem das Repo gehört
Code zuletzt geändert: vor 31 Tagen
Nutzt MIT
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.
Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.
Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.
Noch keine Bewertungen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt vor 31 Tagen geändert, und die neueste Version (0.21.0) kam vor 44 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
A powerful toolkit for coding, providing semantic retrieval and editing capabilities.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
An MCP server that connects Claude Code, Claude Desktop, Cursor, Codex & Gemini directly to a running Flutter app through the Dart VM Service Protocol — streaming exceptions, logs, network calls, frame timings and memory as structured data, plus an evidence-first root-cause diagnosis engine and a live browser dashboard.
Today you debug Flutter with your AI by copy-pasting stack traces, flutter run output and DevTools screenshots. The AI is blind between messages.
Flutter Lamp makes the AI runtime-aware. It reads the app's live state over official Flutter/Dart APIs (never scraping DevTools), so instead of *"paste the error"* the AI can ask the app *"what just happened, and why?"*
❌ You: *pastes 40 lines of red stack trace*
✅ AI: connect_vm → get_exceptions → diagnose_runtime → "RenderFlex overflow in Column at home.dart:42, triggered right after GET /api/user returned 500. Confidence 85%. Fix: …"
dart:developer)dart:io profiling — covers Dio & package:http, no interceptor neededhttp://127.0.0.1:7373 — streams everything over WebSocket, independent of the AI connection| Tool | Purpose | Safety |
|---|---|---|
connect_vm | Connect to a running app's Dart VM Service (ws:// or http://). | mutates |
ensure_tcp_device | Android transports; recommend wireless, optionally promote USB. | mutates |
runtime_health | One-call triage — verdict plus exception/network/frame/log/memory summary. | read-only |
what_changed | Evidence from the window before a failure, with a timeline. | read-only |
get_navigation | Current route and recent transitions, with per-route failures. | read-only |
get_rebuilds | Widget rebuild hotspots resolved to widget, file and line. | read-only |
get_state_activity | Riverpod, Provider and Bloc activity over time, and how often it coincides with build-heavy frames. | read-only |
export_session | The whole session as versioned JSON — brief (diagnoses + cited evidence) or full. | read-only |
explain_diagnosis | Why a diagnosis was reached: resolved evidence, alternatives, gaps. | read-only |
get_capabilities | Active collectors, tool safety classes, what cannot be observed. | read-only |
runtime_status | Connection, session, reconnect state, event counts, retention window, what the session has cost in responses, and the VM-to-host clock offset. | read-only |
get_logs | Console + dart:developer logs (filter by severity / source / text). | read-only |
get_exceptions | Framework & unhandled exceptions with stack traces. | read-only |
get_frames | Frame build/raster timings; onlyJanky filter. | read-only |
get_network | HTTP requests (Dio & package:http); headers + timing on failures. | read-only |
get_widget_tree | Widget-tree snapshot from the Flutter Inspector. | read-only |
get_selected_widget | Widget currently selected in the Inspector. | read-only |
get_memory | Dart heap + external memory (MB). | read-only |
get_timeline | Recent VM timeline events (build/paint/layout/GC). | mutates |
diagnose_runtime | Root cause with a stable cause label, evidence ids, timeline, alternatives, and coverage — including which categories nothing could observe. | read-only |
diagnose_performance | Why the app is janky — percentiles, phase split, rebuild attribution. | read-only |
get_dashboard_url | URL of the live browser dashboard. | read-only |
mutates means the tool changes app or VM state, not your project — nothing here writes code or files. connect_vm enables dart:io HTTP timeline logging on the app so network capture works; get_timeline with recordFrom: true changes the VM's recording flags. Every tool carries an MCP readOnlyHint annotation so a client can enforce this itself.
Agents should not call all of them. The recommended flow is runtime_health → what_changed → a targeted get_* → diagnose_runtime; see AI Agent Integration.
Requires Node ≥ 20. Nothing to clone — npx fetches it on first run:
npx -y flutter-lamp
Or install it globally:
npm install -g flutter-lamp
From source
git clone https://github.com/itsonu/flutter-lamp.git
cd flutter-lamp npm install npm run build node dist/index.js
Claude Code plugin (recommended) — installs the MCP server *and* the flutter-runtime-diagnosis skill in one step:
/plugin marketplace add itsonu/flutter-lamp
/plugin install flutter-lamp@flutter-lamp
The plugin pins an exact, published server version. Flutter Lamp is also listed in the MCP Registry as io.github.itsonu/flutter-lamp.
Or add the server to your MCP client config yourself, then restart the client.
Claude Code — .mcp.json in your project:
{
"mcpServers": { "flutter-lamp": { "command": "npx", "args": ["-y", "flutter-lamp"] } } }
Or from the CLI:
claude mcp add --scope user flutter-lamp -- npx -y flutter-lamp
--scope user makes it available in every project; drop it to register for the current project only.
Cursor (~/.cursor/mcp.json) and Claude Desktop (claude_desktop_config.json) use the same mcpServers shape.
Running from a clone instead? Point command at node and args at /absolute/path/to/flutter-lamp/dist/index.js.
Optional environment variables:
| Var | Default | Meaning | |
|---|---|---|---|
DASHBOARD_PORT | 7373 | Dashboard HTTP/WS port. | read-only |
DASHBOARD_HOST | 127.0.0.1 | Bind address (localhost only by default). | read-only |
DASHBOARD_DISABLE | — | Set to 1 to disable the dashboard. | read-only |
FLUTTER_LAMP_REDACT | on | Set to off to keep raw credential values. | read-only |
FLUTTER_LAMP_REDACT_EXTRA | — | Comma-separated extra header-name patterns to redact. | read-only |
flutter run
Copy the line it prints:
A Dart VM Service on <device> is available at: http://127.0.0.1:PORT/TOKEN=/
Tip:
flutter run --vm-service-port=8181gives a stable URI across restarts.
and tell me why it's throwing."* With the bundled skill, Claude Code runs the whole flow (connect → gather → diagnose_runtime) automatically and never asks you to paste logs when the VM Service is reachable.A flutter run started over USB loses its VM Service tunnel the moment the cable moves; one started over a TCP transport does not. Ask the server which transports exist:
ensure_tcp_device # read-only: lists transports, recommends one
ensure_tcp_device { promote: true } # puts a USB-only device on TCP (needs the cable once)
Then launch against the wireless serial it recommends:
flutter run -d 192.168.88.3:5555
The cable is only needed for the one-time promotion. Reverse it any time with adb usb.
A zero-dependency dark UI (native HTTP + WebSocket, no build step) that streams runtime data as it happens:
Overview — a session report: health, FPS, memory, worst frame, MCP activity, and findings that link through to the events behind them (the worst-frame finding opens the timeline filtered to that frame) · Logs (search / filter / auto-scroll) · Network (expandable headers & timing) · Exceptions (expandable stack traces) · Timeline · Performance (live canvas charts) · MCP — which agent connected, every tool it called, with latency, errors and response size · Inspector — which inspection links exist and which are pull-only · Diagnostics — the measured topology, per-collector health, and what this target cannot observe at all.
Controls: pause/resume · clear view · export JSON · per-tab search · auto-reconnect.
The UI distinguishes states that look alike and are not: 0 MB is a measurement, not sampled yet is the absence of one, and an empty tab says whether a filter is hiding rows, the collector is blind on this target, or the collector is watching and has seen nothing. Readings taken before a disconnect are labelled as such rather than left looking live.
Running Flutter app
│ Dart VM Service Protocol (JSON-RPC over WebSocket) ▼ VmService client ──▶ Collectors (log · exception · frame · network · …) │ ▼ RuntimeStore (one centralized, capped event stream; every event: timestamp · source · severity · category) │ │ ┌──────────┘ └──────────┐ ▼ ▼ MCP tools (stdio) Dashboard (HTTP + WebSocket) → Claude Code / Cursor / … → your browser
Everything flows through one event store. Adding a new runtime source = implement the Collector interface and register it — no other layer changes. Design principles: official Flutter/Dart APIs only, structured JSON over text, never scrape DevTools, and never claim a cause the evidence doesn't support.
dart:io HTTP profiling are not available in release builds.dart:io HTTP, so requests are fetched when get_network or diagnose_runtime runs — not streamed continuously.Debug.PauseException needs pause-on-exception enabled in the app to fire. Flutter.Error is posted by the widget inspector only while structured error reporting is on, which the framework disables in profile mode and on the web