mcp_mysql_gateway_local
A local service interface providing RESTful access to a MySQL backend, featuring robust support for parameterized SQL execution for heightened security, alongside real-time bidirectional data propagation via Server-Sent Events (SSE).
Author

TristanLib
Quick Info
Actions
Tags
服务:本地MySQL数据代理(MCP)
该MCP组件旨在作为游标(Cursor)访问和操作本地部署的MySQL数据库实例的中间件。它通过标准化的HTTP/RESTful协议暴露数据库操作接口,并内置了针对SQL注入风险的防御机制(参数化查询)。此外,它集成了Server-Sent Events(SSE)机制,以实现数据的即时推送能力。
核心功能点
- 与本地MySQL实例建立持久化连接。
- 提供RESTful端点用于执行数据定义语言(DDL)和数据操作语言(DML)。
- 强制使用绑定变量(参数化查询)以确保代码注入防御的有效性。
- 通过SSE通道支持服务器向客户端的单向实时数据流传输。
- 可无缝嵌入到Cursor工作流中作为扩展服务。
入门指南
先决条件
- 兼容Node.js环境(推荐版本14或更高)。
- 运行中的MySQL服务器实例。
安装步骤
- 克隆此代码库。
-
安装项目依赖包: bash npm install
-
配置环境变量(创建
.env文件): env # 服务器运行配置 PORT=3000 NODE_ENV=developmentMySQL连接详情
DB_HOST=127.0.0.1 DB_PORT=3306 DB_USER=your_db_username DB_PASSWORD=your_db_secret DB_NAME=target_database
安全令牌
API_KEY=a_strong_secret_token
服务启动
启动主进程: bash npm start
启用开发模式(文件变更自动重启): bash npm run dev
API 接口定义
检索所有已连接数据库列表
GET /api/databases
获取指定数据库内的所有表名
GET /api/databases/:database_name/tables
获取特定表的Schema定义
GET /api/databases/:database_name/tables/:table_name/structure
执行通用查询操作(推荐)
注意:仅允许执行预定义的、安全的查询类型。
POST /api/query Content-Type: application/json
{ "sql": "SELECT name, email FROM users WHERE status = ? AND registration_date < ?", "params": ["active", "2023-01-01"], "pagination": { "limit": 25, "offset": 0 } }
实时数据流订阅(SSE)
GET /api/sse?apiKey=your-api-key
在Cursor环境中集成
实时事件集成配置
{ "name": "本地MySQL SSE 连接器", "url": "http://localhost:3000/api/sse", "type": "sse" }
命令行执行集成配置
{ "name": "本地MySQL直接命令执行器", "command": "node /path/to/mcp_server_mysql_local/index.js", "type": "command" }
安全性与部署建议
- 此服务设计用于受信任的本地网络环境;严禁直接暴露于公共互联网。
- 所有外部访问必须通过提供的API密钥进行认证。
- 默认安全策略限制了对危险SQL操作(如DROP, ALTER等)的执行权限。
许可协议
遵循MIT许可证条款。
