Token导航 LogoToken导航TokenDH.com
faucet (Faucetdb) logo
数据服务stdio官方级别未说明来源级核验

faucet (Faucetdb)

MCP Server

@faucetdb/faucet

Faucet是一个开源的单二进制API服务器,能够将任何SQL数据库转换为安全的REST API,支持自动生成REST端点、OpenAPI规范和MCP工具,无需代码生成或ORM。

工具数

8

提示词数

0

GitHub Stars

89

资源数

0
多数据库支持GoClaude开源工具Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

faucetdb

提供方

faucetdb

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @faucetdb/faucet serve

详细介绍

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的二进制文件中。

demo

用例

  • 应用程序的即时后端 --跳过手工编写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风格的探测

______________________________________________________________________

支持的数据库

数据库版本云变体
PostgreSQL9.6–17亚马逊RDS、Aurora、Supabase、Neon、Azure数据库
MySQL5.7–9.x亚马逊RDS、Aurora MySQL、PlanetScale、Azure MySQL
MariaDB10.2–11.x通过MySQL驱动程序
SQL Server2008-2022Azure SQL数据库、亚马逊RDS
甲骨文12c–26aiOracle云(OCI)、亚马逊RDS、Azure
雪花当前AWS、Azure、GCP
SQLite3.35+内存中的本地文件

______________________________________________________________________

60秒快速入门

安装

npm(Node.js 18+):

npx @faucetdb/faucet serve

自制(macOS/Linux):

brew install faucetdb/tap/faucet

Docker:

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 info

API路线

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风格筛选器语法
ordercreated_at DESC, name ASC排序顺序
limit25要返回的最大记录数
offset50跳过N条记录进行分页
fieldsid,name,email选择特定列
ids1,2,3按主键值筛选
include_counttrue在响应元数据中包含总记录数

______________________________________________________________________

常见问题解答

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代理集成

文档

完整文档可在 水龙头维基.

贡献

许可证

麻省理工学院 --免费供商业和个人使用。

目录标签

目录标签

多数据库支持GoClaude开源工具数据库转换本地部署RESTAPI生成AI代理集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@faucetdb/faucet

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP