MySQL Database Access MCP Server

MySQL Database Access MCP Server

镜子 (jìng zi)

MCP-Mirror

数据库
访问服务器

README

MySQL 数据库访问 MCP 服务器

此 MCP 服务器提供对 MySQL 数据库的只读访问权限。它允许您:

  • 列出可用的数据库
  • 列出数据库中的表
  • 描述表结构
  • 执行只读 SQL 查询

安全特性

  • 只读访问: 仅允许 SELECT、SHOW、DESCRIBE 和 EXPLAIN 语句
  • 查询验证: 防止 SQL 注入并阻止任何数据修改尝试
  • 查询超时: 防止长时间运行的查询消耗资源
  • 行数限制: 防止返回过多的数据

安装

选项 1:从 NPM 安装 (推荐)

# 全局安装
npm install -g mysql-mcp-server

# 或者在您的项目中本地安装
npm install mysql-mcp-server

选项 2:从源代码构建

# 克隆仓库
git clone https://github.com/dpflucas/mysql-mcp-server.git
cd mysql-mcp-server

# 安装依赖并构建
npm install
npm run build

2. 配置环境变量

服务器需要以下环境变量:

  • MYSQL_HOST: 数据库服务器主机名
  • MYSQL_PORT: 数据库服务器端口 (默认: 3306)
  • MYSQL_USER: 数据库用户名
  • MYSQL_PASSWORD: 数据库密码
  • MYSQL_DATABASE: 默认数据库名称 (可选)

3. 添加到 MCP 设置

将以下配置添加到您的 MCP 设置文件中:

如果您通过 npm 安装 (选项 1):

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["mysql-mcp-server"],
      "env": {
        "MYSQL_HOST": "your-mysql-host",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "your-mysql-user",
        "MYSQL_PASSWORD": "your-mysql-password",
        "MYSQL_DATABASE": "your-default-database"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

如果您从源代码构建 (选项 2):

{
  "mcpServers": {
    "mysql": {
      "command": "node",
      "args": ["/path/to/mysql-mcp-server/build/index.js"],
      "env": {
        "MYSQL_HOST": "your-mysql-host",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "your-mysql-user",
        "MYSQL_PASSWORD": "your-mysql-password",
        "MYSQL_DATABASE": "your-default-database"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

可用工具

list_databases

列出 MySQL 服务器上所有可访问的数据库。

参数: 无

示例:

{
  "server_name": "mysql",
  "tool_name": "list_databases",
  "arguments": {}
}

list_tables

列出指定数据库中的所有表。

参数:

  • database (可选): 数据库名称 (如果未指定,则使用默认数据库)

示例:

{
  "server_name": "mysql",
  "tool_name": "list_tables",
  "arguments": {
    "database": "my_database"
  }
}

describe_table

显示特定表的结构。

参数:

  • database (可选): 数据库名称 (如果未指定,则使用默认数据库)
  • table (必需): 表名

示例:

{
  "server_name": "mysql",
  "tool_name": "describe_table",
  "arguments": {
    "database": "my_database",
    "table": "my_table"
  }
}

execute_query

执行只读 SQL 查询。

参数:

  • query (必需): SQL 查询 (仅允许 SELECT、SHOW、DESCRIBE 和 EXPLAIN 语句)
  • database (可选): 数据库名称 (如果未指定,则使用默认数据库)

示例:

{
  "server_name": "mysql",
  "tool_name": "execute_query",
  "arguments": {
    "database": "my_database",
    "query": "SELECT * FROM my_table LIMIT 10"
  }
}

测试

服务器包含测试脚本,用于验证您的 MySQL 设置的功能:

1. 设置测试数据库

此脚本创建测试数据库、表和示例数据:

# 将您的 MySQL 凭据设置为环境变量
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password

# 运行设置脚本
npm run test:setup

2. 测试 MCP 工具

此脚本针对测试数据库测试每个 MCP 工具:

# 将您的 MySQL 凭据设置为环境变量
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
export MYSQL_DATABASE=mcp_test_db

# 运行工具测试脚本
npm run test:tools

3. 运行所有测试

要运行设置和工具测试:

# 将您的 MySQL 凭据设置为环境变量
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password

# 运行所有测试
npm test

故障排除

如果您遇到问题:

  1. 检查服务器日志中的错误消息
  2. 验证您的 MySQL 凭据和连接详细信息
  3. 确保您的 MySQL 用户具有适当的权限
  4. 检查您的查询是否为只读且格式正确

许可证

该项目已获得 MIT 许可证的许可 - 有关详细信息,请参见 LICENSE 文件。

推荐服务器

Supabase MCP Server

Supabase MCP Server

一个模型上下文协议(MCP)服务器,它提供对 Supabase 管理 API 的编程访问。该服务器允许 AI 模型和其他客户端通过标准化的接口来管理 Supabase 项目和组织。

精选
JavaScript
MCP DuckDB Knowledge Graph Memory Server

MCP DuckDB Knowledge Graph Memory Server

一个为 Claude 设计的记忆服务器,它使用 DuckDB 存储和检索知识图谱数据,从而增强了对话的性能和查询能力,并能持久保存用户信息。

精选
TypeScript
Metabase MCP Server

Metabase MCP Server

使人工智能助手能够与 Metabase 数据库和仪表板进行交互,允许用户通过自然语言列出和执行查询、访问数据可视化以及与数据库资源进行交互。

精选
JavaScript
Airtable MCP Server

Airtable MCP Server

一个模型上下文协议(Model Context Protocol,MCP)服务器,它提供通过 Claude Desktop 或其他 MCP 客户端以编程方式管理 Airtable 数据库、表格、字段和记录的工具。

精选
JavaScript
mcp-shodan

mcp-shodan

用于查询 Shodan API 和 Shodan CVEDB 的 MCP 服务器。该服务器提供 IP 查询、设备搜索、DNS 查询、漏洞查询、CPE 查询等工具。

精选
JavaScript
Verodat MCP Server

Verodat MCP Server

一个 MCP 服务器,集成了 Verodat 的数据管理功能和像 Claude Desktop 这样的人工智能系统,使用户能够管理账户、工作区和数据集,并能对他们的数据执行人工智能驱动的查询。

官方
本地
TypeScript
Tembo MCP Server

Tembo MCP Server

一个 MCP 服务器,它使 Claude 能够与 Tembo Cloud 平台 API 交互,从而允许用户通过自然语言管理 Tembo Cloud 资源。

官方
TypeScript
MongoDB MCP Server

MongoDB MCP Server

为LLM提供对MongoDB数据库的只读访问权限,以检查集合模式并执行聚合管道。

官方
JavaScript
nile-mcp

nile-mcp

Nile数据库的MCP服务器 - 使用LLM管理和查询数据库、租户、用户和身份验证

官方
TypeScript
Appwrite MCP Server

Appwrite MCP Server

一个模型上下文协议服务器,允许 AI 助手与 Appwrite 的 API 交互,从而提供管理 Appwrite 项目中数据库、用户、函数、团队和其他资源的工具。

官方
Python