@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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 imrieul
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.es.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) | [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
+ ### Modo de solo lectura con 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
+ ## Herramientas
73
+
74
+ | Tool | Descripción | Modo de solo lectura |
75
+ |------|-------------|----------------------|
76
+ | `query` | Ejecutar SELECT, SHOW, DESCRIBE, EXPLAIN | Permitido |
77
+ | `execute` | Ejecutar INSERT, UPDATE, DELETE, DDL | Bloqueado |
78
+ | `list_databases` | Listar todas las bases de datos | Permitido |
79
+ | `list_tables` | Listar tablas en una base de datos | Permitido |
80
+ | `describe_table` | Mostrar esquema de tabla | Permitido |
81
+ | `describe_all_tables` | Mostrar todos los esquemas de tabla a la vez | Permitido |
82
+
83
+ ## Configuración
84
+
85
+ ### Variables de entorno
86
+
87
+ | Variable | Requerida | Por defecto | Descripción |
88
+ |----------|-----------|-------------|-------------|
89
+ | `MYSQL_HOST` | Sí | — | Host de MySQL |
90
+ | `MYSQL_USER` | Sí | — | Usuario de MySQL |
91
+ | `MYSQL_PASSWORD` | Sí | — | Contraseña de MySQL |
92
+ | `MYSQL_PORT` | No | `3306` | Puerto de MySQL |
93
+ | `MYSQL_DATABASE` | No | — | Base de datos por defecto |
94
+ | `MYSQL_READONLY` | No | `false` | Modo de solo lectura |
95
+ | `MYSQL_MAX_ROWS` | No | `100` | LIMIT automático para consultas SELECT |
96
+ | `MYSQL_QUERY_TIMEOUT` | No | `30000` | Tiempo de espera de consulta en ms (0 para deshabilitar) |
97
+ | `MYSQL_SSL` | No | `false` | Habilitar conexión SSL |
98
+
99
+ ### Cadena de conexión
100
+
101
+ ```
102
+ mysql://user:password@host:port/database
103
+ ```
104
+
105
+ Se pasa como el primer argumento CLI. Tiene prioridad sobre las variables de entorno.
106
+
107
+ ## Licencia
108
+
109
+ MIT
package/README.fr.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) | [Русский](./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
+ ### Mode lecture seule avec 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
+ ## Outils
73
+
74
+ | Outil | Description | Mode lecture seule |
75
+ |------|-------------|----------------|
76
+ | `query` | Exécuter SELECT, SHOW, DESCRIBE, EXPLAIN | Autorisé |
77
+ | `execute` | Exécuter INSERT, UPDATE, DELETE, DDL | Bloqué |
78
+ | `list_databases` | Lister toutes les bases de données | Autorisé |
79
+ | `list_tables` | Lister les tables d'une base de données | Autorisé |
80
+ | `describe_table` | Afficher le schéma d'une table | Autorisé |
81
+ | `describe_all_tables` | Afficher tous les schémas de tables en une fois | Autorisé |
82
+
83
+ ## Configuration
84
+
85
+ ### Variables d'environnement
86
+
87
+ | Variable | Requis | Défaut | Description |
88
+ |----------|----------|---------|-------------|
89
+ | `MYSQL_HOST` | Oui | — | Hôte MySQL |
90
+ | `MYSQL_USER` | Oui | — | Utilisateur MySQL |
91
+ | `MYSQL_PASSWORD` | Oui | — | Mot de passe MySQL |
92
+ | `MYSQL_PORT` | Non | `3306` | Port MySQL |
93
+ | `MYSQL_DATABASE` | Non | — | Base de données par défaut |
94
+ | `MYSQL_READONLY` | Non | `false` | Mode lecture seule |
95
+ | `MYSQL_MAX_ROWS` | Non | `100` | LIMIT automatique pour les requêtes SELECT |
96
+ | `MYSQL_QUERY_TIMEOUT` | Non | `30000` | Timeout des requêtes en ms (0 pour désactiver) |
97
+ | `MYSQL_SSL` | Non | `false` | Activer la connexion SSL |
98
+
99
+ ### Chaîne de connexion
100
+
101
+ ```
102
+ mysql://user:password@host:port/database
103
+ ```
104
+
105
+ Passée comme premier argument CLI. Prioritaire sur les variables d'environnement.
106
+
107
+ ## Licence
108
+
109
+ MIT
package/README.ja.md ADDED
@@ -0,0 +1,109 @@
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
+ ### 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
+ | Tool | Description | Read-only mode |
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
+ | Variable | Required | Default | Description |
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
package/README.ko.md ADDED
@@ -0,0 +1,109 @@
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
+ ### 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
+ | Tool | 설명 | 읽기 전용 모드 |
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` | Yes | — | MySQL 호스트 |
90
+ | `MYSQL_USER` | Yes | — | MySQL 사용자 |
91
+ | `MYSQL_PASSWORD` | Yes | — | MySQL 비밀번호 |
92
+ | `MYSQL_PORT` | No | `3306` | MySQL 포트 |
93
+ | `MYSQL_DATABASE` | No | — | 기본 데이터베이스 |
94
+ | `MYSQL_READONLY` | No | `false` | 읽기 전용 모드 |
95
+ | `MYSQL_MAX_ROWS` | No | `100` | SELECT 쿼리의 자동 LIMIT |
96
+ | `MYSQL_QUERY_TIMEOUT` | No | `30000` | 쿼리 타임아웃 (밀리초, 0으로 비활성화) |
97
+ | `MYSQL_SSL` | No | `false` | SSL 연결 활성화 |
98
+
99
+ ### 연결 문자열
100
+
101
+ ```
102
+ mysql://user:password@host:port/database
103
+ ```
104
+
105
+ 첫 번째 CLI 인수로 전달됩니다. 환경 변수보다 우선합니다.
106
+
107
+ ## 라이선스
108
+
109
+ MIT
package/README.md ADDED
@@ -0,0 +1,109 @@
1
+ # @imrieul/mysql-mcp-server
2
+
3
+ [한국어](./README.ko.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
+ A simple MySQL [MCP](https://modelcontextprotocol.io/) server.
6
+
7
+ ## Features
8
+
9
+ - **LLM-friendly** — compact column/row format, auto LIMIT, error hints with next-action suggestions
10
+ - **Bulk schema** — `describe_all_tables` returns entire DB schema in one call
11
+ - **Read-only mode** — app-level prefix check + DB-level `SET SESSION TRANSACTION READ ONLY`
12
+ - **Query timeout** — `Promise.race()` based timeout with guaranteed connection cleanup
13
+ - **SSL support** — one env var to enable encrypted connections
14
+ - **Minimal** — 3 dependencies, zero config required
15
+
16
+ ## Quick Start
17
+
18
+ Add to your MCP config (`.mcp.json` or `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
+ Or with a connection string:
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
+ ### Read-only mode with 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
+ ## Tools
73
+
74
+ | Tool | Description | Read-only mode |
75
+ |------|-------------|----------------|
76
+ | `query` | Execute SELECT, SHOW, DESCRIBE, EXPLAIN | Allowed |
77
+ | `execute` | Execute INSERT, UPDATE, DELETE, DDL | Blocked |
78
+ | `list_databases` | List all databases | Allowed |
79
+ | `list_tables` | List tables in a database | Allowed |
80
+ | `describe_table` | Show table schema | Allowed |
81
+ | `describe_all_tables` | Show all table schemas at once | Allowed |
82
+
83
+ ## Configuration
84
+
85
+ ### Environment variables
86
+
87
+ | Variable | Required | Default | Description |
88
+ |----------|----------|---------|-------------|
89
+ | `MYSQL_HOST` | Yes | — | MySQL host |
90
+ | `MYSQL_USER` | Yes | — | MySQL user |
91
+ | `MYSQL_PASSWORD` | Yes | — | MySQL password |
92
+ | `MYSQL_PORT` | No | `3306` | MySQL port |
93
+ | `MYSQL_DATABASE` | No | — | Default database |
94
+ | `MYSQL_READONLY` | No | `false` | Read-only mode |
95
+ | `MYSQL_MAX_ROWS` | No | `100` | Auto LIMIT for SELECT queries |
96
+ | `MYSQL_QUERY_TIMEOUT` | No | `30000` | Query timeout in ms (0 to disable) |
97
+ | `MYSQL_SSL` | No | `false` | Enable SSL connection |
98
+
99
+ ### Connection string
100
+
101
+ ```
102
+ mysql://user:password@host:port/database
103
+ ```
104
+
105
+ Passed as the first CLI argument. Takes priority over environment variables.
106
+
107
+ ## License
108
+
109
+ MIT
package/README.pt.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) | [Français](./README.fr.md) | [Русский](./README.ru.md)
4
+
5
+ Um servidor [MCP](https://modelcontextprotocol.io/) simples para MySQL.
6
+
7
+ ## Recursos
8
+
9
+ - **Otimizado para LLM** — formato compacto de colunas/linhas, LIMIT automático, dicas de erro com sugestões de próximas ações
10
+ - **Schema em lote** — `describe_all_tables` retorna o schema completo do banco em uma única chamada
11
+ - **Modo somente leitura** — verificação de prefixo no nível da aplicação + `SET SESSION TRANSACTION READ ONLY` no nível do banco
12
+ - **Timeout de consulta** — timeout baseado em `Promise.race()` com limpeza garantida da conexão
13
+ - **Suporte a SSL** — uma variável de ambiente para habilitar conexões criptografadas
14
+ - **Minimalista** — 3 dependências, zero configuração necessária
15
+
16
+ ## Início Rápido
17
+
18
+ Adicione à sua configuração 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 com uma string de conexão:
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
+ ### Modo somente leitura com 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
+ ## Ferramentas
73
+
74
+ | Ferramenta | Descrição | Modo somente leitura |
75
+ |------|-------------|----------------|
76
+ | `query` | Executar SELECT, SHOW, DESCRIBE, EXPLAIN | Permitido |
77
+ | `execute` | Executar INSERT, UPDATE, DELETE, DDL | Bloqueado |
78
+ | `list_databases` | Listar todos os bancos de dados | Permitido |
79
+ | `list_tables` | Listar tabelas em um banco de dados | Permitido |
80
+ | `describe_table` | Exibir schema da tabela | Permitido |
81
+ | `describe_all_tables` | Exibir schemas de todas as tabelas de uma vez | Permitido |
82
+
83
+ ## Configuração
84
+
85
+ ### Variáveis de ambiente
86
+
87
+ | Variável | Obrigatória | Padrão | Descrição |
88
+ |----------|----------|---------|-------------|
89
+ | `MYSQL_HOST` | Sim | — | Host do MySQL |
90
+ | `MYSQL_USER` | Sim | — | Usuário do MySQL |
91
+ | `MYSQL_PASSWORD` | Sim | — | Senha do MySQL |
92
+ | `MYSQL_PORT` | Não | `3306` | Porta do MySQL |
93
+ | `MYSQL_DATABASE` | Não | — | Banco de dados padrão |
94
+ | `MYSQL_READONLY` | Não | `false` | Modo somente leitura |
95
+ | `MYSQL_MAX_ROWS` | Não | `100` | LIMIT automático para consultas SELECT |
96
+ | `MYSQL_QUERY_TIMEOUT` | Não | `30000` | Timeout de consulta em ms (0 para desabilitar) |
97
+ | `MYSQL_SSL` | Não | `false` | Habilitar conexão SSL |
98
+
99
+ ### String de conexão
100
+
101
+ ```
102
+ mysql://user:password@host:port/database
103
+ ```
104
+
105
+ Passada como primeiro argumento CLI. Tem prioridade sobre as variáveis de ambiente.
106
+
107
+ ## Licença
108
+
109
+ MIT