Mako

السجل الرسمي البيانات وقواعدها

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

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

Remote (streamable-http)
Claude Code
claude mcp add --transport http mako 'https://app.mako.ai/api/mcp'
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "mako": {
            "type": "http",
            "url": "https://app.mako.ai/api/mcp"
        }
    }
}

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. Mako
  2. 🚀 Why Mako?
  3. 📸 Screenshots
  4. 🔌 Integrations
  5. 🏗️ Architecture
  6. 📦 Artifact Storage
  7. 🛠️ Quick Start
  8. 🌐 IP Whitelisting
  9. 💻 Development Commands
  10. 🔎 React Performance Profiling
  11. 🤝 Community & Support

Mako

The AI-native SQL Client.

The Cursor for Data. Connect to any database, query with AI, and build live data apps -- 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 live React apps with scheduled data refresh.

🚀 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
  • 🧱 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 -- scheduled Parquet materialization, queried with DuckDB in the browser.
    • Replaces: Metabase, Looker, Lovable, v0, internal-tool builders
  • 🕓 Version History: Every console save is an immutable snapshot, and apps live in git -- browse and restore either.
    • 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.

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

Apps — build live React apps wired to your data, rendered in a sandboxed 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 apps.

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  │ │  Apps        │ │   AI Chat (Vercel   │ │
│  │ (Monaco) │ │  (React +    │ │    AI SDK)          │ │
│  │          │ │   DuckDB)    │ │                     │ │
│  └──────────┘ └──────────────┘ └─────────────────────┘ │
│           ▲          ▲                   ▲              │
│           │     Parquet/Arrow            │              │
│           │     via OPFS cache           │              │
└───────────┼──────────┼──────────────────┼──────────────┘
            │          │                  │
┌───────────┼──────────┼──────────────────┼──────────────┐
│  API (Hono + Node.js)                                  │
│  ┌──────────────────────────────────────────────────┐  │
│  │ Unified Agent (expertise modes: Query /          │  │
│  │   Sync Flow / React App / Transforms /           │  │
│  │   Explore, switched via enable_mode)             │  │
│  └──────────────────────────────────────────────────┘  │
│  ┌──────────────┐ ┌───────────────┐ ┌──────────────┐  │
│  │  DB Drivers   │ │  Connectors   │ │  App binding │  │
│  │  (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 Parquet artifact generation for app bindings and in-browser SQL over them
  • 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 app binding 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)

📦 Artifact Storage

App data bindings (and app deployments, dbt outputs, and chat attachments) are materialized into an artifact store on the backend. The configuration names below predate apps -- they come from the since-removed dashboards feature -- and are kept so existing deployments keep working. 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 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


Built with ❤️ by the Mako Team. Open Source and self-hostable.

الأسئلة الشائعة

ما هو Mako؟

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

كيف أثبّت Mako؟

يعمل كخادم بعيد. في Claude Code: claude mcp add --transport http mako 'https://app.mako.ai/api/mcp'. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج Mako إلى مفتاح API؟

لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.

هل Mako مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون Mako؟

ينشره mako-ai. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.