PluginBench
MCP Server
Active
MIT

Mako MCP Server

io.github.mako-ai/mako

AI-native SQL client for querying databases, building dashboards, and creating data apps in your browser.

What is the Mako MCP server?

Mako is an AI-native SQL client that lets you explore databases, write queries in natural language, and build interactive dashboards and React apps. It replaces traditional database tools like DataGrip and BI platforms like Metabase with a fast, browser-based, AI-powered experience supporting 9+ databases and 8+ data connectors.

Mako is a modern SQL client built for the AI era. Connect to any database (PostgreSQL, MongoDB, BigQuery, ClickHouse, MySQL, Redshift, etc.), query with plain English via AI, and turn results into interactive dashboards with cross-filtering and scheduled refresh. It also supports dbt transforms, React app generation, and team collaboration—all from your browser without desktop bloat.

How to install Mako

Copy-paste configuration for popular MCP clients.

transport: http
Config generated by PluginBench — verify against the source before use.
~/.cursor/mcp.json
{
  "mcpServers": {
    "mako": {
      "url": "https://app.mako.ai/api/mcp"
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • AI Query Generation — Write queries in natural language; schema-aware AI generates optimized SQL instantly
  • AI Dashboards — Build interactive dashboards from conversation with cross-filtering, scheduled data refresh, and Parquet materialization powered by DuckDB
  • dbt Transforms — Build, run, and schedule dbt Core projects in-app with file IDE, jobs, run history, and lineage
  • React Apps — Ask the agent to build live React apps wired to your data through secure, credential-free bindings
  • Version History — Every console and dashboard save is an immutable snapshot you can browse and restore
  • Database Explorer — Explore schema and data across 9+ supported databases
  • SQL Validation — Validate SQL queries before execution
  • Data Connectors — Sync external SaaS data (Stripe, PostHog, Close.com, Calendly, GraphQL, REST APIs) into the data warehouse

Use cases

  • Write SQL queries in plain English and get instant results without manual SQL syntax
  • Build interactive dashboards with cross-filtering and scheduled data refresh from natural language descriptions
  • Explore and analyze data from multiple databases (PostgreSQL, BigQuery, MongoDB, etc.) in a single interface
  • Create live React apps connected to your database data without writing backend code
  • Build and schedule dbt transformation projects with a visual IDE and job history

Mako MCP server FAQ

What is Mako?

Mako is an AI-native SQL client that replaces traditional database tools and BI platforms. You connect to any database, query in plain English via AI, build interactive dashboards, and create React apps—all from your browser.

Is Mako free?

Mako is open source and self-hostable. A cloud version is available at app.mako.ai; check their website for pricing details.

How do I install Mako in Cursor or Claude?

Mako is available as an MCP server via remote HTTP at https://app.mako.ai/api/mcp. Add this URL to your Cursor or Claude MCP configuration to connect.

What databases does Mako support?

Mako supports PostgreSQL, MongoDB, BigQuery, ClickHouse, MySQL, Redshift, Google Cloud SQL, Cloudflare D1, and Cloudflare KV, plus 8+ data connectors (Stripe, PostHog, Close.com, Calendly, GraphQL, REST, etc.).

Do I need to provide database credentials?

Yes, you connect Mako to your database by providing connection credentials. Mako also supports IP whitelisting (static IP: 34.79.190.46) for restricted databases.

Can I use Mako for team collaboration?

Yes, Mako supports team collaboration with shared connections, version-controlled queries, and real-time collaboration features.

README (reference)

Source of truth, from the repository.

<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

🚀 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

Transforms (dbt) — build, run, and schedule dbt Core projects with a file IDE, jobs, run history, and lineage.

dbt Transforms IDE

Apps — build live React apps wired to your data, rendered in a sandboxed preview.

React Apps live preview

🔌 Integrations

Databases

IntegrationStatusDescription
PostgreSQL✅ LiveConnect to PostgreSQL for relational data queries
MongoDB✅ LiveConnect to MongoDB for flexible document-based data
BigQuery✅ LiveAnalyze large datasets with Google BigQuery
ClickHouse✅ LiveFast OLAP queries on ClickHouse
MySQL✅ LiveQuery MySQL databases with natural language
Redshift✅ LiveQuery Amazon Redshift data warehouses
Cloud SQL✅ LiveConnect to Google Cloud SQL (Postgres)
Cloudflare D1✅ LiveQuery Cloudflare D1 SQLite databases
Cloudflare KV✅ LiveBrowse and query Cloudflare Workers KV

Data Connectors

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

IntegrationStatusDescription
Stripe✅ LiveTrack payments, subscriptions, and billing data
PostHog✅ LiveAnalyze product analytics and user behavior
Close.com✅ LiveSync CRM data (leads, opportunities, activities)
Claap✅ LiveSync recordings and workspace data
Calendly✅ LiveSync events, invitees, and event types
GraphQL✅ LiveQuery any GraphQL API with custom endpoints
REST✅ LiveQuery any REST API with custom endpoints
BigQuery✅ LiveSync 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
DASHBOARD_ARTIFACT_STORE=filesystem

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

Google Cloud Storage

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

See the docs for full GCS/S3 provisioning instructions.

🛠️ Quick Start

  1. Clone & Install

    git clone https://github.com/mako-ai/mako.git
    cd mako
    pnpm install
    
  2. Configure Environment Copy .env.example (if available) or create .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

    # 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

CommandDescription
pnpm run devStart API, frontend, and Inngest dev server
pnpm run app:dev:scanStart the frontend with React Scan and render debug logging
pnpm run syncRun the interactive sync tool
pnpm run migrateRun database migrations
pnpm run docker:upStart the local notebook Python kernel (run notebook code cells)
pnpm run testRun test suite
pnpm run buildBuild all packages
pnpm run docs:devStart 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:

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


<p align="center"> Built with ❤️ by the Mako Team. Open Source and self-hostable. </p>

Related MCP servers

China inbound travel MCP: search hotels, flights, attractions, plan itineraries, get travel tips

View repository →

Package risk checks: maintenance, licence, advisories. Paid per call in USDC, no signup.

0
JavaScript
MIT
View repository →

DACH accounting for AI: connect sevDesk & Lexoffice to create invoices, contacts, vouchers.

0
TypeScript
View repository →

XRechnung & ZUGFeRD: create, validate, and convert German e-invoices. EN 16931 compliant.

2
TypeScript
View repository →

Advanced analytics, reporting, and safe mutations for Zebrunner. 64 tools, 14 resources, 17 prompts.

5
TypeScript
AGPL-3.0
View repository →
SPSpendlog logo

Spendlog

Maintained

MCP server for expense tracking, invoices, budgets, and financial insights directly in Claude

1
TypeScript
MIT
View repository →