@imrieul/mysql-mcp-server 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ru.md ADDED
@@ -0,0 +1,109 @@
1
+ # @imrieul/mysql-mcp-server
2
+
3
+ [English](./README.md) | [한국어](./README.ko.md) | [日本語](./README.ja.md) | [中文](./README.zh.md) | [Español](./README.es.md) | [Português](./README.pt.md) | [Français](./README.fr.md)
4
+
5
+ Простой MySQL-сервер [MCP](https://modelcontextprotocol.io/).
6
+
7
+ ## Возможности
8
+
9
+ - **LLM-friendly** — компактный формат столбцов/строк, автоматический LIMIT, подсказки об ошибках с предложениями следующих действий
10
+ - **Массовая схема** — `describe_all_tables` возвращает полную схему БД за один вызов
11
+ - **Режим только для чтения** — проверка префикса на уровне приложения + `SET SESSION TRANSACTION READ ONLY` на уровне БД
12
+ - **Тайм-аут запросов** — тайм-аут на основе `Promise.race()` с гарантированной очисткой соединения
13
+ - **Поддержка SSL** — одна переменная окружения для включения зашифрованных соединений
14
+ - **Минималистичность** — 3 зависимости, нулевая конфигурация
15
+
16
+ ## Быстрый старт
17
+
18
+ Добавьте в конфигурацию MCP (`.mcp.json` или `claude_desktop_config.json`):
19
+
20
+ ```json
21
+ {
22
+ "mcpServers": {
23
+ "mysql": {
24
+ "command": "npx",
25
+ "args": ["-y", "@imrieul/mysql-mcp-server"],
26
+ "env": {
27
+ "MYSQL_HOST": "localhost",
28
+ "MYSQL_PORT": "3306",
29
+ "MYSQL_USER": "root",
30
+ "MYSQL_PASSWORD": "your-password",
31
+ "MYSQL_DATABASE": "your-database"
32
+ }
33
+ }
34
+ }
35
+ }
36
+ ```
37
+
38
+ Или с использованием строки подключения:
39
+
40
+ ```json
41
+ {
42
+ "mcpServers": {
43
+ "mysql": {
44
+ "command": "npx",
45
+ "args": ["-y", "@imrieul/mysql-mcp-server", "mysql://root:password@localhost:3306/mydb"]
46
+ }
47
+ }
48
+ }
49
+ ```
50
+
51
+ ### Режим только для чтения с SSL
52
+
53
+ ```json
54
+ {
55
+ "mcpServers": {
56
+ "mysql": {
57
+ "command": "npx",
58
+ "args": ["-y", "@imrieul/mysql-mcp-server", "--readonly"],
59
+ "env": {
60
+ "MYSQL_HOST": "db.example.com",
61
+ "MYSQL_USER": "readonly_user",
62
+ "MYSQL_PASSWORD": "password",
63
+ "MYSQL_DATABASE": "production",
64
+ "MYSQL_SSL": "true",
65
+ "MYSQL_QUERY_TIMEOUT": "10000"
66
+ }
67
+ }
68
+ }
69
+ }
70
+ ```
71
+
72
+ ## Инструменты
73
+
74
+ | Инструмент | Описание | Режим только для чтения |
75
+ |------------|----------|-------------------------|
76
+ | `query` | Выполнение SELECT, SHOW, DESCRIBE, EXPLAIN | Разрешено |
77
+ | `execute` | Выполнение INSERT, UPDATE, DELETE, DDL | Заблокировано |
78
+ | `list_databases` | Список всех баз данных | Разрешено |
79
+ | `list_tables` | Список таблиц в базе данных | Разрешено |
80
+ | `describe_table` | Отображение схемы таблицы | Разрешено |
81
+ | `describe_all_tables` | Отображение всех схем таблиц одновременно | Разрешено |
82
+
83
+ ## Конфигурация
84
+
85
+ ### Переменные окружения
86
+
87
+ | Переменная | Обязательная | По умолчанию | Описание |
88
+ |------------|--------------|--------------|----------|
89
+ | `MYSQL_HOST` | Да | — | Хост MySQL |
90
+ | `MYSQL_USER` | Да | — | Пользователь MySQL |
91
+ | `MYSQL_PASSWORD` | Да | — | Пароль MySQL |
92
+ | `MYSQL_PORT` | Нет | `3306` | Порт MySQL |
93
+ | `MYSQL_DATABASE` | Нет | — | База данных по умолчанию |
94
+ | `MYSQL_READONLY` | Нет | `false` | Режим только для чтения |
95
+ | `MYSQL_MAX_ROWS` | Нет | `100` | Автоматический LIMIT для SELECT-запросов |
96
+ | `MYSQL_QUERY_TIMEOUT` | Нет | `30000` | Тайм-аут запроса в мс (0 для отключения) |
97
+ | `MYSQL_SSL` | Нет | `false` | Включить SSL-соединение |
98
+
99
+ ### Строка подключения
100
+
101
+ ```
102
+ mysql://user:password@host:port/database
103
+ ```
104
+
105
+ Передается как первый аргумент CLI. Имеет приоритет над переменными окружения.
106
+
107
+ ## Лицензия
108
+
109
+ MIT
package/README.zh.md ADDED
@@ -0,0 +1,109 @@
1
+ # @imrieul/mysql-mcp-server
2
+
3
+ [English](./README.md) | [한국어](./README.ko.md) | [日本語](./README.ja.md) | [Español](./README.es.md) | [Português](./README.pt.md) | [Français](./README.fr.md) | [Русский](./README.ru.md)
4
+
5
+ 一个简单的 MySQL [MCP](https://modelcontextprotocol.io/) 服务器。
6
+
7
+ ## 功能特性
8
+
9
+ - **LLM 友好** — 紧凑的列/行格式,自动 LIMIT,提供错误提示和下一步操作建议
10
+ - **批量模式架构** — `describe_all_tables` 一次调用返回整个数据库架构
11
+ - **只读模式** — 应用层前缀检查 + 数据库层 `SET SESSION TRANSACTION READ ONLY`
12
+ - **查询超时** — 基于 `Promise.race()` 的超时机制,确保连接清理
13
+ - **SSL 支持** — 通过一个环境变量即可启用加密连接
14
+ - **极简设计** — 仅 3 个依赖,无需配置即可使用
15
+
16
+ ## 快速开始
17
+
18
+ 将以下内容添加到您的 MCP 配置文件(`.mcp.json` 或 `claude_desktop_config.json`):
19
+
20
+ ```json
21
+ {
22
+ "mcpServers": {
23
+ "mysql": {
24
+ "command": "npx",
25
+ "args": ["-y", "@imrieul/mysql-mcp-server"],
26
+ "env": {
27
+ "MYSQL_HOST": "localhost",
28
+ "MYSQL_PORT": "3306",
29
+ "MYSQL_USER": "root",
30
+ "MYSQL_PASSWORD": "your-password",
31
+ "MYSQL_DATABASE": "your-database"
32
+ }
33
+ }
34
+ }
35
+ }
36
+ ```
37
+
38
+ 或使用连接字符串:
39
+
40
+ ```json
41
+ {
42
+ "mcpServers": {
43
+ "mysql": {
44
+ "command": "npx",
45
+ "args": ["-y", "@imrieul/mysql-mcp-server", "mysql://root:password@localhost:3306/mydb"]
46
+ }
47
+ }
48
+ }
49
+ ```
50
+
51
+ ### 启用 SSL 的只读模式
52
+
53
+ ```json
54
+ {
55
+ "mcpServers": {
56
+ "mysql": {
57
+ "command": "npx",
58
+ "args": ["-y", "@imrieul/mysql-mcp-server", "--readonly"],
59
+ "env": {
60
+ "MYSQL_HOST": "db.example.com",
61
+ "MYSQL_USER": "readonly_user",
62
+ "MYSQL_PASSWORD": "password",
63
+ "MYSQL_DATABASE": "production",
64
+ "MYSQL_SSL": "true",
65
+ "MYSQL_QUERY_TIMEOUT": "10000"
66
+ }
67
+ }
68
+ }
69
+ }
70
+ ```
71
+
72
+ ## 工具
73
+
74
+ | 工具 | 描述 | 只读模式 |
75
+ |------|------|---------|
76
+ | `query` | 执行 SELECT、SHOW、DESCRIBE、EXPLAIN | 允许 |
77
+ | `execute` | 执行 INSERT、UPDATE、DELETE、DDL | 阻止 |
78
+ | `list_databases` | 列出所有数据库 | 允许 |
79
+ | `list_tables` | 列出数据库中的表 | 允许 |
80
+ | `describe_table` | 显示表架构 | 允许 |
81
+ | `describe_all_tables` | 一次性显示所有表架构 | 允许 |
82
+
83
+ ## 配置
84
+
85
+ ### 环境变量
86
+
87
+ | 变量 | 必需 | 默认值 | 描述 |
88
+ |------|------|--------|------|
89
+ | `MYSQL_HOST` | 是 | — | MySQL 主机地址 |
90
+ | `MYSQL_USER` | 是 | — | MySQL 用户名 |
91
+ | `MYSQL_PASSWORD` | 是 | — | MySQL 密码 |
92
+ | `MYSQL_PORT` | 否 | `3306` | MySQL 端口 |
93
+ | `MYSQL_DATABASE` | 否 | — | 默认数据库 |
94
+ | `MYSQL_READONLY` | 否 | `false` | 只读模式 |
95
+ | `MYSQL_MAX_ROWS` | 否 | `100` | SELECT 查询自动 LIMIT 行数 |
96
+ | `MYSQL_QUERY_TIMEOUT` | 否 | `30000` | 查询超时时间(毫秒,0 表示禁用) |
97
+ | `MYSQL_SSL` | 否 | `false` | 启用 SSL 连接 |
98
+
99
+ ### 连接字符串
100
+
101
+ ```
102
+ mysql://user:password@host:port/database
103
+ ```
104
+
105
+ 作为第一个 CLI 参数传递。优先级高于环境变量。
106
+
107
+ ## 许可证
108
+
109
+ MIT