Malloy Publisher MCP
Malloy Publisher отдает одну модель данных агентам по MCP и приложениям по REST, запросы идут на Malloy
- 132 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Сервер читает подключенные базы и склады данных и отдает агентам результаты запросов, поэтому права подключения определяют, что агент увидит
- Контроль доступа держится на шлюзе перед сервером, без него пользователей никто не различает
Установка
- Работает в
Ручная установка
npx @malloy-publisher/server@latest --port 4000Откройте `http://localhost:4000`: примеры на DuckDB работают без учетных данных.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Сервер читает подключенные базы и склады данных и отдает агентам результаты запросов, поэтому права подключения определяют, что агент увидит
- Контроль доступа держится на шлюзе перед сервером, без него пользователей никто не различает
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Сервер аналитики для языка Malloy. Вы описываете смысл данных: источники, соединения, меры и права доступа. Агент строит модель с помощью поставляемых скиллов, а Publisher отдает ее по MCP в Claude, Cursor и Codex и по REST приложениям и BI-инструментам. Запросы пишутся на Malloy и идут к модели, сырых таблиц они не касаются, поэтому нет неверных соединений и выдуманных столбцов, а один и тот же вопрос завтра дает те же числа. В одном сервере собраны моделирование, движок запросов, материализация, управление доступом и API. DuckDB встроен для CSV, Parquet, JSON и Excel, подключения есть к BigQuery, Snowflake, Postgres, Databricks и MotherDuck. Аннотации `#(authorize)` и `#(access_filter)` решают, кто что видит, `#@ persist` материализует дорогой источник в таблицу.
Для кого. Аналитикам и разработчикам, которые хотят дать агентам и BI-инструментам одну проверенную модель данных и отказаться от ручного SQL.
Подходит, если
- Агент пишет SQL с неверными соединениями, и нужна модель, исключающая выдуманные столбцы
- Одни и те же метрики должны одинаково считаться в чате, отчетах и приложениях
- Нужно разграничить доступ: кто какие строки видит, через `#(access_filter)`
- Дорогой источник надо материализовать по расписанию одной аннотацией `#@ persist`
Не подходит, если
- Данные описаны только в SQL и dbt, и переписывать их в Malloy не планируется
- Нужен публичный сервис без шлюза: контроль доступа рассчитан на микросервис за вашим шлюзом
- Node.js 20 установить нельзя: сервер отказывается стартовать на более старой версии
Пример запроса к агенту
Подключись к Malloy Publisher и покажи выручку по месяцам из модели storefront без собственного SQLMCP
- Транспорт
- http
- Авторизация
- не нужна
Переменные окружения
MCP_PORT- Порт MCP, по умолчанию 4040
Ограничения
- Нужен Node.js 20 или новее, сервер на более старой версии не запускается. Для сборки из клона нужен Bun 1.3.13 или новее, образ Docker приносит свою среду.
- Контроль доступа рассчитан на микросервис за вашим шлюзом, который аутентифицирует пользователей и задает значения `givens`: сам сервер пользователей не проверяет.
- Файл `.mcp.json` сервер пишет не везде: в рабочем дереве git, домашнем каталоге и каталоге с готовым `.mcp.json` он пропускает запись и сообщает в журнале.
- Первый запуск примеров загружает пакеты из GitHub.
- Для Cursor, VS Code, Codex и Claude Desktop адрес MCP `http://localhost:4040/mcp` указывается в их собственной конфигурации.
Как отключить. Остановите процесс сервера и удалите `.mcp.json`, который он создал. Для Claude Code выполните `claude mcp remove malloy -s user`. Пакеты и модели лежат в вашей папке проекта.
Частые вопросы
Как подключить Malloy Publisher к Claude Code?
Запустите сервер и выполните `claude mcp add --transport http malloy http://127.0.0.1:4040/mcp -s user`. Другие клиенты используют тот же адрес.
Как попробовать без своих данных?
Выполните `npx @malloy-publisher/server@latest --port 4000` и откройте `http://localhost:4000`: есть три примера, `storefront`, `governed-analytics` и `html-data-app`, на DuckDB без учетных данных.
Как создать пакет со своими данными?
Выполните `npm create @malloy-publisher/malloy-package@latest sales` и `npm start`. Команда создает пакет и небольшое рабочее пространство в текущей папке.
Какие базы поддерживаются?
DuckDB встроен для CSV, Parquet, JSON и Excel. Остальные подключаются: BigQuery, Snowflake, Postgres, Databricks, MotherDuck и другие.
Как поставить скиллы Malloy?
Выполните `npx -y @malloy-publisher/skills@latest install`: скиллы копируются в проект. Прочитать их без установки можно по ссылке на unpkg.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер платформы Duckle: агент собирает, проверяет и запускает ETL-пайплайны на DuckDB на вашей машине
DuckDB / MotherDuck MCP Server
DuckDB / MotherDuck Local MCP Server
MCP-сервер для SQL-аналитики на DuckDB: локальные файлы, база в памяти, базы на S3 и MotherDuck
MCP-сервер text-to-SQL: агент спрашивает базу словами, получает SQL и трассу ответа, а при нехватке данных отказ с причиной.
Плагин Dex: агент изучает базу, строит модели dbt и семантический слой и следит за дрейфом схем с контролем затрат
Временная песочница на DuckDB: агент загружает CSV и запрашивает данные по MCP или REST, не трогая боевую базу
MCP-сервер Byaan передает Claude Code и Cursor вопросы к вашим базам данных и возвращает запросы с результатами в режиме чтения.
Коротко о README
README объясняет, что один сервер заменяет пять проектов: моделирование, движок запросов, материализацию, доступ и API. Далее идут требования, запуск примеров, создание своего пакета и подключение агентов по MCP.