saferow mcp lets Claude Code, Cursor and Codex use your connections through saferow’s kernel, without a password. What it is, in short.
Turn it on
- In saferow, open Settings › Integrations.
- Turn on the client you use. saferow adds one entry, named
saferow, to its config file and keeps a backup beside the file (.saferow-backup):- Claude Code:
~/.claude.json - Cursor:
~/.cursor/mcp.json - Codex:
~/.codex/config.toml
- Claude Code:
- Restart the client, or reload its MCP servers.
The entry starts /Applications/saferow.app/Contents/MacOS/saferow-mcp, so saferow should live in Applications.
Pair it
The first time the client calls a tool, saferow shows a sheet: “Claude Code wants to use saferow”, with the app that started it and who signed that app. Choose which connections it may see and press Allow this connection. Until you do, every tool answers that it is waiting for you.
On the free tier a client sees one connection and can only read; picking another moves it. With Pro it can see any number and propose changes. A connection whose agent access is off is never shown to it.
What it can do
list_connections,describe_schema,explain_query.run_query: a safe read, 100 rows by default and 1,000 at most, within 20 seconds. Personal columns come back withheld.propose_change(Pro): one to 50 statements, with a title and a reason. saferow dry-runs and counts them and holds them for you; the client gets back “Held for approval in saferow”.ledger_status: whether you approved, rejected or let a proposal expire.
What it can’t
Approve anything, see a password, or reach a connection you set to keep rows on this Mac. Its changes appear in the ledger as “MCP · Claude Code”, and its reads in Mission control’s Today.
If it doesn’t connect
- “Only saferow’s own signed saferow-mcp may connect.” The command in the config isn’t saferow’s own shim. Turn the client off and on again in Settings › Integrations to rewrite it.
- Nothing happens. Open saferow: the shim talks to the running app, and the pairing sheet appears there.
- To stop a client, Unpair it in Settings › Integrations.