Rowbit MCP란?
Rowbit은(는) MCP server입니다. 사용자가 MariaDB 및 MySQL에 대한 데이터베이스 쓰기 작업을 미리 보고, 승인하고, 실행 취소할 수 있도록 하여 AI agent를 위한 안전망을 제공합니다.
프로젝트 README에서 생성된 요약
Rowbit MCP server 정보
Rowbit은 AI agent와 데이터베이스 사이에서 보호 역할을 하는 중개자이며, 특히 MariaDB 및 MySQL을 지원합니다. Model Context Protocol을 통해 쓰기 작업을 가로채어 실수로 인한 데이터 손실을 방지합니다. Agent가 데이터베이스에 직접 연결하는 대신 Rowbit과 통신하며, 이를 통해 사용자는 명령이 커밋되기 전에 어떤 행이 영향을 받는지 정확히 미리 볼 수 있습니다.
이 도구는 Claude Code, Cursor, VS Code 또는 Windsurf와 같은 AI 코딩 어시스턴트를 사용하는 개발자를 위해 설계되었습니다. YAML 기반 정책 시스템을 사용하여 안전성을 자동화하며, 작거나 미리 정의된 업데이트는 통과시키고 위험한 작업은 웹 UI를 통해 사용자의 승인을 받도록 대기시킵니다. 오류가 발생하면 전체 데이터베이스 백업을 복구할 필요 없이 영향을 받은 행의 원래 상태를 복원하여 특정 변경 사항을 실행 취소할 수 있습니다.
활용 사례
- 1데이터베이스 행 변경 사항 미리보기AI agent가 업데이트가 적용되기 전과 후의 데이터가 어떻게 변하는지 정확히 보여줄 수 있습니다.
- 2안전한 데이터 수정 자동화위험한 명령은 차단하면서 agent가 사소한 업데이트를 자동으로 수행할 수 있도록 규칙을 정의할 수 있습니다.
- 3실수로 인한 agent 쓰기 작업 되돌리기agent가 너무 많은 행을 수정하는 명령을 실행한 경우, 해당 트랜잭션만 롤백할 수 있습니다.
- 4agent 권한 제한agent가 액세스하거나 수정할 수 있는 테이블 또는 컬럼을 제한할 수 있습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
Rowbit MCP 설치 방법
형식 확인: 2026년 11월 10일Claude Code에 Rowbit MCP 설치
$ claude mcp add rowbit -- docker run -i --rm ghcr.io/ermag/rowbit:0.2.2Cursor에 Rowbit MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"rowbit": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ermag/rowbit:0.2.2"
]
}
}
}VS Code에 Rowbit MCP 설치
.vscode/mcp.json
{
"servers": {
"rowbit": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ermag/rowbit:0.2.2"
]
}
}
}Claude Desktop에 Rowbit MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"rowbit": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ermag/rowbit:0.2.2"
]
}
}
}Codex에 Rowbit MCP 설치
~/.codex/config.toml
[mcp_servers.rowbit] command = "docker" args = ["run", "-i", "--rm", "ghcr.io/ermag/rowbit:0.2.2"]
Gemini CLI에 Rowbit MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"rowbit": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ermag/rowbit:0.2.2"
]
}
}
}자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식
- 소스 저장소 연결 및 접근 가능ermag/rowbit is public and reachablegithub.com/ermag/rowbit ↗통과
- 패키지가 이 저장소를 소스로 지정검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)AGPL-3.0spdx.org/licenses/AGPL-3.0.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-07github.com/ermag/rowbit ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지와 의존성에 심각한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 endpoint가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기Rowbit
A safety net for AI agents that write to your database. Preview every write, approve the risky ones, undo any single change. MariaDB and MySQL, over MCP.
Get started
curl -fsSL https://ermag.github.io/rowbit/install.sh | sh
rowbit setup
macOS and Linux (Windows through WSL). If ~/.local/bin isn't on your PATH, the installer says so: run ~/.local/bin/rowbit setup instead. Setup finds your database's URL, checks Rowbit's privileges and prints the GRANT statements to fix them, writes rules that hold every write for review, connects the agent clients you pick, and prints the review page's password. See the quickstart.
No database to try it on? Choose the sample when setup asks: it runs a shop database in Docker with Rowbit in front of it (the tour). Then ask the agent:
The pending orders are stuck. Cancel them.
Works with Claude Code, Cursor, VS Code, Claude Desktop, Codex, Gemini CLI, Windsurf and any MCP client.
| Database | Status |
|---|---|
| MariaDB, MySQL | Supported, over TLS too (MariaDB 11.4 and MySQL 8.4 tested on every change) |
| PostgreSQL | Planned, next |
| MongoDB, Redis | Exploring |
Docs · Quickstart · Interactive demo · Tell us what you think
What it does
You ask a coding agent to fix the orders stuck in pending, and it writes UPDATE shop.orders SET status = 'cancelled' WHERE status = 'pending'. That also matches every order placed in the last hour. Rowbit catches it before it touches a row, shows a person exactly which 1,284 rows would change, and waits. If something bad does get through, you undo that one change without restoring a backup.
Status: early and open source; see the changelog for each release. What we build next depends on what you tell us in the feedback discussion.
How it works
Rowbit sits between your agents and your database. Agents talk to Rowbit over MCP, never to the database directly: they read and propose writes through it, without the database's credentials.
- Exact preview. Rowbit reads the rows a write would change and replays it on a private temporary copy, so you see each row before and after, exactly as the table would store it. Your tables are only read.
- Rules, then people. A small YAML file lets safe writes through, holds risky ones for a person, and refuses the rest. Only people approve, and approval applies exactly what was previewed, or nothing. See rules.
- Undo one change. Rowbit keeps every row a change touched, so you can take back one bad write and keep everything else.
- Scopes and shadow mode. Per agent, which tables it may read or write and which columns it may never see, enforced by the database with a user of the agent's own. Shadow mode shows what the rules would hold before you enforce them.
- Review where you are. A web UI in the binary, sign-in through your identity provider, Slack or webhook notifications, and an audit log in a hash chain. See how a change moves.
# rowbit.yml
version: 0
agents:
coding-agent:
default: hold
rules:
- name: small-order-fixes
when: { statement: update, table: shop.orders, columns: status, rows: { max: 20 } }
then: allow
- name: no-deletes
when: { statement: delete }
then: block
reason: Data fixes don't delete rows.
Here the agent can change the status of up to 20 orders on its own. An update that writes any other column, or more rows, waits for a person, and deletes are refused.
See examples/rowbit.yml and the rowbit.yml spec for the full schema.
Connect your agent
rowbit setup connects the clients you pick. rowbit connect <client> sets up one more, with a token of the agent's own. See Connect your agent.
rowbit connect claude-code
Adds Rowbit with claude mcp add, for this directory (--scope user for everywhere). Add the skill that teaches the agent to use Rowbit well:
/plugin marketplace add Ermag/rowbit
/plugin install rowbit@rowbit
rowbit connect cursor
Adds Rowbit to ~/.cursor/mcp.json. Restart Cursor.
rowbit connect vscode
Or, with rowbit demo or rowbit serve running, add it to VS Code and paste the token from rowbit connect vscode --print when VS Code asks.
rowbit connect claude-desktop # macOS; starts rowbit mcp itself
rowbit connect codex
rowbit connect gemini
rowbit connect windsurf
rowbit connect --print
prints the address (http://127.0.0.1:8080/mcp) and a token to send as Authorization: Bearer <token>.
Why not just migrations?
Having an agent write a migration file that goes through code review and CI is the right answer for a coding agent changing your schema, and Rowbit doesn't compete there: it holds every schema change for a person and leaves the real workflow to your migration tool. It works badly for fixing data:
- A reviewed diff shows SQL, not rows.
UPDATE orders SET status = 'cancelled' WHERE status = 'pending'looks fine in review. What it touches depends on the data when it runs. Rowbit shows the exact rows when the decision is made, and refuses to apply if they changed since. - A one-off fix can't wait for a pull request. Repairing a few broken rows during an incident needs an answer in minutes, and nobody writes and reviews a migration for every one.
- Not every write needs a person. Rules let small, safe writes straight through and hold only the risky ones, so reviewers aren't trained to rubber-stamp.
- Undo is per change. Down-migrations for data are usually missing or lossy. Rowbit keeps the before image of every row a change touched.
The well-known incidents of coding agents wiping production databases are a credentials problem as much as anything: take the credentials away and have the agent write migrations. Rowbit is for the agents that need to write. And if an agent does the same thing over and over, like issuing refunds, give it a tool that does just that instead of SQL.
Good to know
- Only Rowbit holds the database credentials. If an agent also has its own connection string, it can write around Rowbit. Give agents Rowbit's endpoint and nothing else (over HTTP, a token of their own), and Rowbit a database user of its own.
- An agent without
scopesreads and writes with Rowbit's privileges. Its rules still decide every write, but nothing stops it reading whatever Rowbit's user can. Give production agents scopes. - Undo restores rows, not the world. It puts the data back, but it can't take back an email that was sent or a refund that was paid because of it.
- Preview never writes to your tables. It reads the affected rows without taking locks and replays the write on a temporary copy that only Rowbit's connection can see. Tables with triggers or cascading foreign keys are refused, because their side effects wouldn't show in the preview or be undone. So are tables Rowbit's database user can't fully inspect: it needs the
TRIGGERandPROCESSprivileges. See database privileges for the exact grants. - Where data lives. Change state, previews (including before and after copies of affected rows) and the audit log are stored in a local SQLite file next to Rowbit. Protect it like a replica of the database (how).
- The CLI trusts whoever runs it. Anyone who can read
rowbit.dband has the database URL can runrowbit approve, under any--asname. Keep both from agents, and run Rowbit as a user they can't act as; see Before you use it for real. - Fail closed. Anything Rowbit can't evaluate, it refuses. See the change lifecycle and SECURITY.md.
Contributing
Ideas and opinions are welcome in Discussions. For code, see CONTRIBUTING.md. Commits need a DCO sign-off (git commit -s). Report security issues as described in SECURITY.md.
License
The server is AGPL-3.0-only. The rowbit.yml policy schema (crates/rowbit-policy) and future client SDKs are Apache-2.0.
Rowbit MCP 질문
Rowbit MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add rowbit -- docker run -i --rm ghcr.io/ermag/rowbit:0.2.2를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
Rowbit MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
어떤 데이터베이스를 지원하나요?
Rowbit은 현재 TLS 지원을 포함하여 MariaDB 및 MySQL을 지원합니다. PostgreSQL은 향후 릴리스에서 지원될 예정입니다.
AI agent가 실수를 했을 때 변경 사항을 실행 취소할 수 있나요?
네, Rowbit은 변경된 모든 행을 추적하여 개별 변경 사항을 실행 취소할 수 있도록 지원합니다.
미리보기 프로세스가 실제 데이터를 수정하나요?
아니요, 미리보기 프로세스는 영향을 받는 행을 읽기만 하며, 변경 사항을 보여주기 위해 비공개 임시 복사본에 쓰기 작업을 재현합니다.
Rowbit을 AI agent에 어떻게 연결하나요?
rowbit setup 명령어를 사용하여 데이터베이스 URL을 찾고 규칙을 구성하거나, rowbit connect cursor 또는 rowbit connect claude-code와 같은 특정 연결 명령어를 사용할 수 있습니다.