MySQL数据库操作服务

一个提供MySQL数据库操作的Model Context Protocol服务器,使AI模型能够通过标准化接口与MySQL数据库交互。

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

使用说明

@litmiss/mcp-mysql服务器

这个npm库来自 @f4ww4z/mcp mysql服务器,主要供我个人学习和使用一个提供MySQL数据库操作的模型上下文协议服务器。该服务器使AI模型能够通过标准化的接口与MySQL数据库进行交互。

手动安装

npx @litmiss/mcp-mysql-server

配置

服务器要求在MCP设置配置文件中设置以下环境变量:

推荐使用

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["-y", "@litmiss/mcp-mysql-server", "mysql://user:password@localhost:port/database"],
    }
  }
}

运行评估

evals包加载一个mcp客户端,然后运行index.ts文件,因此不需要在测试之间重建。您可以通过在npx命令前加前缀来加载环境变量。可以找到完整的文档 这里.

OPENAI_API_KEY=your-key  npx mcp-eval src/evals/evals.ts src/index.ts

可用工具

1.connect_db

使用提供的凭据建立与MySQL数据库的连接。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "connect_db",
  arguments: {
    host: "localhost",
    user: "your_user",
    password: "your_password",
    database: "your_database"
  }
});

2.查询

使用可选的准备语句参数执行SELECT查询。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "query",
  arguments: {
    sql: "SELECT * FROM users WHERE id = ?",
    params: [1]
  }
});

3.执行

使用可选的准备语句参数执行INSERT、UPDATE或DELETE查询。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "execute",
  arguments: {
    sql: "INSERT INTO users (name, email) VALUES (?, ?)",
    params: ["John Doe", "john@example.com"]
  }
});

4.列表表

列出连接数据库中的所有表。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "list_tables",
  arguments: {}
});

5.描述表

获取特定表的结构。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "describe_table",
  arguments: {
    table: "users"
  }
});

特性

  • 通过自动清理实现安全的连接处理
  • 查询参数的准备语句支持
  • 全面的错误处理和验证
  • TypeScript支持
  • 自动连接管理

安全

  • 使用预处理语句防止SQL注入
  • 通过环境变量支持安全密码处理
  • 执行前验证查询
  • 完成后自动关闭连接

错误处理

服务器为常见问题提供详细的错误消息:

  • 连接失败
  • 无效查询
  • 缺少参数
  • 数据库错误

贡献

欢迎投稿!请随时向提交拉取请求https://github.com/f4ww4z/mcp-mysql-server

许可证

麻省理工学院