@imrieul/mysql-mcp-server 1.1.1 → 2.0.0-rc.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imrieul/mysql-mcp-server",
3
- "version": "1.1.1",
3
+ "version": "2.0.0-rc.1",
4
4
  "description": "MySQL MCP Server - Simple Model Context Protocol server for MySQL database operations",
5
5
  "type": "module",
6
6
  "bin": {
@@ -16,6 +16,7 @@
16
16
  "test": "vitest run",
17
17
  "test:watch": "vitest",
18
18
  "test:coverage": "vitest run --coverage",
19
+ "test:integration": "npm run build && vitest run --config tests/vitest.integration.config.ts",
19
20
  "typecheck": "tsc --noEmit",
20
21
  "lint": "eslint src/ tests/",
21
22
  "lint:fix": "eslint --fix src/ tests/",
@@ -45,14 +46,16 @@
45
46
  },
46
47
  "license": "MIT",
47
48
  "dependencies": {
48
- "@modelcontextprotocol/sdk": "^1.25.0",
49
- "mysql2": "^3.11.0",
50
- "zod": "^3.25.0"
49
+ "@modelcontextprotocol/server": "^2.0.0",
50
+ "mysql2": "^3.24.4",
51
+ "zod": "^4.2.0"
51
52
  },
52
53
  "devDependencies": {
53
54
  "@eslint/js": "^9.39.2",
55
+ "@modelcontextprotocol/client": "^2.0.0",
56
+ "@modelcontextprotocol/sdk": "^1.30.0",
54
57
  "@types/node": "^18.19.130",
55
- "@vitest/coverage-v8": "^2.1.9",
58
+ "@vitest/coverage-v8": "^3.2.7",
56
59
  "eslint": "^9.39.2",
57
60
  "eslint-config-prettier": "^10.1.8",
58
61
  "husky": "^9.1.7",
@@ -62,9 +65,9 @@
62
65
  "tsup": "^8.0.0",
63
66
  "typescript": "^5.5.0",
64
67
  "typescript-eslint": "^8.54.0",
65
- "vitest": "^2.0.0"
68
+ "vitest": "^3.2.7"
66
69
  },
67
70
  "engines": {
68
- "node": ">=18"
71
+ "node": ">=20"
69
72
  }
70
73
  }
package/README.es.md DELETED
@@ -1,150 +0,0 @@
1
- # @imrieul/mysql-mcp-server
2
-
3
- [English](./README.md) | [한국어](./README.ko.md) | [日本語](./README.ja.md) | [中文](./README.zh.md) | [Português](./README.pt.md) | [Français](./README.fr.md) | [Русский](./README.ru.md)
4
-
5
- Un servidor [MCP](https://modelcontextprotocol.io/) simple para MySQL.
6
-
7
- ## Características
8
-
9
- - **Optimizado para LLM** — formato compacto de columnas/filas, LIMIT automático, sugerencias de error con acciones sugeridas
10
- - **Esquema en bloque** — `describe_all_tables` devuelve todo el esquema de la base de datos en una sola llamada
11
- - **Modo de solo lectura** — verificación de prefijo a nivel de aplicación + `SET SESSION TRANSACTION READ ONLY` a nivel de base de datos
12
- - **Tiempo de espera de consultas** — tiempo de espera basado en `Promise.race()` con limpieza de conexión garantizada
13
- - **Soporte SSL** — una variable de entorno para habilitar conexiones cifradas
14
- - **Minimalista** — 3 dependencias, sin configuración requerida
15
-
16
- ## Inicio Rápido
17
-
18
- Añade a tu configuración MCP (`.mcp.json` o `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
- O con una cadena de conexión:
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
- ### Codex
52
-
53
- Codex usa configuración TOML, no JSON con `mcpServers`. Añade esto a `~/.codex/config.toml` o a un `.codex/config.toml` con alcance de proyecto:
54
-
55
- ```toml
56
- [mcp_servers.mysql]
57
- command = "npx"
58
- args = ["-y", "@imrieul/mysql-mcp-server"]
59
-
60
- [mcp_servers.mysql.env]
61
- MYSQL_HOST = "localhost"
62
- MYSQL_PORT = "3306"
63
- MYSQL_USER = "root"
64
- MYSQL_PASSWORD = "your-password"
65
- MYSQL_DATABASE = "your-database"
66
- ```
67
-
68
- ### opencode
69
-
70
- Añade esto a `opencode.json` u `opencode.jsonc`:
71
-
72
- ```json
73
- {
74
- "$schema": "https://opencode.ai/config.json",
75
- "mcp": {
76
- "mysql": {
77
- "type": "local",
78
- "command": ["npx", "-y", "@imrieul/mysql-mcp-server"],
79
- "enabled": true,
80
- "environment": {
81
- "MYSQL_HOST": "localhost",
82
- "MYSQL_PORT": "3306",
83
- "MYSQL_USER": "root",
84
- "MYSQL_PASSWORD": "your-password",
85
- "MYSQL_DATABASE": "your-database"
86
- }
87
- }
88
- }
89
- }
90
- ```
91
-
92
- ### Modo de solo lectura con SSL
93
-
94
- ```json
95
- {
96
- "mcpServers": {
97
- "mysql": {
98
- "command": "npx",
99
- "args": ["-y", "@imrieul/mysql-mcp-server", "--readonly"],
100
- "env": {
101
- "MYSQL_HOST": "db.example.com",
102
- "MYSQL_USER": "readonly_user",
103
- "MYSQL_PASSWORD": "password",
104
- "MYSQL_DATABASE": "production",
105
- "MYSQL_SSL": "true",
106
- "MYSQL_QUERY_TIMEOUT": "10000"
107
- }
108
- }
109
- }
110
- }
111
- ```
112
-
113
- ## Herramientas
114
-
115
- | Tool | Descripción | Modo de solo lectura |
116
- |------|-------------|----------------------|
117
- | `query` | Ejecutar SELECT, SHOW, DESCRIBE, EXPLAIN | Permitido |
118
- | `execute` | Ejecutar INSERT, UPDATE, DELETE, DDL | Bloqueado |
119
- | `list_databases` | Listar todas las bases de datos | Permitido |
120
- | `list_tables` | Listar tablas en una base de datos | Permitido |
121
- | `describe_table` | Mostrar esquema de tabla | Permitido |
122
- | `describe_all_tables` | Mostrar todos los esquemas de tabla a la vez | Permitido |
123
-
124
- ## Configuración
125
-
126
- ### Variables de entorno
127
-
128
- | Variable | Requerida | Por defecto | Descripción |
129
- |----------|-----------|-------------|-------------|
130
- | `MYSQL_HOST` | Sí | — | Host de MySQL |
131
- | `MYSQL_USER` | Sí | — | Usuario de MySQL |
132
- | `MYSQL_PASSWORD` | Sí | — | Contraseña de MySQL |
133
- | `MYSQL_PORT` | No | `3306` | Puerto de MySQL |
134
- | `MYSQL_DATABASE` | No | — | Base de datos por defecto |
135
- | `MYSQL_READONLY` | No | `false` | Modo de solo lectura |
136
- | `MYSQL_MAX_ROWS` | No | `100` | LIMIT automático para consultas SELECT |
137
- | `MYSQL_QUERY_TIMEOUT` | No | `30000` | Tiempo de espera de consulta en ms (0 para deshabilitar) |
138
- | `MYSQL_SSL` | No | `false` | Habilitar conexión SSL |
139
-
140
- ### Cadena de conexión
141
-
142
- ```
143
- mysql://user:password@host:port/database
144
- ```
145
-
146
- Se pasa como el primer argumento CLI. Tiene prioridad sobre las variables de entorno.
147
-
148
- ## Licencia
149
-
150
- MIT
package/README.fr.md DELETED
@@ -1,150 +0,0 @@
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) | [Русский](./README.ru.md)
4
-
5
- Un serveur [MCP](https://modelcontextprotocol.io/) MySQL simple.
6
-
7
- ## Fonctionnalités
8
-
9
- - **Compatible LLM** — format colonnes/lignes compact, LIMIT automatique, suggestions d'actions suite aux erreurs
10
- - **Schéma en masse** — `describe_all_tables` retourne le schéma complet de la base en un seul appel
11
- - **Mode lecture seule** — vérification au niveau applicatif + `SET SESSION TRANSACTION READ ONLY` au niveau base de données
12
- - **Timeout des requêtes** — timeout basé sur `Promise.race()` avec nettoyage garanti des connexions
13
- - **Support SSL** — une seule variable d'environnement pour activer les connexions chiffrées
14
- - **Minimal** — 3 dépendances, aucune configuration requise
15
-
16
- ## Démarrage rapide
17
-
18
- Ajoutez à votre configuration MCP (`.mcp.json` ou `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
- Ou avec une chaîne de connexion :
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
- ### Codex
52
-
53
- Codex utilise une configuration TOML, pas le JSON `mcpServers`. Ajoutez ceci à `~/.codex/config.toml` ou à un `.codex/config.toml` limité au projet :
54
-
55
- ```toml
56
- [mcp_servers.mysql]
57
- command = "npx"
58
- args = ["-y", "@imrieul/mysql-mcp-server"]
59
-
60
- [mcp_servers.mysql.env]
61
- MYSQL_HOST = "localhost"
62
- MYSQL_PORT = "3306"
63
- MYSQL_USER = "root"
64
- MYSQL_PASSWORD = "your-password"
65
- MYSQL_DATABASE = "your-database"
66
- ```
67
-
68
- ### opencode
69
-
70
- Ajoutez ceci à `opencode.json` ou `opencode.jsonc` :
71
-
72
- ```json
73
- {
74
- "$schema": "https://opencode.ai/config.json",
75
- "mcp": {
76
- "mysql": {
77
- "type": "local",
78
- "command": ["npx", "-y", "@imrieul/mysql-mcp-server"],
79
- "enabled": true,
80
- "environment": {
81
- "MYSQL_HOST": "localhost",
82
- "MYSQL_PORT": "3306",
83
- "MYSQL_USER": "root",
84
- "MYSQL_PASSWORD": "your-password",
85
- "MYSQL_DATABASE": "your-database"
86
- }
87
- }
88
- }
89
- }
90
- ```
91
-
92
- ### Mode lecture seule avec SSL
93
-
94
- ```json
95
- {
96
- "mcpServers": {
97
- "mysql": {
98
- "command": "npx",
99
- "args": ["-y", "@imrieul/mysql-mcp-server", "--readonly"],
100
- "env": {
101
- "MYSQL_HOST": "db.example.com",
102
- "MYSQL_USER": "readonly_user",
103
- "MYSQL_PASSWORD": "password",
104
- "MYSQL_DATABASE": "production",
105
- "MYSQL_SSL": "true",
106
- "MYSQL_QUERY_TIMEOUT": "10000"
107
- }
108
- }
109
- }
110
- }
111
- ```
112
-
113
- ## Outils
114
-
115
- | Outil | Description | Mode lecture seule |
116
- |------|-------------|----------------|
117
- | `query` | Exécuter SELECT, SHOW, DESCRIBE, EXPLAIN | Autorisé |
118
- | `execute` | Exécuter INSERT, UPDATE, DELETE, DDL | Bloqué |
119
- | `list_databases` | Lister toutes les bases de données | Autorisé |
120
- | `list_tables` | Lister les tables d'une base de données | Autorisé |
121
- | `describe_table` | Afficher le schéma d'une table | Autorisé |
122
- | `describe_all_tables` | Afficher tous les schémas de tables en une fois | Autorisé |
123
-
124
- ## Configuration
125
-
126
- ### Variables d'environnement
127
-
128
- | Variable | Requis | Défaut | Description |
129
- |----------|----------|---------|-------------|
130
- | `MYSQL_HOST` | Oui | — | Hôte MySQL |
131
- | `MYSQL_USER` | Oui | — | Utilisateur MySQL |
132
- | `MYSQL_PASSWORD` | Oui | — | Mot de passe MySQL |
133
- | `MYSQL_PORT` | Non | `3306` | Port MySQL |
134
- | `MYSQL_DATABASE` | Non | — | Base de données par défaut |
135
- | `MYSQL_READONLY` | Non | `false` | Mode lecture seule |
136
- | `MYSQL_MAX_ROWS` | Non | `100` | LIMIT automatique pour les requêtes SELECT |
137
- | `MYSQL_QUERY_TIMEOUT` | Non | `30000` | Timeout des requêtes en ms (0 pour désactiver) |
138
- | `MYSQL_SSL` | Non | `false` | Activer la connexion SSL |
139
-
140
- ### Chaîne de connexion
141
-
142
- ```
143
- mysql://user:password@host:port/database
144
- ```
145
-
146
- Passée comme premier argument CLI. Prioritaire sur les variables d'environnement.
147
-
148
- ## Licence
149
-
150
- MIT
package/README.ja.md DELETED
@@ -1,150 +0,0 @@
1
- # @imrieul/mysql-mcp-server
2
-
3
- [English](./README.md) | [한국어](./README.ko.md) | [中文](./README.zh.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対応** — 環境変数1つで暗号化接続を有効化
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
- ### Codex
52
-
53
- Codexは`mcpServers` JSONではなくTOML設定を使用します。`~/.codex/config.toml`またはプロジェクトスコープの`.codex/config.toml`に追加してください。
54
-
55
- ```toml
56
- [mcp_servers.mysql]
57
- command = "npx"
58
- args = ["-y", "@imrieul/mysql-mcp-server"]
59
-
60
- [mcp_servers.mysql.env]
61
- MYSQL_HOST = "localhost"
62
- MYSQL_PORT = "3306"
63
- MYSQL_USER = "root"
64
- MYSQL_PASSWORD = "your-password"
65
- MYSQL_DATABASE = "your-database"
66
- ```
67
-
68
- ### opencode
69
-
70
- `opencode.json`または`opencode.jsonc`に追加してください。
71
-
72
- ```json
73
- {
74
- "$schema": "https://opencode.ai/config.json",
75
- "mcp": {
76
- "mysql": {
77
- "type": "local",
78
- "command": ["npx", "-y", "@imrieul/mysql-mcp-server"],
79
- "enabled": true,
80
- "environment": {
81
- "MYSQL_HOST": "localhost",
82
- "MYSQL_PORT": "3306",
83
- "MYSQL_USER": "root",
84
- "MYSQL_PASSWORD": "your-password",
85
- "MYSQL_DATABASE": "your-database"
86
- }
87
- }
88
- }
89
- }
90
- ```
91
-
92
- ### SSLを使用した読み取り専用モード
93
-
94
- ```json
95
- {
96
- "mcpServers": {
97
- "mysql": {
98
- "command": "npx",
99
- "args": ["-y", "@imrieul/mysql-mcp-server", "--readonly"],
100
- "env": {
101
- "MYSQL_HOST": "db.example.com",
102
- "MYSQL_USER": "readonly_user",
103
- "MYSQL_PASSWORD": "password",
104
- "MYSQL_DATABASE": "production",
105
- "MYSQL_SSL": "true",
106
- "MYSQL_QUERY_TIMEOUT": "10000"
107
- }
108
- }
109
- }
110
- }
111
- ```
112
-
113
- ## ツール
114
-
115
- | Tool | Description | Read-only mode |
116
- |------|-------------|----------------|
117
- | `query` | SELECT, SHOW, DESCRIBE, EXPLAINの実行 | 許可 |
118
- | `execute` | INSERT, UPDATE, DELETE, DDLの実行 | ブロック |
119
- | `list_databases` | 全データベースの一覧表示 | 許可 |
120
- | `list_tables` | データベース内のテーブル一覧表示 | 許可 |
121
- | `describe_table` | テーブルスキーマの表示 | 許可 |
122
- | `describe_all_tables` | 全テーブルスキーマの一括表示 | 許可 |
123
-
124
- ## 設定
125
-
126
- ### 環境変数
127
-
128
- | Variable | Required | Default | Description |
129
- |----------|----------|---------|-------------|
130
- | `MYSQL_HOST` | はい | — | MySQLホスト |
131
- | `MYSQL_USER` | はい | — | MySQLユーザー |
132
- | `MYSQL_PASSWORD` | はい | — | MySQLパスワード |
133
- | `MYSQL_PORT` | いいえ | `3306` | MySQLポート |
134
- | `MYSQL_DATABASE` | いいえ | — | デフォルトデータベース |
135
- | `MYSQL_READONLY` | いいえ | `false` | 読み取り専用モード |
136
- | `MYSQL_MAX_ROWS` | いいえ | `100` | SELECTクエリの自動LIMIT |
137
- | `MYSQL_QUERY_TIMEOUT` | いいえ | `30000` | クエリタイムアウト(ミリ秒、0で無効化) |
138
- | `MYSQL_SSL` | いいえ | `false` | SSL接続を有効化 |
139
-
140
- ### 接続文字列
141
-
142
- ```
143
- mysql://user:password@host:port/database
144
- ```
145
-
146
- 最初のCLI引数として渡されます。環境変数より優先されます。
147
-
148
- ## ライセンス
149
-
150
- MIT
package/README.ko.md DELETED
@@ -1,150 +0,0 @@
1
- # @imrieul/mysql-mcp-server
2
-
3
- [English](./README.md) | [日本語](./README.ja.md) | [中文](./README.zh.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`로 전체 DB 스키마를 한 번에 조회
11
- - **읽기 전용 모드** — 애플리케이션 레벨 접두사 검사 + DB 레벨 `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
- ### Codex
52
-
53
- Codex는 `mcpServers` JSON이 아니라 TOML 설정을 사용합니다. `~/.codex/config.toml` 또는 프로젝트 범위의 `.codex/config.toml`에 추가하세요:
54
-
55
- ```toml
56
- [mcp_servers.mysql]
57
- command = "npx"
58
- args = ["-y", "@imrieul/mysql-mcp-server"]
59
-
60
- [mcp_servers.mysql.env]
61
- MYSQL_HOST = "localhost"
62
- MYSQL_PORT = "3306"
63
- MYSQL_USER = "root"
64
- MYSQL_PASSWORD = "your-password"
65
- MYSQL_DATABASE = "your-database"
66
- ```
67
-
68
- ### opencode
69
-
70
- `opencode.json` 또는 `opencode.jsonc`에 추가하세요:
71
-
72
- ```json
73
- {
74
- "$schema": "https://opencode.ai/config.json",
75
- "mcp": {
76
- "mysql": {
77
- "type": "local",
78
- "command": ["npx", "-y", "@imrieul/mysql-mcp-server"],
79
- "enabled": true,
80
- "environment": {
81
- "MYSQL_HOST": "localhost",
82
- "MYSQL_PORT": "3306",
83
- "MYSQL_USER": "root",
84
- "MYSQL_PASSWORD": "your-password",
85
- "MYSQL_DATABASE": "your-database"
86
- }
87
- }
88
- }
89
- }
90
- ```
91
-
92
- ### SSL을 사용하는 읽기 전용 모드
93
-
94
- ```json
95
- {
96
- "mcpServers": {
97
- "mysql": {
98
- "command": "npx",
99
- "args": ["-y", "@imrieul/mysql-mcp-server", "--readonly"],
100
- "env": {
101
- "MYSQL_HOST": "db.example.com",
102
- "MYSQL_USER": "readonly_user",
103
- "MYSQL_PASSWORD": "password",
104
- "MYSQL_DATABASE": "production",
105
- "MYSQL_SSL": "true",
106
- "MYSQL_QUERY_TIMEOUT": "10000"
107
- }
108
- }
109
- }
110
- }
111
- ```
112
-
113
- ## 도구
114
-
115
- | Tool | 설명 | 읽기 전용 모드 |
116
- |------|------|---------------|
117
- | `query` | SELECT, SHOW, DESCRIBE, EXPLAIN 실행 | 허용 |
118
- | `execute` | INSERT, UPDATE, DELETE, DDL 실행 | 차단 |
119
- | `list_databases` | 모든 데이터베이스 목록 조회 | 허용 |
120
- | `list_tables` | 데이터베이스의 테이블 목록 조회 | 허용 |
121
- | `describe_table` | 테이블 스키마 조회 | 허용 |
122
- | `describe_all_tables` | 모든 테이블 스키마를 한 번에 조회 | 허용 |
123
-
124
- ## 설정
125
-
126
- ### 환경 변수
127
-
128
- | 변수 | 필수 | 기본값 | 설명 |
129
- |------|------|--------|------|
130
- | `MYSQL_HOST` | Yes | — | MySQL 호스트 |
131
- | `MYSQL_USER` | Yes | — | MySQL 사용자 |
132
- | `MYSQL_PASSWORD` | Yes | — | MySQL 비밀번호 |
133
- | `MYSQL_PORT` | No | `3306` | MySQL 포트 |
134
- | `MYSQL_DATABASE` | No | — | 기본 데이터베이스 |
135
- | `MYSQL_READONLY` | No | `false` | 읽기 전용 모드 |
136
- | `MYSQL_MAX_ROWS` | No | `100` | SELECT 쿼리의 자동 LIMIT |
137
- | `MYSQL_QUERY_TIMEOUT` | No | `30000` | 쿼리 타임아웃 (밀리초, 0으로 비활성화) |
138
- | `MYSQL_SSL` | No | `false` | SSL 연결 활성화 |
139
-
140
- ### 연결 문자열
141
-
142
- ```
143
- mysql://user:password@host:port/database
144
- ```
145
-
146
- 첫 번째 CLI 인수로 전달됩니다. 환경 변수보다 우선합니다.
147
-
148
- ## 라이선스
149
-
150
- MIT