Was ist Faucet?
Faucet vom US-Start-up FaucetDB verbindet sich mit PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, Snowflake oder SQLite, liest das Schema und erzeugt daraus zur Laufzeit eine CRUD-REST-API, eine OpenAPI-3.1-Spezifikation und einen MCP-Server. Rollen, API-Keys, Admin-Konten und Verbindungsdaten liegen in einer eingebetteten SQLite-Datei, und eine Admin-Oberfläche in derselben Binary verbindet Datenbanken, legt Rollen an und gibt fertige MCP-Konfigurationen für Claude Code, Cursor, VS Code und Windsurf aus.
Der MCP-Server läuft unter /mcp auf demselben Port wie die REST-API (standardmäßig 8080) über Streamable HTTP, authentifiziert mit einem X-API-Key-Header, oder wird über stdio gestartet. Er stellt 8 Tools und 2 Ressourcen bereit. Das Repo, im Februar 2026 angelegt und fast vollständig von einem einzigen Entwickler geschrieben, hat rund 172 GitHub-Sterne; v0.1.15 erschien am 9. Oktober 2026, und das npm-Paket wurde im Monat bis zum 10. November 346-mal heruntergeladen.
Alles steht unter MIT-Lizenz, einen kostenpflichtigen Tarif gibt es nicht. Ein gehostetes Faucet Cloud ist mit Warteliste angekündigt, ohne Preis.
Faucet installieren
npx @faucetdb/faucet serveLohnt sich Faucet?
Die Idee hinter Faucet ist schlüssig: Statt dem Agenten einen SQL-Prompt zu geben, bekommt er strukturierte Tools (faucet_query, faucet_insert, faucet_update, faucet_delete), die HTTP-Verben entsprechen, und jeder Aufruf wird gegen die Rolle des API-Keys geprüft, pro Service und pro Tabelle. Filter kommen in einer kleinen Ausdruckssyntax an, die Faucet selbst parametrisiert, sodass das Modell nie den SQL-String schreibt, der ausgeführt wird. Freies SQL ist ein eigenes Tool, das sowohl raw_sql_allowed am Service verlangt, standardmäßig aus, als auch eine Rolle mit allen fünf Verben; Services mit dem Flag read_only lehnen jeden Schreibzugriff ab, freies SQL eingeschlossen. DBHub dagegen gibt dem Modell ein execute_sql-Tool; Googles MCP Toolbox kommt zu einem ähnlichen Ergebnis, indem du die Abfragen vorab schreibst, während Faucet seine Tools aus dem Schema erzeugt.
Die Vorgeschichte ist der Grund zur Vorsicht. Release v0.1.13 vom 3. September 2026 behob eine Lücke, die die Maintainer selbst als schwerwiegend einstuften: Bis dahin wurden Rollenregeln gespeichert, aber nie abgefragt, sodass jeder gültige API-Key, auch einer in der Hand eines Agenten, jede Tabelle jedes Service lesen und beschreiben konnte, über REST wie über MCP. Dasselbe Release sorgte dafür, dass freies SQL das Flag read_only nicht mehr ignoriert, und ersetzte ein fest eingebautes Standard-Secret für JWT-Signaturen durch ein zufälliges. Offengelegt wurde das in den Release Notes, nicht als GitHub-Advisory, und das Repo führt keines. Filter auf Zeilenebene werden weiterhin gespeichert, aber nicht angewendet, eine Lücke, die die Doku offen benennt.
Die Netzwerk-Voreinstellungen verdienen vor allem anderen Aufmerksamkeit. faucet serve lauscht auf 0.0.0.0, also allen Schnittstellen, auf Port 8080 und in unverschlüsseltem HTTP; TLS überlässt die Doku einem Reverse Proxy. Solange es kein erstes Admin-Konto gibt, akzeptiert der Setup-Endpunkt den, der zuerst ankommt, daher sollte eine frische Instanz in einem geteilten Netz mit --host 127.0.0.1 gestartet werden. Der stdio-Modus läuft mit lokalen Admin-Rechten und wendet keine Rollen an, also uneingeschränktes Einfügen, Ändern und Löschen in jeder verbundenen Tabelle. Verbindungspasswörter liegen unverschlüsselt in der SQLite-Konfigurationsdatei, die Faucet auf Rechte nur für den Eigentümer beschränkt. Telemetrie ist standardmäßig an: ein stündlicher Ping an PostHog mit der Zahl der Tabellen, Keys und Rollen, aber ohne Namen oder Daten, abschaltbar mit FAUCET_TELEMETRY=0.
Unser Fazit: Faucet hat seinen Platz, wo ein Team eine einzige REST- und MCP-Schicht über einen Bestand aus SQL Server oder Oracle legen will, den SQL-Tools im Stil von DBHub zu freizügig öffnen würden. Behandle es als v0.1-Produkt, lege trotzdem einen Datenbanknutzer mit reinem Lesezugriff an und halte es von öffentlichen Schnittstellen fern.
Wo es sich lohnt
Das Operations-Team eines Herstellers mit einem ERP auf SQL Server
Claude Fragen zu Lagerbestand und Aufträgen beantworten lassen, ohne die Schreibwege des ERP zu berühren
Verbinde das ERP mit einem Datenbanknutzer, der nur SELECT darf, setze den Service auf read_only und gib dem Agenten einen Key, der an eine reine GET-Rolle für die Lager- und Auftragstabellen gebunden ist. Der Agent filtert über faucet_query, begrenzt auf 1.000 Zeilen pro Aufruf; zu kaufen ist nur eine kleine VM.
Eine Agentur mit zwei Leuten, die ein internes Tool auf Postgres baut
Eine CRUD-API und einen vom Agenten bearbeitbaren Admin-Zugang bekommen, ohne ein Backend zu schreiben
Richte Faucet auf die Datenbank, nutze die erzeugten /api/v1-Endpunkte im Frontend und gib dem Agenten einen eigenen Key, dessen Rolle POST und PATCH nur auf zwei Tabellen erlaubt. Sperre den Schema-Vertrag, damit eine Migration die API nicht unbemerkt bricht.
Ein Datenanalyst mit einem Snowflake-Warehouse
Tabellen erkunden und Stichproben aus Cursor in normaler Sprache ziehen
Füge Snowflake mit Key-Pair-Authentifizierung hinzu, lege einen reinen GET-Key an und registriere den /mcp-Endpunkt in Cursor. faucet_describe_table liefert dem Modell Spalten und Typen; die eigentlichen Kosten bleiben die Snowflake-Warehouse-Credits pro Abfrage.
Bevor du dich festlegst
- Einrichtung
- npx @faucetdb/faucet serve, Homebrew, Docker oder eine Release-Binary; danach legt der Setup-Assistent auf localhost:8080 den Admin an und verbindet eine Datenbank mit Host, Port, Nutzer und Passwort. Rolle und API-Key anlegen, dann claude mcp add --transport http mit dem X-API-Key-Header; Claude Desktop braucht die Brücke mcp-remote. Das README bewirbt den Schritt von der Datenbank zur API als 60-Sekunden-Schnellstart; Rollen und Keys kosten ein paar Minuten mehr.
- Integrationen
- 8 MCP-Tools (faucet_list_services, faucet_list_tables, faucet_describe_table, faucet_query, faucet_insert, faucet_update, faucet_delete, faucet_raw_sql) und 2 Ressourcen; vier der Tools können schreiben. Dieselbe Instanz liefert die REST-API, /openapi.json für Custom GPT Actions in ChatGPT, /healthz und /readyz. Kein OAuth, daher keine Unterstützung für ChatGPT-Connectors.
- Daten und Datenschutz
- Selbst gehostet; Zeilen gehen nur an den Modellanbieter des Agenten. Der Agent kann alles, was die Rolle seines Keys erlaubt, begrenzt durch den Datenbanknutzer. HTTP bindet standardmäßig 0.0.0.0 auf Port 8080; stdio läuft mit Admin-Rechten. Datenbankpasswörter liegen unverschlüsselt in der SQLite-Konfigurationsdatei (Rechte nur für den Eigentümer); API-Keys werden mit SHA-256 gehasht. Anonyme Telemetrie geht stündlich an PostHog, sofern nicht abgeschaltet. Zeilen, die beim Modell ankommen, können wie jeder Datenbanktext Prompt Injection enthalten.
- Kosten im großen Maßstab
- Kostenlos; Kosten entstehen durch einen Host für die Binary und durch Datenbanklast. faucet_query liefert standardmäßig 25 Zeilen, höchstens 1.000; freies SQL liefert standardmäßig 100 Zeilen, höchstens 10.000, und bricht nach 30 Sekunden ab (bis zu 300). Snowflake-Abfragen verbrauchen bei jedem Aufruf Warehouse-Credits.
- Grenzen
- Version 0.1.x aus einem Ein-Entwickler-Projekt, das das README für interne Tools und Prototypen als geeignet bezeichnet. Sechs offene Issues, darunter Korrektheit des SQLite-Query-Builders. Kein GraphQL, kein OAuth, Zeilenfilter nicht durchgesetzt, und jede Kubernetes-Replik braucht ihren eigenen Konfigurationsspeicher.
Was gut ist
- Sieben SQL-Engines, darunter Oracle und Snowflake, aus einer Binary
- Verb-Rechte pro Tabelle bei jedem MCP-Tool-Aufruf
- Strukturierte Tools mit parametrisierten Filtern; freies SQL standardmäßig aus
- Admin-Oberfläche erzeugt MCP-Konfigurationen mit eingetragenem Key
Was nicht
- Rollenregeln wurden vor v0.1.13 überhaupt nicht durchgesetzt
- Bindet 0.0.0.0 in unverschlüsseltem HTTP; offenes Setup, bis ein Admin existiert
- stdio-Modus läuft als Admin ohne Rollen
- Zeilenfilter gespeichert, aber nicht durchgesetzt; Telemetrie standardmäßig an
Am besten für
Teams, die einen Agenten und ihre internen Apps eine kontrollierte REST- und MCP-Schicht über bestehende SQL-Server-, Oracle-, Snowflake- oder Postgres-Datenbanken teilen lassen wollen.
Alternativen zu Faucet
Faucet: häufige Fragen
- Lohnt sich Faucet?
- Die richtige Form, um einem Agenten kontrollierten Tabellenzugriff auf sieben SQL-Engines zu geben, aus einem Projekt, das so jung ist, dass seine Rollenprüfungen erst im September zu greifen begannen. Wir bewerten es mit 3.6 von 5.
- Was kostet Faucet?
- Kostenlos und Open Source (MIT), alle Funktionen enthalten. Ein gehostetes Faucet Cloud steht auf einer Warteliste; kein Preis veröffentlicht.
- Welche Nachteile hat Faucet?
- Rollenregeln wurden vor v0.1.13 überhaupt nicht durchgesetzt; Bindet 0.0.0.0 in unverschlüsseltem HTTP; offenes Setup, bis ein Admin existiert; stdio-Modus läuft als Admin ohne Rollen; Zeilenfilter gespeichert, aber nicht durchgesetzt; Telemetrie standardmäßig an.
- Für wen eignet sich Faucet?
- Teams, die einen Agenten und ihre internen Apps eine kontrollierte REST- und MCP-Schicht über bestehende SQL-Server-, Oracle-, Snowflake- oder Postgres-Datenbanken teilen lassen wollen.
- Was kostet Faucet für ein Team oder im Produktivbetrieb?
- Kostenlos; Kosten entstehen durch einen Host für die Binary und durch Datenbanklast. faucet_query liefert standardmäßig 25 Zeilen, höchstens 1.000; freies SQL liefert standardmäßig 100 Zeilen, höchstens 10.000, und bricht nach 30 Sekunden ab (bis zu 300). Snowflake-Abfragen verbrauchen bei jedem Aufruf Warehouse-Credits.
- Ist Faucet sicher für Firmendaten?
- Selbst gehostet; Zeilen gehen nur an den Modellanbieter des Agenten. Der Agent kann alles, was die Rolle seines Keys erlaubt, begrenzt durch den Datenbanknutzer. HTTP bindet standardmäßig 0.0.0.0 auf Port 8080; stdio läuft mit Admin-Rechten. Datenbankpasswörter liegen unverschlüsselt in der SQLite-Konfigurationsdatei (Rechte nur für den Eigentümer); API-Keys werden mit SHA-256 gehasht. Anonyme Telemetrie geht stündlich an PostHog, sofern nicht abgeschaltet. Zeilen, die beim Modell ankommen, können wie jeder Datenbanktext Prompt Injection enthalten.
- Was sind die besten Alternativen zu Faucet?
- Die nächsten Alternativen, die wir getestet haben, sind DBHub, MCP Toolbox for Databases, Supabase MCP Server und database-mcp (cocaxcode).
Antworten geprüft am 11. Nov. 2026.