# Faucet > Faucet is a free, open-source (MIT) single binary that turns your PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLite, or Snowflake database into a REST API and an MCP server in one command, so your apps and AI agents can use your data with API keys and role-based access built in. - Latest release: v0.1.13 (updated 2026-10-08). License: MIT. Written in Go, zero CGO, runs on Linux, macOS and Windows. - Supported databases (7): PostgreSQL 9.6–17, MySQL 5.7–9.x, MariaDB 10.2–11.x (uses the `mysql` driver), SQL Server 2012–2022 (2008/2008 R2 are not supported), Oracle 12c–26ai, SQLite 3.35+ (embedded, pure Go), Snowflake (cloud service). Self-hosted, on-prem or cloud-hosted (Amazon RDS, Aurora, Azure, Supabase, Neon, PlanetScale, Oracle Cloud). - Install: `npx @faucetdb/faucet serve` | `brew install faucetdb/tap/faucet` | `docker run -p 8080:8080 -v faucet-data:/data faucetdb/faucet` - Quick start (with npx, prefix each command with `npx @faucetdb/faucet`): ```bash faucet db add --name mydb --driver postgres --dsn "postgres://user:pass@localhost:5432/mydb?sslmode=disable" faucet role create --name reader --verbs GET faucet key create --role reader faucet serve curl -H "X-API-Key: faucet_YOUR_KEY" "http://localhost:8080/api/v1/mydb/_table/users?limit=10" ``` - REST: `/api/v1/{service}/_table/{table}` (GET/POST/PUT/PATCH/DELETE) with query params `filter` (DreamFactory-compatible, e.g. `filter=status = 'active'`), `order`, `limit`, `offset`, `fields`, `ids`, `include_count`. Also `_schema`, `_proc/{proc}` and `_doc`. Combined OpenAPI 3.1 spec at `/openapi.json`. Every `/api/v1/{service}` request needs an `X-API-Key` header (or an admin Bearer JWT). - MCP: Streamable HTTP at `http://localhost:8080/mcp` (X-API-Key or Bearer JWT, RBAC enforced); stdio via `faucet mcp` (local, runs with admin rights); standalone HTTP via `faucet mcp --transport http --port 3001`. 8 tools: faucet_list_services, faucet_list_tables, faucet_describe_table, faucet_query, faucet_insert, faucet_update, faucet_delete, faucet_raw_sql (needs two opt-ins: the service must allow raw SQL, and the key's role must grant all five verbs on `_sql`). 2 resources: faucet://services, faucet://schema/{service}. - Claude Desktop: add `{"mcpServers":{"faucet":{"command":"faucet","args":["mcp"]}}}` to the config. - Claude Code: `claude mcp add --transport http faucet http://localhost:8080/mcp --header "X-API-Key: faucet_YOUR_KEY"` - Cursor: the same stdio JSON in `.cursor/mcp.json`, or the `/mcp` URL with an `X-API-Key` header. - ChatGPT: create a Custom GPT Action that imports `https://your-host/openapi.json`, with API-key auth (header `X-API-Key`). - Base44 and Replit: add `https://your-host/mcp` with an `X-API-Key` header as a custom MCP server, or call the REST API / import `/openapi.json` from your app. - Custom apps and AI app builders: use the REST API and the OpenAPI 3.1 spec. - Database on-prem? Run Faucet next to it and expose only Faucet over HTTPS (reverse proxy, Cloudflare Tunnel, ngrok). Give agents a read-only role. - "Works with" means it connects through MCP or REST/OpenAPI. Faucet is independent and not affiliated with or endorsed by these companies. - Not supported today: GraphQL, SSO/SAML/OIDC, OAuth, audit logs, column-level permissions, enforced row-level filters. ## Docs - [Getting started](https://wiki.faucetdb.ai/getting-started): Install Faucet, connect a database and make your first API call - [Database connectors](https://wiki.faucetdb.ai/database-connectors): DSN formats and options for all seven supported databases - [MCP server](https://wiki.faucetdb.ai/mcp-server): Transports, auth, tools and client setup for AI agents - [LLM guide](https://wiki.faucetdb.ai/llm-guide): How AI agents should discover and query data through Faucet - [API reference](https://wiki.faucetdb.ai/api-reference): Every REST endpoint, parameter and response shape - [Filter syntax](https://wiki.faucetdb.ai/filter-syntax): DreamFactory-compatible filter expressions and operators - [RBAC](https://wiki.faucetdb.ai/rbac): Roles, verb masks, API keys and read-only services - [Schema locking](https://wiki.faucetdb.ai/schema-locking): Lock a schema contract and detect drift - [CLI reference](https://wiki.faucetdb.ai/cli-reference): Every `faucet` command and flag - [Deployment](https://wiki.faucetdb.ai/deployment): Docker, systemd, reverse proxies and production setup ## Database guides - [PostgreSQL tutorial](https://wiki.faucetdb.ai/tutorial-postgres): PostgreSQL 9.6–17, including RDS, Aurora, Supabase and Neon - [MySQL and MariaDB tutorial](https://wiki.faucetdb.ai/tutorial-mysql): MySQL 5.7–9.x and MariaDB 10.2–11.x with the mysql driver - [SQL Server tutorial](https://wiki.faucetdb.ai/tutorial-sqlserver): SQL Server 2012–2022 and Azure SQL Database - [Oracle tutorial](https://wiki.faucetdb.ai/tutorial-oracle): Oracle 12c–26ai with a pure-Go driver, no Instant Client - [SQLite tutorial](https://wiki.faucetdb.ai/tutorial-sqlite): Embedded SQLite 3.35+ files as a REST API - [Snowflake tutorial](https://wiki.faucetdb.ai/tutorial-snowflake): Snowflake with password or key-pair auth ## Compare - [Faucet alternatives](https://faucetdb.ai/alternatives/): How Faucet compares with other database API tools - [Faucet vs Hasura](https://faucetdb.ai/alternatives/faucet-vs-hasura/): REST + MCP across seven databases vs a GraphQL-first, PostgreSQL-first engine - [Faucet vs PostgREST](https://faucetdb.ai/alternatives/faucet-vs-postgrest/): Seven databases plus MCP vs a PostgreSQL-only REST server - [Faucet vs Supabase](https://faucetdb.ai/alternatives/faucet-vs-supabase/): An API layer for the database you already have vs a Postgres platform ## Site - [Faucet home](https://faucetdb.ai/): Overview, supported databases, quick start and FAQ - [Pricing](https://faucetdb.ai/pricing/): Free and MIT-licensed; Faucet Cloud is planned - [Blog](https://faucetdb.ai/blog/): Releases, tutorials and notes on MCP and database APIs ## Optional - [Full LLM context](https://faucetdb.ai/llms-full.txt): Complete product reference in one Markdown file - [GitHub repository](https://github.com/faucetdb/faucet): Source code, issues and README - [Releases](https://github.com/faucetdb/faucet/releases): Changelog and prebuilt binaries - [npm package](https://www.npmjs.com/package/@faucetdb/faucet): `npx @faucetdb/faucet serve` - [Docker Hub](https://hub.docker.com/r/faucetdb/faucet): Official `faucetdb/faucet` image - [Homebrew tap](https://github.com/faucetdb/homebrew-tap): `brew install faucetdb/tap/faucet` - [RSS feed](https://faucetdb.ai/rss.xml): Blog feed - [Introducing Faucet](https://faucetdb.ai/blog/introducing-faucet/): Why Faucet exists and how it works - [How Faucet turns your database into a REST API](https://faucetdb.ai/blog/how-faucet-turns-databases-into-apis/): Schema introspection, query building and safety, in depth - [MCP database benchmark](https://faucetdb.ai/blog/mcp-database-benchmark/): Why indexes matter more than database choice for MCP workloads - [Faucet v0.1.7: Oracle support](https://faucetdb.ai/blog/faucet-v017-release/): The release that brought Faucet to seven databases - [Designing APIs for AI agents](https://faucetdb.ai/blog/designing-apis-for-ai-agents/): What agents need from an API - [The MCP context window tax](https://faucetdb.ai/blog/2026-03-30-mcp-context-window-tax-lean-database-tooling/): Why a small, fixed toolset beats per-table tools - [MCP tool annotations for database safety](https://faucetdb.ai/blog/2026-03-28-mcp-tool-annotations-database-safety/): Read-only and destructive hints for agent tool calls