Back to the catalog

Mako

Explore your databases, validate SQL, and build & publish data apps in your Mako workspace.

Open source Repository Open in the app JSON README (API)

About

Explore your databases, validate SQL, and build & publish data apps in your Mako workspace.

Details

Kind
MCP servers
Topic
Databases
Publisher
mako-ai
Origin
official
Category
ferramentas
Transport
http
Version
1.0.0
Stars
14
Forks
6
Open pull requests
7
Last push
2026-09-04T12:15:19Z
Repository state
ativo
Language
TypeScript
License
MIT
Added
2026-08-31 13:00:08
Updated
2026-08-31 13:00:08
Origin id
io.github.mako-ai/mako

README

<h1 align="center">
  <img src="./app/public/mako-icon.svg" alt="Mako Logo" width="40" height="35" style="vertical-align: middle; margin-right: 10px;">
  Mako
</h1>

<p align="center"><strong>The AI-native SQL Client.</strong></p>

> **The Cursor for Data.** Connect to any database, query with AI, and build live dashboards -- all from your browser.

Stop wrestling with complex SQL and slow, bloated database tools. Write queries in plain English, get instant results, and turn them into interactive dashboards with cross-filtering and scheduled refresh.

![Mako App Interface](./.github/screenshots/app-screenshot.png)

## ๐Ÿš€ Why Mako?

A modern SQL client built for the AI era, replacing slow desktop tools with a fast, collaborative, AI-powered experience.

- **โœจ AI Query Generation**: Write queries in natural language. Our schema-aware AI generates optimized SQL instantly.
  - _Replaces: DataGrip, DBeaver, Postico_
- **๐Ÿ“Š AI Dashboards**: Build interactive dashboards from conversation. Cross-filtering, scheduled data refresh, Parquet materialization -- powered by DuckDB in the browser.
  - _Replaces: Metabase, Looker, manual BI pipelines_
- **๐Ÿงฑ dbt Transforms**: Build, run, and schedule dbt Core projects in-app -- file IDE, jobs, run history, lineage, and GitHub sync.
  - _Replaces: dbt Cloud_
- **โš›๏ธ React Apps**: Ask the agent to build live React apps wired to your data through secure, credential-free bindings.
  - _Replaces: Lovable, v0, internal-tool builders_
- **๐Ÿ•“ Version History**: Every console and dashboard save is an immutable snapshot you can browse and restore.
  - _Replaces: Lost SQL files, manual backups_
- **๐Ÿ–ฅ๏ธ Mako Desktop**: Native app that bundles a local agent so `localhost` databases work out of the box.
  - _Replaces: SSH tunnels and bastion hops for local DBs_
- **๐Ÿ‘ฅ Team Collaboration**: Share connections, version-control queries, and work together in real-time.
  - _Replaces: Passing credentials around, lost SQL files_
- **โšก Blazing Fast**: No Java or Electron bloat. Opens instantly in your browser and runs smooth.
  - _Replaces: Slow desktop database tools_

## ๐Ÿ“ธ Screenshots

**AI-powered console** โ€” ask in plain English, get a verified query and live results.

![AI-powered console](./.github/screenshots/ai-console.webp)

**Transforms (dbt)** โ€” build, run, and schedule dbt Core projects with a file IDE, jobs, run history, and lineage.

![dbt Transforms IDE](./.github/screenshots/transforms-dbt.webp)

**Apps** โ€” build live React apps wired to your data, rendered in a sandboxed preview.

![React Apps live preview](./.github/screenshots/apps.webp)

## ๐Ÿ”Œ Integrations

### Databases

| Integration           | Status  | Description                                          |
| --------------------- | ------- | ---------------------------------------------------- |
| **PostgreSQL**        | โœ… Live | Connect to PostgreSQL for relational data queries    |
| **MongoDB**           | โœ… Live | Connect to MongoDB for flexible document-based data  |
| **BigQuery**          | โœ… Live | Analyze large datasets with Google BigQuery          |
| **ClickHouse**        | โœ… Live | Fast OLAP queries on ClickHouse                      |
| **MySQL**             | โœ… Live | Query MySQL databases with natural language          |
| **Redshift**          | โœ… Live | Query Amazon Redshift data warehouses                |
| **Cloud SQL**         | โœ… Live | Connect to Google Cloud SQL (Postgres)               |
| **Cloudflare D1**     | โœ… Live | Query Cloudflare D1 SQLite databases                 |
| **Cloudflare KV**     | โœ… Live | Browse and query Cloudflare Workers KV               |

### Data Connectors

Sync external SaaS data into Mako's data warehouse for querying and dashboards.

| Integration    | Status  | Description                                      |
| -------------- | ------- | ------------------------------------------------ |
| **Stripe**     | โœ… Live | Track payments, subscriptions, and billing data  |
| **PostHog**    | โœ… Live | Analyze product analytics and user behavior      |
| **Close.com**  | โœ… Live | Sync CRM data (leads, opportunities, activities) |
| **Claap**      | โœ… Live | Sync recordings and workspace data               |
| **Calendly**   | โœ… Live | Sync events, invitees, and event types           |
| **GraphQL**    | โœ… Live | Query any GraphQL API with custom endpoints      |
| **REST**       | โœ… Live | Query any REST API with custom endpoints         |
| **BigQuery**   | โœ… Live | Sync BigQuery datasets into the warehouse        |

## ๐Ÿ—๏ธ Architecture

```
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Frontend (React + Vite)                                โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚ Console  โ”‚ โ”‚  Dashboards  โ”‚ โ”‚   AI Chat (Vercel   โ”‚ โ”‚
โ”‚  โ”‚ (Monaco) โ”‚ โ”‚  (DuckDB +   โ”‚ โ”‚    AI SDK)          โ”‚ โ”‚
โ”‚  โ”‚          โ”‚ โ”‚   Mosaic)    โ”‚ โ”‚                     โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚           โ–ฒ          โ–ฒ                   โ–ฒ              โ”‚
โ”‚           โ”‚     Parquet/Arrow            โ”‚              โ”‚
โ”‚           โ”‚     via OPFS cache           โ”‚              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
            โ”‚          โ”‚                  โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  API (Hono + Node.js)                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ Unified Agent (expertise modes: Query /          โ”‚  โ”‚
โ”‚  โ”‚   Dashboard / Sync Flow / React App / Transforms โ”‚  โ”‚
โ”‚  โ”‚   / Explore, switched via enable_mode)           โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  DB Drivers   โ”‚ โ”‚  Connectors   โ”‚ โ”‚  Dashboard   โ”‚  โ”‚
โ”‚  โ”‚  (9 drivers)  โ”‚ โ”‚  (8 sources)  โ”‚ โ”‚  Engine      โ”‚  โ”‚
โ”‚  โ”‚              โ”‚ โ”‚               โ”‚ โ”‚  (DuckDB     โ”‚  โ”‚
โ”‚  โ”‚              โ”‚ โ”‚               โ”‚ โ”‚   + Parquet) โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                          โ–ฒ                             โ”‚
โ”‚                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”                      โ”‚
โ”‚                    โ”‚  Inngest   โ”‚ (scheduled refresh,   โ”‚
โ”‚                    โ”‚            โ”‚  incremental sync)    โ”‚
โ”‚                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
            โ”‚                โ”‚
     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
     โ”‚  MongoDB    โ”‚  โ”‚  User DBs      โ”‚
     โ”‚  (metadata, โ”‚  โ”‚  (PG, BQ, CH,  โ”‚
     โ”‚   warehouse)โ”‚  โ”‚   MySQL, etc.) โ”‚
     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```

**Key technology choices:**
- **DuckDB** (both server-side via `@duckdb/node-api` and browser-side via `@duckdb/duckdb-wasm`): powers dashboard SQL execution, Parquet artifact generation, and in-browser cross-filtering with OPFS caching
- **Mosaic** (`@uwdata/mosaic-core`): coordinates cross-filtering across dashboard widgets
- **Apache Arrow / Parquet**: server materializes query results into Parquet, served to browser as Arrow IPC for zero-copy rendering
- **Inngest**: event-driven job queues for scheduled dashboard refresh and incremental data sync
- **Hono**: lightweight, fast HTTP framework for the API
- **Monaco Editor**: VS Code's editor for the SQL console
- **Vercel AI SDK**: multi-provider LLM abstraction (OpenAI, Anthropic, Google)

## ๐Ÿ“Š Dashboard Engine

Dashboards are a core feature. The AI agent creates interactive dashboards from natural language:

1. **Agent creates a dashboard spec** with widgets, layouts, and SQL queries
2. **Server materializes** query results into Parquet artifacts (stored on filesystem, GCS, or S3)
3. **Browser loads** Parquet data into DuckDB-WASM, cached in OPFS for instant reloads
4. **Mosaic cross-filtering** lets users click on one chart to filter all others
5. **Inngest cron** keeps data fresh with scheduled re-materialization and stale-run detection

### Dashboard Artifact Storage

Dashboard materialization stores Parquet artifacts on the backend. Three storage backends:

- `filesystem` -- default; stores files on local disk
- `gcs` -- Google Cloud Storage
- `s3` -- S3-compatible bucket

```env
DASHBOARD_ARTIFACT_STORE=filesystem

# Optional shared settings
DASHBOARD_ARTIFACT_PREFIX=dashboards
DASHBOARD_ARTIFACT_DIR=/absolute/path/to/artifacts  # filesystem only
```

#### Google Cloud Storage

```env
DASHBOARD_ARTIFACT_STORE=gcs
GCS_DASHBOARD_BUCKET=your-bucket-name
DASHBOARD_ARTIFACT_PREFIX=dashboard-artifacts/prod
```

See the [docs](https://docs.mako.ai) for full GCS/S3 provisioning instructions.

## ๐Ÿ› ๏ธ Quick Start

1. **Clone & Install**

   ```bash
   git clone https://github.com/mako-ai/mako.git
   cd mako
   pnpm install
   ```

2. **Configure Environment**
   Copy `.env.example` (if available) or create `.env`:

   ```env
   # Local development connects to the shared `dev` database, an Atlas DB that is
   # refreshed nightly from production. Grab the `dev` connection string from the
   # team vault. (`staging` backs non-migration PR previews; never point local at
   # `production`.)
   DATABASE_URL=mongodb+srv://<user>:<password>@<cluster>.mongodb.net/dev
   ENCRYPTION_KEY=your_32_character_hex_key_for_encryption
   WEB_API_PORT=8080
   BASE_URL=http://localhost:8080
   CLIENT_URL=http://localhost:5173
   ```

3. **Start Services**

   ```bash
   # Start the local notebook Python kernel so notebook `code` cells run
   # locally. Requires the KERNEL_* vars from .env.example in your .env.
   # (The dev database is hosted MongoDB Atlas, set via DATABASE_URL.)
   pnpm run docker:up

   # Start the full stack (API + App + Inngest)
   pnpm run dev
   ```

4. **Analyze**
   - Open **http://localhost:5173** to access the app.
   - Add a Data Source (e.g., Stripe or Close.com).
   - Use the chat interface to ask questions about your data.

## ๐ŸŒ IP Whitelisting

If your database requires IP whitelisting, add the following static IP to your allowlist:

```
34.79.190.46
```

This IP is used by Mako's cloud service for all outbound database connections.

## ๐Ÿ’ป Development Commands

| Command                 | Description                                                   |
| ----------------------- | ------------------------------------------------------------- |
| `pnpm run dev`          | Start API, frontend, and Inngest dev server                   |
| `pnpm run app:dev:scan` | Start the frontend with React Scan and render debug logging   |
| `pnpm run sync`         | Run the interactive sync tool                                 |
| `pnpm run migrate`      | Run database migrations                                       |
| `pnpm run docker:up`    | Start the local notebook Python kernel (run notebook code cells) |
| `pnpm run test`         | Run test suite                                                |
| `pnpm run build`        | Build all packages                                            |
| `pnpm run docs:dev`     | Start documentation site locally                              |

## ๐Ÿ”Ž React Performance Profiling

Use React Scan when working on render churn, streaming chat responsiveness, Monaco console performance, or explorer/result table interactions:

```bash
pnpm run app:dev:scan
```

This enables the React Scan Vite plugin via `VITE_REACT_SCAN=true` and turns on Mako's render-debug logs via `VITE_RENDER_DEBUG=true`. React Scan highlights components that re-render in the browser, while render-debug logs summarize why hot components such as `Chat`, `ResourceTree`, `Console`, and `ResultsTable` changed.

Keep React Scan off during normal development. The plugin and debug hooks are gated behind env flags so regular `pnpm run app:dev` runs without profiling overlays or extra debug logging.

## ๐Ÿค Community & Support

- **Documentation**: [docs.mako.ai](https://docs.mako.ai)
- **GitHub**: [mako-ai/mako](https://github.com/mako-ai/mako)
- **Website**: [mako.ai](https://mako.ai)

---

<p align="center">
  Built with โค๏ธ by the Mako Team. Open Source and self-hostable.
</p>

More