Mako について
Mako はデータチーム向けの AI ネイティブな SQL クライアントで、ブラウザーからデータベースに接続し、データの照会やデータアプリの作成ができます。自然言語による SQL 生成に加え、dbt のワークフローや React アプリ、チーム共同作業を備えています。
主な機能
- 01自然言語からの SQL 生成
- 02複数のデータベースとデータソースへの接続
- 03React データアプリの作成と公開
- 04dbt 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 アプリ:エージェントに、セキュアで認証情報不要のバインディングを通じてデータに接続するライブ React アプリを構築させることができます。Parquet の定期的なマテリアライズに対応し、ブラウザー内の DuckDB でクエリを実行します。
- 置き換え対象:Metabase、Looker、Lovable、v0、社内ツールビルダー
- 🕓 バージョン履歴:コンソールを保存するたびに変更不可のスナップショットが作成され、アプリは Git で管理されます。どちらも履歴を確認して復元できます。
- 置き換え対象:紛失した SQL ファイル、手動バックアップ
- 🖥️ Mako Desktop:ローカルエージェントをバンドルしたネイティブアプリで、
localhostのデータベースをすぐに利用できます。- 置き換え対象:ローカル DB 用の 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:SQL コンソール用の VS Code のエディターです
- Vercel AI SDK:複数のプロバイダーに対応する LLM 抽象化レイヤーです(OpenAI、Anthropic、Google)
📦 アーティファクトストレージ
アプリのデータバインディング(およびアプリのデプロイ、dbt の出力、チャットの添付ファイル)は、バックエンドのアーティファクトストアにマテリアライズされます。以下の設定名はアプリ機能より前から存在しており、すでに削除されたダッシュボード機能に由来します。既存のデプロイが引き続き動作するよう、そのまま維持されています。ストレージバックエンドは 3 種類あります。
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
この IP は、Mako のクラウドサービスがすべての外部データベース接続に使用します。
💻 開発コマンド
| コマンド | 説明 |
|---|---|
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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。