LABSCO SUMMARY
The MySQL user is the only guard rail.
There is no read-only mode here and no query validation — the server runs whatever SQL it is given with whatever permissions the configured credentials carry. That makes the MySQL account you pass in DB_USER and DB_PASSWORD the security boundary: grant it exactly what you are willing to let an assistant do, and nothing more. Scoped that way it is a fast path to answering questions about your own data; unscoped it is a shell on your database.
What it is
A direct MySQL bridge. The assistant writes a query, the server runs it and formats the result for reading in the chat — including the structural queries you would otherwise type by hand.
What you get
- Execute any valid SQL query against the configured connection
- List databases and the tables inside them
- Read a table's structure, including its size
- Results formatted for reading in the conversation rather than returned raw
Requirements
Node.js and a running MySQL server — clone the repository, run npm install, and point the client at index.js. The connection comes from DB_HOST, DB_USER and DB_PASSWORD in the server's environment (defaulting to localhost, root and an empty password).
Setup effort
Build from source — git clone https://github.com/elber-code/database-tools
USE CASES
Answering a question about your data without writing SQL
Describe what you want and let the assistant compose and run the query.
Getting oriented in an unfamiliar database
List the databases and tables, then read the structure of the one you need.
Checking what is taking up space
Ask for table sizes rather than looking up the information-schema query each time.
BEFORE YOU INSTALL
What to know first
Requires
- Node.js and npm
- A running MySQL server
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/elber-code/database-tools
cd database-tools
npm installMCP Clients
Claude Desktop
{
"mcpServers": {
"database-tools": {
"command": "node",
"args": [
"<YOUR_PATH_TO_INDEX>"
]
}
}
}<YOUR_PATH_TO_INDEX> is the full path to index.js inside your clone (a normal /path on macOS/Linux). The server reads DB_HOST, DB_USER and DB_PASSWORD from its environment (defaults: localhost, root, empty password) — add them under "env" in this entry.