Turn any SQL database into a secure REST API. One binary. One command.
Faucet is an open-source, single-binary API server that auto-generates REST endpoints, OpenAPI specs, and MCP tools from your database schema at runtime. No code generation, no ORM, no boilerplate.
Docs · Getting Started · Docker · MCP Server · Issues
______________________________________________________________________
什么是水龙头?
水龙头是一种 数据库到REST-API网关 -一个轻量级的自托管服务器,连接到SQL数据库,内省模式,并生成一个完整的CRUDREST API,其中包含身份验证、基于角色的访问控制(RBAC)和OpenAPI文档。它还揭示了一个 MCP服务器 因此,AI代理(Claude、GPT等)可以直接查询您的数据。
将其视为一种开源替代方案 梦想工厂, PostgREST,或 Hasura --但具有多数据库支持、内置管理UI和本地AI代理集成,所有这些都在一个约22MB的二进制文件中。

用例
- 应用程序的即时后端 --跳过手工编写CRUD API。将Faucet指向您的数据库并开始构建前端。
- AI代理数据访问 --为Claude、GPT或任何兼容MCP的代理提供对数据库的读/写访问权限。
- 内部工具和仪表板 --在不修改现有基础设施的情况下为内部数据库生成API。
- 遗留数据库现代化 -在SQL Server 2008、MySQL 5.7或PostgreSQL 9.6之前放置一个REST API,而不更改代码。
- 多数据库聚合 -将PostgreSQL、MySQL、SQL Server、Oracle等连接到一个Faucet实例,并通过一个API查询它们。
- 快速原型制作 -在不到60秒的时间内从空数据库转到工作的API。
______________________________________________________________________
运作原理
┌──────────────┐ ┌───────────────────────────────────────┐ ┌──────────────┐
│ PostgreSQL │ │ F A U C E T │ │ REST API │
│ MySQL │──────▶│ │──────▶│ /api/v1/* │
│ MariaDB │ SQL │ ┌─────────┐ ┌──────┐ ┌───────────┐ │ ├──────────────┤
│ SQL Server │◀──────│ │ Schema │ │ RBAC │ │ OpenAPI │ │──────▶│ OpenAPI 3.1 │
│ Oracle │ │ │ Intro- │ │ Auth │ │ Generator │ │ │ /openapi.json│
│ Snowflake │ │ │ spection│ │ │ │ │ │ ├──────────────┤
│ SQLite │ │ └─────────┘ └──────┘ └───────────┘ │──────▶│ MCP Server │
└──────────────┘ │ │ │ (AI Agents) │
│ ┌──────────────────────────────────┐ │ ├──────────────┤
│ │ Embedded Admin UI (Preact) │ │──────▶│ Admin UI │
│ └──────────────────────────────────┘ │ │ :8080/admin │
└───────────────────────────────────────┘ └──────────────┘连接 任何SQL数据库→ 水龙头 内省 模式→ 立即生成 REST端点, OpenAPI文档, MCP工具和a 管理用户界面 -所有这些都使用API密钥、JWT身份验证和基于角色的权限进行保护。
______________________________________________________________________
截图
Manage multiple database connections — PostgreSQL, MySQL, SQL Server, and more
Schema Explorer — Browse tables, columns, types, and constraints across all connected databases
API Explorer — Test REST endpoints interactively with live response data
______________________________________________________________________
主要特点
API生成
- 完整CRUD REST API --GET、POST、PUT、PATCH、DELETE,带有过滤、排序和分页功能
- 模式自省 --在运行时发现表、列、类型和约束
- 模式DDL -通过API创建、更改和删除表
- 存储过程调用 --使用类型化参数执行存储过程
- 人类可读的查询过滤器 —
(age > 21) AND (status = 'active') - OpenAPI 3.1规范 --从实时数据库架构自动生成
/openapi.json
安全和访问控制
- API密钥验证 --SHA-256哈希密钥,每个密钥分配一个角色
- JWT身份验证 --用于管理会话的HMAC-SHA256签名令牌
- 基于角色的访问控制(RBAC) --每表谓词权限(GET、POST、PUT、DELETE)
- 行级安全过滤器 --使用SQL筛选器表达式限制每个角色的数据访问
- 模式合约锁定 -使用三种模式(无、自动、严格)、漂移检测和CLI管理来锁定API合约,以防静默破坏模式更改
人工智能代理集成(MCP)
- 内置MCP服务器 --8个工具+2个资源用于模型上下文协议
- 克劳德桌面就绪 --Claude Desktop和Claude Code的插入式配置
- stdio+HTTP传输 --在本地或网络上工作
- 受管制的人工智能查询 -AI代理与API客户端遵守相同的RBAC规则
开发者体验
- 单个二进制 --零外部依赖,~22MB,跨平台(Linux、macOS、Windows)
- 嵌入式管理用户界面 -Preact+Tailwind仪表板,带设置向导、模式资源管理器、API测试仪
- SQLite配置存储 --所有配置都存储在本地,不需要外部数据库
- npm+自制+Docker --在任何平台上几秒钟内安装(
npx @faucetdb/faucet) - 健康终点 —
/healthz和/readyz用于Kubernetes风格的探测
______________________________________________________________________
支持的数据库
| 数据库 | 版本 | 云变体 |
|---|---|---|
| PostgreSQL | 9.6–17 | 亚马逊RDS、Aurora、Supabase、Neon、Azure数据库 |
| MySQL | 5.7–9.x | 亚马逊RDS、Aurora MySQL、PlanetScale、Azure MySQL |
| MariaDB | 10.2–11.x | 通过MySQL驱动程序 |
| SQL Server | 2008-2022 | Azure SQL数据库、亚马逊RDS |
| 甲骨文 | 12c–26ai | Oracle云(OCI)、亚马逊RDS、Azure |
| 雪花 | 当前 | AWS、Azure、GCP |
| SQLite | 3.35+ | 内存中的本地文件 |
______________________________________________________________________
60秒快速入门
安装
npm(Node.js 18+):
npx @faucetdb/faucet serve自制(macOS/Linux):
brew install faucetdb/tap/faucetDocker:
docker run -p 8080:8080 -v faucet-data:/data faucetdb/faucet去:
go install github.com/faucetdb/faucet/cmd/faucet@latest二进制文件下载: 看 用于预构建的二进制文件(Linux、macOS、Windows)。
跑
# Start the server
faucet serve
# Create an admin account
faucet admin create --email admin@example.com --password changeme123
# Add a database
faucet db add mydb --driver postgres --dsn "postgres://user:pass@localhost/mydb?sslmode=disable"
# Create an API key
faucet key create --role default
# Query your data
curl -H "X-API-Key: faucet_YOUR_KEY_HERE" http://localhost:8080/api/v1/mydb/_table/users?limit=10打开 http://localhost:8080 用于管理仪表板。
______________________________________________________________________
用于AI代理的MCP服务器
水龙头包括一个内置 模型上下文协议(MCP) 服务器,使Claude、GPT和Copilot等AI代理能够通过受控的、基于工具的访问来查询和修改您的数据库。
克劳德桌面/克劳德代码
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"faucet": {
"command": "faucet",
"args": ["mcp"]
}
}
}HTTP模式(远程客户端)
faucet mcp --transport http --port 3001可用的MCP工具
| 工具 | 说明 |
|---|---|
faucet_list_services | 列出所有连接的数据库 |
faucet_list_tables | 列出数据库中的表 |
faucet_describe_table | 获取列名、类型和约束 |
faucet_query | 使用过滤器、排序、分页查询记录 |
faucet_insert | 插入新记录 |
faucet_update | 更新现有记录 |
faucet_delete | 删除记录 |
faucet_raw_sql | 执行原始SQL(仅限管理员) |
______________________________________________________________________
CLI参考
faucet serve # Start HTTP server (default :8080)
faucet db add NAME # Add database connection
faucet db list # List configured databases
faucet db test NAME # Test database connectivity
faucet db schema NAME # Dump database schema
faucet db lock NAME # Lock schema contract
faucet db unlock NAME # Remove contract locks
faucet db diff NAME # Show schema drift
faucet db promote NAME # Promote contracts to match live schema
faucet key create # Create API key
faucet key list # List API keys
faucet role create # Create RBAC role
faucet admin create # Create admin account
faucet mcp # Start MCP server (stdio)
faucet openapi # Generate OpenAPI spec
faucet config set KEY VALUE # Set configuration value
faucet version # Show version infoAPI路线
GET /healthz # Liveness probe
GET /readyz # Readiness probe
GET /openapi.json # OpenAPI 3.1 spec
POST /api/v1/system/admin/session # Admin login
GET /api/v1/system/service # List services
POST /api/v1/system/service # Create service
GET /api/v1/system/role # List roles
POST /api/v1/system/role # Create role
POST /api/v1/system/api-key # Create API key
GET /api/v1/{service}/_table # List tables
GET /api/v1/{service}/_table/{table} # Query records
POST /api/v1/{service}/_table/{table} # Insert records
PUT /api/v1/{service}/_table/{table} # Replace records
PATCH /api/v1/{service}/_table/{table} # Update records
DELETE /api/v1/{service}/_table/{table} # Delete records
GET /api/v1/{service}/_schema # List table schemas
POST /api/v1/{service}/_schema # Create table
GET /api/v1/{service}/_proc # List stored procedures
POST /api/v1/{service}/_proc/{proc} # Call procedure查询参数
| 参数 | 示例 | 说明 |
|---|---|---|
filter | (age > 21) AND (name LIKE 'A%') | 具有安全参数化的SQL风格筛选器语法 |
order | created_at DESC, name ASC | 排序顺序 |
limit | 25 | 要返回的最大记录数 |
offset | 50 | 跳过N条记录进行分页 |
fields | id,name,email | 选择特定列 |
ids | 1,2,3 | 按主键值筛选 |
include_count | true | 在响应元数据中包含总记录数 |
______________________________________________________________________
常见问题解答
Faucet与PostgREST有何不同? PostgREST只支持PostgreSQL。Faucet支持7个数据库(PostgreSQL、MySQL、MariaDB、SQL Server、Oracle、Snowflake、SQLite),包括一个内置的管理UI,并为AI代理提供原生MCP支持——所有这些都在一个二进制文件中。
水龙头与Hasura有何不同? Hasura需要Docker,一个PostgreSQL元数据数据库,主要侧重于GraphQL。Faucet是一个没有依赖关系的单一二进制文件,生成REST API(不是GraphQL),并包含内置的MCP服务器支持,用于AI代理集成。
水龙头与DreamFactory有何不同? DreamFactory是一个PHP/Lavel应用程序,需要完整的LAMP/LEMP堆栈。Faucet是一个零依赖的Go二进制文件(约22MB)。水龙头在麻省理工学院许可下完全开源,包括所有功能——核心功能不需要付费层。
Faucet支持GraphQL吗? 目前还没有。Faucet生成REST API和OpenAPI 3.1规范。未来可能会添加GraphQL支持。
水龙头生产准备好了吗? 水龙头正在积极开发中。它适用于内部工具、原型设计和AI代理集成。检查 发布页面 最新版本。
AI代理可以通过Faucet写入数据吗? 对。MCP工具包括 faucet_insert, faucet_update,以及 faucet_delete所有操作都尊重RBAC角色,因此您可以为每个表赋予AI代理只读或读写访问权限。
水龙头是否需要单独的数据库进行配置? 不需要。Faucet使用嵌入式SQLite数据库用于所有配置、凭证、角色和API密钥。所有内容都存储在本地的一个文件中。
______________________________________________________________________
从源头构建
git clone https://github.com/faucetdb/faucet.git
cd faucet
make build # Builds UI + Go binary
make test # Runs all tests
make dev # Dev mode with hot reload技术栈
- 转到1.25+ --Chi路由器、sqlx、Cobra/Viper CLI
- Preact+Vite+Tailwind --嵌入式管理用户界面
- SQLite (纯Go,无CGO)——配置存储
- 主控程序 (模型上下文协议)——AI代理集成
文档
完整文档可在 水龙头维基.
贡献
许可证
麻省理工学院 --免费供商业和个人使用。
