# Database Query Tools — Self-Hosted REST API Options Researched 2026-07-09. Source: detailed multi-step web research of 9 database-to-API tools. ## The Landscape | Tool | Self-Hosted | Free | REST API | Raw SQL | MySQL | SQLite | Postgres | MCP | Setup | |------|:-----------:|:----:|:--------:|:-------:|:----:|:------:|:--------:|:---:|:-----:| | **Faucet** | ✅ | ✅ MIT | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ Native | <1 min | | **Python Skill** | ✅ (in-process) | ✅ | N/A | ✅ | ✅ | ✅ | ✅ | ❌ | ~30 min | | Directus | ✅ | ✅ MIT | ✅ | 🔶 Custom | ✅ | ❌ | ✅ | ❌ | ~30 min | | Supabase | ✅ | ✅ (limited) | ✅ | ❌ (RPC only) | ❌ | ❌ | ✅ | ❌ | ~15 min | | NocoDB | ✅ | 🔶 fair-code | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ~15 min | | Adminer | ✅ | ✅ | ❌ None | ❌ | ✅ | ✅ | ✅ | ❌ | ~5 min | | CloudBeaver | ✅ | 🔶 API paid | 🔶 Enterprise | 🔶 Enterprise | ✅ | ✅ | ✅ | 🔶 Enterprise | ~20 min | | PostgREST | ✅ | ✅ MIT | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ~10 min | | restSQL | ✅ | ✅ Apache | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ~30 min | ## 🏆 Top Pick: Faucet - **MIT licensed, completely free** self-hosted. Cloud $5/mo Pro / $50/mo Team optional. - **Single 47MB Go binary, zero dependencies.** No Docker, Node.js, PHP, or system DB needed. - **All 3+ target databases:** MySQL 5.7+, SQLite 3.35+, PostgreSQL 9.6+ (also SQL Server, Oracle, Snowflake). - **Auto-generates REST API** per table — CRUD + filtering + pagination + RBAC + OpenAPI docs. - **Raw SQL via `faucet_raw_sql` MCP tool** — opt-in, disabled by default. - **Native MCP server built in** — Hermes connects directly via mcp_servers config. ### Hermes Integration **MCP server config in ~/.hermes/config.yaml:** ```yaml mcp_servers: database: command: npx args: ["@faucetdb/faucet", "serve", "--mcp"] ``` **Or run as standalone service then add DB connections:** ```bash # Install (any method): npx @faucetdb/faucet serve # npm brew install faucetdb/tap/faucet # Homebrew docker run -p 8080:8080 faucetdb/faucet:latest # Docker # Add a database: faucet db add --name mydb --driver postgres --dsn "postgres://user:pass@host/mydb" # Create API key: faucet key create --role default # Query: curl -H "X-Faucet-Api-Key: KEY" http://localhost:8080/api/v1/mydb/_table/users ``` **MCP tools available to Hermes:** faucet_list_services, faucet_list_tables, faucet_describe_table, faucet_query, faucet_insert, faucet_update, faucet_delete, faucet_raw_sql (disabled by default — enable explicitly). ## ⚠️ Raw SQL: The Critical Distinction Many "database API" tools claim SQL support but actually require pre-registering queries as stored procedures (Supabase RPC, Directus custom endpoints) or defining SQL views (NocoDB). **Only Faucet and restSQL** offer ad-hoc raw SQL execution over the API. **If ad-hoc SQL querying is needed** (the Hermes agent needs to explore unknown schemas, run arbitrary SELECTs, or debug production data), Faucet is the only actively maintained option that supports all 3 databases and raw SQL. ## 🥈 Fallback: Custom Python Skill When you can't run an external service, write a Hermes skill with Python DB drivers: ```python # ~/.hermes/skills/db-query/query.py import sqlite3, mysql.connector, psycopg2, json, sys def query_mysql(sql, params=None): conn = mysql.connector.connect(host="wphost02", user=..., password=..., database=...) cursor = conn.cursor(dictionary=True) cursor.execute(sql, params or ()) return cursor.fetchall() ``` Hermes calls via: `python3 query.py --db mysql --query "SELECT * FROM users"` **Pros:** Zero-infra, full control, works with any existing DB immediately. **Cons:** Requires writing Python code, no automatic schema introspection, no RBAC layer. ## Research Methodology for Database Tools When evaluating a database-to-API tool, check these axes in order: 1. **License** — MIT/Apache = safe. AGPL/fair-code/SSPL = legal risk for commercial. 2. **Single-binary vs stack** — fewer deps = less ops burden. Java runtimes are heavy. 3. **Databases supported** — must match your target set. Many are PostgreSQL-only. 4. **Raw SQL via API** — does it allow arbitrary queries, or only pre-defined CRUD on tables? 5. **MCP support** — native MCP is best (Hermes connects directly). REST + OpenAPI next. 6. **Active maintenance** — check GitHub: recent commits, release cadence, issue responsiveness. 7. **SaaS vs self-hosted paywall** — some are "open source" but API/MCP is enterprise-only (CloudBeaver).