@ashenud/mcp-mysql-server
v1.0.0
Published
MySQL MCP server for Cursor IDE integration
Downloads
9
Maintainers
Readme
MySQL MCP Server
A Model Context Protocol (MCP) server for MySQL database integration with Cursor IDE. This server provides tools to connect to, query, and manage MySQL databases directly from Cursor.
Features
- 🔌 Easy Connection: Connect to MySQL databases with simple configuration
- 🔍 Query Execution: Run SQL queries and get structured results
- 📊 Database Management: List databases, tables, and table schemas
- 🛡️ Secure: Supports SSL connections and prepared statements
- ⚡ Performance: Connection pooling for optimal performance
- 🎯 TypeScript: Fully typed for better development experience
Installation
From npm (recommended)
npm install -g @ashenud/mcp-mysql-serverFrom source
git clone https://github.com/ashenud/mcp-mysql-server.git
cd mcp-mysql-server
npm install
npm run build
npm linkUsage
Cursor IDE Configuration
Add the following to your Cursor MCP settings:
{
"mcpServers": {
"mysql": {
"command": "@ashenud/mcp-mysql-server",
"args": [],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your_username",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
}
}
}Available Tools
1. mysql_connect
Connect to a MySQL database.
Parameters:
host(string, optional): MySQL host (default: "localhost")port(number, optional): MySQL port (default: 3306)user(string, required): MySQL usernamepassword(string, required): MySQL passworddatabase(string, optional): Database namessl(boolean, optional): Use SSL connection (default: false)connectionLimit(number, optional): Connection pool limit (default: 10)
Example:
{
"name": "mysql_connect",
"arguments": {
"host": "localhost",
"port": 3306,
"user": "myuser",
"password": "mypassword",
"database": "mydb",
"ssl": false
}
}2. mysql_query
Execute a SQL query.
Parameters:
query(string, required): SQL query to executeparams(array, optional): Query parameters for prepared statements
Example:
{
"name": "mysql_query",
"arguments": {
"query": "SELECT * FROM users WHERE age > ?",
"params": ["25"]
}
}3. mysql_list_databases
List all available databases.
Example:
{
"name": "mysql_list_databases",
"arguments": {}
}4. mysql_list_tables
List tables in a database.
Parameters:
database(string, optional): Database name (uses current if not provided)
Example:
{
"name": "mysql_list_tables",
"arguments": {
"database": "mydb"
}
}5. mysql_describe_table
Get table structure and schema information.
Parameters:
table(string, required): Table namedatabase(string, optional): Database name (uses current if not provided)
Example:
{
"name": "mysql_describe_table",
"arguments": {
"table": "users",
"database": "mydb"
}
}6. mysql_disconnect
Close the MySQL connection.
Example:
{
"name": "mysql_disconnect",
"arguments": {}
}Development
Prerequisites
- Node.js 18.0.0 or higher
- npm or yarn
Setup
- Clone the repository:
git clone https://github.com/ashenud/mcp-mysql-server.git
cd mcp-mysql-server- Install dependencies:
npm install- Build the project:
npm run build- Run in development mode:
npm run devTesting
Run the test suite:
npm testConfiguration
The server can be configured through environment variables or by passing parameters to the mysql_connect tool:
MYSQL_HOST: Default MySQL hostMYSQL_PORT: Default MySQL portMYSQL_USER: Default MySQL usernameMYSQL_PASSWORD: Default MySQL passwordMYSQL_DATABASE: Default database nameMYSQL_SSL: Use SSL connection (true/false)
Security Considerations
- Always use strong passwords for database connections
- Enable SSL for production environments
- Use connection pooling to limit concurrent connections
- Validate and sanitize all user inputs before executing queries
- Consider using read-only database users for MCP connections
Error Handling
The server provides detailed error messages for common issues:
- Connection failures
- Invalid SQL queries
- Authentication errors
- Database access permissions
- Network timeouts
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes and add tests
- Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin feature-name - Submit a pull request
License
MIT License - see LICENSE file for details.
Support
- 📧 Email: [email protected]
- 🐛 Issues: GitHub Issues
- 📖 Documentation: GitHub Wiki
Changelog
1.0.0
- Initial release
- Basic MySQL connection and query functionality
- Database and table listing
- Table schema inspection
- Connection pooling support
- SSL connection support
