Faucet MCP

Один бинарник Go подключается к SQL-базе и отдает ее как REST API с ролями и как MCP-сервер для Claude Code, Cursor и VS Code

  • 170 ★ репозитория
  • Последний коммит
  • MIT
MCP-сервер

Широкий доступ

Почему такой уровень

  • Роль с глаголами записи позволяет агенту вставлять, менять и удалять строки, а инструмент DDL может создавать и удалять таблицы
  • В локальной SQLite-базе лежат пароли подключенных баз и ключи доступа
  • Режим stdio работает с правами администратора и обходит роли
Все причины и проверки

faucetdb/faucet

Установка

Ручная установка

npx @faucetdb/faucet serve

Требуется Node.js 18 или новее. После запуска откройте http://localhost:8080: мастер создаст администратора и подключит первую базу.

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Роль с глаголами записи позволяет агенту вставлять, менять и удалять строки, а инструмент DDL может создавать и удалять таблицы
  • В локальной SQLite-базе лежат пароли подключенных баз и ключи доступа
  • Режим stdio работает с правами администратора и обходит роли

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Faucet — самостоятельно запускаемый сервер на Go, который по схеме базы строит REST API и MCP-сервер на одном порту. Он работает с PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, Snowflake и SQLite. Код и ORM здесь лишние. Таблицы, столбцы и ограничения читаются на лету, и из них собираются эндпоинты CRUD, спецификация OpenAPI 3.1 и инструменты MCP. Доступ строится на ролях и ключах. Для каждой таблицы роль разрешает набор глаголов GET, POST, PUT, PATCH и DELETE, а ключ API привязан к роли. Агент приходит на `/mcp` по HTTP с заголовком `X-API-Key` и видит ровно то, что разрешено его роли. Восемь инструментов покрывают список баз и таблиц, описание таблицы, запрос с фильтрами, вставку, обновление, удаление и произвольный SQL, который доступен только администратору. Первый запуск проходит в браузере: мастер создает администратора и подключает базу, затем страница ключей API выдает готовые команды `curl` и настройку MCP с уже подставленным ключом. Встроена панель с обзором схемы, проводником запросов, который копирует запрос как curl, JavaScript или Python, и блокировкой контракта API от тихих изменений схемы.

Для кого. Разработчикам внутренних инструментов и командам, которые хотят дать ИИ-агенту управляемый доступ к существующей SQL-базе с ролями и ключами.

Подходит, если

  • Над старой базой SQL Server 2012 или MySQL 5.7 надо быстро поднять REST API без изменения самой базы
  • Claude Code или Cursor должны читать данные из PostgreSQL через роль, которой разрешен только GET
  • Несколько баз разных типов нужно собрать за одним адресом с общими ключами и ролями
  • Прототипу нужен готовый CRUD и спецификация OpenAPI, чтобы фронтенд не ждал бэкенда
  • Команда хочет заблокировать контракт API, чтобы переименование столбца в базе не ломало клиентов молча

Не подходит, если

  • Нужен GraphQL: Faucet генерирует только REST и спецификацию OpenAPI 3.1
  • Агенту надо показывать лишь строки, принадлежащие пользователю: фильтры строк записываются в правила, но к запросам пока не применяются
  • Требуется лишь чтение из одной базы без REST и панели администратора: хватит более легкого MCP-сервера для баз данных

Пример запроса к агенту

Подключись к Faucet, покажи таблицы в базе `mydb` и выведи десять последних заказов со статусом `active`

MCP

Транспорт
http, stdio
Авторизация
API-ключ

Ограничения

Автор называет проект активно развивающимся и пригодным для внутренних инструментов, прототипов и доступа агентов. Анонимная статистика уходит каждый час по умолчанию и отключается командой `faucet config set telemetry.enabled false` или переменной `FAUCET_TELEMETRY=0`. Коннекторы ChatGPT входят через OAuth, которого в Faucet нет, поэтому подключать его приходится через Custom GPT Action по HTTPS и `/openapi.json`. Произвольный SQL выключен, пока вы не разрешите его для сервиса и не выдадите роли все глаголы.

Как отключить. Удалите блок `faucet` из конфигурации MCP клиента, например командой `claude mcp remove faucet`. Сервер останавливается обычным завершением процесса; его настройки и ключи лежат в локальном файле SQLite, который удаляют вручную.

Частые вопросы

Как подключить Faucet к Claude Code?

Запустите `faucet serve`, создайте роль и ключ на странице ключей API и выполните `claude mcp add --transport http faucet http://localhost:8080/mcp --header "X-API-Key: YOUR_API_KEY"`. Страница «AI agents» в админке выдает ту же команду с подставленным ключом.

Может ли агент менять данные?

Может, если роль ключа разрешает POST, PUT, PATCH или DELETE: за запись отвечают инструменты `faucet_insert`, `faucet_update` и `faucet_delete`. Роль только с GET позволит агенту лишь читать.

Что даст режим stdio?

Команда `npx -y @faucetdb/faucet mcp` запускает сервер как подпроцесс клиента и берет базы из `~/.faucet`. Такой режим идет с правами локального администратора, роли в нем не действуют, поэтому годится только для своей машины.

Как поставить Faucet без Node.js?

Через Homebrew `brew install faucetdb/tap/faucet`, Docker `docker run -p 8080:8080 -v faucet-data:/data faucetdb/faucet`, `go install` или готовый бинарник со страницы релизов.

Где хранятся пароли баз и ключи?

В локальной встроенной базе SQLite, отдельная база для настроек не нужна. Ключи API хранятся в виде хэшей SHA-256, а JWT для сессий администратора подписаны HMAC-SHA256.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы
Официальный

Мгновенный REST и MCP поверх PostgreSQL: агент читает данные существующей базы через MCP-эндпоинт без написания бэкенда

MCP-серверРасширенный доступ4,6 тыс.Звезды репозитория

MCP-сервер для PostgreSQL с подбором индексов, планами EXPLAIN, проверкой здоровья базы и режимом только чтения

MCP-серверШирокий доступ3,5 тыс.Звезды репозитория
Официальный

MCP-сервер Apollo: превращает заданные операции GraphQL в инструменты, через которые агент работает с вашим API

MCP-серверШирокий доступ318Звезды репозитория
Официальный

Официальный MCP-сервер Supabase: агент управляет таблицами, читает конфигурацию и данные проектов после входа через OAuth

MCP-серверШирокий доступ3 тыс.Звезды репозитория

Шлюз на Pingora превращает существующие HTTP-сервисы по описанию OpenAPI в MCP-серверы без правки их кода

MCP-серверШирокий доступ185Звезды репозитория

MCP-сервер и плагин для агентов генерируют веб-API из спецификаций OpenAPI, AsyncAPI, GraphQL, gRPC и SQL на ядре Rust.

MCP-серверРасширенный доступ123Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
Faucet (эта карточка)нетAPI-ключ170
DBHubнетне нужна3 795экономный по токенам MCP-сервер для баз с режимом только чтения, без REST API и ролей
MCP Toolbox for Databasesдане нужна16 820открытый MCP-сервер Google для баз с готовыми инструментами и собственными в `tools.yaml`
Supabase MCP ServerдаOAuth2 995официальный MCP-сервер Supabase с входом через OAuth для управления проектами Supabase

Коротко о README

Документ представляет Faucet как шлюз между SQL-базами и REST/MCP, показывает схему работы и снимки админ-панели. Дальше идут возможности по разделам безопасности и разработки, таблица поддерживаемых баз, быстрый старт за минуту, настройка MCP для разных клиентов и справочник команд. Заканчивается README сравнением с PostgREST, Hasura, DreamFactory и Supabase, вопросами и сборкой из исходников.

Бейдж для README

Сообщить о проблеме

Foxx AIFaucet
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.