MySQL连接器平台

一个基于Node.js的MySQL连接器平台,提供与MySQL数据库交互的功能,适用于需要数据库管理的开发场景。

  • by dheersingh1973
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 dheersingh1973/mcp-mysql

使用说明

MCP MySQL服务器

这是一个基于Node.js的MCP(托管连接器平台)MySQL服务器,提供与MySQL数据库交互的功能。

特性

  • 怎么翻译:使用可选参数执行SQL查询。
  • describe_table:描述指定表的架构。
  • list_tables:列出连接数据库中的所有表。
  • 更新:对表执行更新操作。
  • 插入:将单个记录插入表中。
  • 删除:根据条件从表中删除记录(由实现 deleteSingle 内部)。

设置和配置

先决条件

  • Node.js(推荐LTS版本)
  • npm(节点包管理器)
  • MySQL服务器正在运行且可访问
  • Express.js(作为依赖项包含)

安装

  1. 克隆存储库(或手动创建项目结构):

    git clone <repository-url>
    cd mcp-mysql
    

    如果您是手动设置的,请确保您已 package.json 和 index.js 如所提供的。

  2. 安装依赖项:

    导航到项目目录并运行:

    npm install
    

配置

  1. 创建一个 .env 文件:

    在项目的根目录中,创建一个名为 .env.

  2. 将数据库凭据添加到 .env:

    填充 .env 包含MySQL数据库连接详细信息的文件:

    DB_HOST=localhost
    DB_PORT=3306
    DB_USER=root
    DB_PASSWORD=password
    DB_DATABASE=mysql_db
    

    注: 替换 localhost, 3306, root, password, mysql_db,以及 your_mysql_port 分别使用您的实际数据库主机、端口、用户名、密码、数据库名称和所需的服务器端口。

IDE的MCP JSON配置(例如,游标AI、VS代码)

为了允许IDE自动发现您的MCP MySQL服务器并与之交互,您可以将以下JSON配置添加到IDE中 .cursor/mcp.json 文件。

{
  "mcpServers": {
    "mcp_mysql_dheer": {
      "command": "node",
      "args": ["index.js"],
      "env": {
        "DB_HOST": "your_db_host",
        "DB_PORT": "your_db_port",
        "DB_USER": "your_db_user",
        "DB_PASSWORD": "your_db_pwd",
        "DB_DATABASE": "your_db"
      }
    }
  }
}

Docker使用

此MCP服务器作为stdio应用程序运行。下面是构建Docker镜像并在容器中运行服务器的说明。

  1. 构建Docker镜像:

    导航到包含以下内容的项目目录 Dockerfile 和 package.json,然后运行:

    docker build -t mcp_mysql_dheer .
    
  2. 运行Docker容器(作为stdio服务器):

    运行Docker容器时,您需要提供MySQL数据库凭据作为环境变量。

    docker run -i mcp_mysql_dheer node index.js \
      -e DB_HOST=your_mysql_host \
      -e DB_USER=your_mysql_user \
      -e DB_PASSWORD=your_mysql_password \
      -e DB_DATABASE=your_mysql_database \
      -e DB_PORT=your_mysql_port
    

    注:

    • -i 国旗对于 STDIN 以保持开放,允许MCP客户端与服务器通信。
    • 替换 your_mysql_host, your_mysql_user, your_mysql_password, your_mysql_database,以及 your_mysql_port 使用您的实际数据库连接详细信息。

用法(假设的MCP客户端示例)

此服务器旨在供MCP客户端使用。以下是MCP客户端如何与这些功能交互的概念示例:

const client = new MCPClient({
  server: {
    command: 'docker',
    args: [
      'run',
      '-i',
      '--rm',
      'mcp_mysql_dheer',
      'node',
      'index.js',
      '-e', 'DB_HOST=your_mysql_host',
      '-e', 'DB_USER=your_mysql_user',
      '-e', 'DB_PASSWORD=your_mysql_password',
      '-e', 'DB_DATABASE=your_mysql_database',
      '-e', 'DB_PORT=your_mysql_port'
    ],
  },
});

async function exampleUsage() {
  // Example: List tables
  const tables = await client.callTool('list_tables', {});
  console.log('Tables:', tables);

  // Example: Query data
  const users = await client.callTool('query', { sql: 'SELECT * FROM users' });
  console.log('Users:', users);
}

exampleUsage();