MySQL只读MCP服务器

一个为MySQL数据库提供只读访问的MCP服务器,用于获取数据库结构信息和样本数据,适用于后端开发场景。

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

使用说明

MySQL MCP服务器

MySQL数据库的模型上下文协议(MCP)服务器,提供 只读的 访问数据库模式信息和示例数据。

背景

而现有的MySQL MCP服务器(如 设计计算机/mysql_mcp_server)允许LLM生成和执行任意SQL查询,包括INSERT、UPDATE和DELETE操作,这种方法在处理后端实现时会带来风险。

此MCP服务器采用了一种不同的、更安全的方法:

  • ✅ 只读操作:检索表列表、架构信息和示例数据
  • ❌ 无写入操作:无法修改、添加或删除数据
  • 🎯 以后端开发为重点:提供后端实施所需的准确信息,而不会出现数据损坏的风险

在开发后端应用程序时,您通常只需要了解数据库结构。此服务器提供:

  1. 表格列表:获取数据库中的所有表
  2. 架构信息:检索特定表的详细架构
  3. 样品数据:从任何表中获取前5行进行验证

特性

  • 🔒 设计安全:只读操作防止意外修改数据
  • 🚀 简单设置:通过CLI参数轻松配置
  • 📊 三个基本工具:
    • list_tables:获取数据库中所有表的列表
    • get_table_schema:检索特定表的架构信息
    • get_table_data:从表中提取最多5个示例行

安装

npm install @yukihito/mysql-mcp-server

或

pnpm add @yukihito/mysql-mcp-server

用法

作为MCP服务器

配置您的MCP客户端(例如Claude Desktop、Cline)以使用此服务器:

{
  "mcpServers": {
    "mysql-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@yukihito/mysql-mcp-server@latest",
        "--host", "localhost",
        "--port", "3306",
        "--name", "your_username",
        "--password", "your_password",
        "--database", "your_database"
      ]
    }
  }
}

CLI选项

选项 描述 默认值
--host MySQL主机 localhost
--port MySQL端口 8080
--name 数据库用户名 admin
--password 数据库密码 root
--database 数据库名称 database

Claude桌面配置示例

编辑您的Claude Desktop配置文件:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "mysql-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@yukihito/mysql-mcp-server@latest",
        "--host", "localhost",
        "--port", "3306",
        "--name", "myuser",
        "--password", "mypassword",
        "--database", "mydb"
      ]
    }
  }
}

可用工具

1.列表表

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

输入:无

输出:表名的JSON数组

示例:

["users", "products", "orders", "categories"]

2.get_table_schema

获取特定表的详细架构信息。

输入:

  • tableName (string):表的名称

输出:包含列信息(名称、类型、可空、键、默认值、额外值)的JSON数组

示例:

[
  {
    "Field": "id",
    "Type": "int",
    "Null": "NO",
    "Key": "PRI",
    "Default": null,
    "Extra": "auto_increment"
  },
  {
    "Field": "name",
    "Type": "varchar(255)",
    "Null": "NO",
    "Key": "",
    "Default": null,
    "Extra": ""
  }
]

3.获取表格数据

从特定表中检索最多5行以进行验证。

输入:

  • tableName (string):表的名称

输出:JSON行对象数组(限制为5行)

示例:

[
  {"id": 1, "name": "John Doe", "email": "john@example.com"},
  {"id": 2, "name": "Jane Smith", "email": "jane@example.com"}
]

发展

有关开发环境设置和贡献指南,请参阅 Developpent.md.

许可证

麻省理工学院

作者

Yukihito。

相关项目