Database · MODEL CONTEXT PROTOCOL
michael7736 mysql mcp server
MySQL MCP server project
WHAT IT CONNECTS
What michael7736 mysql mcp server gives an AI Agent
- Execute SQL queries against a MySQL database:
- Read data (SELECT statements)
- Create tables (CREATE TABLE statements)
- Insert data (INSERT INTO statements)
- Update data (UPDATE statements)
- Delete data (DELETE FROM statements)
- Returns query results in JSON format
- Configurable database connection settings
- Transaction logging with unique IDs
- Node.js (v14 or higher)
- MySQL server
- MCP SDK
- Clone or download this repository
- Install dependencies:
- Build the server:
- `MYSQL_HOST`: MySQL server hostname (default: 'localhost')
- `MYSQL_PORT`: MySQL server port (default: 3306)
- `MYSQL_USER`: MySQL username (default: 'mcp101')
- `MYSQL_PASSWORD`: MySQL password (default: '123qwe')
- `MYSQL_DATABASE`: MySQL database name (default: 'mcpdb')
- Create a MySQL database:
- Create a MySQL user with access to the database:
- Create a test table with sample data:
- `query`: The SQL SELECT query to execute.
- `query`: The SQL CREATE TABLE query to execute.
- `query`: The SQL INSERT INTO query to execute.
- `query`: The SQL UPDATE query to execute.
- `query`: The SQL DELETE FROM query to execute.
- Use a dedicated MySQL user with appropriate privileges for the MCP server
- Consider using read-only privileges if you only need to query data
- Store sensitive information like database credentials securely
- All operations are logged with unique transaction IDs for auditing
SECURITY
An MCP listing is not a security review
An MCP server may receive model context, credentials, local files, or permission to call external systems. Review its code, requested environment variables, network behavior, package provenance, and maintenance status before connecting it to an agent.
README
Repository documentation
This is a Model Context Protocol (MCP) server that provides access to a MySQL database. It allows agent to execute SQL queries against a MySQL database.
- Execute SQL queries against a MySQL database:
- Read data (SELECT statements)
- Create tables (CREATE TABLE statements)
- Insert data (INSERT INTO statements)
- Update data (UPDATE statements)
- Delete data (DELETE FROM statements)
- Returns query results in JSON format
- Configurable database connection settings
- Transaction logging with unique IDs
- Node.js (v14 or higher)
- MySQL server
- MCP SDK
- Clone or download this repository
- Install dependencies:
cd mysql-mcp-server
npm install- Build the server:
npm run buildThe MySQL MCP server uses the following environment variables for configuration:
MYSQL_HOST: MySQL server hostname (default: 'localhost')MYSQL_PORT: MySQL server port (default: 3306)MYSQL_USER: MySQL username (default: 'mcp101')MYSQL_PASSWORD: MySQL password (default: '123qwe')MYSQL_DATABASE: MySQL database name (default: 'mcpdb')
- Create a MySQL database:
CREATE DATABASE mcpdb;- Create a MySQL user with access to the database:
CREATE USER 'mcp101'@'localhost' IDENTIFIED BY '123qwe';
GRANT ALL PRIVILEGES ON mcpdb.* TO 'mcp101'@'localhost';
FLUSH PRIVILEGES;- Create a test table with sample data:
USE mcpdb;
CREATE TABLE test_users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO test_users (name, email) VALUES
('John Doe', 'john@example.com'),
('Jane Smith', 'jane@example.com'),
('Bob Johnson', 'bob@example.com');Add the MySQL MCP server to your MCP settings file:
File: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Change the args according your MySQL configuruation
{
"mcpServers": {
"mysql-mcp-server": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "node",
"args": [
"/path/to/mysql-mcp-server/build/index.js"
],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "mcp101",
"MYSQL_PASSWORD": "123qwe",
"MYSQL_DATABASE": "mcpdb"
},
"transportType": "stdio"
}
}
}File: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"mysql-mcp-server": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "node",
"args": [
"/path/to/mysql-mcp-server/build/index.js"
],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "mcp101",
"MYSQL_PASSWORD": "123qwe",
"MYSQL_DATABASE": "mcpdb"
},
"transportType": "stdio"
}
}
}Once configured, you can use the MySQL MCP server in your conversations with Claude. For example:
"Can you show me all the users in the test_users table?"
Claude will use the run_sql_query tool to execute:
SELECT * FROM test_usersExecutes a read-only SQL query (SELECT statements only) against the MySQL database.
Parameters:
query: The SQL SELECT query to execute.
Example:
{
"query": "SELECT * FROM test_users"
}Creates a new table in the MySQL database.
Parameters:
query: The SQL CREATE TABLE query to execute.
Example:
{
"query": "CREATE TABLE products (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), price DECIMAL(10,2))"
}Inserts data into a table in the MySQL database.
Parameters:
query: The SQL INSERT INTO query to execute.
Example:
{
"query": "INSERT INTO products (name, price) VALUES ('Laptop', 999.99), ('Smartphone', 499.99)"
}Updates data in a table in the MySQL database.
Parameters:
query: The SQL UPDATE query to execute.
Example:
{
"query": "UPDATE products SET price = 899.99 WHERE name = 'Laptop'"
}Deletes data from a table in the MySQL database.
Parameters:
query: The SQL DELETE FROM query to execute.
Example:
{
"query": "DELETE FROM products WHERE name = 'Smartphone'"
}- Use a dedicated MySQL user with appropriate privileges for the MCP server
- Consider using read-only privileges if you only need to query data
- Store sensitive information like database credentials securely
- All operations are logged with unique transaction IDs for auditing
COMMUNITY