MCP Firebird: finde und behebe die Probleme deiner Datenbank im Gespräch mit deiner KI
🇬🇧 English • 🇮🇹 Italiano • 🇪🇸 Español • 🇧🇷 Português
MCP Firebird ist ein MCP-Server, mit dem dein KI-Assistent eine Firebird-Datenbank wirklich diagnostizieren kann: Ausführungspläne, Index-Beratung, Schema-Audit, Transaktionsgesundheit. Version 0.2.4 ist draußen, kostenlos für den internen Einsatz, getestet von Firebird 2.5 bis 5.0.
Eine Abfrage ist langsam. Der Plan sagt CUSTOMERS NATURAL, und auf der gefilterten Spalte gibt es einen Index. Siehst du die Falle?
Der Index ist INACTIVE. An diesem Punkt rät fast jeder, Mensch wie KI, einen neuen Index anzulegen. Folge dem Rat, und du besitzt zwei Indizes über derselben Spalte, beide bei jedem INSERT geschrieben, einer davon tot. Die echte Lösung war ein ALTER INDEX ... ACTIVE entfernt, und niemand hat es dir gesagt.
MCP Firebird sagt es dir. Es ist ein MCP-Server, mit dem dein KI-Assistent (Claude, Gemini CLI, Cursor, was auch immer MCP spricht) eine Firebird-Datenbank wirklich diagnostizieren kann: das Schema lesen, einen Ausführungsplan erklären, einen Index vorschlagen, sich weigern, einen vorzuschlagen, den es schon gibt, und hinterher messen, ob das Ziel tatsächlich erreicht wurde. Heute habe ich Version 0.2.4 veröffentlicht.
Kurz gesagt
- Was es ist: ein MCP-Server über stdio, eine einzelne Windows-Exe, geschrieben in Delphi, die deinen KI-Assistenten in einen arbeitsfähigen Firebird-DBA verwandelt.
- Für wen: alle, die Firebird 2.5, 3.0, 4.0 oder 5.0 im Einsatz haben und Antworten zu Plänen, Indizes und Schema-Gesundheit wollen statt Vermutungen.
- Funktioniert mit: Claude Desktop, Claude Code, Gemini CLI, OpenCode, Cursor und jedem MCP-Client.
- Installation: entpacken,
.env.examplenach.envkopieren, auf deine Datenbank zeigen lassen, die Exe als stdio-Server registrieren.- Lizenz: PolyForm Internal Use, kostenlos für die internen Abläufe deiner Firma in jeder Größenordnung. Quellcode auf GitHub.
Was es kann
Neun Tools, alle nur lesend: fb_info, fb_list_tables, fb_generate_documentation, fb_analyze_query, fb_suggest_indexes, fb_suggest_index_drops, fb_audit_table, fb_evaluate_goal, fb_monitor_transactions. Jeder Befund trägt eine ausführbare Abhilfe und einen Weg zu überprüfen, ob sie wirklich geholfen hat, denn ein Bericht, auf den man nicht reagieren kann, ist nur eine längere Art zu sagen: “Die Datenbank ist langsam.”
Zwei Designentscheidungen zählen mehr als die Funktionsliste.
Es ist auf Firebird 2.5, 3.0, 4.0 und 5.0 getestet, nicht nur auf dem neuesten. Die komplette Suite läuft vor jedem Release auf allen vier Engines. Die Versionen verhalten sich unterschiedlich: andere Standardwerte, andere Funktionen. Ein Tool, das nur auf 5.0 getestet ist, gibt auf einem 2.5-Server falsche Antworten, und viele Firmen betreiben 2.5 noch in Produktion.
Es erfindet keine Antworten. Wenn dein SQL einen Fehler enthält, bekommst du die Fehlermeldung der Engine selbst zurück, nicht einen leeren Bericht, der wie eine Entwarnung aussieht. Und wenn es etwas nicht messen kann, sagt es dir das: so weißt du immer, ob “keine Probleme gefunden” bedeutet, dass die Datenbank in Ordnung ist, oder dass das Tool nicht nachsehen konnte.
Wie eine Arbeitssitzung aussieht
Eine echte Sitzung gegen die Testdatenbank der Suite, Engine Firebird 5.0.4. So sieht sie in Claude Desktop aus:
Der Screenshot oben ist ein einzelner Moment dieser Sitzung. Unten gehen wir sie ganz durch, Frage für Frage, vom ersten Blick auf die Datenbank bis zur überprüften Korrektur.
IDX_CUST_CITY auf der Spalte CITY ist INACTIVE. Er existiert, aber die Engine kann ihn nicht nutzen. Der Bericht von fb_generate_documentation:CUSTOMERS
Primärschlüssel: CUSTOMER_ID
| Spalte | Typ | NULL erlaubt |
| CUSTOMER_ID | INTEGER | nein |
| NAME | VARCHAR(400) | nein |
| CITY | VARCHAR(240) | ja |
| STATUS | CHAR(4) | ja |
Indizes:
- IDX_CUST_CITY (CITY), INACTIVE
- IDX_CUST_NAME (NAME)
- IDX_CUST_NAME_CITY (NAME, CITY)
- IDX_CUST_STATUS (STATUS)
- RDB$PRIMARY1 (CUSTOMER_ID) [PRIMÄRSCHLÜSSEL]
SELECT * FROM CUSTOMERS WHERE CITY = 'Rome'fb_analyze_query ist PLAN (CUSTOMERS NATURAL): für den Filter auf CITY wird kein Index verwendet.IDX_CUST_CITY, er ist nur deaktiviert. Einen zweiten anzulegen würde die Schreibkosten bei jedem INSERT umsonst verdoppeln. Reaktiviere den vorhandenen mit ALTER INDEX IDX_CUST_CITY ACTIVE; und prüfe dann den Plan erneut. Der Befund von fb_suggest_indexes sagt genau das:ALTER INDEX IDX_CUST_CITY ACTIVE;
📝 Das ist die Antwort, bei der die meisten Ratschläge danebenliegen, ob Mensch oder KI: sie hätten dir gesagt, einen zweiten Index anzulegen.
IDX_CUST_CITY. Die beiden Messungen von fb_evaluate_goal:vorher: Ziel verfehlt Plan: PLAN (CUSTOMERS NATURAL)
nachher: Ziel erreicht Plan: PLAN (CUSTOMERS INDEX (IDX_CUST_CITY))
fb_evaluate_goal misst 1.85 Millisekunden gegen deine 50.SET STATISTICS INDEX. Transaktionen und Sweep sind in Ordnung. Die Berichte:DROP INDEX IDX_ORDERS_CUSTOMER_DUP;
SET STATISTICS INDEX IDX_CUST_NAME;
SET STATISTICS INDEX IDX_CUST_STATUS;
Installation in zwei Minuten
Nichts läuft als Dienst und nichts lauscht auf einem Port: dein Agent startet die Exe selbst und spricht mit ihr über stdin/stdout.
- Entpacke die aktuelle stabile Version, wohin du willst.
- Kopiere
.env.examplenach.envneben die Exe und trage Host, Datenbank und Zugangsdaten ein. - Zeige mit
firebird.client_libauf diefbclient.dlldeiner Firebird-Installation. Absichtlich liegt keine Client-Bibliothek bei: nur du weißt, mit welchem Server du sprichst. - Registriere
MCPFirebird.exein deinem Agenten als stdio-MCP-Server. Das README hat das genaue Rezept für jeden Client, auf Englisch, Italienisch, Spanisch und Deutsch.
Die Enterprise-Edition
Die kostenlose Edition verbindet sich mit deiner Datenbank über eine normale SQL-Verbindung. Sie sieht, was die Datenbank über sich selbst weiß: Schema, Ausführungspläne, Indizes, Transaktionen. Das ist schon nützlich, bleibt aber innerhalb der Datenbank.
Die Enterprise-Edition ist ein kostenpflichtiges Produkt: sie läuft nur mit einer Lizenz, immer, auch für den internen Einsatz in der Firma. Eine kostenlose Stufe der Enterprise gibt es nicht. Sie verbindet sich zusätzlich als Administrator mit dem Firebird-Server, über den Services Manager. So sieht sie, was nur der Server kennt: die Konfigurationsdateien (firebird.conf und databases.conf), das Server-Log (firebird.log), die physische Struktur der Datei, die Hardware, auf der er läuft, und die echte Last. Der kostenlosen Edition wurde nichts weggenommen: die Enterprise-Tools stehen weiter in ihrer Liste, und ruft der Assistent eines auf, bekommt er eine Meldung, die erklärt, wie man es bekommt.
Mit diesem Zugang beantwortet der Assistent Fragen, die vorher nicht möglich waren. fb_diagnose ist der Startpunkt, wenn etwas nicht stimmt und du nicht weißt, wo du anfangen sollst. fb_analyze_config prüft jeden Parameter von firebird.conf gegen deine Engine-Version und deine Architektur, denn die Standardwerte ändern sich zwischen Versionen. fb_parse_log liest firebird.log und findet Korruption, Bugchecks, nie gelaufene Sweeps. fb_analyze_storage zeigt die physische Struktur: Indextiefe, Füllgrad der Seiten, Satzversionsketten. fb_analyze_host vergleicht die Hardware mit der Konfiguration: RAM gegen den eingestellten Cache, Kerne gegen parallele Worker. fb_capture_trace zeichnet 60 Sekunden echte Last auf und ordnet die teuersten Abfragen; fb_trace_start, fb_trace_status und fb_trace_stop machen dasselbe bis zu zwei Stunden, im Hintergrund.
Warum es Geld wert ist: die Firebird-Dokumentation sagt für die meisten Parameter nicht, welchen Wert du nehmen sollst, weil der richtige Wert von deiner Last abhängt. Die Enterprise-Edition arbeitet mit Messungen. Sie zeichnet die Leistung unter echter Last auf, du änderst einen einzigen Parameter, sie misst erneut und sagt dir, ob es besser wurde. Wenn nicht, gehst du zurück.
Free vs Enterprise
| Free | Enterprise | |
|---|---|---|
Version, Architektur und Fähigkeiten der Engine (fb_info) |
✅ | ✅ |
Liste der Tabellen (fb_list_tables) |
✅ | ✅ |
Schema-Dokumentation: Spalten, Schlüssel, Indizes (fb_generate_documentation) |
✅ | ✅ |
Analyse des Ausführungsplans einer Abfrage (fb_analyze_query) |
✅ | ✅ |
Rat zu Indizes, die anzulegen oder zu reaktivieren sind (fb_suggest_indexes) |
✅ | ✅ |
Doppelte oder nutzlose Indizes zum Löschen (fb_suggest_index_drops) |
✅ | ✅ |
Tabellenprüfung: fehlende Schlüssel, veraltete Statistiken, zu viele Indizes (fb_audit_table) |
✅ | ✅ |
Zielprüfung: Plan ohne komplette Scans, oder Zeitlimit (fb_evaluate_goal) |
✅ | ✅ |
Status von Transaktionen und Sweep (fb_monitor_transactions) |
✅ | ✅ |
Geführter Diagnoseweg (fb_diagnose) |
❌ | ✅ |
Prüfung von firebird.conf und databases.conf für deine Version und Architektur (fb_analyze_config) |
❌ | ✅ |
Physische Struktur: Indextiefe, Füllgrad der Seiten, Satzversionsketten (fb_analyze_storage) |
❌ | ✅ |
Lesen von firebird.log: Korruption, Bugchecks, nie gelaufene Sweeps (fb_parse_log) |
❌ | ✅ |
Aufzeichnung der echten Last: 60 Sekunden (fb_capture_trace) oder bis zu 2 Stunden im Hintergrund (fb_trace_start/status/stop) |
❌ | ✅ |
Hardware gegen Konfiguration: RAM gegen Cache, Kerne gegen parallele Worker (fb_analyze_host) |
❌ | ✅ |
| Vorher/Nachher-Messungen mit Urteil | ❌ | ✅ |
Enterprise-Lizenzen und Support: professionals@bittime.it.
Wann du eine Lizenz kaufen musst, und wann nicht
Die kostenlose Edition erscheint unter der PolyForm-Internal-Use-Lizenz: Quellcode verfügbar, kostenlos für die internen Abläufe von dir und deiner Firma, in jeder Größenordnung, in jeder Branche, Beratung eingeschlossen. Die ganze Regel passt in einen Satz: frag, wo die Software landet, nie, was du mit ihr gemacht hast. Solange jede Kopie in deinen Händen bleibt, schuldest du niemandem etwas, egal wo die Software läuft und welche Datenbank sie untersucht. Die kommerzielle Lizenz brauchst du in dem Moment, in dem eine Kopie bei jemand anderem bleibt: du lässt sie am Ende des Auftrags beim Kunden installiert, du baust sie in ein Produkt ein, das du verkaufst, oder du bietest sie als Dienst an.
| Deine Situation | Lizenz nötig? |
|---|---|
| Dein DBA lässt es jeden Morgen gegen die Produktionsdatenbank laufen | Nein. |
| Vierzig Entwickler nutzen es jeweils lokal | Nein. Keine Platzzählung, keine Registrierung. |
| Du bist Berater, nutzt es vom eigenen Laptop gegen die Datenbank des Kunden und stellst deine Zeit in Rechnung | Nein. Es ist dein Werkzeug, und es bleibt deins. |
| Du lässt am Ende des Auftrags eine Kopie auf dem Server des Kunden installiert | Ja. Die Software hat deine Hände verlassen. |
| Du lieferst es in deinem ERP mit, damit deine Kunden “KI-Datenbank-Tuning” bekommen | Ja. Das ist Einbetten in ein Produkt. |
| Du gibst deinen Hosting-Kunden einen Button, der es für sie ausführt | Ja. Das ist Anbieten als Dienst. |
| Du schreibst einen Blogpost, einen Vortrag oder einen Kurs darüber | Nein. Lies es, zitiere es, lehre es. |
Eine Klarstellung, bei der Präzision zählt: die kommerzielle Weitergabelizenz und die Enterprise-Edition sind zwei verschiedene Produkte. Die eine erlaubt, dass Kopien von MCP Firebird deine Hände verlassen; die andere ergänzt die Server-Verwaltungswerkzeuge, von denen du oben gelesen hast, und ist immer kostenpflichtig, mit eigener Lizenz, für jeden und für jeden Einsatz. Der Kauf des einen schließt das andere nicht ein.
Kommerzielle Lizenzen: professionals@bittime.it.
Probier es aus
Hol dir die aktuelle stabile Version, lass es auf eine Kopie deiner Datenbank zeigen und frag deinen Assistenten, warum deine langsamste Abfrage langsam ist.
Was wäre die erste Frage, die du deiner Datenbank stellen würdest?
Comments
comments powered by Disqus