# Faucet [Health: Active]

**Category:** 🗄️ Databases  
**Repository:** https://github.com/faucetdb/faucet  
**GitHub Stars:** 118  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/faucet

## Description
SQL database to MCP tools and REST API: PostgreSQL, MySQL, SQL Server, Oracle, SQLite, Snowflake.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "faucet": {
    "command": "npx",
    "args": ["-y","@faucetdb/faucet"]
  }
}
```

## Documentation

## What Faucet does

The Faucet MCP server turns a supported SQL database into an MCP endpoint, a REST API, OpenAPI documentation, and an embedded administration interface. It is delivered as a single Go binary and generates its interfaces from the live database schema rather than requiring application code, an ORM, or generated source files.

Supported database systems include PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, Snowflake, and SQLite. A single instance can connect to multiple databases and expose them through the same service. The database connection and administration features are separate from the agent-facing protocol, but they are generated and managed by the same application.

The MCP endpoint is available at `/mcp` on the REST API port. It is intended for agents that need to query or modify database-backed data under the permissions configured for the corresponding API client or key.

## How it works

Faucet first connects to a database and examines its tables, columns, types, and constraints. It then creates database-backed REST endpoints, an OpenAPI 3.1 document at `/openapi.json`, MCP tools, and admin views from that schema. Changes to the database schema can be detected, and the API contract can be locked using the available contract-locking modes.

The Faucet MCP server supports streamable HTTP with API-key authentication for network access and stdio for local use. MCP requests follow the same role-based access rules as other API requests. Authentication options include API keys with assigned roles and HMAC-SHA256 JWTs for administrator sessions.

## Setup and configuration

Run Faucet as a binary on Linux, macOS, or Windows, or use the documented npm, Homebrew, or Docker distribution options. The project also provides `npx @faucetdb/faucet` as an installation path. Its configuration is stored in a local SQLite configuration store, so an additional configuration database is not required.

Use the embedded admin UI to add a database with its host, port, username, and password. Faucet tests the connection before saving it. The UI also supports schema and data browsing, role and key management, and copying MCP configurations for supported clients.

For local agent use, configure the client to launch the stdio transport. For a remotely reachable deployment, use the `/mcp` endpoint with an API key. The service also exposes `/healthz` and `/readyz` for health and readiness checks.

## Tools and capabilities

The Faucet MCP server includes eight MCP tools and two MCP resources. Its generated database access supports the following operations and features:

- Reading, inserting, updating, and deleting records
- Filtering, ordering, and paginating queries
- Calling stored procedures with typed parameters
- Creating, altering, and dropping tables through the API
- Inspecting database schema information
- Applying API-key authentication and per-table verb permissions
- Serving the generated OpenAPI 3.1 specification

The REST API additionally supports human-readable query filters such as comparisons combined with `AND`. MCP-compatible clients named by the project include Claude Code, Claude Desktop, Cursor, VS Code, and Windsurf. ChatGPT is described as an option through a Custom GPT Action using the generated OpenAPI document rather than the MCP endpoint.

## Limitations and notes

The project describes row-level security filters as stored on access rules and returned by the API, but says that applying those filters to queries is planned and not currently enforced. Do not treat configured row-level filters as active query enforcement.

MCP access is governed by Faucet's configured roles and API keys, so the database connection alone does not define the agent's effective permissions. The available tools and generated endpoints depend on the connected schema. Schema contract locking can detect drift and protect against silent breaking changes, but the selected locking mode affects how changes are handled.

The provided material does not specify required environment variables or a separate license configuration value; the project itself is identified as MIT-licensed.

_Full upstream README: https://allmcps.com/mcp/faucet/readme_

