Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/designcomputer/mysql_mcp_server
A Model Context Protocol (MCP) server that enables secure interaction with MySQL databases
https://github.com/designcomputer/mysql_mcp_server
Last synced: 21 days ago
JSON representation
A Model Context Protocol (MCP) server that enables secure interaction with MySQL databases
- Host: GitHub
- URL: https://github.com/designcomputer/mysql_mcp_server
- Owner: designcomputer
- License: mit
- Created: 2024-12-03T20:53:52.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-12-03T21:39:04.000Z (about 1 month ago)
- Last Synced: 2024-12-03T21:45:15.594Z (about 1 month ago)
- Language: Python
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-mcp-servers - MySQL - MySQL database integration with configurable access controls and schema inspection (Community Servers)
- awesome-mcp-servers - MySQL - MySQL database integration with configurable access controls and schema inspection (Community Servers)
- awesome-mcp-servers - MySQL - MySQL database integration with configurable access controls and schema inspection (🗄️ <a name="databases"></a>Databases)
- awesome-mcp-servers - designcomputer/mysql_mcp_server - 構成可能なアクセス制御、スキーマ検査、包括的なセキュリティガイドラインを備えたMySQLデータベース統合 (サーバー実装 / 🗄️ <a name="databases"></a>データベース)
README
![Tests](https://github.com/designcomputer/mysql_mcp_server/actions/workflows/test.yml/badge.svg)
# MySQL MCP ServerA Model Context Protocol (MCP) server that enables secure interaction with MySQL databases. This server allows AI assistants to list tables, read data, and execute SQL queries through a controlled interface, making database exploration and analysis safer and more structured.
## Features
- List available MySQL tables as resources
- Read table contents
- Execute SQL queries with proper error handling
- Secure database access through environment variables
- Comprehensive logging## Installation
```bash
pip install mysql-mcp-server
```## Configuration
Set the following environment variables:
```bash
MYSQL_HOST=localhost
MYSQL_USER=your_username
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database
```## Usage
### With Claude Desktop
Add this to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"mysql": {
"command": "uv",
"args": [
"--directory",
"path/to/mysql_mcp_server",
"run",
"mysql_mcp_server"
],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_USER": "your_username",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
}
}
}
```### As a standalone server
```bash
# Install dependencies
pip install -r requirements.txt# Run the server
python -m mysql_mcp_server
```## Development
```bash
# Clone the repository
git clone https://github.com/yourusername/mysql_mcp_server.git
cd mysql_mcp_server# Create virtual environment
python -m venv venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows# Install development dependencies
pip install -r requirements-dev.txt# Run tests
pytest
```## Security Considerations
- Never commit environment variables or credentials
- Use a database user with minimal required permissions
- Consider implementing query whitelisting for production use
- Monitor and log all database operations## Security Best Practices
This MCP server requires database access to function. For security:
1. **Create a dedicated MySQL user** with minimal permissions
2. **Never use root credentials** or administrative accounts
3. **Restrict database access** to only necessary operations
4. **Enable logging** for audit purposes
5. **Regular security reviews** of database accessSee [MySQL Security Configuration Guide](https://github.com/designcomputer/mysql_mcp_server/blob/main/SECURITY.md) for detailed instructions on:
- Creating a restricted MySQL user
- Setting appropriate permissions
- Monitoring database access
- Security best practices⚠️ IMPORTANT: Always follow the principle of least privilege when configuring database access.
## License
MIT License - see LICENSE file for details.
## Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request