custom-mysql-mcp
v1.0.3
Published
A Model Context Protocol server to interact with a MySQL database
Downloads
176
Maintainers
Readme
Custom MySQL MCP
A Model Context Protocol server that lets AI agents (Cursor, Claude Desktop, etc.) interact with a MySQL database — query data, inspect schemas, and optionally execute write operations.
Tools
| Tool | Description |
|---|---|
| list_tables | List all tables in the connected database |
| describe_table | Get the schema of a table (columns, types, keys, defaults) |
| execute_query | Execute a read-only SELECT query and return results |
| execute_write | Execute a write statement (INSERT, UPDATE, DELETE, ALTER…) — requires MYSQL_MCP_ALLOW_WRITE=true |
Configuration in Cursor
Add the following to your Cursor MCP configuration file (~/.cursor/mcp.json or your project's .cursor/mcp.json):
Via NPX (recommended)
{
"mcpServers": {
"custom-mysql-mcp": {
"command": "npx",
"args": ["-y", "custom-mysql-mcp"],
"env": {
"MYSQL_MCP_HOST": "127.0.0.1",
"MYSQL_MCP_PORT": "3306",
"MYSQL_MCP_DATABASE": "my_database",
"MYSQL_MCP_USERNAME": "my_user",
"MYSQL_MCP_PASSWORD": "my_password",
"MYSQL_MCP_ALLOW_WRITE": "false"
}
}
}
}Via local install
{
"mcpServers": {
"custom-mysql-mcp": {
"command": "node",
"args": ["/absolute/path/to/custom-mysql-mcp/dist/index.js"],
"env": {
"MYSQL_MCP_HOST": "127.0.0.1",
"MYSQL_MCP_PORT": "3306",
"MYSQL_MCP_DATABASE": "my_database",
"MYSQL_MCP_USERNAME": "my_user",
"MYSQL_MCP_PASSWORD": "my_password",
"MYSQL_MCP_ALLOW_WRITE": "false"
}
}
}
}Environment Variables
| Variable | Required | Description |
|---|---|---|
| MYSQL_MCP_HOST | Yes | MySQL server hostname or IP address |
| MYSQL_MCP_PORT | Yes | MySQL server port (usually 3306) |
| MYSQL_MCP_DATABASE | Yes | Name of the database to connect to |
| MYSQL_MCP_USERNAME | Yes | MySQL username |
| MYSQL_MCP_PASSWORD | Yes | MySQL password |
| MYSQL_MCP_ALLOW_WRITE | No | Set to true to enable write operations. Defaults to read-only if absent or any other value. |
Security note: Write operations are disabled by default. You must explicitly set
MYSQL_MCP_ALLOW_WRITE=trueto allowINSERT,UPDATE,DELETE, and other write statements. If the variable is missing or set to anything other thantrue, theexecute_writetool will immediately return an error.
Development
# Install dependencies
npm install
# Run in development mode (no build required)
npm run dev
# Build for production
npm run build
# Start the compiled server
npm startLicense
ISC
