The schema tools go further than most — views, triggers, functions, procedures and materialized views, not just tables — which is what an assistant needs before it writes a query against a database it has not seen. Read-only mode is the setting to reach for first: it removes the write and DDL tools from the surface rather than trusting a prompt to avoid them. With no runtime to install and a binary this size, the practical difference from the alternatives is that it can live wherever the database already is.
A single-binary Rust server for SQL databases: it discovers the schema, runs queries and, when you let it, writes — against MySQL and MariaDB, PostgreSQL, or SQLite from the same executable.
- Schema discovery: listDatabases, listTables, listViews, listTriggers, listFunctions, listProcedures and listMaterializedViews
- readQuery for reading rows, and writeQuery when writes are enabled
- explainQuery, so a slow statement can be examined rather than guessed at
- DDL when you want it: createDatabase, dropDatabase and dropTable
- A read-only mode that hides writeQuery, createDatabase, dropDatabase and dropTable entirely
- Stdio for a desktop client, or HTTP with CORS origin and host allowlists for a shared server
- About 7 MB with no Python, Node or Docker underneath it
Your own database credentials — DB_BACKEND is required, with DB_HOST, DB_PORT, DB_USER, DB_PASSWORD and DB_NAME filling in around it, or the matching CLI flags which take precedence. Defaults follow the backend: port 3306 and user root for MySQL and MariaDB, 5432 and postgres for PostgreSQL, while SQLite just takes a file path. SSL options are available. Install with the published script, a container image, or cargo.
One command plus a key — curl -fsSL https://dbmcp.haymon.ai/install.sh | bash, then supply credentials
