Mysql Mcp Server Tdc

Mysql Mcp Server Tdc

🚀 MySQL MCP 服务器

这是一个用于与 MySQL 数据库交互的模型上下文协议(MCP)服务器。它允许 MCP 客户端(如 AI 助手)对配置好的 MySQL 数据库中的数据进行查询和修改操作。

🚀 快速开始

在使用该服务器前,你需要完成安装和配置。安装可选择作为项目依赖安装,也可作为独立全局工具安装。配置时需设置好相应的环境变量。完成这些步骤后,构建项目并启动服务器,之后 MCP 客户端就可以连接使用了。

✨ 主要特性

  • 📌 使用标准连接参数连接到 MySQL 数据库。
  • 🛠️ 提供 MCP 工具以执行 SQL 查询和语句。
  • 🔍 支持只读查询 (SELECT, SHOW, DESCRIBE)。
  • ✍️ 通过环境变量(MYSQL_ALLOW_WRITE_OPS)支持写操作 (INSERT, UPDATE, DELETE),该变量设为 true 可启用这些操作,默认禁用(写操作不可用)。注意: 启用写操作允许 MCP 客户端修改您的数据库,请谨慎使用。
  • 💬 通过标准输入/输出(stdio)进行通信。

📦 安装指南

# 作为项目依赖安装(推荐在其他项目中使用)
npm install

# 或,如果需要作为独立全局工具:
# 1. 构建项目:
#    npm run build
# 2. 全局链接:
#    npm link 
#    (或使用 `npm install -g .` 如果已发布)

🛠️ 配置

此服务器需要以下环境变量设置以进行数据库连接:

  • MYSQL_HOST:MySQL 服务器的主机名或 IP 地址。
  • MYSQL_USER:用于连接到数据库的用户名。
  • MYSQL_PASSWORD:指定用户的密码。
  • MYSQL_DATABASE:要连接到的数据库名称。
  • MYSQL_PORT:(可选)MySQL 服务器的端口号(默认为 3306)。
  • MYSQL_ALLOW_WRITE_OPS:(可选)设为 true 可启用 insert, update, 和 delete 工具,默认为 false(写操作禁用)。

⚠️ 重要提示

启用写操作允许 MCP 客户端修改您的数据库,请谨慎使用。

这些变量需要在服务器进程运行的环境中可用。如何设置它们取决于您的操作系统和运行服务器的方式(例如,.env 文件、系统环境变量、shell 导出)。

💻 使用示例

启动服务器

配置完成后并构建(npm run build),您可以运行服务器:

# 如果已全局链接
mysql-server

# 或直接使用 node 运行
node build/index.js

服务器将启动并在 stderr 中打印 MySQL MCP 服务器在 stdio 上运行,然后监听标准输入/输出上的 MCP 请求。您通常会配置您的 MCP 客户端(例如 AI 助手集成)连接到此服务器进程。

可用工具

服务器为 MCP 客户端公开以下工具:

1. query

  • 描述:执行只读 SQL 查询(SELECT, SHOW, DESCRIBE)针对配置的数据库。
  • 输入模式
{
"type": "object",
"properties": {
"sql": {
"type": "string",
"description": "要执行的只读 SQL 查询 (SELECT, SHOW, DESCRIBE)。"
}
},
"required": ["sql"]
}
  • 输出:以 JSON 字符串形式在 MCP 响应 content 中返回查询结果。如果查询不是只读或出现数据库错误,将返回错误。

2. insert

  • 描述:执行 INSERT SQL 语句。需要 MYSQL_ALLOW_WRITE_OPS 设为 true
  • 输入模式
{
"type": "object",
"properties": {
"sql": {
"type": "string",
"description": "要执行的 INSERT SQL 语句。"
}
},
"required": ["sql"]
}
  • 输出:成功时返回包含插入记录数的消息,失败时返回错误消息。

3. update

  • 描述:执行 UPDATE SQL 语句。需要 MYSQL_ALLOW_WRITE_OPS 设为 true
  • 输入模式
{
"type": "object",
"properties": {
"sql": {
"type": "string",
"description": "要执行的 UPDATE SQL 语句。"
}
},
"required": ["sql"]
}
  • 输出:成功时返回包含更新记录数的消息,失败时返回错误消息。
  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-24 21:18

相似服务问题