Rowkery Docs

Agents

Connecting to agents

Rowkery has an MCP server built in. An agent can read the databases and tables you share and nothing else. It can't change your data; a change it suggests waits for you to commit it.

Share a connection

Open the Agents page (⇧⌘A, or the Agents button at the foot of the schema column) and turn on the connection's switch. Choose how long: until you turn it off, for an hour, or for today.

Edit access narrows it to the databases, then the tables, the agent may read.

Connect your agent

Choose Connect an agent on the Agents page or in ⌘K. Rowkery shows exactly what it will run before it runs it.

Connect an agent, Claude Desktop tab: the entry Rowkery will add to claude_desktop_config.json, with Copy entry, Cancel and Run.
AgentWhat Rowkery does
Claude DesktopAdds an entry to its config file and keeps everything else in it. Reopen Claude Desktop afterwards
Claude CodeRuns claude mcp add --scope user rowkery -- …/Rowkery --mcp. Start a new session afterwards

Any other MCP client

Add Rowkery as a stdio server. Most clients take this shape:

{
  "mcpServers": {
    "rowkery": {
      "command": "/Applications/Rowkery.app/Contents/MacOS/Rowkery",
      "args": ["--mcp"]
    }
  }
}

Ask it something

Try “Which tables are in my arcade database?” or “How many orders came in yesterday?”. Each call shows up on the Agents page as it happens.

What the agent can call

ToolWhat it does
list_connectionsThe connections you share
list_databases, list_tablesWhat's shared on one connection
search_schema, describe_tableFind a column or table, and read its columns, keys and indexes
queryOne SELECT, up to 1,000 rows, stopped after 10 seconds
explainA query's plan, with the slowest step and one hint
sessionsWhat's running on the server, with values hidden
propose_change, check_proposalSuggest an insert, update or delete, then see what you decided

What gets refused

Before anything reaches your database, Rowkery refuses:

  • Writes of any kind, and more than one statement at a time
  • Tables you haven't shared
  • Queries that would read a large table from start to end
  • Functions that could affect other sessions, files on the server or its settings

The agent gets the reason back, so it can try a narrower query.

The activity log

The Agents page: three connections on the left with their sharing switches, the activity log on the right with queries, one refused.

Every call is listed, newest first and grouped by agent session. Pick one to see what was shared at the time, the request as sent and the start of the response. Responses are kept for 24 hours; the log never stores rows.

When the agent proposes a change

A toast tells you a change is waiting, and the Agents button shows a count. Open it to review:

  1. Dry run runs it in a transaction that's rolled back, showing old values struck through above the new ones.
  2. Commit ⇧⌘↵ runs it for real, only if it still changes the same rows. Or reject it.

The agent learns your decision the next time it calls check_proposal. A proposal nobody decides on expires after a day.

Sensitive columns

Choose Mark as sensitive in a column header's menu and agents only ever see a stand-in for it. They can return or count it, but not filter on it. Presenting, at the foot of the schema column, also hides those values on your screen.

Stop sharing

Turn off a connection's switch, or press Stop all sharing. It takes effect on the agent's next call.