Publisher is the open-source semantic model server for Malloy. It serves Malloy models through REST and MCP APIs, enabling consistent data access for applications, tools, and AI agents.
git clone https://github.com/credibledata/malloy-samples.git
cd malloy-samples
npx @malloy-publisher/server --port 4000 --server_root .Open http://localhost:4000 to explore the sample models.
Full documentation is available at docs.malloydata.dev/documentation/user_guides/publishing:
- Getting Started - Setup, deployment options, configuration
- Database Connections - BigQuery, Snowflake, Postgres, DuckDB, and more
- Explorer - No-code visual query builder
- REST API - Build custom applications
- Publisher SDK - Embed analytics in React apps
- MCP for AI Agents - Connect Claude and other AI assistants
The core compiler and query execution engine. Malloy compiles .malloy files into SQL, executes queries against databases, and returns structured Result objects. Malloy is a pure JavaScript/TypeScript library with no UI or serving capabilities—it's the foundation everything else builds on.
Repository: github.com/malloydata/malloy
A visualization library that transforms Malloy Result objects into interactive tables, charts, and dashboards.
When Malloy executes a query, the result includes both data and rendering hints—tags like # bar_chart or # line_chart that indicate how the data should be displayed. Malloy Render interprets these tags and produces the appropriate visualization.
Built with: SolidJS and Vega/Vega-Lite. Available as both a JavaScript API (MalloyRenderer) and a <malloy-render> web component.
Repository: github.com/malloydata/malloy/packages/malloy-render
An open-source semantic model server for Malloy. Publisher makes Malloy models accessible over the network and provides a professional UI for data exploration.
- Server: REST API for listing content, managing database connections, compiling models, and executing queries. Also provides an MCP API for AI agent integration.
- App: Web interface for browsing Malloy content, exploring models with a no-code query builder, and viewing results.
A React component library for building custom data applications powered by Publisher:
- API communication — Talks to the Publisher Server via REST
- Query execution — Submits queries and retrieves results
- Result visualization — Integrates Malloy Render to display results
- UI components — Pre-built pages for browsing projects, packages, models, and notebooks
The Publisher App is built entirely with the SDK, but the SDK is a standalone NPM package for building your own applications.
Publisher consists of four packages:
| Package | Description |
|---|---|
| packages/server | Express.js backend providing REST API (port 4000) and MCP API (port 4040). Loads Malloy packages, compiles queries, executes against databases. |
| packages/sdk | React component library for building UIs that consume Publisher's REST API. |
| packages/app | Reference implementation and production-ready data exploration tool built with the SDK. |
| packages/python-client | Auto-generated Python SDK for the REST API. |
This project uses bun as the JavaScript runtime.
git submodule init && git submodule update # Get malloy-samples
bun install
bun run build:server-deploy
bun run start # Production serverbun run start:dev # Dev server with watch
bun run test # Run tests
bun run lint && bun run format # Code quality- Join the Malloy Slack
- Report issues on GitHub