Native Mac client + MCP server

Edit your database like a spreadsheet. AI asks first.

A fast, native client for Postgres, MySQL and six more engines. Claude, Cursor and Codex can read your data and propose changes, and nothing runs until you approve the exact SQL.

See how AI review works Coming soon to the Mac App Store

14-day free trial with everything unlocked · macOS 15 Sequoia or later · Apple silicon and Intel

Gadwal in dark mode showing the orders table of the Sample Store. Two cells you edited are highlighted, and three rows are marked as changes proposed by an AI app.
Gadwal in light mode showing the orders table with staged edits: one new row at the top, two edited cells and one row marked for deletion, waiting for Save.

Real screenshot: your edits and three AI-proposed rows, staged in the same grid.Real screenshot: a new row, two edits and a deletion, all staged until you press ⌘S.

  • PostgreSQL
  • MySQL
  • MariaDB
  • SQLite
  • DuckDB
  • Cloudflare D1
  • ClickHouse
  • BigQuery

AI review

AI proposes.
You approve the SQL.

Most database MCP servers hand the AI a connection and run whatever it sends. Gadwal stages AI writes exactly like your own edits, so you see the statement, the rows and the app that asked before anything runs.

  1. Connect the AI you already use

    Turn on the MCP server in Settings. Claude Desktop, Cursor and VS Code install in one click; Claude Code gets a command to paste and Codex a config block. No API keys, nothing leaves your Mac through Gadwal.

    Connect AI docs →

    Settings, AI & MCP tab: the MCP server is on at http://127.0.0.1:55183/mcp and running with 2 clients. The Connect AI list has rows for Claude Desktop, Claude Code, Codex, Cursor, VS Code and Other.
  2. It proposes. It doesn't execute.

    On “Ask before write” connections, every AI write lands in a Review list with the exact SQL, the rows it touches and the app that asked. Destructive statements are flagged, and Gadwal backs up the table before they can run.

    Review panel: AI clients want 3 changes on Shop – Staging. An update of 2 product prices and an insert can be approved; a DELETE from sessions is flagged Destructive and offers Back Up and Run.
  3. You approve, edit or reject

    AI changes appear next to your own in the save sheet, decided one by one. Approve it, edit the SQL first, or reject it with a reason the AI gets back. Every call is logged.

    How the MCP server works →

    The Save sheet in Gadwal: your two changes to orders are listed, and below them a change from Claude Code, “Update 3 rows in orders”, shows its exact UPDATE statement with Reject, Edit and Approve buttons.

Guardrails

You decide what each AI can see and do

Set it per connection. Production starts at Read-only, and raising it asks you to confirm.

Editing the Shop – Production connection: environment Production, AI access set to Read-only, and the columns users.password_hash and users.api_token hidden from AI.

AI levels and hidden columns

Pick Off, Read-only, Ask before write or Full for each connection. Mark columns like password hashes or tokens as hidden, and AI apps can't read, search or name them. On Postgres, also give the AI a database role that can't read them.

Four levels

Off
The AI can't see the connection at all.
Read-only
Reads run in a read-only session on the server; writes are refused. The default for Production.
Ask before write
Writes become pending changes you review, edit or reject. The default for Local, Dev and Staging.
Full
Writes run right away and are logged. Destructive statements still wait for you.

Backup before anything destructive

Before a DROP, TRUNCATE or unfiltered DELETE runs, Gadwal backs up the affected tables. BigQuery uses its built-in 7-day time travel instead.

Everything is logged

The AI Activity window records every call: the app, the connection, the SQL, whether it was executed, allowed or denied, and the rows affected. Export it to CSV.

A DELETE typed in the SQL editor on Shop – Production, and Gadwal asking “Run a statement that changes data on Shop – Production?” with Cancel and Run.

Production asks first, for you too

On a Production connection, any statement that changes data asks before it runs, even one you typed in the SQL editor.

Table editor

Spreadsheet editing, with the SQL in view

Change cells, add and delete rows, then press ⌘S. Gadwal shows every change and the SQL it will run, and commits them together in one transaction. Nothing changes by accident.

  • Filter and edit in place; Postgres tables without a primary key stay editable through a unique key or ctid
  • Structure tab for columns, indexes and foreign keys
  • Export to CSV, JSON or SQL, and import CSV
The Save 4 changes sheet with the generated SQL shown: two UPDATE statements, a DELETE and an INSERT inside one transaction.

SQL editor

A SQL editor that knows your schema

Autocomplete for tables and columns, query history, every result set from scripts and stored procedures, and a Cancel button that really stops the query on the server.

  • Postgres cancel requests and MySQL KILL QUERY, sent for you
  • BigQuery queries are dry-run first, so you see the bytes they'll scan
  • Changing data on a Production connection asks before it runs
The SQL editor with autocomplete suggesting column and table names while writing a revenue by category query, with results below.

Engines

Eight kinds of database, one window

Group connections by environment (Production, Staging, Development, Local), each with its own colour and its own AI level.

The Connections window grouping saved connections by environment: Production, Staging, Development and Local, across Postgres, ClickHouse, BigQuery, MariaDB, MySQL, D1, DuckDB and SQLite.
  • PostgreSQL

    12 to 19, including Supabase, Neon, RDS and Railway. TLS, SSH tunnels and connection poolers.

  • MySQL

    5.7 to 9.x, with caching_sha2_password, TLS and SSH tunnels.

  • MariaDB

    10 and 11, over TLS or SSH, with the same editor and WordPress mode.

  • SQLite

    Open any .sqlite file, including the local files wrangler keeps for D1.

  • DuckDB

    Open DuckDB files with the built-in parquet, json and icu functions.

  • Cloudflare D1

    Remote databases through the Cloudflare API, or wrangler's local files.

  • ClickHouse

    Over HTTP(S), self-hosted or ClickHouse Cloud, with fast streaming results.

  • BigQuery

    Service-account sign-in. Every query is dry-run first so you see the bytes it will scan.

Also in 1.0

The jobs that usually need another tool

Restore from a backup saved to iCloud Drive: Gadwal first backs up the chosen tables; orders and order_items are ticked, with their row counts.

Backups

Back up and restore by hand

Back Up Now saves a connection to a folder on your Mac or in iCloud Drive: compressed SQL per table plus a manifest with row counts and checksums. Restore the tables you pick; Gadwal backs them up first.

Backups guide →

WordPress search and replace from http://old-site.test to https://new-site.test, with a dry run of 205 replacements in 94 rows of 7 tables, listed per table and column.

WordPress

Search and replace that keeps serialized data intact

Gadwal finds the table prefix, shows posts, users, options and plugins, edits PHP-serialized values safely, and dry-runs every replace first.

WordPress editor →

Import from .env File: three database URLs found, for Postgres, MySQL and ClickHouse, each ticked for import.

Import

Bring your connections with you

Import saved connections from TablePlus, or every database URL in a project's .env. You review the list before anything is saved.

Import guide →

Privacy

Your data stays on your Mac

Gadwal's App Store privacy label is “Data Not Collected”. It only talks to the databases and cloud APIs you set up, and to Apple for your purchase.

Read the privacy policy →

  • No account. Nothing to sign up for.
  • No analytics or telemetry. We never see your queries.
  • Keychain. Passwords, API and MCP tokens stay in your Keychain.
  • Sandboxed by Apple. Built for the Mac App Store, SwiftUI-native.
  • Local MCP only. 127.0.0.1, off until you turn it on.

Pricing

Try everything.
Pay once if you keep it.

Free trial

14 days

Every feature unlocked, including AI tools and backups. Nothing charged to start or end it.

Free tier

$0

After the trial: 2 connections, 2 tabs, 1 window. Editor, SQL and WordPress mode stay free.

Compare the free tier and the unlock →

Questions, answered

Does Gadwal send my data to an AI company?

No. Gadwal has no built-in AI and no API keys. It runs a local MCP server on 127.0.0.1, and the AI app you already use on your Mac (Claude Desktop, Claude Code, Cursor, Codex or VS Code) connects to it. What that AI app sends to its own provider is between you and that provider.

Can the AI delete my data?

Not without you. DROP, TRUNCATE, DELETE or UPDATE without a WHERE clause, and similar statements, always wait for your approval, whatever level you set, and Gadwal backs up the affected tables first (BigQuery uses its built-in 7-day time travel instead).

Is the MCP server reachable from the internet?

No. It listens on 127.0.0.1 only, it is off until you turn it on, and each AI app gets its own token that you can revoke.

Do I have to use AI?

No. Gadwal is a complete database client without it: table editor, SQL editor, structure, export, backups and WordPress mode. The MCP server stays off until you turn it on.

Which Macs does it run on?

macOS 15 Sequoia or later, on Apple silicon and Intel.

What happens after the trial?

After 14 days Gadwal keeps working as a free app with 2 saved connections, 2 tabs and 1 window. AI tools and backups need the one-time unlock.

Hand your database to AI, and keep the keys.

Start with the sample database, then add your own. 14 days free, everything unlocked.

Read the docs Coming soon to the Mac App Store

14-day free trial with everything unlocked · macOS 15 Sequoia or later · Apple silicon and Intel