关于 Mako
Mako 是面向数据工作的 AI 原生 SQL 客户端,可在浏览器中连接数据库、查询数据并构建数据应用。它结合自然语言生成 SQL、dbt 工作流和 React 应用发布,并支持团队协作。
主要功能
- 01自然语言生成 SQL
- 02连接多种数据库与数据源
- 03构建并发布 React 数据应用
- 04运行和安排 dbt Core 工作
- 05查询与应用版本历史
- 06团队实时协作
适用场景
- 01用自然语言提问并检查查询结果
- 02创建定时刷新的数据应用
- 03在应用中运行 dbt 转换
- 04与团队共享连接和查询
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://app.mako.ai/api/mcpclaude mcp add --transport http mako-ai-mako https://app.mako.ai/api/mcp{"mcpServers":{"mako-ai-mako":{"type":"http","url":"https://app.mako.ai/api/mcp"}}}在 Cursor 中打开{"servers":{"mako-ai-mako":{"type":"http","url":"https://app.mako.ai/api/mcp"}}}在 VS Code 中打开{"mcpServers":{"mako-ai-mako":{"type":"http","url":"https://app.mako.ai/api/mcp"}}}{"mcpServers":{"mako-ai-mako":{"serverUrl":"https://app.mako.ai/api/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Mako
AI 原生 SQL 客户端。
数据领域的 Cursor。 连接任意数据库,借助 AI 查询,并构建实时数据应用——全部在浏览器中完成。
告别复杂难懂的 SQL 和缓慢臃肿的数据库工具。用通俗易懂的语言编写查询,即刻获取结果,还能将其转化为实时 React 应用,并按计划刷新数据。

🚀 为什么选择 Mako?
面向 AI 时代打造的现代 SQL 客户端,以快速、协作式、AI 驱动的体验取代缓慢的桌面工具。
- ✨ AI 查询生成:用自然语言编写查询。了解数据库架构的 AI 会即时生成优化后的 SQL。
- 替代:DataGrip、DBeaver、Postico
- 🧱 dbt 转换:在应用中构建、运行和安排 dbt Core 项目——包含文件 IDE、作业、运行历史记录、数据沿袭和 GitHub 同步。
- 替代:dbt Cloud
- ⚛️ React 应用:让 Agent 构建实时 React 应用,通过安全、无需凭据的绑定连接到你的数据——按计划将数据物化为 Parquet 文件,并在浏览器中使用 DuckDB 查询。
- 替代:Metabase、Looker、Lovable、v0、内部工具构建器
- 🕓 版本历史记录:每次保存控制台都会生成不可变快照,应用则存储在 git 中——可浏览并还原两者。
- 替代:丢失的 SQL 文件、手动备份
- 🖥️ Mako Desktop:原生应用,内置本地 Agent,开箱即用地支持
localhost数据库。- 替代:用于本地数据库的 SSH 隧道和堡垒机跳转
- 👥 团队协作:共享连接、对查询进行版本控制,并实时协作。
- 替代:四处传递凭据、丢失的 SQL 文件
- ⚡ 极速运行:没有 Java 或 Electron 的臃肿负担。可在浏览器中即时打开,运行流畅。
- 替代:缓慢的桌面数据库工具
📸 截图
AI 驱动的控制台——用通俗易懂的语言提问,获取经过验证的查询和实时结果。

转换(dbt)——使用文件 IDE、作业、运行历史记录和数据沿袭,构建、运行并安排 dbt Core 项目。

应用——构建连接到数据的实时 React 应用,并在沙盒预览中渲染。

🔌 集成
数据库
| 集成 | 状态 | 描述 |
|---|---|---|
| PostgreSQL | ✅ 已上线 | 连接 PostgreSQL,查询关系型数据 |
| MongoDB | ✅ 已上线 | 连接 MongoDB,查询灵活的文档型数据 |
| BigQuery | ✅ 已上线 | 使用 Google BigQuery 分析大型数据集 |
| ClickHouse | ✅ 已上线 | 在 ClickHouse 上执行快速 OLAP 查询 |
| MySQL | ✅ 已上线 | 使用自然语言查询 MySQL 数据库 |
| Redshift | ✅ 已上线 | 查询 Amazon Redshift 数据仓库 |
| Cloud SQL | ✅ 已上线 | 连接 Google Cloud SQL(Postgres) |
| Cloudflare D1 | ✅ 已上线 | 查询 Cloudflare D1 SQLite 数据库 |
| Cloudflare KV | ✅ 已上线 | 浏览并查询 Cloudflare Workers KV |
数据连接器
将外部 SaaS 数据同步到 Mako 的数据仓库,以便查询和供应用使用。
| 集成 | 状态 | 描述 |
|---|---|---|
| Stripe | ✅ Live | 跟踪付款、订阅和账单数据 |
| PostHog | ✅ Live | 分析产品数据和用户行为 |
| Close.com | ✅ Live | 同步 CRM 数据(潜在客户、商机、活动) |
| Claap | ✅ Live | 同步录制内容和工作区数据 |
| Calendly | ✅ Live | 同步活动、受邀者和活动类型 |
| GraphQL | ✅ Live | 使用自定义端点查询任意 GraphQL API |
| REST | ✅ Live | 使用自定义端点查询任意 REST API |
| BigQuery | ✅ Live | 将 BigQuery 数据集同步到数据仓库 |
🏗️ 架构
┌─────────────────────────────────────────────────────────┐
│ 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.) │
└─────────────┘ └────────────────┘
关键技术选型:
- DuckDB(通过
@duckdb/node-api在服务端运行,通过@duckdb/duckdb-wasm在浏览器端运行):为应用绑定生成 Parquet 工件,并在浏览器中对其执行 SQL 查询 - Apache Arrow / Parquet:服务端将查询结果物化为 Parquet,并以 Arrow IPC 格式提供给浏览器,实现零拷贝渲染
- Inngest:事件驱动的作业队列,用于定时刷新应用绑定和增量数据同步
- Hono:轻量、快速的 API HTTP 框架
- Monaco Editor:VS Code 的编辑器,用于 SQL 控制台
- Vercel AI SDK:多供应商 LLM 抽象层(OpenAI、Anthropic、Google)
📦 工件存储
应用数据绑定(以及应用部署、dbt 输出和聊天附件)会在后端物化到工件存储中。以下配置名称早于应用功能——它们源自现已移除的仪表板功能——并予以保留,以确保现有部署继续正常运行。提供三种存储后端:
filesystem-- 默认;将文件存储在本地磁盘gcs-- Google Cloud Storages3-- 兼容 S3 的存储桶
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
完整的 GCS/S3 配置说明请参阅文档。
🛠️ 快速开始
-
克隆并安装
git clone https://github.com/mako-ai/mako.git cd mako pnpm install -
配置环境 复制
.env.example(如果存在),或创建.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 -
启动服务
# 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 -
分析
- 打开 http://localhost:5173 访问应用。
- 添加数据源(例如 Stripe 或 Close.com)。
- 使用聊天界面提出有关数据的问题。
🌐 IP 白名单
如果数据库要求设置 IP 白名单,请将以下静态 IP 添加到允许列表:
34.79.190.46
Mako 云服务的所有出站数据库连接都会使用此 IP。
💻 开发命令
| 命令 | 描述 |
|---|---|
pnpm run dev | 启动 API、前端和 Inngest 开发服务器 |
pnpm run app:dev:scan | 使用 React Scan 启动前端,并启用渲染调试日志 |
pnpm run migrate | 运行数据库迁移 |
pnpm run docker:up | 启动本地笔记本 Python 内核(运行笔记本代码单元) |
pnpm run test | 运行测试套件 |
pnpm run build | 构建所有软件包 |
pnpm run docs:dev | 在本地启动文档站点 |
🔎 React 性能分析
在处理渲染频繁、流式聊天响应速度、Monaco 控制台性能或资源浏览器/结果表格交互时,请使用 React Scan:
pnpm run app:dev:scan
这会通过 VITE_REACT_SCAN=true 启用 React Scan Vite 插件,并通过 VITE_RENDER_DEBUG=true 开启 Mako 的渲染调试日志。React Scan 会在浏览器中突出显示重新渲染的组件,而渲染调试日志则会概述 Chat、ResourceTree、Console 和 ResultsTable 等热点组件发生变化的原因。
日常开发时请关闭 React Scan。该插件和调试钩子受环境变量控制,因此常规的 pnpm run app:dev 运行不会出现性能分析覆盖层或额外的调试日志。
🤝 社区与支持
- 文档:docs.mako.ai
- GitHub:mako-ai/mako
- 网站:mako.ai
由 Mako 团队倾情打造。开源且可自托管。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。