Skip to content

Faucet FAQ ​

Short answers to common questions. Each one links to the page with the details.

About Faucet ​

What is Faucet? ​

Faucet is an open-source (MIT) single binary, written in Go, that turns a SQL database into a REST API and an MCP server for AI agents. It includes role-based access control with API keys, an OpenAPI 3.1 spec at /openapi.json, and a built-in admin UI. See Getting Started.

Which databases does Faucet support? ​

Seven: PostgreSQL (9.6 to 17), MySQL (5.7 to 9.x), MariaDB (10.2 to 11.x, through the MySQL driver), SQL Server (2012 to 2022), Oracle (12c to 26ai), SQLite (3.35+) and Snowflake. Hosted versions such as Amazon RDS, Aurora, Supabase, Neon and Azure SQL Database work too. See Supported Databases.

How do I install Faucet? ​

Run npx @faucetdb/faucet serve, or install it with brew install faucetdb/tap/faucet, docker run -p 8080:8080 -v faucet-data:/data faucetdb/faucet, go install github.com/faucetdb/faucet/cmd/faucet@latest, or a binary from GitHub Releases. See Installation.

Is Faucet free? ​

Yes. Faucet is open source under the MIT license, and all features are in the open-source binary. The code is at github.com/faucetdb/faucet.

Is Faucet production-ready? ​

Faucet is under active development. It suits internal tools, prototypes and AI agent access to existing databases. Before exposing it, work through the production checklist, and check the releases page for the latest version.

Does Faucet need its own database for configuration? ​

No. Services, roles, API keys and admin accounts live in an embedded SQLite file in the data directory (~/.faucet by default, or --data-dir). See Data Directory.

AI agents and MCP ​

Which AI tools can use Faucet? ​

Any MCP client. Faucet serves MCP at /mcp on the same port as the REST API, and the admin UI has copy-ready configs for Claude Code, Claude Desktop (through mcp-remote), Cursor, VS Code and Windsurf. See MCP Server.

Can ChatGPT connect to Faucet? ​

Yes, through a Custom GPT Action that imports https://your-host/openapi.json with API-key authentication in the X-API-Key header. ChatGPT connectors need OAuth, which Faucet does not offer yet. See Use Faucet from ChatGPT.

Can Base44, Replit or other cloud tools use my on-prem database? ​

Yes. Run Faucet next to the database, expose only Faucet over HTTPS (reverse proxy, Cloudflare Tunnel or ngrok), and give the tool a read-only API key. See Connect Base44, Replit and ChatGPT.

Can AI agents write data through Faucet? ​

Yes, if their key's role allows it. The MCP tools faucet_insert, faucet_update and faucet_delete respect the same roles as the REST API, so you can give an agent read-only or read-write access per table. The MCP write tools also refuse to run on services marked read-only. See MCP tools and RBAC.

Can AI agents run raw SQL? ​

Only when you opt in. faucet_raw_sql works only on services with raw_sql_allowed enabled. Leave it off for services that agents can reach unless they need it. See faucet_raw_sql.

Security and access control ​

How do API keys and roles work? ​

Each API key belongs to one role, and the role's rules say which services, tables and HTTP verbs the key may use. A role with no rules denies every request. Admin sessions (Bearer JWT) bypass roles, so give apps and agents API keys. See RBAC.

Are row-level filters enforced? ​

No. Filters can be saved on an access rule and are returned by the API, but Faucet does not apply them to queries yet. To limit a key to some rows, expose a database view or a separate service. See Row-level filters.

Does Faucet support SSO, OAuth or audit logs? ​

Not today. Faucet authenticates with API keys and admin sessions. It does not support SSO (SAML or OIDC), OAuth, audit logs, column-level permissions or enforced row-level filters.

Does Faucet collect telemetry? ​

Official release binaries send anonymous usage statistics, such as the version, OS and which database drivers are in use. They never send connection strings, table names, row data or queries. Turn it off with export FAUCET_TELEMETRY=0 or faucet config set telemetry.enabled false. Builds from source send nothing. See TELEMETRY.md.

Comparisons ​

How is Faucet different from PostgREST? ​

PostgREST serves a REST API for PostgreSQL only. Faucet covers seven databases, includes a built-in admin UI, and has a native MCP server for AI agents, all in one binary. See Faucet vs PostgREST.

How is Faucet different from Hasura? ​

Hasura is GraphQL-first. Faucet generates REST APIs with an OpenAPI 3.1 spec rather than GraphQL, runs as a single binary with an embedded configuration store, and includes an MCP server for AI agents. See Faucet vs Hasura.

How is Faucet different from DreamFactory? ​

DreamFactory is a PHP/Laravel application. Faucet is a single Go binary with no runtime dependencies, open source under MIT. Faucet's filter syntax is DreamFactory-compatible.

Does Faucet support GraphQL? ​

Not currently. Faucet generates REST APIs and OpenAPI 3.1 specs. GraphQL support may be added in the future.

Still stuck? ​

See Troubleshooting for error messages, or open an issue on GitHub. You can also email [email protected].