Server data from the Official MCP Registry
MySQL change tracking with instant row-level recovery and forensic attribution for compliance.
MySQL change tracking with instant row-level recovery and forensic attribution for compliance.
Remote endpoints: streamable-http: https://api.dbtrail.com/mcp
Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.
Endpoint verified · Requires authentication · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"com-dbtrail-dbtrail": {
"url": "https://api.dbtrail.com/mcp"
}
}
}From the project's GitHub README.
A CLI tool that parses MySQL ROW-format binary logs, indexes every row event into MySQL with full before/after images, and generates reversal SQL for point-in-time recovery — without needing the original binlog files.
binlog_format = ROW and binlog_row_image = FULLgo install github.com/dbtrail/bintrail/cmd/bintrail@latest
Or build from source:
git clone https://github.com/dbtrail/bintrail
cd bintrail
go build ./cmd/bintrail
# 1. Create index tables (run once)
bintrail init --index-dsn "user:pass@tcp(127.0.0.1:3306)/binlog_index"
# 2. Snapshot schema metadata from the source server
bintrail snapshot \
--source-dsn "user:pass@tcp(source:3306)/" \
--index-dsn "user:pass@tcp(127.0.0.1:3306)/binlog_index"
# 3. Index binlog files (requires access to /var/lib/mysql on the source host)
bintrail index \
--index-dsn "user:pass@tcp(127.0.0.1:3306)/binlog_index" \
--source-dsn "user:pass@tcp(source:3306)/" \
--binlog-dir /var/lib/mysql \
--all
# 4. Query the index
bintrail query \
--index-dsn "user:pass@tcp(127.0.0.1:3306)/binlog_index" \
--schema mydb --table orders --pk 12345
# 5. Generate recovery SQL
bintrail recover \
--index-dsn "user:pass@tcp(127.0.0.1:3306)/binlog_index" \
--schema mydb --table orders --event-type DELETE \
--since "2026-02-19 14:00:00" --until "2026-02-19 14:05:00" \
--output recovery.sql
Managed MySQL (RDS, Aurora, Cloud SQL)? Use
bintrail streaminstead ofbintrail index— it connects over the replication protocol and requires no access to binlog files on disk. See Streaming.
New to bintrail? See the Practical Guide for DBAs for scenario-based walkthroughs and troubleshooting.
| Command | Description |
|---|---|
init | Create index tables in the target MySQL database |
snapshot | Capture table and column metadata from the source server |
index | Parse binlog files from disk and write row events to the index |
stream | Connect as a replica and index row events in real-time |
query | Search the index with flexible filters (schema, table, PK, time range, GTID) |
recover | Generate reversal SQL for matching events |
reconstruct | Rebuild row state at a point in time from baselines + binlog events |
rotate | Drop old partitions, add new ones, optionally archive to Parquet |
status | Show indexed files, partition sizes, and event counts |
dump | Invoke mydumper to create a logical dump of the source server |
baseline | Convert mydumper output to Parquet snapshots |
upload | Upload local Parquet files to S3 |
config init | Generate a .bintrail.env configuration file |
profile | Manage RBAC access profiles for query and recover |
flag | Label tables and columns (e.g. pii, sensitive) for access rules |
access | Link flags to profiles with allow/deny permissions |
generate-key | Generate an AES-256 encryption key for dump encryption |
All commands accept --log-level (default info) and --log-format (default text). See each command's --help for flags and usage.
Bintrail ships an MCP server that exposes query, recover, and status as read-only tools — letting Claude (or any MCP client) explore your binlog index conversationally.
The easiest way to connect — works from claude.ai, Claude Desktop, and Claude mobile:
https://mcp.dbtrail.com/mcp)The project ships .mcp.json which pre-registers the server using go run:
{
"mcpServers": {
"bintrail": {
"command": "go",
"args": ["run", "./cmd/bintrail-mcp"],
"env": { "BINTRAIL_INDEX_DSN": "user:pass@tcp(127.0.0.1:3306)/binlog_index" }
}
}
}
Set BINTRAIL_INDEX_DSN to your index database DSN, then enable with claude mcp enable bintrail.
See MCP Server docs for HTTP mode, proxy setup, and tool details.
Source MySQL Index MySQL
(information_schema) ──snapshot──► schema_snapshots
│
Binlog files on disk ──index──► binlog_events (partitioned)
index_state
│
Replication stream ──stream──► binlog_events (partitioned)
stream_state (checkpoint)
│
query / recover ──► stdout / .sql file
The index stores complete before and after row images for every event, so recovery never requires the original binlog files.
bintrail index reads binlog files directly from disk — best for self-managed MySQL where the binlog directory is accessible.
bintrail stream connects as a replica over the replication protocol — best for managed MySQL (RDS, Aurora, Cloud SQL) where binlog files are not directly accessible.
| Guide | Description |
|---|---|
| Quickstart | Zero to recovery in 10 minutes |
| Practical Guide for DBAs | Scenario-based walkthroughs and troubleshooting |
| Indexing | File-based indexing in depth |
| Streaming | Real-time replication indexing |
| Streaming 101 | Getting started with stream |
| Query and Recovery | Filters, output formats, and recovery workflows |
| Rotation and Status | Partition management and monitoring |
| Dump and Baseline | mydumper workflow and Parquet baselines |
| DDL Tracking | Schema change detection and handling |
| Server Identity | Multi-server identity management |
| Upload | Parquet archive uploads to S3 |
| MCP Server | MCP server setup, HTTP mode, and proxy |
| MCP Gateway | OAuth gateway for Claude Connector |
| Deployment | cron, systemd, Ansible, and production setup |
| Docker | Container images and Docker Compose |
| Parquet Debugging | Inspecting and troubleshooting Parquet archives |
bintrail agent uses distinct process exit codes so a supervisor (e.g. systemd) can distinguish permanent failures from transient ones:
| Code | Meaning | Supervisor action |
|---|---|---|
| 0 | Clean shutdown (SIGTERM/SIGINT) | — |
| 64 | Fatal auth/config error (missing, invalid, or revoked API key; wrong tenant mode) | Fix credentials, restart manually |
| 65 | Rate-limited by the server | Contact support before restarting |
| 1 | Transient/unknown error | Safe to respawn (default systemd behavior) |
For systemd, add RestartPreventExitStatus=64 65 to the service unit so the agent is not respawned on permanent failures.
This project is licensed under the Business Source License 1.1. You may use bintrail for any purpose, including production use, except offering it as part of a competing commercial hosted service or managed consulting service. Each version converts to Apache License 2.0 four years after its release.
For alternative licensing arrangements, contact daniel@dbtrail.com.
Contributions are welcome! Please read CONTRIBUTING.md before opening a pull request. All contributors must agree to the Contributor License Agreement — first-time contributors will be prompted automatically via CLA Assistant.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.