MySQL Database Access
This server provides secure, read-only access to MySQL databases.
List available databases: Retrieve all accessible databases on the server
List tables in a database: View all tables in a specified database
Describe table schemas: Show the schema for a specific table
Execute read-only SQL queries: Run SELECT, SHOW, DESCRIBE, and EXPLAIN statements
All operations include security features like query validation, timeout, and row limits to ensure safe and efficient data access.
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 "Install 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 Accessshow 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
Query 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
Related MCP server: mysql-mcp
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 buildInstall via Smithery
To install MySQL Database Access MCP Server for Claude AI automatically via Smithery:
npx -y @smithery/cli install @dpflucas/mysql-mcp-server --client claude2. 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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server to connect MySQL DB for read-only queries. It offers accurate query execution.Last updated491MIT
- Alicense-qualityDmaintenanceA lightweight MCP server providing safe, read-only access to MySQL databases. It enables users to query multiple MySQL instances securely while preventing write operations.Last updated1,130MIT
- Alicense-qualityBmaintenanceRead-only MySQL MCP server for safe schema inspection and SELECT-style queries.Last updated34MIT
- Alicense-qualityFmaintenanceA production-ready MCP server for MySQL database operations, providing secure HTTP endpoints for read-only queries, performance analysis, and server monitoring.Last updated779MIT
Related MCP Connectors
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
An MCP server giving access to Grafana dashboards, data and more.
An MCP server for deep research or task groups
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dpflucas/mysql-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server