🗄️ PHP MCP MySQL服务器
     ](https://packagist.org/packages/momodemo333/php-mcp-mysql)
MySQL MCP Server for Claude Code-通过模型上下文协议安全和可配置的MySQL集成。
🙏 致谢
这个项目是建立在优秀的基础上的 php-mcp/服务器 图书馆。特别感谢MCP社区为这种整合提供了基础。
🚀 快速安装
Via Composer(推荐)
composer require momodemo333/php-mcp-mysqlClaude代码配置
添加到您的 .cursor/mcp.json:
{
"mcpServers": {
"mysql": {
"command": "php",
"args": ["vendor/momodemo333/php-mcp-mysql/bin/server.php"],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your_user",
"MYSQL_PASS": "your_password",
"MYSQL_DB": "your_database"
}
}
}
}快速测试
# Test connection
php vendor/momodemo333/php-mcp-mysql/tests/test_connection.php
# Test MCP server
php vendor/momodemo333/php-mcp-mysql/tests/test_mcp_server.php🎉 就是这样!您的MySQL MCP服务器已准备就绪!
______________________________________________________________________
✨ 特性
🛠️ 可用的MCP工具
mysql_list_databases-列出所有数据库mysql_list_tables-列出数据库中的表mysql_describe_table-描述表结构(列、索引、外键)mysql_server_status-获取MySQL服务器状态和运行状况mysql_select-执行安全的SELECT查询mysql_insert-插入带有验证的数据mysql_update-使用强制条件更新数据mysql_delete-删除有安全限制的数据mysql_execute_query-执行自定义SQL查询
🔒 安全功能
- SQL注入保护 -所有查询都使用预先准备好的语句
- 操作权限 -粒度控制(INSERT、UPDATE、DELETE)
- 查询验证 -危险的关键字屏蔽
- 连接池 -高效的资源管理
- 结果限制 -可配置的结果集限制
- 架构限制 -限制对特定数据库的访问
⚙️ 配置选项
环境变量:
MYSQL_HOST,MYSQL_PORT,MYSQL_USER,MYSQL_PASS,MYSQL_DBALLOW_INSERT_OPERATION,ALLOW_UPDATE_OPERATION,ALLOW_DELETE_OPERATIONALLOW_DDL_OPERATIONS⭐ - 新 授权CREATE、ALTER、DROP操作ALLOW_ALL_OPERATIONS⭐ - 新 超级管理模式(谨慎使用)MAX_RESULTS,QUERY_TIMEOUT,LOG_LEVELCONNECTION_POOL_SIZE,ENABLE_PREPARED_STATEMENTS
配置方法:
- 环境变量 (通过MCP配置)
.env文件 (每个项目)- CLI参数 (用于测试)
______________________________________________________________________
📖 文档
📚 完整指南
- 快速开始 -5分钟后开始跑步
- MCP配置 -了解MCP传输(
stdio,http,websocket) - 安装指南 -详细的设置说明
- MCP工具参考 -完整的工具文档
- 使用示例 -实例
- 多项目设置 -为多个项目进行配置
- 故障排除 -常见问题和解决方案
🔧 配置示例
简单配置:
{
"mcpServers": {
"mysql": {
"type": "stdio",
"command": "php",
"args": ["vendor/momodemo333/php-mcp-mysql/bin/server.php"],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_USER": "myapp",
"MYSQL_PASS": "password",
"MYSQL_DB": "myapp_db"
}
}
}
}💡 MCP传输类型:The"type": "stdio"参数指定MCP客户端和服务器之间的通信方法。看 MCP配置指南 有关以下内容的完整详细信息stdio,http,以及websocket运输。
多环境配置:
{
"mcpServers": {
"mysql-dev": {
"command": "php",
"args": ["vendor/momodemo333/php-mcp-mysql/bin/server.php"],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_USER": "dev_user",
"MYSQL_PASS": "dev_pass",
"MYSQL_DB": "myapp_dev",
"ALLOW_INSERT_OPERATION": "true",
"ALLOW_UPDATE_OPERATION": "true",
"ALLOW_DELETE_OPERATION": "true",
"LOG_LEVEL": "DEBUG"
}
},
"mysql-prod": {
"command": "php",
"args": ["vendor/momodemo333/php-mcp-mysql/bin/server.php"],
"env": {
"MYSQL_HOST": "prod.example.com",
"MYSQL_USER": "readonly_user",
"MYSQL_PASS": "prod_pass",
"MYSQL_DB": "myapp_prod",
"ALLOW_INSERT_OPERATION": "false",
"ALLOW_UPDATE_OPERATION": "false",
"ALLOW_DELETE_OPERATION": "false",
"MAX_RESULTS": "50",
"LOG_LEVEL": "ERROR"
}
}
}
}______________________________________________________________________
🛡️ 安全与最佳实践
🔐 安全建议
- 在生产环境中使用只读用户
CREATE USER 'readonly_user'@'%' IDENTIFIED BY 'secure_password';
GRANT SELECT ON production_db.* TO 'readonly_user'@'%';
FLUSH PRIVILEGES;- 限制数据库访问
ALLOWED_SCHEMAS=myapp_prod,myapp_logs- 设置结果限制
MAX_RESULTS=100
QUERY_TIMEOUT=10- 使用环境变量作为密码
export MYSQL_PASS_PROD="$(security find-generic-password -s 'mysql-prod' -w)"🔒 DDL权限(v1.1.0+)
三级权限系统:
- 级别1-CRUD操作:
ALLOW_INSERT_OPERATION=true # INSERT statements
ALLOW_UPDATE_OPERATION=true # UPDATE statements
ALLOW_DELETE_OPERATION=true # DELETE statements
ALLOW_TRUNCATE_OPERATION=false # TRUNCATE statements- 第2级-模式操作(新增!):
ALLOW_DDL_OPERATIONS=true # CREATE, ALTER, DROP tables/indexes- 3级-超级管理员(新增!):
ALLOW_ALL_OPERATIONS=true # All operations (use with extreme caution)示例-启用架构修改:
# Fix "Mot-clé non autorisé détecté: ALTER" errors
ALLOW_DDL_OPERATIONS=true✅ 生产检查表
- \[\]使用具有最小权限的专用MySQL用户
- \[\]设置
ALLOW_*_OPERATION=false用于生产(SELECT除外) - \[ \] 仔细考虑
ALLOW_DDL_OPERATIONS=false生产中⚠️ - \[ \] 从不使用
ALLOW_ALL_OPERATIONS=true生产中❌ - \[\]配置
MAX_RESULTS和QUERY_TIMEOUT - \[\]使用
LOG_LEVEL=ERROR生产中 - \[\]限制
ALLOWED_SCHEMAS必要的数据库 - \[\]安全地存储密码(环境变量)
- \[\]启用
BLOCK_DANGEROUS_KEYWORDS=true
______________________________________________________________________
🧪 开发与测试
🚀 新测试套件(v1.1.0+)
使用Docker的专业测试基础设施:
# Quick start - all tests with Docker MySQL
make test
# Development commands
make test-unit # Fast unit tests (5s)
make test-integration # Integration tests with MySQL
make test-coverage # Generate HTML coverage report
make clean # Clean Docker resources
# Advanced testing
./tests/scripts/docker-test-complete.sh -v -c # Verbose + coverage测试覆盖范围:
- 🧪 29+次测试 (单元+集成)
- 🎯 >90%覆盖率 关键服务
- 🐳 自动化Docker MySQL环境
- 🔄 CI/CD就绪 GitHub操作
文档:
遗留测试
# Copy environment template
cp .env.example .env
# Edit .env with your MySQL settings
# Run connection test
php tests/test_connection.php
# Run full MCP server test
php tests/test_mcp_server.php
# Setup test data
php scripts/setup_test_data.php开发设置
# Clone repository
git clone https://github.com/momodemo333/php-mcp-mysql.git
cd php-mcp-mysql
# Install dependencies
composer install
# Copy configuration
cp .env.example .env
# Edit .env with your settings
# Run tests
composer test______________________________________________________________________
📊 使用Claude代码
自然语言示例
数据库探索:
"Show me all tables in the database"
"What's the structure of the users table?"
"How many orders are in the database?"数据分析:
"Find all users created in the last 30 days"
"Show me the top 5 best-selling products"
"What's the average order value by month?"商业智能:
"Analyze customer behavior patterns"
"Show sales trends for the last quarter"
"Find inactive users who haven't ordered in 6 months"数据管理:
"Add a new user with email john@example.com"
"Update the user's email address"
"Clean up old temporary data"______________________________________________________________________
🤝 贡献
欢迎投稿!请阅读我们的投稿指南,并:
- 分叉 存储库
- 创建 您的功能分支:
git checkout -b feature/amazing-feature - 提交 您的更改:
git commit -m 'Add amazing feature' - 推 分支机构:
git push origin feature/amazing-feature - 打开 拉取请求
开发指南
- 遵循PSR-12编码标准
- 为新功能添加测试
- 更新文档
- 确保安全最佳实践
______________________________________________________________________
📄 许可证
该项目根据 MIT许可证 -看看 许可证 文件以获取详细信息。
MIT许可证摘要:
- ✅ 商业用途
- ✅ 修改
- ✅ 分布
- ✅ 私人使用
- ❌ 责任
- ❌ 保修
______________________________________________________________________
🆘 支持
- 📖 文档: docs/
- 🐛 问题:
- 💡 功能请求:
______________________________________________________________________
🎯 路线图
- \[\]PostgreSQL支持
- \[\]高级查询缓存
- \[\]连接加密(SSL/TLS)
- \[\]查询性能分析
- \[\]多数据库连接管理
- \[\]GraphQL风格的查询构建
______________________________________________________________________
由以下材料制成❤️ Claude Code社区
*由...驱动 php-mcp/服务器*
