mcpField
F
Faucet

Faucet

ローカル
wiki.faucetdb.aiデータベース1661 週間前に更新

Faucet について

Faucet は、PostgreSQL、MySQL、SQL Server、Oracle、Snowflake、SQLite などの SQL データベースを REST API と MCP サーバーに変換する、オープンソースの単一 Go バイナリです。AI エージェントにロールベースのアクセス制御付きでデータを提供したいチーム向けで、管理 UI も備えます。

主な機能

  1. 01スキーマから REST API と OpenAPI 3.1 仕様を生成
  2. 02テーブルと操作ごとのロールベースアクセス制御
  3. 03/mcp で提供される組み込み MCP サーバー
  4. 04HTTP の API キー認証と stdio 接続
  5. 05データベース登録と MCP 設定の出力を行う管理 UI

活用シーン

  1. 01アプリケーション向けバックエンド API の迅速な構築
  2. 02ロール制限の下で Claude や Cursor からデータベースを照会
  3. 03コード変更なしのレガシーデータベースへの REST インターフェース追加

MCP 対応

本プロジェクトは MCP サーバーとして、/mcp の Streamable HTTP または stdio 経由で faucet_query などのデータベースツールを公開し、REST API と同じロール規則を適用します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"faucetdb-faucet": {
"command": "npx",
"args": [
"-y",
"@faucetdb/faucet"
],
"env": {
"FAUCET_DATA_DIR": "<FAUCET_DATA_DIR>"
}
}
}
}
起動コマンドnpx -y @faucetdb/faucet
設定が必要な環境変数
FAUCET_DATA_DIRFaucet data directory holding the databases you connected with `faucet serve` or `faucet db add`. Default: ~/.faucet. stdio mode runs with local admin rights.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@faucetdb/faucet0.1.15
ocidocker.io/faucetdb/faucet:0.1.15

ツール

8

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
tablestringはい削除対象のテーブル名
filterstringはい削除対象のレコードを選択するフィルター式(例:"status = 'expired'")
servicestringはいデータベースサービス名

詳細

Faucet のロゴ

Faucet:あらゆる SQL データベースに対応する REST API と MCP サーバー

あらゆる SQL データベースを、安全な REST API と MCP サーバーに変換します。
バイナリ 1 つ。コマンド 1 つ。

Faucet は、PostgreSQL、MySQL、MariaDB、SQL Server、Oracle、Snowflake、SQLite を、ロールベースのアクセス制御(RBAC)、OpenAPI 3.1、組み込みの管理 UI を備えた、AI エージェント向けの REST API と MCP サーバーに変換する、オープンソース(MIT)の単一 Go バイナリです。

エンドポイント、OpenAPI 仕様、MCP ツールは、実行時にデータベーススキーマから生成されます。コード生成も ORM も定型コードも不要です。

GitHub リリース ライセンス:MIT Docker のプル数 CI ステータス mcpservers.org に掲載

MCP Vault

ウェブサイト · ドキュメント · はじめに · Docker · MCP サーバー · 問題


Faucet とは?

Faucet は、データベースから REST API を生成するゲートウェイです。SQL データベースに接続し、スキーマを調査して、認証、ロールベースのアクセス制御(RBAC)、OpenAPI ドキュメントを備えた、完全な CRUD REST API を生成する、軽量でセルフホスト可能なサーバーです。また、/mcp で MCP サーバーを公開するため、AI エージェントや AI アプリビルダー(Claude、ChatGPT、Cursor、VS Code、Windsurf、Base44、Replit)は、同じロールと API キーを通じてデータをクエリできます。

複数のデータベースに対応し、組み込みの管理 UI とネイティブな AI エージェント連携を備えた、単一バイナリのオープンソース版 DreamFactory、PostgREST、Hasura と考えることができます。比較はこちら。

接続済みの PostgreSQL および SQLite データベースを一覧表示する Faucet の管理 UI

ユースケース
  • アプリ向けの即時バックエンド — CRUD API を手作業で書く必要はありません。Faucet をデータベースに接続して、フロントエンドの開発を始めましょう。
  • AI エージェントによるデータアクセス — Claude、GPT、または MCP 対応エージェントに、ガバナンスの効いたデータベースへの読み書きアクセスを提供します。
  • 社内ツールとダッシュボード — 既存のインフラストラクチャを変更せずに、社内データベース向けの API を生成できます。
  • レガシーデータベースのモダナイゼーション — コードを変更せずに、SQL Server 2012、MySQL 5.7、PostgreSQL 9.6 の前段に REST API を配置できます。
  • 複数データベースの集約 — PostgreSQL、MySQL、SQL Server、Oracle などを 1 つの Faucet インスタンスに接続し、単一の API を通じてすべてをクエリできます。
  • 迅速なプロトタイピング — 空のデータベースから、動作する API を 60 秒以内に作成できます。

仕組み

┌──────────────┐       ┌───────────────────────────────────────┐       ┌──────────────┐
│ 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/      │
                       └───────────────────────────────────────┘       └──────────────┘

任意の SQL データベースに接続 → Faucet がスキーマを調査 → REST エンドポイント、OpenAPI ドキュメント、MCP ツール、管理 UIを即座に生成します。すべて API キー、JWT 認証、ロールベースの権限で保護されます。


スクリーンショット

ホスト、ポート、ユーザー、パスワード欄を使って、Faucet の管理 UI で PostgreSQL データベースを追加する画面
ホスト、ポート、ユーザー、パスワードを指定してデータベースに接続します。Faucet は保存前に接続をテストし、修正が必要な箇所を知らせます。

ロックされたテーブルのカラム、キー、スキーマの差分を表示する Faucet のスキーマページ
テーブル、カラム、キー、データを確認し、破壊的なスキーマ変更から API コントラクトを保護するためにロックできます。

フィルター付きクエリ、JSON レスポンス、curl としてコピーする機能を備えた Faucet API エクスプローラー
フィルターとページネーションを使ってリクエストを作成し、curl、JavaScript、Python としてコピーできます。

Claude Code、Cursor、VS Code などすぐに使える MCP 設定を表示する Faucet の AI エージェントページ
Claude Code、Claude Desktop、Cursor、VS Code、Windsurf、ChatGPT 用の MCP 設定をコピーできます。

各ページの概要については、管理 UI ガイドをご覧ください。


主な機能

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、PATCH、DELETE)
  • 行レベルのセキュリティフィルター — フィルター式はアクセスルールごとに保存され、API から返されます。クエリへの適用は計画されていますが、まだ強制されません
  • スキーマコントラクトのロック — 3 つのモード(none、auto、strict)、差分検出、CLI 管理により、気付かないうちに発生する破壊的なスキーマ変更から API コントラクトを保護できます
AI エージェントとの連携(MCP)
  • 組み込み MCP サーバー — Model Context Protocol 用の 8 個のツールと 2 個のリソースを、REST API と同じポートの /mcp で提供します
  • お使いの AI ツールで利用可能 — Claude Code、Claude Desktop、Cursor、VS Code、Windsurf 用の設定をコピーできます。ChatGPT では /openapi.json 上の Custom GPT Action を利用できます
  • ストリーミング可能な HTTP と stdio トランスポート — ネットワーク経由では API キー認証を使用し、またはお使いのマシン上で stdio を使用できます
  • ガバナンスに基づく AI クエリ — AI エージェントには API クライアントと同じ RBAC ルールが適用されます
開発者エクスペリエンス
  • 単一バイナリ — 外部依存関係がなく、クロスプラットフォーム(Linux、macOS、Windows)で動作します
  • 組み込み管理 UI — ホスト、ポート、ユーザー、パスワードを使ってデータベースに接続し(接続文字列は不要)、保存前にテストできます。スキーマとデータを確認し、ロールとキーを作成して、Claude、Cursor、VS Code など向けのすぐに使える MCP 設定をコピーできます。オフラインで動作し、ライトテーマとダークテーマを利用できます
  • SQLite 設定ストア — 設定はすべてローカルに保存され、外部データベースは不要です
  • npm + Homebrew + Docker — どのプラットフォームにも数秒でインストールできます(npx @faucetdb/faucet)
  • ヘルスエンドポイント — Kubernetes 形式のプローブ用に /healthz と /readyz を提供します

対応データベース

データベースバージョンクラウド版チュートリアル
PostgreSQL9.6 – 17Amazon RDS、Aurora、Supabase、Neon、Azure Databaseガイド
MySQL5.7 – 9.xAmazon RDS、Aurora MySQL、PlanetScale、Azure MySQLガイド
MariaDB10.2 – 11.xMySQL ドライバー経由MySQL ガイド
SQL Server2012 – 2022Azure SQL Database、Amazon RDSガイド
Oracle12c – 26aiOracle Cloud (OCI)、Amazon RDS、Azureガイド
Snowflake現行AWS、Azure、GCPガイド
SQLite3.35+ローカルファイル、インメモリガイド

コネクターの詳細、SSL オプション、ドライバーに関する注意事項:データベースコネクター。


60 秒クイックスタート

インストール

npm(Node.js 18+):

npx @faucetdb/faucet serve

Homebrew(macOS / Linux):

brew install faucetdb/tap/faucet

Docker:

docker run -p 8080:8080 -v faucet-data:/data faucetdb/faucet

Go:

go install github.com/faucetdb/faucet/cmd/faucet@latest

バイナリのダウンロード: ビルド済みバイナリ(Linux、macOS、Windows)は、GitHub Releasesをご覧ください。

実行
faucet serve

http://localhost:8080 を開きます。セットアップウィザードで管理者アカウントを作成し、最初のデータベースに接続します。エンジンを選択し、ホスト、ポート、ユーザー名、パスワードを入力して、接続をテストをクリックし、保存します。すべてのテーブルに REST エンドポイント(/api/v1/<name>/_table/<table>)と MCP ツールがすぐに作成されます。次に、ロールページでロールを作成し、API キーページで API キーを作成すると、新しいキーがあらかじめ含まれた、すぐに実行できる curl コマンドと MCP 設定コマンドが表示されます。

ターミナルを使う場合は、同じ手順を CLI で実行できます。

# Create an admin account and add a database (no connection string needed)
faucet admin create --email [email protected] --password changeme123
faucet db add --name mydb --driver postgres \
  --host localhost --user app --password 's3cret@!' --database mydb

# Create a role that can read every database, then an API key bound to it
faucet role create --name default --verbs GET
faucet key create --role default

# Start the server (it loads databases on startup), then query your data
faucet serve
curl -H "X-API-Key: faucet_YOUR_KEY_HERE" "http://localhost:8080/api/v1/mydb/_table/users?limit=10"

接続文字列をすでにお持ちの場合は、引き続き --dsn を使用できます。実行中のサーバーは、管理 UI または API から追加されたデータベースをすぐに認識します。faucet db add で追加されたデータベースは、次回のサーバー起動時に読み込まれます。


AI エージェント向け MCP サーバー

Faucet には、組み込みの Model Context Protocol (MCP) サーバーが含まれているため、Claude、Cursor、VS Code Copilot、Windsurf などの AI エージェントが、管理されたツールベースのアクセスを通じてデータベースを照会・変更できます。

faucet serve を実行すると、REST API と同じポートである http://localhost:8080/mcp に MCP サーバーが公開されます(Streamable HTTP)。X-API-Key ヘッダーに API キーを指定して認証します。キーのロールによって、エージェントが参照・変更できるデータベースとテーブルが、REST API と同様に制御されます。

管理 UI の **AI エージェント(MCP)**ページでは、以下のすべての設定がキーを入力した状態で生成されます。YOUR_API_KEY は、API キーページまたは faucet key create で取得したキーに置き換えてください。

Claude Code
claude mcp add --transport http faucet http://localhost:8080/mcp \
  --header "X-API-Key: YOUR_API_KEY"
Cursor、VS Code、Windsurf

Cursor(~/.cursor/mcp.json または .cursor/mcp.json):

{
  "mcpServers": {
    "faucet": {
      "url": "http://localhost:8080/mcp",
      "headers": { "X-API-Key": "YOUR_API_KEY" }
    }
  }
}

VS Code(.vscode/mcp.json、エージェントモードの Copilot Chat で使用):

{
  "servers": {
    "faucet": {
      "type": "http",
      "url": "http://localhost:8080/mcp",
      "headers": { "X-API-Key": "YOUR_API_KEY" }
    }
  }
}

Windsurf(~/.codeium/windsurf/mcp_config.json):Cursor と同じですが、url の代わりに serverUrl を使用します。

Claude Desktop

Claude Desktop の設定ファイルではローカルコマンドしか起動できないため、claude_desktop_config.json で mcp-remote ブリッジ(Node.js が必要)を使用します。

{
  "mcpServers": {
    "faucet": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://localhost:8080/mcp", "--header", "X-API-Key:YOUR_API_KEY"]
    }
  }
}

別のマシン上の Faucet サーバーにプレーンな http:// で接続する場合は、args に "--allow-http" を追加してください。examples/claude-desktop-config.jsonをご覧ください。

ChatGPT

ChatGPT コネクターは OAuth でサインインしますが、Faucet は OAuth をサポートしていません。代わりにカスタム GPT アクションを使用します。Faucet を HTTPS 経由で公開し、https://your-host/openapi.json をインポートして、認証方式にカスタムヘッダー X-API-Key を使う API キーを設定してください。

ローカル stdio(自分のマシンのみ)

MCP クライアントは、サブプロセスとして Faucet を起動することもできます。stdio モードでは、faucet serve または faucet db add で設定したデータベース(デフォルトでは ~/.faucet)を読み込み、ローカルの管理者権限で実行されます。ロールは適用されません。ご自身のマシンでのみ使用してください。共有する場合は、API キーを使用して /mcp を利用してください。

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

同じ設定は examples/mcp-stdio-config.json にあります。faucet がインストールされている場合(Homebrew、Go、またはリリースバイナリ)、"command": "faucet", "args": ["mcp"] を使用してください。faucet mcp --transport http --port 3001 を実行すると、専用ポートで API キー認証を行うスタンドアロンの HTTP サーバーが起動します。

curl によるテストと OpenAI Responses API を含む詳細なガイドについては、MCP サーバーのドキュメントをご覧ください。

利用可能な 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 (--verbs grants its first rule)
faucet role grant               # Add an access rule to a role
faucet role list                # List roles and their rules
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
アクセスルール(RBAC)

ロールは、ルール{service_name, component, verb_mask}のリストです。API キーは、紐付けられたロールのルールを継承し、すべてのリクエストでこれらのルールがチェックされます。管理者 JWT セッション(ダッシュボードと/api/v1/system/*)は RBAC をバイパスします。

動詞ビット — ビット単位の OR で組み合わせます。

動詞ビット
GET1
POST2
PUT4
PATCH8
DELETE16
すべて31

マッチング(大文字と小文字を区別します。パターンは URL に表示されるサービス名とテーブル名に正確に一致する必要があります)。

  • service_name:*(任意のサービス)、完全一致の名前(mydb)、または前方一致ワイルドカード(prod_*)
  • component:*(任意の対象)、完全一致のコンポーネント(_table/customers、_schema)、前方一致ワイルドカード(_table/* — すべてのテーブルと_tableの一覧)、または単独の名前(customers。_table/customers、_schema/customersなどに一致します)

フェイルクローズ。 ルールがないロール、verb_maskが0のルールがあるロール、または非アクティブなロールは、理由を示すエラーエンベロープとともに、すべてのリクエストを403で拒否します。

{"error":{"code":403,"message":"Role \"readonly\" does not permit POST on mydb/_table/orders",
          "context":{"role":"readonly","service":"mydb","component":"_table/orders","verb":"POST"}}}

read_onlyが設定されたサービスは、ロールに関係なく、GET 以外のすべてのリクエストを拒否します。

MCP。 ツールは同じ動詞に対応します。faucet_query = GET、faucet_insert = POST、faucet_update = PATCH、faucet_delete = DELETE、faucet_list_tables = _tableへの GET、faucet_describe_table = _schema/{table}への GET です。faucet_raw_sqlには、コンポーネント_sqlに一致するルールで5つすべての動詞が必要です(例:*)。faucet_list_servicesは、ロールがアクセス可能なサービスのみを一覧表示します。stdio モードのfaucet mcpはローカル管理者権限で実行されます。faucet mcp --transport httpには、メインサーバーと同じ API キーまたは JWT 認証情報が必要です。

CLI からルールを付与するには:

faucet role create --name readonly --verbs GET                                        # GET on every service
faucet role grant --role readonly --service mydb --component "_table/orders" --verbs GET,POST

または、ルールリスト全体を置き換える管理 API を使用します。

curl -X PUT -H "Authorization: Bearer $JWT" -H "Content-Type: application/json" \
  http://localhost:8080/api/v1/system/role/1 -d '{
    "name": "readonly",
    "is_active": true,
    "access": [
      {"service_name": "*",    "component": "*",              "verb_mask": 1, "requestor_mask": 1, "filters": [], "filter_op": "AND"},
      {"service_name": "mydb", "component": "_table/orders",  "verb_mask": 3, "requestor_mask": 1, "filters": [], "filter_op": "AND"}
    ]
  }'

ルール上の行レベルのfiltersは API に保存され、API から返されますが、クエリにはまだ適用されません。

アップグレード。 この修正以前は、ロールのルールは保存されていましたが、API キーによるリクエストでは適用されていませんでした。faucet role createで作成され、ルールが一度も付与されていないロールは、今後403で拒否されます。faucet role grantまたは管理 UI でルールを付与してください。管理 UI で作成されたロールは、すべてのサービスに対してデフォルトで GET のみが許可されるため、これらのロールを通じて以前データを書き込んでいた API キーには、POST/PUT/PATCH/DELETEを明示的に付与する必要があります。起動時にfaucet serveは、アクティブな API キーがあるにもかかわらずすべてのリクエストを拒否するロール(ルールがない、verb_mask: 0のルールしかない、または非アクティブ)ごとに、修正に使うfaucet role grantコマンドとともに警告をログに記録します。

管理者 JWT の署名シークレットは、組み込みのデフォルト値ではなくなりました。auth.jwt_secret/FAUCET_AUTH_JWT_SECRET(別名FAUCET_JWT_SECRET)が設定されていない場合、初回起動時にランダムなシークレットが生成され、データディレクトリに保存されます。アップグレードにより、既存の管理者セッションは無効になります。ただし、シークレットがすでに設定されていた場合は除きます。再度ログインしてください。

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ページネーション用にスキップするレコード数
fieldsid,name,email特定の列を選択
ids1,2,3主キーの値で絞り込み
include_counttrueレスポンスのメタデータに合計レコード数を含める

Faucet と PostgREST、Hasura、DreamFactory、Supabase の比較

各プロジェクトの設計を簡潔に比較します。各プロジェクトの公式ドキュメントで確認できる事実のみを取り上げています。内容が古くなっている場合は、issue を作成してください。

FaucetPostgRESTHasuraDreamFactorySupabase
主な APIREST + OpenAPI 3.1 に加え、組み込みの /mcp MCP エンドポイントRESTGraphQL を最優先RESTREST(PostgREST 経由)、リアルタイム機能、認証、ストレージ
データベースPostgreSQL、MySQL、MariaDB、SQL Server、Oracle、Snowflake、SQLitePostgreSQLPostgreSQL と、コネクター経由のその他のデータソース多数の SQL および NoSQL データソースPostgreSQL
管理 UIバイナリに組み込みなしコンソールWeb 管理アプリStudio
実行方法単一の Go バイナリ。設定は組み込みの SQLite に保存単一のバイナリエンジンと Postgres メタデータデータベース(v2)PHP/Laravel アプリケーションホステッドプラットフォーム、または複数サービスで構成される Docker スタックをセルフホスト
ライセンスMITMITApache 2.0(graphql-engine リポジトリ)Apache 2.0(オープンソース版)。有料版も利用可能Apache 2.0

FAQ

Faucet とは何ですか? Faucet は、SQL データベースを REST API と AI エージェント向けの MCP サーバーに変換する、オープンソース(MIT)の単一 Go バイナリです。PostgreSQL、MySQL、MariaDB、SQL Server、Oracle、Snowflake、SQLite をサポートし、RBAC、OpenAPI 3.1 仕様、組み込みの管理 UI を備えています。

Faucet がサポートするデータベースは何ですか? 7 種類です。PostgreSQL、MySQL、MariaDB(MySQL ドライバー経由)、SQL Server、Oracle、Snowflake、SQLite です。バージョンとデータベース別のチュートリアルについては、サポート対象のデータベースを参照してください。

Claude Code または Claude Desktop をデータベースに接続するにはどうすればよいですか? faucet serve を実行し、管理 UI でデータベースを接続して API キーを作成します。次に、claude mcp add --transport http faucet http://localhost:8080/mcp --header "X-API-Key: YOUR_API_KEY" を実行します。Claude Desktop では mcp-remote ブリッジを使用します。Claude Desktopを参照してください。

Cursor、VS Code、Windsurf を接続するにはどうすればよいですか? X-API-Key ヘッダーを指定した HTTP MCP サーバーとして http://localhost:8080/mcp を追加します。コピーして貼り付けられる設定は、Cursor、VS Code、Windsurfと管理 UI の AI agents (MCP) ページにあります。

ChatGPT をデータベースに接続するにはどうすればよいですか? Faucet を HTTPS 経由で公開し、読み取り専用ロールの API キーを作成します。次に、API キー認証(ヘッダー X-API-Key)を使用して https://your-host/openapi.json をインポートする Custom GPT Action を追加します。ChatGPT コネクターには OAuth が必要ですが、Faucet はサポートしていません。

Faucet を Base44、Replit、その他の AI アプリビルダーで使用できますか? はい。Faucet を HTTPS 経由で公開し、スコープを限定した API キーを作成します。次に、カスタム MCP サーバーとして X-API-Key ヘッダーとともに https://your-host/mcp を追加するか、アプリから REST API(/api/v1/...)と OpenAPI 仕様(/openapi.json)を呼び出します。

Faucet はセルフホストできますか?データはどこに保存されますか? はい。Faucet は実行した場所(ノート PC、オンプレミスデータベースの近くにあるサーバー、コンテナーなど)で動作し、データベースと直接通信します。行データが別の場所にコピーされることはありません。Faucet 自体の設定(接続、ロール、API キー、管理者アカウント)は、データディレクトリ内の組み込み SQLite ファイルに保存されます(デフォルトは ~/.faucet、Docker では /data)。匿名の使用状況テレメトリーについては、無効にする方法とともに TELEMETRY.mdで説明しています。

Faucet は無料ですか? はい。Faucet はMIT ライセンスのオープンソースであり、コア機能に有料プランはありません。

Faucet は PostgREST とどう違いますか? PostgREST がサポートするのは PostgreSQL のみです。Faucet は 7 種類のデータベース(PostgreSQL、MySQL、MariaDB、SQL Server、Oracle、Snowflake、SQLite)をサポートし、組み込みの管理 UI と AI エージェント向けのネイティブ MCP サポートを備えています。これらすべてを単一のバイナリで提供します。 Faucet は Hasura とどう違いますか? Hasura は GraphQL を中心としています。Faucet は REST API と OpenAPI 3.1 仕様を生成し(GraphQL ではありません)、設定を組み込み SQLite ファイルに保存する単一バイナリとして動作し、AI エージェント向けの MCP サーバーを内蔵しています。

Faucet は DreamFactory とどう違いますか? DreamFactory は、PHP を使うウェブサーバースタック上で動作する PHP/Laravel アプリケーションです。Faucet は、ランタイム依存関係のない単一の Go バイナリです。Faucet はすべての機能を含めて MIT ライセンスのもとで完全なオープンソースとして提供され、コア機能を利用するために有料プランは必要ありません。

Faucet は Supabase とどう違いますか? Supabase は PostgreSQL プラットフォーム(データベース、認証、ストレージ、リアルタイム機能)で、ホスト版を使うか、複数のサービスとしてセルフホストします。Faucet はデータをホストしません。すでに利用しているデータベース(MySQL、SQL Server、Oracle、Snowflake、SQLite など)の前段に REST API と MCP サーバーを配置します。

Faucet は GraphQL に対応していますか? 現在は対応していません。Faucet は REST API と OpenAPI 3.1 仕様を生成します。今後、GraphQL に対応する可能性があります。

Faucet は本番環境で使用できますか? Faucet は現在も積極的に開発されています。内部ツール、プロトタイピング、AI エージェントとの連携に適しています。最新バージョンについては、リリースページをご確認ください。

AI エージェントは Faucet を通じてデータを書き込めますか? はい。MCP ツールには faucet_insert、faucet_update、faucet_delete が含まれています。すべての操作で RBAC ロールが適用されるため、テーブルごとに AI エージェントへ読み取り専用または読み書きアクセスを付与できます。サービスで許可し、すべての動詞を付与しない限り、未加工の SQL は無効です。

Faucet の設定に専用データベースは必要ですか? いいえ。Faucet は、すべての設定、認証情報、ロール、API キーに組み込み SQLite データベースを使用します。すべてが単一のファイルにローカル保存されます。


ソースからのビルド

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

技術スタック

  • Go 1.25+ — Chi ルーター、sqlx、Cobra/Viper CLI
  • Preact + Vite + Tailwind — 組み込み管理 UI
  • SQLite(純粋な Go、CGO 不要)— 設定ストア
  • MCP(Model Context Protocol)— AI エージェントとの連携

ドキュメント

ドキュメント全文は wiki.faucetdb.ai にあります。

コントリビューション

コントリビューションを歓迎します!ガイドラインについては CONTRIBUTING.md をご覧ください。バグの報告や機能のリクエストは、issueを作成してください。

ライセンス

MIT — 商用・個人利用ともに無料です。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。