Faucet MCP
Один бинарник Go подключается к SQL-базе и отдает ее как REST API с ролями и как MCP-сервер для Claude Code, Cursor и VS Code
- 170 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Роль с глаголами записи позволяет агенту вставлять, менять и удалять строки, а инструмент DDL может создавать и удалять таблицы
- В локальной SQLite-базе лежат пароли подключенных баз и ключи доступа
- Режим stdio работает с правами администратора и обходит роли
Установка
- Работает в
Ручная установка
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-сервер для PostgreSQL с подбором индексов, планами EXPLAIN, проверкой здоровья базы и режимом только чтения
MCP-сервер Apollo: превращает заданные операции GraphQL в инструменты, через которые агент работает с вашим API
Официальный MCP-сервер Supabase: агент управляет таблицами, читает конфигурацию и данные проектов после входа через OAuth
Шлюз на Pingora превращает существующие HTTP-сервисы по описанию OpenAPI в MCP-серверы без правки их кода
MCP-сервер и плагин для агентов генерируют веб-API из спецификаций OpenAPI, AsyncAPI, GraphQL, gRPC и SQL на ядре Rust.
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Faucet (эта карточка) | нет | API-ключ | 170 | |
| DBHub | нет | не нужна | 3 795 | экономный по токенам MCP-сервер для баз с режимом только чтения, без REST API и ролей |
| MCP Toolbox for Databases | да | не нужна | 16 820 | открытый MCP-сервер Google для баз с готовыми инструментами и собственными в `tools.yaml` |
| Supabase MCP Server | да | OAuth | 2 995 | официальный MCP-сервер Supabase с входом через OAuth для управления проектами Supabase |
Коротко о README
Документ представляет Faucet как шлюз между SQL-базами и REST/MCP, показывает схему работы и снимки админ-панели. Дальше идут возможности по разделам безопасности и разработки, таблица поддерживаемых баз, быстрый старт за минуту, настройка MCP для разных клиентов и справочник команд. Заканчивается README сравнением с PostgREST, Hasura, DreamFactory и Supabase, вопросами и сборкой из исходников.