Skip to main content
Glama
Feixu2015

mysql-mcp-tool

by Feixu2015

MySQL MCP 工具

针对MySQL数据库操作的MCP(Model Context Protocol)工具实现,为AI模型提供数据库操作能力。

  • 推荐使用本地模型使用这个工具,防止出现不必要的数据泄露风险

功能特性

  • MySQL数据库连接管理

  • 表结构查询

  • 数据增删改查操作

  • 错误处理和连接状态管理

  • MCP协议支持,可与AI模型集成

安装

npm install

使用方法

作为MCP服务器

将以下配置添加到你的MCP客户端配置文件中:

{
  "mcpServers": {
    "mysql-mcp-tool": {
      "command": "npx",
      "args": ["mysql-mcp-tool", "server"],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_USER": "root",
        "MYSQL_PASSWORD": "",
        "MYSQL_DATABASE": "test"
      }
    }
  }
}

命令行使用

# 查询表
mysql-mcp-tool tables

# 查看表结构
mysql-mcp-tool schema users

# 执行SQL
mysql-mcp-tool query "SELECT * FROM users WHERE id = ?" -p '["1"]'

# 启动MCP服务器
mysql-mcp-tool server -h localhost -u root -p password -d mydb

编程使用

import MySQLMCPTool from './index.js';

const tool = new MySQLMCPTool({
  host: 'localhost',
  user: 'root',
  password: '',
  database: 'test'
});

await tool.connect();
const result = await tool.select('users', { id: 1 });
await tool.disconnect();

API文档

基础方法

  • connect() - 连接数据库

  • disconnect() - 断开连接

  • executeQuery(sql, params) - 执行SQL查询

数据操作

  • getTables() - 获取所有表

  • getTableSchema(tableName) - 获取表结构

  • select(tableName, where, limit) - 查询数据

  • insert(tableName, data) - 插入数据

  • update(tableName, data, where) - 更新数据

  • delete(tableName, where) - 删除数据

MCP工具

该工具提供以下MCP工具:

  1. mysql_query - 执行MySQL查询

    • 参数:sql(必需),params(可选)

  2. mysql_tables - 获取所有表

    • 参数:无

  3. mysql_schema - 获取表结构

    • 参数:table(必需)

  4. mysql_insert - ⚠️ 警告:插入数据 - 使用者自负责任

    • 参数:table(必需),data(必需)

  5. mysql_update - ⚠️ 警告:更新数据 - 使用者自负责任

    • 参数:table(必需),data(必需),where(可选)

  6. mysql_delete - ⚠️ 警告:删除数据 - 使用者自负责任

    • 参数:table(必需),where(可选)

开发

# 安装依赖
npm install

# 运行测试
npm test

# 启动开发模式
npm start

依赖

  • mysql2: MySQL数据库驱动

  • commander: 命令行参数解析

  • Node.js ES模块支持

许可证

MIT