MySQL Database Access
The server provides read-only access to MySQL databases, allowing discovery and querying of database structures and data.
List all accessible databases on the MySQL server.
List all tables in a specified database (or the default database).
Describe the schema of a specific table, including columns, types, and constraints.
Execute read-only SQL queries (SELECT, SHOW, DESCRIBE, EXPLAIN) with safety features like query validation, timeouts, and row limits.
Return exact large numbers (BIGINT, DECIMAL) as strings to prevent precision loss.
Configure connection pool settings for performance tuning.
Provides read-only access to MySQL databases with tools for listing databases, exploring table schemas, and executing secure SQL queries with protection against data modification.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MySQL Database Access show me the top 10 customers by total orders"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MySQL Database Access MCP Server
This MCP server provides read-only access to MySQL databases. It allows you to:
List available databases
List tables in a database
Describe table schemas
Execute read-only SQL queries
Security Features
Read-only access: Only SELECT, SHOW, DESCRIBE, and EXPLAIN statements are allowed; file-capable
SELECT INTOandLOAD_FILEforms are rejectedQuery validation: Prevents SQL injection and blocks any data modification attempts
Query timeout: Prevents long-running queries from consuming resources
Row limit: Prevents excessive data return
Exact large numbers: BIGINT and DECIMAL values are returned as strings to prevent precision loss
Related MCP server: mysql-mcp-server
Installation
1. Install using one of these methods:
Install from NPM
# Install globally
npm install -g mysql-mcp-server
# Or install locally in your project
npm install mysql-mcp-serverBuild from Source
# Clone the repository
git clone https://github.com/dpflucas/mysql-mcp-server.git
cd mysql-mcp-server
# Install dependencies and build
npm install
npm run build2. Configure environment variables
The server requires the following environment variables:
MYSQL_HOST: Database server hostnameMYSQL_PORT: Database server port (default: 3306)MYSQL_USER: Database usernameMYSQL_PASSWORD: Database password (optional, but recommended for secure connections)MYSQL_DATABASE: Default database name (optional)
3. Add to MCP settings
Add the following configuration to your MCP settings file:
If you installed via npm (Option 1):
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["mysql-mcp-server"],
"env": {
"MYSQL_HOST": "your-mysql-host",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your-mysql-user",
"MYSQL_PASSWORD": "your-mysql-password",
"MYSQL_DATABASE": "your-default-database"
},
"disabled": false,
"autoApprove": []
}
}
}If you built from source (Option 2):
{
"mcpServers": {
"mysql": {
"command": "node",
"args": ["/path/to/mysql-mcp-server/build/index.js"],
"env": {
"MYSQL_HOST": "your-mysql-host",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your-mysql-user",
"MYSQL_PASSWORD": "your-mysql-password",
"MYSQL_DATABASE": "your-default-database"
},
"disabled": false,
"autoApprove": []
}
}
}Available Tools
list_databases
Lists all accessible databases on the MySQL server.
Parameters: None
Example:
{
"server_name": "mysql",
"tool_name": "list_databases",
"arguments": {}
}list_tables
Lists all tables in a specified database.
Parameters:
database(optional): Database name (uses default if not specified)
Example:
{
"server_name": "mysql",
"tool_name": "list_tables",
"arguments": {
"database": "my_database"
}
}describe_table
Shows the schema for a specific table.
Parameters:
database(optional): Database name (uses default if not specified)table(required): Table name
Example:
{
"server_name": "mysql",
"tool_name": "describe_table",
"arguments": {
"database": "my_database",
"table": "my_table"
}
}execute_query
Executes a read-only SQL query.
Parameters:
query(required): SQL query (only SELECT, SHOW, DESCRIBE, and EXPLAIN statements are allowed)database(optional): Database name (uses default if not specified)
Example:
{
"server_name": "mysql",
"tool_name": "execute_query",
"arguments": {
"database": "my_database",
"query": "SELECT * FROM my_table LIMIT 10"
}
}Advanced Connection Pool Configuration
For more control over the MySQL connection pool behavior, you can configure additional parameters:
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["mysql-mcp-server"],
"env": {
"MYSQL_HOST": "your-mysql-host",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your-mysql-user",
"MYSQL_PASSWORD": "your-mysql-password",
"MYSQL_DATABASE": "your-default-database",
"MYSQL_CONNECTION_LIMIT": "10",
"MYSQL_QUEUE_LIMIT": "0",
"MYSQL_CONNECT_TIMEOUT": "10000",
"MYSQL_IDLE_TIMEOUT": "60000",
"MYSQL_MAX_IDLE": "10"
},
"disabled": false,
"autoApprove": []
}
}
}These advanced options allow you to:
MYSQL_CONNECTION_LIMIT: Control the maximum number of connections in the pool (default: 10)MYSQL_QUEUE_LIMIT: Set the maximum number of connection requests to queue (default: 0, unlimited)MYSQL_CONNECT_TIMEOUT: Adjust the connection timeout in milliseconds (default: 10000)MYSQL_IDLE_TIMEOUT: Configure how long a connection can be idle before being released (in milliseconds)MYSQL_MAX_IDLE: Set the maximum number of idle connections to keep in the pool
Testing
The server includes test scripts to verify functionality with your MySQL setup:
1. Setup Test Database
This script creates a test database, table, and sample data:
# Set your MySQL credentials as environment variables
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
# Run the setup script
npm run test:setup2. Test MCP Tools
This script tests each of the MCP tools against the test database:
# Set your MySQL credentials as environment variables
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
export MYSQL_DATABASE=mcp_test_db
# Run the tools test script
npm run test:tools3. Run All Tests
To run both setup and tool tests:
# Set your MySQL credentials as environment variables
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
# Run all tests
npm testTroubleshooting
If you encounter issues:
Check the server logs for error messages
Verify your MySQL credentials and connection details
Ensure your MySQL user has appropriate permissions
Check that your query is read-only and properly formatted
License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
4 toolsdescribe_tableB
Show the schema for a specific table
Inputs: table (required), database.
execute_queryB
Execute a read-only SQL query
Inputs: query (required), database.
list_databasesA
List all accessible databases on the MySQL server
Inputs: no named parameters.
list_tablesC
List all tables in a specified database
Inputs: database.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a distinct purpose: listing databases, listing tables, describing a table schema, and executing read-only queries. No overlapping functionality.
All tool names follow a consistent verb_noun pattern (describe_table, execute_query, list_databases, list_tables), making them predictable.
Four tools for a read-only database access server is appropriate. It covers the essential introspection and querying needs without being too sparse or excessive.
The tool surface covers listing databases, tables, describing schemas, and executing queries—complete for read-only access. Minor gaps like viewing current database or query metadata are acceptable.
Maintenance
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Read-only MCP server for interior design studios: projects, overviews, weekly activity. No writes.
Read-only MCP server for The Quiet Protocol's engines, benchmarks, proof, and business data.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA lightweight MCP server providing safe, read-only access to MySQL databases. It enables users to query multiple MySQL instances securely while preventing write operations.1,462 npmMIT
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server for MySQL database operations, providing secure HTTP endpoints for read-only queries, performance analysis, and server monitoring.81 npm22MIT
- FlicenseNot gradedqualityDmaintenanceA generic MCP server for MySQL operations, enabling listing databases/tables, describing schemas, running read-only SQL, and optionally executing write SQL with logging.1-
- AlicenseAqualityDmaintenanceA read-only MySQL MCP server supporting stdio, SSE, and Streamable HTTP transports, enabling secure querying and schema inspection of MySQL databases from MCP clients.3MIT